What is Dynamic Code Analysis?

Las organizaciones aplican varias metodologías para identificar vulnerabilidades potencialmente explotables dentro de su software. Por ejemplo, el análisis de código estático es una forma de prueba de caja blanca que puede ayudar a identificar problemas de seguridad en el código fuente. Por otro lado, el análisis de código dinámico es una forma de escaneo de vulnerabilidades de caja negra que permite a los equipos de software escanear aplicaciones en ejecución e identificar vulnerabilidades.

Cuando se implementa correctamente, el análisis de código dinámico puede reducir el tiempo medio de identificación (MTTI) de incidentes de producción, mejorar la visibilidad de los problemas de las aplicaciones y aumentar la postura de seguridad general de un proyecto. Aquí, vamos a echar un vistazo más de cerca al análisis dinámico de código.

CloudGuard AppSec Prueba gratuita

What is Dynamic Code Analysis?

What is Dynamic Code Analysis?

El análisis de código dinámico, también llamado Prueba dinámica de seguridad de aplicaciones (DAST), está diseñado para probar una aplicación en ejecución en busca de vulnerabilidades potencialmente explotables. Herramientas DAST para identificar vulnerabilidades tanto en tiempo de compilación como en tiempo de ejecución, como errores de configuración que solo aparecen dentro de un entorno de ejecución realista.

 

Una herramienta DAST utiliza un diccionario de vulnerabilidades conocidas y entradas maliciosas para "difuminar" una aplicación. Ejemplos de estas entradas potencialmente maliciosas incluyen:

 

  • Consultas SQL (para identificar vulnerabilidades de inyección SQL)
  • Cadenas de entrada largas (para explotar la vulnerabilidad de desbordamiento del buffer)
  • Números negativos y positivos grandes (para detectar vulnerabilidades de desbordamiento y desbordamiento de enteros)
  • Datos de entrada inesperados (para explotar suposiciones no válidas por parte de los desarrolladores)

 

A medida que la aplicación se ejecuta, es bombardeada por estas entradas potencialmente maliciosas y la herramienta DAST analiza las respuestas de la aplicación. Si la aplicación tiene una respuesta negativa a una entrada (como fallar, devolver una respuesta no válida, etc.), entonces la herramienta DAST registra la vulnerabilidad identificada.

 

Dado que las herramientas DAST se ejecutan en una aplicación en ejecución, pueden detectar una amplia gama de vulnerabilidades potenciales. Esto incluye vulnerabilidades que son difíciles o imposibles de detectar en el código fuente, como problemas de asignación de memoria.

DAST y el ciclo de vida seguro del desarrollo de software

El ciclo de vida del desarrollo de software (SDLC) traza las etapas del proceso de desarrollo de software. Esto incluye todo, desde la planificación inicial y la identificación de requisitos para una aplicación hasta el mantenimiento a largo plazo y su eventual final de vida.

 

DAST generalmente entra en juego en la fase de prueba del SDLC. Esto se debe a que DAST requiere la capacidad de ejecutar la aplicación y probarla utilizando entradas maliciosas simuladas. Como resultado, una vez que el código de la aplicación pueda compilarse e implementarse en un entorno de prueba o de ensayo, puede utilizar DAST. Con flujos de trabajo de integración continua/entrega continua (CI/CD), eso puede significar que los escaneos DAST se ejecuten varias veces al día a medida que se producen compilaciones iterativas.

 

En muchos programas de seguridad de software empresarial, DAST se produce después de pruebas de penetración que no requieren experiencia en seguridad interna. Por ejemplo, después de una prueba de lápiz para cumplir con los requisitos PCI DSS (Payment Card Industry Data Security Standard), un equipo de seguridad puede usar una herramienta DAST para ejecutar análisis de seguridad automatizados.

Diferencias entre análisis de código estático y dinámico

El análisis de código estático y dinámico son dos de las formas más comunes de pruebas de seguridad de aplicaciones. Adoptan diferentes enfoques para identificar la vulnerabilidad y, a menudo, son complementarios.

 

A diferencia del análisis de código dinámico, el análisis de código estático, también llamado Prueba de seguridad de aplicaciones estáticas (SAST), no requiere acceso a un ejecutable completo. En cambio, adopta un enfoque de caja blanca e inspecciona el código fuente de la aplicación en busca de vulnerabilidades. Al crear un modelo del flujo de ejecución de la aplicación y aplicar reglas a este modelo, SAST puede detectar inyección, desbordamientos de búfer y vulnerabilidades similares.

 

Dado que DAST y SAST aplican diferentes métodos de prueba y se aplican a diferentes tipos de archivos (ejecutables compilados versus código fuente), detectan diferentes tipos de vulnerabilidad y se aplican en diferentes etapas dentro del proceso de desarrollo. SAST se puede aplicar antes en el SDLC (durante la fase de desarrollo) que DAST porque no requiere que se complete la solicitud para identificar la vulnerabilidad.

Por qué el análisis dinámico de código es crítico

El análisis de código dinámico se aplica una vez que una aplicación está prácticamente completa y se puede ejecutar. Utiliza entradas maliciosas para simular ataques realistas contra la aplicación y observar sus respuestas.

 

Una de las principales ventajas de las pruebas DAST es que puede simular el comportamiento de una aplicación en un entorno de implementación realista. Esto permite al evaluador identificar problemas de configuración y otras vulnerabilidades que pueden solo ser visibles cuando el código está activo. Además, el uso de ataques simulados del mundo real permite ver el impacto de un posible exploit en el estado de la aplicación. La herramienta DAST también puede detectar vulnerabilidades dentro de dependencias y bibliotecas de terceros, que afectan la seguridad de la aplicación pero que SAST y herramientas similares centradas en el código fuente pueden pasar por alto.

 

Check Point CloudGuard ofrece escaneo de vulnerabilidades para aplicaciones en contenedores y sin servidor basadas en la nube. Esto incluye soporte para el escaneo de vulnerabilidades tanto DAST como SAST para ayudar con la identificación y remediación de vulnerabilidades durante el proceso de desarrollo. Para ver las capacidades de las soluciones CloudGuard para aplicaciones sin servidoren acción, programe una demostración. También puede solicitar una prueba gratuita para ver cómo se puede integrar en el flujo de trabajo de desarrollo de su organización.

x
  Comentarios
Este sitio web emplea cookies para su funcionalidad y con fines analíticos y de marketing. Al continuar empleando este sitio web, usted acepta el uso de cookies. Para más información, lea nuestro Aviso sobre cookies.