
Escáner de seguridad de aplicaciones web creado por lcamtuf para Google - Espejo no oficial
http://code.google.com/p/skipfish/
Escrito y mantenido por:
Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]
Copyright 2009 - 2012 Google Inc, todos los derechos reservados.
Publicado bajo los términos y condiciones de la Licencia Apache, versión 2.0.
Skipfish es una herramienta activa de reconocimiento de seguridad de aplicaciones web. Prepara un mapa del sitio interactivo para el sitio objetivo realizando un rastreo recursivo y sondeos basados en diccionarios. El mapa resultante se anota con la salida de una serie de comprobaciones de seguridad activas (aunque, con suerte, no disruptivas). El informe final generado por la herramienta está pensado para servir como base para evaluaciones profesionales de seguridad de aplicaciones web.
Existe un buen número de herramientas comerciales y de código abierto con funcionalidad análoga (p. ej., Nikto, Nessus); quédate con la que mejor te convenga. Dicho esto, skipfish intenta abordar algunos de los problemas comunes asociados con los escáneres de seguridad web. Sus ventajas específicas incluyen:
Alto rendimiento: se han observado 500+ peticiones por segundo contra objetivos de Internet receptivos, 2000+ peticiones por segundo en redes LAN / MAN, y 7000+ peticiones contra instancias locales, con una huella muy modesta de CPU, red y memoria. Esto se puede atribuir a:
Modelo de multiplexación de E/S de red y procesamiento de datos de un solo hilo, completamente asíncrono, que elimina las ineficiencias de gestión de memoria, planificación y IPC presentes en algunos clientes multihilo.
Funciones avanzadas de HTTP/1.1 como peticiones de rango, compresión de contenido y conexiones keep-alive, además de la limitación forzada del tamaño de las respuestas, para mantener controlada la sobrecarga a nivel de red.
Caché inteligente de respuestas y heurísticas avanzadas de comportamiento del servidor para minimizar el tráfico innecesario.
Implementación orientada al rendimiento en C puro, incluyendo una pila HTTP personalizada.
Facilidad de uso: skipfish es altamente adaptable y fiable. El escáner incluye:
Reconocimiento heurístico de esquemas oscuros de manejo de parámetros basados en ruta y en consulta.
Manejo elegante de sitios con múltiples frameworks donde ciertas rutas siguen semánticas completamente diferentes, o están sujetas a reglas de filtrado distintas.
Construcción automática de listas de palabras basada en el análisis del contenido del sitio.
Funciones de escaneo probabilístico para permitir evaluaciones periódicas, limitadas en el tiempo, de sitios arbitrariamente complejos.
Comprobaciones de seguridad bien diseñadas: la herramienta pretende ofrecer resultados precisos y significativos:
Diccionarios artesanales que ofrecen una excelente cobertura y permiten probar $keyword.$extension a fondo en un plazo razonable.
Se prefieren sondeos diferenciales de tres pasos a la comprobación por firmas para detectar vulnerabilidades.
Se utiliza lógica al estilo de ratproxy para detectar problemas de seguridad sutiles: cross-site request forgery, inclusión de scripts entre sitios, contenido mixto, problemas de MIME y charset, directivas de caché incorrectas, etc.
Las comprobaciones de seguridad incluidas están diseñadas para manejar escenarios complejos: XSS almacenado (ruta, parámetros, cabeceras), inyección SQL o XML ciega, o inyección de shell ciega.
Firmas de contenido al estilo de Snort que resaltan errores de servidor, fugas de información o aplicaciones web potencialmente peligrosas.
El postprocesado del informe reduce drásticamente el ruido causado por los falsos positivos restantes o los trucos del servidor mediante la identificación de patrones repetitivos.
Dicho esto, skipfish no es una bala de plata y puede no ser adecuado para ciertos fines. Por ejemplo, no cumple la mayoría de los requisitos descritos en los Criterios de Evaluación de Escáneres de Seguridad de Aplicaciones Web de WASC (algunos a propósito, otros por necesidad); y, a diferencia de la mayoría de los proyectos de este tipo, no incluye una extensa base de datos de vulnerabilidades conocidas para comprobaciones de tipo banner.
A continuación se esboza una lista aproximada de las comprobaciones de seguridad que ofrece la herramienta.
Fallos de alto riesgo (que pueden conducir al compromiso del sistema):
Fallos de riesgo medio (que pueden conducir al compromiso de datos):
Problemas de bajo riesgo (impacto limitado o baja especificidad):
Advertencias internas: