Herramientas dinámicas de prueba de seguridad de aplicaciones

7

¿Existe una herramienta de prueba de seguridad de aplicaciones dinámicas (DAST) que pueda ejecutarse sobre aplicaciones dinámicas html / JavaScript ajax? Una opción de código abierto sería ideal, o si no existe, una característica de una herramienta Enterprise sería la respuesta de la medalla de plata.

Tengo una aplicación ExtJS (JavaScript) y probé con HP Fortify, pero esta herramienta solo ve la página de índice y no puede ejecutar un análisis de la aplicación como resultado.

No estoy buscando una herramienta para proporcionar protección por sí misma, sino como un elemento en mi cinturón de herramientas para ayudar a proporcionar alguna notificación de que hay errores evidentes o evidentes en la aplicación (otras herramientas son revisiones de código, pruebas de penetración , etc.) Cualquier conjunto de resultados de la herramienta debe informar la presencia de problemas, pero entiendo que ninguna herramienta podría informar de su ausencia.

Además, cualquier herramienta se usaría además de las pruebas de penetración concurrentes. Los ejemplos en los que usted personalmente tiene experiencia con la herramienta recibirán una respuesta, ya que después de la demostración de IBM AppScan y la discusión de NTO Spider, todavía no tengo nada concreto (no material de marketing) que indique si este problema es solo un agujero de conejo.

    
pregunta Thronk 28.02.2013 - 15:41
fuente

3 respuestas

4

Está buscando la "bala de plata" para el análisis de vulnerabilidades. Cada escáner de vulnerabilidades afirma ser compatible con JavaScript y las aplicaciones basadas en servicios web y es una mentira completa y total. La verdad es que este es un problema muy difícil de resolver, y un equipo de ventas le dirá cualquier cosa para que abra su billetera.

Pruebo estas aplicaciones utilizando un enfoque manual y automatizado combinado. La herramienta que uso es Burp Intruder. Utilizo manualmente la aplicación con un navegador, Burp rastrea las solicitudes y luego las envío a un intruso para que fuzzing. Si no se siente cómodo creando sus propios casos de prueba fuzz y escribiendo un código de vulnerabilidad, entonces probablemente debería contratar un probador de penetración profesional.

El solo hecho de ejecutar una herramienta no evitará que se piratee.

    
respondido por el rook 28.02.2013 - 19:24
fuente
2

Creo que este es un problema muy complejo de resolver y todas las herramientas que tenemos son relativamente jóvenes. Sin embargo, creo que hay algunas buenas opciones por ahí, y algunas personas pioneras en esta área.

Creo que el problema propuesto tiene dos aspectos:

  • El más obvio es el rastreo. La herramienta debe poder trazar toda la aplicación, incluidas las solicitudes de servidor que pueda realizar, para lograr una buena cobertura / amplitud. Tradicionalmente, esto se logra simplemente rastreando la página HTML para los enlaces y formularios que apuntan a más páginas, pero esto se vuelve difícil con las comunicaciones Ajax y las aplicaciones de una sola página.

  • Además, las aplicaciones pesadas del cliente, con una gran cantidad de código Javascript que realiza la lógica de la aplicación en el agente de usuario, tienen un poco más de probabilidad de tener errores de seguridad en el código del lado del cliente. Las fallas, como las secuencias de comandos entre sitios basadas en DOM, pueden ocurrir en cualquier aplicación que utilice secuencias de comandos del lado del cliente, por lo que las herramientas también necesitan la capacidad de detectar vulnerabilidades en este código.

Se ha demostrado que algunas herramientas poseen estas habilidades, y el denominador común es la capacidad de procesar Javascript. Por ejemplo, los pentesters pueden usar herramientas como Crawljax para mapear las aplicaciones al procesar cada página como si estuviera en un navegador (a veces al cargar en una instancia del navegador). También tenemos excelentes utilidades como PhantomJS que permite que el código Javascript se procese en modo sin cabeza.

Aquí hay un par de herramientas que he usado que intentan lograr lo anterior, ambas son de código abierto:

  • OWASP Zed Attack Proxy (ZAP) : OWASP ZAP presenta un rastreador AJAX (además de un rastreador tradicional) que en realidad genera instancias de navegador para procesar y procesar páginas e identificar nuevas rutas a través de la aplicación. No creo pensar que los escáneres automáticos detectarán una gran cantidad de problemas de código del lado del cliente todavía, pero ZAP al menos ha introducido algunas buenas características para probarlos manualmente.

  • Arachni : este es, sin lugar a dudas, el mejor escáner automatizado que he usado personalmente y un Realmente un gran proyecto en mi opinión. Parece que hace un muy buen trabajo al rastrear la mayoría de las aplicaciones HTML5 y usa PhantomJS para procesar el Javascript (sin cabeza). Las pruebas para XSS basadas en DOM y similares también parecen funcionar bastante bien.

No creo que ninguna herramienta esté particularmente pulida cuando se trata de aplicaciones web HTML5 modernas, pero ciertamente hay algunos avances, y solo mejorarán.

No hace falta decir que las herramientas de prueba automatizadas son muy limitadas en comparación con las pruebas de penetración, especialmente en el campo de appsec, y por lo tanto deben usarse en conjunto (como lo ha reconocido el OP). Mi respuesta ha asumido que se requiere una solución totalmente automatizada. Cuando un operador humano puede involucrarse constantemente, algo como Burp Suite es definitivamente una buena opción.

    
respondido por el itscooper 05.05.2015 - 02:14
fuente
-1

IBM tiene una herramienta para analizar las aplicaciones web de Javascript y AJAX-y en busca de vulnerabilidades. Se llama Javascript Security Analyzer , y creo que Se incluye en algunas versiones de IBM AppScan. No tengo experiencia personal con eso, pero algunas de sus publicaciones hacen que parezca que podría ser lo que estás buscando. Rastrea dinámicamente su sitio web para encontrar y ejercer todo el código Javascript, luego analiza de forma estática el Javascript y las páginas web para XSS del lado del cliente y otras vulnerabilidades similares.

No conozco ninguna herramienta de código abierto de este tipo. Las herramientas de control web normalmente no tienen la capacidad de analizar el código Javascript en busca de vulnerabilidades, y encontrar XSS en el lado del cliente puede ser no trivial.

    
respondido por el D.W. 06.03.2013 - 20:00
fuente

Lea otras preguntas en las etiquetas