Pregunta

Tenemos cientos de sitios web que se han desarrollado en asp, .net y java y estamos pagando mucho dinero por una agencia externa para hacer pruebas de penetración para nuestros sitios para comprobar lagunas de seguridad.¿Hay alguna (bueno) software (gratis o de pago) para hacer esto?

o..¿hay alguna técnica de los artículos que me puede ayudar a desarrollar esta herramienta?

¿Fue útil?

Solución

Hay un par de direcciones diferentes que usted puede ir con pruebas automatizadas herramientas para aplicaciones web.

En primer lugar, hay el la web comercial de escáneres, de que HP WebInspect y Rational AppScan son los dos más populares.Estos son los "todo-en-uno", "el fuego-y-olvidar" las herramientas que usted descargue e instale en un sistema de escritorio de Windows y, a continuación, dar una dirección URL a la araña de su sitio, escaneo de vulnerabilidades conocidas (es decir, las cosas que han afectado a Bugtraq), y la sonda de cross-site scripting y vulnerabilidades de inyección SQL.

En segundo lugar, hay la código fuente de las herramientas de análisis, de los cuales Coverity y Fortificar son probablemente los dos más conocidos.Estas son herramientas que se instala en un desarrollador de escritorio del proceso de Java o C# código fuente y buscar patrones conocidos de código inseguro, como el pobre de validación de entrada.

Finalmente, hay el la penetración de las herramientas de prueba de.Por mucho, el más popular de la web de la aplicación herramienta de pruebas de penetración entre los profesionales de la seguridad Burp Suite, que se puede encontrar en http://www.portswigger.net/proxy.Otros incluyen la Espiga de Proxy y de OWASP WebScarab.De nuevo, se va a instalar este en una interna del escritorio de Windows.Se ejecutará como un proxy HTTP, y te vas a apuntar su navegador a ella.Podrás usar tus aplicaciones como un usuario normal sería el caso, mientras que los registros de sus acciones.Usted luego puede volver a la página o HTTP de acción y de la sonda por problemas de seguridad.

En un entorno complejo, y especialmente si usted está considerando algo de BRICOLAJE, Recomiendo las herramientas de pruebas de penetración.He aquí por qué:

