Las pruebas de seguridad de aplicaciones dinámicas ( DAST ) representan un proceso de prueba no funcional para identificar debilidades y vulnerabilidades de seguridad en una aplicación. Este proceso de prueba se puede llevar a cabo de forma manual o mediante el uso de herramientas automatizadas. La evaluación manual de una aplicación implica la intervención humana para identificar las fallas de seguridad que podrían pasar desapercibidas a una herramienta automatizada. Por lo general, los errores de lógica empresarial, las comprobaciones de condiciones de carrera y ciertas vulnerabilidades de día cero solo se pueden identificar mediante evaluaciones manuales.
Por otro lado, una herramienta DAST es un programa que se comunica con una aplicación web a través del front-end web para identificar posibles vulnerabilidades de seguridad en la aplicación web y debilidades arquitectónicas. [1] Realiza una prueba de caja negra . A diferencia de las herramientas de prueba de seguridad de aplicaciones estáticas , las herramientas DAST no tienen acceso al código fuente y, por lo tanto, detectan vulnerabilidades al realizar ataques.
Las herramientas DAST permiten realizar escaneos sofisticados que detectan vulnerabilidades con interacciones mínimas del usuario una vez configuradas con el nombre de host, los parámetros de rastreo y las credenciales de autenticación. Estas herramientas intentarán detectar vulnerabilidades en cadenas de consulta, encabezados, fragmentos, verbos (GET/POST/PUT) e inyección DOM.
Las herramientas DAST facilitan la revisión automatizada de una aplicación web con el propósito expreso de descubrir vulnerabilidades de seguridad y son necesarias para cumplir con varios requisitos regulatorios. Los escáneres de aplicaciones web pueden buscar una amplia variedad de vulnerabilidades, como la validación de entrada/salida (por ejemplo, secuencias de comandos entre sitios e inyección SQL ), problemas específicos de la aplicación y errores de configuración del servidor.
Los escáneres comerciales son una categoría de herramientas de evaluación web que deben adquirirse. Algunos escáneres incluyen algunas funciones gratuitas, pero la mayoría deben comprarse para tener acceso completo a la potencia de la herramienta.
Los escáneres de código abierto suelen ser gratuitos para el usuario.
Estas herramientas pueden detectar vulnerabilidades de las versiones candidatas a lanzamiento finalizadas antes de su distribución. Los escáneres simulan un usuario malintencionado al atacar y sondear, identificando resultados que no forman parte del conjunto de resultados esperados, lo que permite una simulación realista del ataque. [2] La gran ventaja de este tipo de herramientas es que pueden escanear durante todo el año para buscar vulnerabilidades constantemente. Como se descubren nuevas vulnerabilidades con regularidad, esto permite a las empresas encontrarlas y repararlas antes de que puedan ser explotadas. [3]
Como herramienta de prueba dinámica, los escáneres web no dependen del lenguaje. Un escáner de aplicaciones web puede escanear aplicaciones web controladas por motores de búsqueda. Los atacantes utilizan las mismas herramientas, por lo que si las herramientas pueden encontrar una vulnerabilidad, también pueden hacerlo los atacantes. [4]
Al escanear con una herramienta DAST, es posible que se sobrescriban los datos o que se inyecten cargas útiles maliciosas en el sitio en cuestión. Los sitios deben escanearse en un entorno similar al de producción, pero que no sea de producción, para garantizar resultados precisos y, al mismo tiempo, proteger los datos en el entorno de producción.
Debido a que la herramienta implementa un método de prueba dinámico , no puede cubrir el 100 % del código fuente de la aplicación y, luego, la aplicación en sí. El evaluador de penetración debe observar la cobertura de la aplicación web o de su superficie de ataque para saber si la herramienta se configuró correctamente o fue capaz de comprender la aplicación web.
La herramienta no puede implementar todas las variantes de ataques para una vulnerabilidad determinada. Por lo tanto, las herramientas generalmente tienen una lista predefinida de ataques y no generan las cargas útiles de ataque según la aplicación web probada. Algunas herramientas también tienen una comprensión bastante limitada del comportamiento de las aplicaciones con contenido dinámico, como JavaScript y Flash .