Scanner de segurança SKIPFISH do Google para sites

Autor: Paulo Roberto Junior – WoLF <paulorvojr at
gmail.com>

Introdução

Breve texto sobre ameaças na internet e sites.

O gráfico abaixo foi gerado pela Symantec, portanto fica aqui todo o
crédito.

Percebemos que o volume de ataques a sites da web foi multiplicado no
decorrer dos anos e esse valor só é incrementado.

Linux: Scanner de Segurança SKIPFISH do Google para sites
Fonte: Symantec Corporation

Alguns tipos de ataques mais comuns em sites:

Aos aficionados por segurança, não se acanhem, insiram mais tipos de
ataques, eu somente mencionarei alguns, é claro que são dezenas, mas não
é o ponto principal do artigo.

Cross-site scripting (XSS)

Encontrado normalmente em aplicações web que ativam ataques maliciosos
ao injetarem script dentro das páginas web vistas por outros usuários,
pode ser usado pelo individuo para escapar aos controles de acesso que
usam a mesma política de origem.

Um bom artigo para mais informações é o do Luiz Vieira, caso queiram
mais detalhes:

Eavesdropping

Em conexões não encriptadas, ou encriptadas usando algoritmos fracos, é
possível que um atacante consiga capturar os dados transmitidos através
da rede caso tenha acesso à mídia de transmissão (possa plugar um cabo
no hub da rede, ou esteja dentro da área de alcance da rede wireless,
por exemplo). Com isso, é possível obter senhas, conteúdo de mensagens
enviadas e outras informações confidenciais, que podem ser usadas mais
tarde para propósitos diversos.

Exploits

Este é um termo genérico para descrever pequenos utilitários ou exemplos
de código que podem ser usados para explorar vulnerabilidades
específicas. Podendo ser utilizado de forma simples ou composta em
vírus, cavalos de tróia, ferramentas de detecção de vulnerabilidades e
outros tipos de programas.

Utilitários de detecção de vulnerabilidades como o Nessus, por exemplo,
incorporam um grande número de exploits para brechas conhecidas. Durante
o teste, ele verifica se o serviço ou programa vulnerável está ativo e,
caso esteja, simula um ataque contra ele, usando o exploit
correspondente. Com isso, é possível verificar se a versão utilizada é
vulnerável a ele.

Trojans

Embora os trojans sejam mais comuns no Windows, existem também trojans
para Linux e outros
sistemas. No caso do Linux, o tipo mais perigoso são os rootkits,
softwares que exploram um conjunto de vulnerabilidades conhecidas para
tentar obter privilégios de root na máquina afetada.

Phishing

Diferente dos ataques baseados na exploração de brechas de segurança, os
ataques de phishing utilizam engenharia social para tentar levar o
usuário a revelar informações confidenciais, tais como senhas de banco,
números de cartão de crédito, ou mesmo transferir fundos diretamente.

Novamente o Google!

Skipfish do Google

Uma breve descrição, preferi manter do próprio site do criador, está em
inglês no seu formato original, mas pra vocês está em português:

Skipfish é uma web ferramenta de reconhecimento de segurança. Ela
prepara um mapa do site através de uma pesquisa recursiva e de consultas
a dicionário baseado em testes.

O relatório final gerado pela ferramenta é utilizado para servir como
base para o profissional web avaliar a segurança dos aplicativos, de
acordo com a documentação do scanner.

No entanto o scanner Skipfish não pretende ser um substituto de scanners
comerciais.

O Google diz que o scanner não satisfaz muitos dos critérios de
avaliação definidos pela Web Application Security Consortium for
Scanners
.

Pode ser comparado a ferramentas conhecidas como Nmap e Nessus.

Com a promessa de ser rápido no gatilho, o software foi escrito em C.
Segundo o autor, ele pode processar cerca de 2.000 requisições HTTP por
segundo. Há relatos de (melhor dizendo tarados) que conseguiram marcas
de 6, 7, 8 mil requisições por segundo, haja processamento.

Ele pode identificar diversas brechas, incluindo vulnerabilidades para
ataques cross-site scripting (XSS), SQL e XML injection, entre outros.

O relatório gerado pode ser analisado sem muita dificuldade para quem
entende um pouco da área.

Ele deve rodar em Linux, FreeBSD, Mac OS X e Windows (por meio do
Cygwin), e está hospedado no Google Code:

Download: http://code.google.com/p/skipfish/downloads/list

Habilidades:

  • Alta performance: Escrito em puro C, altamente otimizado para o
    HTTP, usando o mínimo de CPU, consegue facilmente atingir 2000
    requisições por segundo.
  • Fácil de utilizar: suporta uma variedade de frameworks web.
  • Alta qualidade: baixo índice de falsos positivos, controles de
    segurança diferenciais, capaz de detectar uma série de falhas sutis,
    incluindo vetores de injeção (blind injection vectors).
  • Funciona em diversas plataformas, tais como: Linux, FreeBSD
    7.0+, MacOS X, e Windows (Cygwin).

Ele se baseia nos seus testes e relatórios em 3 níveis básicos. Não irei
traduzir cada um dos tipos de testes e ataques, pois os termos são de
origem americana, e portanto fica até mais fácil pesquisar
posteriormente tudo sobre a técnica ou tecnologia.

Risco alto:

  • Server-side SQL injection (including blind vectors, numerical
    parameters).
  • Explicit SQL-like syntax in GET or POST parameters.
  • Server-side shell command injection (including blind vectors).
  • Server-side XML / XPath injection (including blind vectors).
  • Format string vulnerabilities.
  • Integer overflow vulnerabilities.
  • Locations accepting HTTP PUT.