La web comercial de los escáneres proporcionan una gran cantidad de "amplitud", junto con la excelente presentación de informes.Sin embargo:

  • Ellos tienden a perder las cosas, debido a que cada aplicación es diferente.

  • Son caros (WebInspect se inicia en el 10 de miles).

  • Usted está pagando por cosas que no necesita (como bases de datos de errores conocidos CGIs de los '90).

  • Son difíciles de personalizar.

  • Pueden producir ruidoso resultados.

Código fuente de los escáneres más completo de la web de escáneres.Sin embargo:

  • Son incluso más caros que los de la web de escáneres.

  • Se requiere el código fuente para operar.

  • Para ser eficaces, requieren que anotar su código fuente (por ejemplo, para recoger vías de entrada).

  • Ellos tienen una tendencia a producir falsos positivos.

Ambos escáneres comerciales y de origen de los escáneres de códigos de tener un mal hábito de convertirse en shelfware.Peor aún, incluso si trabajan, su costo es comparable a llegar 1 o 2 aplicaciones enteras auditados por una empresa de consultoría;si confías en tu consultores, usted está garantizado para conseguir mejores resultados a partir de ellos que de las herramientas.

Pruebas de penetración de las herramientas tienen sus desventajas también:

  • Es mucho más difícil de usar que el fuego-y-olvidar comercial escáneres.

  • Ellos asumen una cierta experiencia en las vulnerabilidades de aplicaciones web --- tienes que saber lo que estás buscando.

  • Producen poco o ningún formales de presentación de informes.

En el otro lado:

  • Son mucho, mucho más barato --- la mejor de la suerte, Burp Suite, cuesta sólo 99EU, y dispone de una versión gratuita.

  • Son fáciles de personalizar y agregar a una prueba de flujo de trabajo.

  • Es mucho mejor ayudar a "conocer" a sus aplicaciones desde el interior.

Aquí hay algo que usted haría con un lápiz la herramienta de prueba de una aplicación web básica:

  1. Inicie sesión en la aplicación a través del proxy

  2. Crear una "lista negra" de las principales áreas funcionales de la aplicación, y el ejercicio cada vez.

  3. El uso de la "araña" de la herramienta en su pen-aplicación de prueba para encontrar todas las páginas y las acciones y los controladores de la aplicación.

  4. Para cada página dinámica y cada uno de los formularios de HTML de la araña descubre, el uso de la "fuzzer" de la herramienta (Burp llama un "intruso") para el ejercicio de cada parámetro no válido entradas.La mayoría de los ejecutores vienen con prueba básica de las cuerdas, que incluyen:

    • SQL metacaracteres

    • HTML/Javascript escapa y metacaracteres

    • Internacionalizado variantes de estos para evadir los filtros de entrada

    • Bien conocido de forma predeterminada, los nombres de campo y los valores

    • Conocidos los nombres de los directorios, nombres de archivo, y el controlador de verbos

  5. Pasar varias horas de filtrado de los errores resultantes (un típico fuzz ejecutar de una forma que podría generar 1000 de ellos) en busca de sospechosos respuestas.

Este es un trabajo intensivo, "bare-metal" enfoque.Pero cuando su compañía es propietaria de las aplicaciones reales, el bare-metal enfoque paga, porque se puede utilizar para construir conjuntos de pruebas de regresión que va a funcionar como un reloj a cada uno de los dev de ciclo para cada aplicación.Esta es una victoria para un montón de razones:

  • Sus pruebas de seguridad tendrá una cantidad predecible de tiempo y recursos por la aplicación, que permite presupuesto y triaje.

  • Su equipo a conseguir la máxima exacta y completa de los resultados, ya que sus pruebas se va a estar atentos a sus aplicaciones.

  • Nos va a costar menos de escáneres comerciales y a menos de consultores.

Por supuesto, si usted va esta ruta, básicamente lo que hace es convertir a sí mismo en un consultor de seguridad para su empresa.No creo que una cosa mala;si usted no desea que la experiencia, WebInspect o Fortificar no va a ayudar mucho de todos modos.

Otros consejos

Sé que usted pidió específicamente acerca de las herramientas de pentesting, pero como esas han sido ampliamente contestada (yo suelo ir con una mezcla de AppScan y capacitados pentester), creo que es importante señalar que pentesting no es la única manera de "verificación de las brechas de seguridad", y es a menudo no es el más eficaz.

Código fuente de herramientas de revisión puede proporcionar mucho mejor visibilidad en su código base, y encontrar muchos defectos que pentesting no.

Estos incluyen Fortalecer y OunceLabs (caro y para muchos idiomas), VisualStudio.NET CodeAnalysis (para .NET y C++, libre con VSTS, decente, pero no excelente), OWASP del LAPSO para Java (gratis, decente, no muy bien), CheckMarx (no es barato, la herramienta fantástica para .NET y Java, pero por encima de la cabeza), y muchos más.

Un punto importante que se debe tener en cuenta - (la mayoría de) las herramientas automatizadas de no encontrar todas las vulnerabilidades, ni siquiera cerca.Usted puede esperar que las herramientas automatizadas para encontrar aproximadamente el 35-40% de la secbugs que sería encontrado por un profesional pentester;lo mismo va para los automatizado vsmanual de fuentes de revisión de código.

Y, por supuesto, una adecuada SDLC (Seguridad del ciclo de vida de Desarrollo), incluyendo el Modelado de Amenazas, Revisión de Diseño, etc, va a ayudar aún más...

He oído cosas buenas acerca de SpiDynamics WebInspect medida de lo pagado de soluciones, así como Nikto (para una solución gratuita) y otras herramientas de código abierto.Nessus es una herramienta excelente para la infraestructura en caso de que usted necesita para comprobar que la capa también.Usted puede recoger un cd en vivo con varias herramientas en la que llamó Nubuntu (Auditor, Hélice, o de cualquier otro título basado en la distribución de las obras) y, a continuación, Google algunos tutoriales para la herramienta específica.Siempre, siempre asegúrese de escanear desde la red local, aunque.Usted corre el riesgo de que usted bloqueado por el centro de datos si escanea un cuadro de la WAN sin autorización.Lección que aprendí de la manera difícil.;)

