Análisis estático versus dinámico

Cuando se analiza la seguridad de una app o de cualquier otro proyecto de software se pueden realizar dos tipos de análisis: estáticos y dinámicos.

Los análisis estáticos (SAST - Static Applicacion Security Testing) implican el análisis de la aplicación sin ejecutarla, es decir, se analiza el código fuente manualmente o automáticamente.

Los análisis dinámicos (DAST - Dynamic Application Security Testing) se realizan con la aplicación en tiempo de ejecución. Este tipo de análisis también puede ser manual o automático.

Los resultados de ambos análisis pueden ser muy diferentes, lo cual es bueno ya que nos permite tener una visión mucho más completa del estado de la seguridad del proyecto.

Las herramientas de análisis automático suelen detectar errores de bulto como el uso de librerías inseguras, el uso de permisos que no tienen justificación práctica, etc. Son el tipo de vulnerabilidades de las que intentarán aprovecharse la mayoría de los atacantes ya que la app aparecerá en todas las listas de apps inseguras.

El análisis manual es más lento pero mucho más preciso -y más caro- ya que implica que un profesional va a revisar tu app en cada uno de sus recovecos para comprobar si hay algunas vulnerabilidades más complejas de detectar y de subsanar. Con el análisis manual te evitas además muchos falsos positivos, el ser humano todavía sigue siendo más eficiente que las IA en esta tarea dentro de un mundo tan cambiante como es la seguridad informática.

Os pongo aquí un pequeño listado de herramientas de análisis automático que yo utilizo habitualmente. Espero poder hacer un post sobre herramientas muy pronto.

Análisis estáticos:
Análisis dinámicos:
Ambos análisis:

Comentarios