
Scanner de segurança de aplicações web criado por lcamtuf para o Google - Mirror Não Oficial
http://code.google.com/p/skipfish/
Escrito e mantido por:
Michal Zalewski [email protected] Niels Heinen [email protected] Sebastian Roschke [email protected]
Copyright 2009 - 2012 Google Inc, todos os direitos reservados.
Lançado sob os termos e condições da Licença Apache, versão 2.0.
Skipfish é uma ferramenta ativa de reconhecimento de segurança de aplicações web. Ela prepara um sitemap interativo para o site alvo através de um rastreamento recursivo e sondagens baseadas em dicionários. O mapa resultante é então anotado com a saída de uma série de verificações de segurança ativas (mas, espera-se, não disruptivas). O relatório final gerado pela ferramenta tem a intenção de servir como base para avaliações profissionais de segurança de aplicações web.
Uma série de ferramentas comerciais e de código aberto com funcionalidades análogas está prontamente disponível (por exemplo, Nikto, Nessus); use a que melhor se adequar a você. Dito isso, o skipfish tenta resolver alguns dos problemas comuns associados a scanners de segurança web. Vantagens específicas incluem:
Alta performance: 500+ requisições por segundo contra alvos responsivos na Internet, 2000+ requisições por segundo em redes LAN/MAN e 7000+ requisições contra instâncias locais foram observadas, com uma pegada muito modesta de CPU, rede e memória. Isso pode ser atribuído a:
Multiplexação de thread única, modelo de processamento de dados e I/O de rede totalmente assíncrono, que elimina ineficiências de gerenciamento de memória, escalonamento e IPC presentes em alguns clientes multithread.
Recursos avançados de HTTP/1.1, como requisições de intervalo, compressão de conteúdo e conexões keep-alive, além de limitação forçada do tamanho da resposta, para manter a sobrecarga de rede sob controle.
Cache inteligente de respostas e heurísticas avançadas de comportamento do servidor são usadas para minimizar o tráfego desnecessário.
Implementação em C puro, orientada a desempenho, incluindo uma pilha HTTP personalizada.
Facilidade de uso: o skipfish é altamente adaptável e confiável. O scanner possui:
Reconhecimento heurístico de esquemas obscuros de manipulação de parâmetros de caminho e consulta.
Tratamento elegante de sites com múltiplos frameworks, onde certos caminhos obedecem a semânticas completamente diferentes ou estão sujeitos a regras de filtragem diferentes.
Construção automática de lista de palavras com base na análise de conteúdo do site.
Recursos de varredura probabilística para permitir avaliações periódicas e com limite de tempo de sites arbitrariamente complexos.
Verificações de segurança bem projetadas: a ferramenta visa fornecer resultados precisos e significativos:
Dicionários artesanais oferecem excelente cobertura e permitem testes minuciosos de $keyword.$extension em um prazo razoável.
Sondagens diferenciais de três etapas são preferidas a verificações de assinatura para detectar vulnerabilidades.
Lógica estilo Ratproxy é usada para identificar problemas de segurança sutis: cross-site request forgery, cross-site script inclusion, mixed content, problemas de incompatibilidade de MIME e charset, diretivas de cache incorretas, etc.
As verificações de segurança incluídas são projetadas para lidar com cenários complicados: XSS armazenado (caminho, parâmetros, cabeçalhos), injeção cega de SQL ou XML ou injeção cega de shell.
Assinaturas de conteúdo estilo Snort que destacarão erros de servidor, vazamentos de informações ou aplicações web potencialmente perigosas.
O pós-processamento do relatório reduz drasticamente o ruído causado por quaisquer falsos positivos restantes ou truques de servidor, identificando padrões repetitivos.
Dito isso, o skipfish não é uma bala de prata e pode ser inadequado para certos propósitos. Por exemplo, ele não satisfaz a maioria dos requisitos descritos no WASC Web Application Security Scanner Evaluation Criteria (alguns deles de propósito, outros por necessidade); e, diferentemente da maioria dos outros projetos deste tipo, ele não vem com um extenso banco de dados de vulnerabilidades conhecidas para verificações do tipo banner.
Uma lista aproximada das verificações de segurança oferecidas pela ferramenta está descrita abaixo.
Falhas de alto risco (potencialmente levando ao comprometimento do sistema):
Falhas de risco médio (potencialmente levando ao comprometimento de dados):
Problemas de baixo risco (impacto limitado ou baixa especificidade):
Avisos internos:
Entradas informacionais não específicas: