
Gryffin é uma plataforma de varredura de segurança web em grande escala.
Gryffin é uma plataforma de varredura de segurança web em larga escala. Não é apenas mais um scanner. Foi criado para resolver dois problemas específicos dos scanners existentes: cobertura e escala.
Melhor cobertura significa menos falsos negativos. Escalabilidade inerente significa capacidade de escanear e suportar uma grande infraestrutura de aplicações elásticas. Simplificando, a capacidade de escanear 1000 aplicações hoje para 100.000 aplicações amanhã através de escalonamento horizontal direto.
A cobertura tem duas dimensões – uma durante o rastreio e outra durante o fuzzing. Na fase de rastreio, cobertura implica ser capaz de encontrar o máximo possível da superfície da aplicação. Na fase de varredura, ou durante o fuzzing, implica ser capaz de testar cada parte da aplicação para um conjunto aplicado de vulnerabilidades de forma aprofundada.
Hoje, um grande número de aplicações web são baseadas em templates, ou seja, o mesmo código ou caminho gera milhões de URLs. Para um scanner de segurança, basta uma das milhões de URLs geradas pelo mesmo código ou caminho. O rastreador do Gryffin faz exatamente isso.
No coração do Gryffin está um mecanismo de deduplicação que compara uma nova página com páginas já vistas. Se a estrutura HTML da nova página for semelhante às já vistas, ela é classificada como duplicada e não é rastreada adiante.
Grande parte das aplicações hoje são aplicações ricas. Elas são fortemente orientadas por JavaScript no lado do cliente. Para descobrir links e caminhos de código em tais aplicações, o rastreador do Gryffin utiliza PhantomJS para renderização DOM e navegação.
Como Gryffin é uma plataforma de varredura, não um scanner, ele não possui seus próprios módulos de fuzzing, nem mesmo para fuzzing de vulnerabilidades web comuns como XSS e SQL Injection.
Não é sensato reinventar a roda onde não é necessário. O Gryffin em escala de produção na Yahoo utiliza fuzzers de código aberto e personalizados. Alguns desses fuzzers personalizados podem ser disponibilizados como código aberto no futuro, e podem ou não fazer parte do repositório Gryffin.
Para fins de demonstração, o Gryffin vem integrado com sqlmap e arachni. Ele não endossa nenhum desses ou qualquer outro scanner em particular.
A filosofia é melhorar a cobertura de varredura sendo capaz de fazer fuzzing apenas para o que é necessário.
Embora o Gryffin esteja disponível como um pacote independente, ele é construído principalmente para escala.
O Gryffin é construído no modelo publicador-subscritor. Cada componente é um publicador, um subscritor ou ambos. Isso permite que o Gryffin escale horizontalmente simplesmente adicionando mais nós subscritores ou publicadores.
go1.13 ou posterior--max-msg-size=5000000go get -u github.com/yahoo/gryffin/...
(WIP)
Código licenciado sob a licença BSD. Consulte o arquivo LICENSE para os termos.