Auditoría de seguridad del código fuente de una aplicación: caso práctico
Ponencia de Javier Bermejo perteneciente al módulo Bases de datos y desarrollo de software seguro de C1b3rWall Academy 22/23
Tiempo de lectura estimado: 6 minutos
Introducción: Auditoría de aplicaciones
En la auditoría se pueden diferenciar cuatro fases:
- Planificación de la auditoría: en esta fase se planifican los detalles (plan de pruebas, fecha, alcance, tipo de auditoría, versión...).
- Recolección de información: primer acercamiento de la aplicación a auditar, analizando la lógica de negocio, descubriendo si comparte el código públicamente y consultando si ya existen análisis de seguridad de la herramienta.
- Ejecución de la auditoría: se corresponde con la fase principal de la auditoría. Es la parte donde se llevan a cabo las pruebas sobre el programa software. En caso de detectarse vulnerabilidades graves se da aviso lo antes posible.
- Elaboración de informes: una vez realizadas todas las pruebas, los resultados y hallazgos detectados se deben plasmar en un informe que se entrega al cliente en los días posteriores a la auditoría.
En la fase tres anteriormente vista (Ejecución de la auditoría), se ejecuta un análisis previo, un análisis estático de código, un análisis de comportamiento y, por último, pruebas de penetración. La ponencia, en su parte práctica, se centra en la parte de análisis estático.
Análisis estático de código
Para realizar el análisis estático de código se precisan herramientas que tienen dos objetivos: descubrir bugs o descubrir defectos relevantes de seguridad. Algunas de estas herramientas son Klocwork, Coverity, AppScan, SonarQube, CheckMark y Fortify, siendo esta última la utilizada en la ponencia.
La queja más común y contrastada contra las herramientas de análisis estático de seguridad es que producen demasiado ruido, es decir, falsos positivos, aunque realmente son peores los falsos negativos, ya que proporcionan un sentido falso de seguridad.
Como parte del análisis estático de código es importante establecer una serie de métricas de análisis como las siguientes:
- Medición de la densidad de vulnerabilidad.
- Comparación de proyectos por severidad.
- Clasificación de resultados por categoría.
- Monitorización de tendencias.
- Métricas del proceso de revisión.
Conclusiones
- El análisis estático de código es la práctica de seguridad más importante a la hora de construir aplicaciones robustas, confiables y resistentes a los ataques.
- Este análisis es la práctica de seguridad que más vulnerabilidades detecta en una aplicación.
En la ponencia en vídeo se muestra una herramienta de análisis estático de código (Fortify), por lo que se recomienda la visualización para su adecuada comprensión. A continuación se adjunta una imagen del proceso:
¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras miles de personas desde este enlace.
Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.
Ponente: Javier Bermejo Higuera
Javier es profesor del Máster en Ciberseguridad de la UNIR, donde imparte clases de seguridad del software, auditorías de seguridad y análisis de malware. Acumula más de 33 publicaciones en diferentes revistas y lleva más de 30 años trabajando en el sector.
¿Cuál es tu reacción?