Pasar al contenido principal

Auditoría de Software

¿A quién va dirigido?

A cualquier organización, pública o privada, incluidas las pequeñas y medianas empresas (PYMES), que deseen ser más resilientes y estar más protegidas frente a las ciberamenazas con el objetivo de asegurar la continuidad de su negocio.

¿De qué trata una auditoría de software?

Una Auditoría de Software permite evaluar el estado de seguridad de un sistema de software mediante el análisis de distintos aspectos, los cuales pueden variar desde la verificación del cumplimiento de licencias, la validación de la arquitectura de la aplicación, la seguridad del código fuente y hasta la monitorización del control de calidad.

¿De qué trata una auditoría de software?

En cuanto a la seguridad del software, existen metodologías que ayudan a desarrollar software seguro. El S-SDLC (Ciclo de vida del desarrollo de software seguro) es un conjunto de principios de diseño que sirve para detectar, prevenir y corregir los defectos de seguridad a la hora de desarrollar aplicaciones. La aplicación de estas buenas prácticas ayuda a conseguir software de confianza y robusto frente a vulnerabilidades, de modo que solo realice las funciones para las que fue diseñado, libre de vulnerabilidades y asegurando la integridad, la confidencialidad y la disponibilidad.

De todas formas, aun siguiendo buenas prácticas de desarrollo seguro, un software puede ser vulnerable, y hay software que no ha sido desarrollado teniendo en cuenta la seguridad. El software debe ser auditado para poder comprobar su seguridad, y para poder realizar esta tarea se requiere de expertos en seguridad con habilidades en el desarrollo de software.

Objetivos

ObjetivosEl objetivo de una Auditoría de Software es tratar de identificar problemas de seguridad que puedan comprometer la confidencialidad, la integridad y/o la disponibilidad de un sistema de software. De esta forma, estos problemas pueden ser corregidos, consiguiendo un software más seguro.

Beneficios

  • Identificar cuáles son las amenazas que pueden afectar al software analizado.
  • Determinar los riesgos que puedan afectar a la aplicación y poder tomar medidas para afrontar este riesgo.
  • Definir y aplicar medidas de protección para reducir el impacto de un incidente de ciberseguridad que pueda afectar al software auditado.

Formas de análisis

Existen diferentes formas para analizar software y comprobar su seguridad. Aunque no son las únicas, las más conocidas consisten en el análisis de seguridad estático y dinámico de aplicaciones.

Formas de análisisAnálisis de seguridad estático de aplicaciones (SAST)

El análisis estático de aplicaciones consiste en el análisis de su código fuente. Para ello se realiza un análisis exhaustivo, tanto automático como manual, del código del software, verificando que se cumplen unos requisitos mínimos enmarcados dentro de unas buenas prácticas de programación segura. A este tipo de análisis también se le denomina de “caja blanca”.

A la hora de realizar un análisis estático, se suelen utilizar herramientas automáticas, como por ejemplo HP Fortify, Veracode o Checkmarx. Estas herramientas permiten identificar y corregir fallos de seguridad en el código, así como automatizar pruebas. Una vez se ha obtenido el resultado de la herramienta automática, el auditor analiza los datos en busca de posibles falsos positivos. Normalmente, también se realiza un proceso manual de búsqueda de vulnerabilidades donde se verificarán las identificadas por la herramienta automática y donde se buscarán nuevas vulnerabilidades que la herramienta no haya podido descubrir.

Dentro de las pruebas se analizan distintos parámetros: tipo de aplicación, tecnologías implicadas, sistema de logs, posibles desbordamientos de buffer, ejecución de aplicaciones externas, alteración del flujo de la aplicación (redirecciones, accesos a zonas no disponibles…), modos de configuración mediante ficheros o entradas de usuario, almacenamiento de información sensible en ficheros no cifrados, política de usuarios y contraseñas, algoritmos de cifrado, posibles inyecciones de código en cliente o en el servidor, posibles abusos de funcionalidad, excesos de información en mensajes de error, etc.

Finalmente, habrá que documentar de forma clara y descriptiva todos los hallazgos obtenidos tras la auditoría.

Análisis de seguridad dinámico de aplicaciones (DAST)

Este tipo de análisis tienen como objetivo comprobar la seguridad del software en ejecución, simulando el uso del software por parte de un usuario. A este tipo de análisis también se le denomina de “caja negra”. Se realiza una navegación por la aplicación recorriendo todos sus apartados, analizando cada uno de los componentes que pueden ser vulnerables, como el sistema de autenticación, la gestión de identidades, el control de autorización, la gestión de sesiones, etc. Finalmente, se documenta de forma clara y descriptiva todos los hallazgos obtenidos tras la auditoría.

Para realizar este tipo de análisis se suelen utilizar herramientas automatizadas, como Acunetix o AppScan.

¿Dónde recibir asesoramiento o contratar la elaboración de una auditoría de software?

Desde el BCSC, se pone a disposición de las empresas el “Libro Blanco de la Ciberseguridad en Euskadi”, un documento que recoge la visión de conjunto de nuestro ecosistema local con diferentes perspectivas de innovación, investigación, emprendimiento, etc. y en el que se incluye el catálogo de proveedores de ciberseguridad que ofrecen este tipo de servicios con el objetivo de que las organizaciones interesadas en demandarlos tengan un punto de referencia que contribuya a facilitar la toma de decisiones.

El catálogo sirve de resumen o instantánea del mercado de la ciberseguridad en Euskadi, siendo un listado vivo, revisado y actualizado periódicamente, dada la constante evolución y el avance en la digitalización de los servicios y las oportunidades que se generan.

BCSC Libro Blanco

Referencia

https://cwe.mitre.org/top25/archive/2021/2021_cwe_top25.html

https://cwe.mitre.org/data/definitions/699.html

OWASP Top Ten Web Application Security Risks | OWASP

OWASP Web Security Testing Guide: https://owasp.org/www-project-web-security-testing-guide/

OWASP Code Review Guide v2: https://owasp.org/www-pdf-archive/OWASP_Code_Review_Guide_v2.pdf