Hay dos direcciones diferentes que puede utilizar con herramientas de prueba automatizadas para aplicaciones web.
En primer lugar, están los escáneres web comerciales , de los cuales HP WebInspect y Rational AppScan son los dos más populares. Estas son herramientas "todo en uno", "dispara y olvida" que descargas e instalas en un escritorio interno de Windows y luego le das una URL para arañar tu sitio, busca vulnerabilidades bien conocidas (es decir, las cosas que han llegado a Bugtraq), y exploran las vulnerabilidades de scripts en sitios cruzados y de inyección SQL.
En segundo lugar, están las herramientas de escaneo de código fuente , de las cuales Coverity y Fortify son probablemente las dos más conocidas. Estas son las herramientas que instala en el escritorio de un desarrollador para procesar su código fuente Java o C# y buscar patrones bien conocidos de código inseguro, como una validación de entrada deficiente.
Por último, están las herramientas de prueba de penetración. Con mucho, la herramienta de prueba de penetración de aplicaciones web más popular entre los profesionales de la seguridad es Burp Suite, que puede encontrar en http://www.portswigger.net/proxy. Otros incluyen Spike Proxy y OWASP WebScarab. De nuevo, instalará esto en un escritorio interno de Windows. Se ejecutará como un proxy HTTP, y apuntará su navegador hacia él. Utilizará sus aplicaciones como lo haría un usuario normal, mientras registra sus acciones. A continuación, puede volver a cada página individual o acción HTTP y buscar problemas de seguridad.
En un entorno complejo, y especialmente si está considerando algo de bricolaje, Recomiendo encarecidamente las herramientas de prueba de penetración. He aquí por qué:
Los escáneres web comerciales proporcionan una gran cantidad de "amplitud", junto con informes excelentes.Sin embargo:
Tienden a extrañar cosas, porque cada aplicación es diferente.
Son caros (WebInspect comienza en los 10 de miles).
Paga por cosas que no necesita (como bases de datos de CGI malos de los '90).
Son difíciles de personalizar.
Pueden producir resultados ruidosos.
Los escáneres de código fuente son más completos que los escáneres web. Sin embargo:
Son incluso más caros que los escáneres web.
Requieren el código fuente para operar.
Para que sean eficaces, a menudo requieren que anote su código fuente (por ejemplo, para seleccionar rutas de entrada).
Tienen una tendencia a producir falsos positivos.
Tanto los escáneres comerciales como los escáneres de código fuente tienen la mala costumbre de convertirse en productos de estantería. Peor aún, incluso si funcionan, su costo es comparable a obtener 1 o 2 aplicaciones completas auditadas por una consultoría; si confía en sus consultores, está garantizado que obtendrá mejores resultados de ellos que de las herramientas.
herramientas de pruebas de penetración tienen desventajas también:
Son mucho más difícil de usar que dispara y olvida escáneres comerciales.
Suponen cierta experiencia en vulnerabilidades de aplicaciones web; debe saber lo que está buscando.
Producen poco o nada de informes formales.
Por otro lado:
Son mucho, mucho más barato --- la mejor del lote, Burp Suite, cuesta sólo 99EU, y tiene una versión gratuita.
Son fáciles de personalizar y se agregan a un flujo de trabajo de prueba.
Son mucho mejores para ayudarlo a "conocer" sus aplicaciones desde el interior.
Aquí hay algo que haría con una herramienta de pen-test para una aplicación web básico:
Entrar en la aplicación a través del proxy
crear una "lista negra" de las principales áreas funcionales de la aplicación, y ejercítese una vez.
Utilice la herramienta "araña" en su aplicación de prueba de pluma para encontrar todas las páginas, acciones y manejadores en la aplicación.
Para cada página dinámica y cada formulario HTML que la araña descubra, use la herramienta "fuzzer" (Burp lo llama un "intruso") para ejercitar cada parámetro con entradas no válidas. La mayoría de fuzzers vienen con cadenas de prueba básicos que incluyen:
metacaracteres SQL
HTML/Javascript escapa y metacaracteres
variantes internacionalizados de estos para evadir los filtros de entrada
Well- nombres y valores de campo de formulario predeterminados conocidos
Nombres conocidos de directorio, nombres de archivo y los verbos de controlador
pasar varias horas filtrando los errores resultantes (una carrera pelusa de una forma típica podría generar 1.000 de ellos) en busca de respuestas sospechosas.
Este es un enfoque intensivo en mano de obra "al descubierto". Pero cuando su empresa es propietaria de las aplicaciones reales, el enfoque bare-metal vale la pena, ya que puede usarlo para construir suites de prueba de regresión que se ejecutarán como un reloj en cada ciclo de desarrollo para cada aplicación. Esta es una victoria para un montón de razones:
Su pruebas de seguridad se llevará una cantidad predecible de tiempo y recursos por aplicación, lo que le permite presupuesto y triaje.
Su equipo obtendrá la máxima precisión y resultados completos, ya que sus pruebas se ajustarán a sus aplicaciones.
Va a costar menos que los escáneres comerciales y menos que los consultores.
Por supuesto, si sigue esta ruta, básicamente se convertirá en un asesor de seguridad para su empresa. No creo que eso sea malo; si no quieres esa experiencia, WebInspect o Fortify no te ayudarán de ninguna manera.
Excelente respuesta. – xan
Agradable y esto es lo que esperaba, Gracias –