
Gryffin es una plataforma de escaneo de seguridad web a gran escala.
Gryffin es una plataforma de escaneo de seguridad web a gran escala. No es solo otro escáner. Fue escrito para resolver dos problemas específicos con los escáneres existentes: cobertura y escala.
Una mejor cobertura se traduce en menos falsos negativos. La escalabilidad inherente se traduce en la capacidad de escanear y soportar una infraestructura de aplicaciones elástica y grande. En pocas palabras, la capacidad de escanear 1000 aplicaciones hoy a 100,000 aplicaciones mañana mediante una escalabilidad horizontal directa.
La cobertura tiene dos dimensiones: una durante el rastreo y otra durante el fuzzing. En la fase de rastreo, la cobertura implica poder encontrar la mayor parte de la superficie de la aplicación. En la fase de escaneo, o durante el fuzzing, implica poder probar cada parte de la aplicación para un conjunto aplicado de vulnerabilidades en profundidad.
Hoy en día, una gran cantidad de aplicaciones web están basadas en plantillas, lo que significa que el mismo código o ruta genera millones de URLs. Para un escáner de seguridad, solo necesita una de los millones de URLs generadas por el mismo código o ruta. El rastreador de Gryffin hace precisamente eso.
En el corazón de Gryffin hay un motor de deduplicación que compara una nueva página con las ya vistas. Si la estructura HTML de la nueva página es similar a las ya vistas, se clasifica como duplicada y no se rastrea más.
Una gran cantidad de aplicaciones hoy en día son aplicaciones ricas. Están fuertemente impulsadas por JavaScript del lado del cliente. Para descubrir enlaces y rutas de código en tales aplicaciones, el rastreador de Gryffin utiliza PhantomJS para el renderizado y navegación del DOM.
Como Gryffin es una plataforma de escaneo, no un escáner, no tiene sus propios módulos de fuzzing, ni siquiera para fuzzing de vulnerabilidades web comunes como XSS e inyección SQL.
No es sensato reinventar la rueda cuando no es necesario. Gryffin a escala de producción en Yahoo utiliza fuzzers de código abierto y personalizados. Algunos de estos fuzzers personalizados podrían ser de código abierto en el futuro, y podrían o no ser parte del repositorio de Gryffin.
Con fines de demostración, Gryffin viene integrado con sqlmap y arachni. No respalda a ninguno de ellos ni a ningún otro escáner en particular.
La filosofía es mejorar la cobertura del escaneo pudiendo fuzzear solo lo que se necesita.
Si bien Gryffin está disponible como un paquete independiente, está construido principalmente para la escala.
Gryffin está construido sobre el modelo publicador-suscriptor. Cada componente es un publicador, un suscriptor o ambos. Esto permite que Gryffin escale horizontalmente simplemente agregando más nodos suscriptores o publicadores.
go1.13 o posterior--max-msg-size=5000000go get -u github.com/yahoo/gryffin/...
(Trabajo en curso)
Código licenciado bajo la licencia de estilo BSD. Consulte el archivo LICENSE para los términos.