Risco médio:

  • Stored and reflected XSS vectors in document body (minimal JS XSS
    support present).
  • Stored and reflected XSS vectors via HTTP redirects.
  • Stored and reflected XSS vectors via HTTP header splitting.
  • Directory traversal (including constrained vectors).
  • Assorted file POIs (server-side sources, configs, etc).
  • Attacker-supplied script and CSS inclusion vectors (stored and
    reflected).
  • External untrusted script and CSS inclusion vectors.
  • Mixed content problems on script and CSS resources (optional).
  • Incorrect or missing MIME types on renderables.
  • Generic MIME types on renderables.
  • Incorrect or missing charsets on renderables.
  • Conflicting MIME / charset info on renderables.
  • Bad caching directives on cookie setting responses.

Risco baixo:

  • Directory listing bypass vectors.
  • Redirection to attacker-supplied URLs (stored and reflected).
  • Attacker-supplied embedded content (stored and reflected).
  • External untrusted embedded content.
  • Mixed content on non-scriptable subresources (optional).
  • HTTP credentials in URLs.
  • Expired or not-yet-valid SSL certificates.
  • HTML forms with no XSRF protection.
  • Self-signed SSL certificates.
  • SSL certificate host name mismatches.
  • Bad caching directives on less sensitive content.

Instalando e usando o Skipfish do Google

Agora vamos para a etapa de instalar e utilizar a ferramenta.

Primeiramente vamos preparar um ambiente básico:

Computador com sistema operacional Linux com kernel igual ou
superior ao 2.4, recomendável 2.6.x.x.

Dependências e ferramentas requeridas:

  • GNU C Compilador
  • GNU Make
  • GNU C Library
  • zlib
  • OpenSSL
  • libidn (mais importante e chato de implementar)

Agora vamos para a etapa de instalar e utilizar a ferramenta.

O próximo passo é efetuar o download do pacote binário para que possamos
compilar e testar.

Efetue o download em:

No momento que escrevo este artigo ele está na versão 1.30, em apenas 2
dias 3 dias já foi alterado, isto prova que o projeto está em constante
mudança e novas funções estarão disponíveis.

Após o download precisamos descompactar o pacote.

Dúvidas?

No terminal (shell) de sua preferência, digite o comando:

# tar -vzxf skipfish-1.30b.tgz

Após a descompressão, acesse a pasta gerada e vamos compilar o programa.

# make

Sim, somente isto, nada de .config, make all, make install, make clean,
basta compilar.

ERRO? Ok, veja se apresentou isto:

# make
cc -L/usr/local/lib/ -L/opt/local/lib skipfish.c -o skipfish -O3
-Wno-format -Wall -funsigned-char -g -ggdb -D_FORTIFY_SOURCE=0
-I/usr/local/include/ -I/opt/local/include/ \http_client.c database.c
crawler.c analysis.c report.c -lcrypto -l ssl -lidn -lz
http_client.c:39:18: error: idna.h: No such file or directory
http_client.c: In function âparse_urlâ:
http_client.c:277: warning: implicit declaration of function
âidna_to_ascii_8zâ
http_client.c:277: error: âIDNA_SUCCESSâ undeclared (first use in this
function)
http_client.c:277: error: (Each undeclared identifier is reported only
once
http_client.c:277: error: for each function it appears in.)
make: *** [skipfish] Error 1

Isto se deve pois você não possui o libidn11-dev, para isto
basta um simples apt-get:

# apt-get install libidn11-dev

Repita o processo "make".

Ainda com erros na compilação? Sem problemas, isto deve resolver:

# apt-get install libssl-dev build-essential zlibc zlib-bin
libidn11-dev libidn11

Repita o procedimento anterior.

Agora precisamos copiar um arquivo de dicionário de dados desejado da
subpasta "dictionaries" para o arquivo skipfish.wl.

Qualquer dúvida consulte o arquivo README-FIRST, localizado na mesma
subpasta "dictionaries".

Existem diversos dicionários, escolha um. Mas lembre-se a escolha dele
implicará na performance dos testes. Pela web você poderá encontrar
muitos dicionários modificados, uns melhores que outros.

Com o dicionário escolhido, vamos:

# ./skipfish -o output_dir
http://www.site.com.br/teste/skipfish-start/path.txt

Sites com autenticação simples?

# ./skipfish -A usuário:senha …parâmetros…

Testar uma porta específica?

# ./skipfish -I http://site.com.br:1234/

Existem muitas formas de utilizá-lo, bem como parâmetros, comandos.

Teste estilo brute force:

# ./skipfish -B .site.com.br -O -o output_dir -t 5
http://www.sites.com.br/

A lista de comandos por ser acessada por:

# ./skipfish -h

Linux: Scanner de Segurança SKIPFISH do Google para sites

Espero que tenham gostado desta contribuição.

Ainda haverão muitas modificações e melhorias neste sistema e quem sabe
criamos algo parecido ou o modificamos.

Paulo Roberto Junior

Portal pessoal: http://www.paulojr.info

Perfil no VOL: http://www.vivaolinux.com.br/~paulorvojr

Outros artigos: http://www.vivaolinux.com.br/artigos/userview.php?login=paulorvojr


http://www.vivaolinux.com.br/artigo/Scanner-de-seguranca-SKIPFISH-do-Google-para-sites

2 comentários sobre “Scanner de segurança SKIPFISH do Google para sites

  1. Paulo, gostei do seu post, mas tenho uma dúvida talvez vcë possa me ajudar… gostaria de analisar um apliativo (JSP) que estou desenvolvvendo é possível? para entrar nesse aplicativo é necessário login e senha (como passo p o skipfish).Já rodei o skipfish mas a impressão que tenho é que ele analisou apenas a tela de login, o que não me adiantaria

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s