Skipfish, w3af, arachni, ratproxy, ZAP, WebScarab :todo es gratis y muy bueno IMO

http://www.nessus.org/nessus/ -- Nessus ayudará sugiere formas para realizar sus servidores mejor.No puede realmente probar aplicaciones personalizadas por sí mismo, aunque creo que los plugins son relativamente fáciles de crear por su cuenta.

Echa un vistazo a Racional De La Aplicación De Escaneo (solía ser llamado Watchfire).No es gratuito, pero tiene una interfaz de usuario agradable, está muerto potente, genera informes a medida y en contra de cumplimiento de la norma marcos, tales como Basel2) y creo que puede incluir en su CI construir.

¿ nikto ?

Para este tipo de pruebas de que realmente quieres estar mirando en algún tipo de fuzz probador. SPIKE Proxy es uno de un par de fuzz de los probadores de las aplicaciones web.Es de código abierto, escrito en Python.Yo creo que hay un par de videos de BlackHat o DefCON sobre el uso de la ESPIGA en cualquier lugar, pero estoy teniendo dificultad para localizar a ellos.

Hay un par de gama alta profesional de los paquetes de software que va a hacer el testing de aplicaciones web y mucho más.Una de las más populares herramientas serían CoreImpact

Si usted planea ir a través de la Pluma de la Prueba en su propia le recomiendo que lea a través de gran parte de la OWASP del Proyecto de documentación.Específicamente el OWASP la Seguridad de la Aplicación y Verificación de Pruebas/Desarrollo de guías.La mentalidad de la necesidad de probar su aplicación es un poco diferente de la normal mentalidad de desarrollo (que no DEBE ser diferente, pero generalmente lo es).

¿qué acerca de rata proxy?

Un semi-automatizado, en gran parte pasiva de la web seguridad de la aplicación de la herramienta de auditoría, optimizado para una precisa y sensible a la detección automática de la anotación, de los posibles problemas y relacionados con la seguridad, patrones de diseño basado en la observación de los existentes, iniciado por el usuario de tráfico en el complejo web Entornos 2.0.

Detecta y clasifica a los grandes clases de los problemas de seguridad, tales como la dinámica cross-site modelo de confianza consideraciones, secuencia de comandos de las cuestiones de inclusión de contenido servir a los problemas, insuficiente XSRF y XSS defensas, y mucho más

Ratproxy se cree en la actualidad para apoyar a Linux, FreeBSD, MacOS X y Windows (Cygwin) ambientes.

Sé que usted pidió específicamente acerca de las herramientas de pentesting, pero como esas han sido ampliamente contestada (yo suelo ir con una mezcla de AppScan y capacitados pentester), creo que es importante señalar que pentesting no es la única manera de "verificación de las brechas de seguridad", y a menudo no es el más eficaz.

Código fuente de herramientas de revisión puede proporcionar mucho mejor visibilidad en su código base, y encontrar muchos defectos que pentesting no.

Estos incluyen Fortalecer y OunceLabs (caro y para muchos idiomas), VisualStudio.NET CodeAnalysis (para .NET y C++, libre con VSTS, decente, pero no excelente), OWASP del LAPSO para Java (gratis, decente, no muy bien), CheckMarx (no es barato, la herramienta fantástica para .NET y Java, pero por encima de la cabeza), y muchos más.

Un punto importante que se debe tener en cuenta - (la mayoría de) las herramientas automatizadas de no encontrar todas las vulnerabilidades, ni siquiera cerca.Usted puede esperar que las herramientas automatizadas para encontrar aproximadamente el 35-40% de la secbugs que sería encontrado por un profesional pentester;lo mismo va para los automatizado vsmanual de fuentes de revisión de código.

Y, por supuesto, una adecuada SDLC (Seguridad del ciclo de vida de Desarrollo), incluyendo el Modelado de Amenazas, Revisión de Diseño, etc, va a ayudar aún más...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top