Introdução
No passado, muitos websites populares foram pirateados. Os hackers estão activos e tentam sempre piratear websites e fugas de dados. É por isso que os testes de segurança das aplicações web são muito importantes. E é aqui que entram em jogo os scanners de segurança das aplicações web.
Um scanner de segurança de aplicações web é um programa de software que realiza testes automáticos de caixa negra numa aplicação web e identifica vulnerabilidades de segurança. Os scanners não acedem ao código fonte; apenas efectuam testes funcionais e tentam encontrar vulnerabilidades de segurança. Estão disponíveis vários scanners de vulnerabilidade de aplicações web pagos e gratuitos.
Neste post, listamos os melhores scanners gratuitos de vulnerabilidade de aplicações web de código aberto. Estou a adicionar as ferramentas em ordem aleatória, por isso não pense que se trata de uma classificação de ferramentas.
Só estou a adicionar ferramentas de código aberto que podem ser utilizadas para encontrar vulnerabilidades de segurança em aplicações web. Não estou a adicionar ferramentas para encontrar vulnerabilidades de servidor. E não confunda ferramentas gratuitas com ferramentas de código aberto! Há várias outras ferramentas disponíveis gratuitamente, mas elas não fornecem código fonte a outros programadores. Ferramentas de código aberto são aquelas que oferecem códigos-fonte aos programadores para que estes possam modificar a ferramenta ou ajudar no desenvolvimento posterior.
Estas são as melhores ferramentas de teste de penetração de aplicações web de código aberto.
Grabber
Grabber é um scanner de aplicações web que pode detectar muitas vulnerabilidades de segurança em aplicações web. Efectua scans e diz onde a vulnerabilidade existe. Pode detectar as seguintes vulnerabilidades:
- Cross-scripting do sítio
- injecçãoSQL
- Testes axiais
- Inclusão de ficheiros
- JS analisador de código fonte
- Backup file check
Não é rápido em comparação com outros scanners de segurança, mas é simples e portátil. Deve ser usado apenas para testar pequenas aplicações web porque leva muito tempo a digitalizar grandes aplicações.
Esta ferramenta não oferece nenhuma interface GUI. Também não pode criar quaisquer relatórios PDF. Esta ferramenta foi concebida para ser simples e para uso pessoal. Se estiver a pensar nela para uso profissional, não a recomendarei.
Esta ferramenta foi desenvolvida em Python e também está disponível uma versão executável, se quiser. O código fonte está disponível, pelo que pode modificá-lo de acordo com as suas necessidades. O script principal é grabber.py, que uma vez executado chama outros módulos como sql.py, xss.py ou outros.
p>Download it here.
p>Source code on GitHub.
Vega
Vega é outro scanner e plataforma de teste gratuito de vulnerabilidade web open-source. Com esta ferramenta, é possível realizar testes de segurança de uma aplicação web. Esta ferramenta é escrita em Java e oferece um ambiente baseado em GUI. Está disponível para OS X, Linux e Windows.
Pode ser usada para encontrar injecção SQL, injecção de cabeçalho, listagem de directórios, injecção de shell, cross-site scripting, inclusão de ficheiros e outras vulnerabilidades de aplicações web. Esta ferramenta também pode ser alargada utilizando uma poderosa API escrita em JavaScript.
Enquanto trabalha com a ferramenta, permite-lhe definir algumas preferências tais como o número total de descendentes de caminho, o número de caminhos filhos de um nó e a profundidade e o número máximo de pedidos por segundo. Pode utilizar Vega Scanner, Vega Proxy e Proxy Scanner, e também digitalizar com credenciais. Se precisar de ajuda, pode encontrar recursos na secção de documentação:
Documentação está aqui.
Download Vega aqui.
Zed Attack Proxy
Zed Attack Proxy é também conhecido como ZAP. Esta ferramenta é de código aberto e é desenvolvida por OWASP. Está disponível para plataformas Windows, Unix/Linux e Macintosh.
Eu pessoalmente gosto desta ferramenta. Pode ser utilizada para encontrar uma vasta gama de vulnerabilidades em aplicações web. A ferramenta é muito simples e fácil de usar. Mesmo que seja novo em testes de penetração, pode facilmente utilizar esta ferramenta para começar a aprender a testar a penetração de aplicações web.
Estas são as principais funcionalidades do ZAP:
- Proxy de intercepção
- Scanner automático
- Tradicional mas aranhas poderosas
- Fuzzer
- Suporte de tomada Web
- Plug-n-hack support
- Autenticação de suporte
- REST-API baseada API
- Certificados SSL Dinâmicos
- Suporte de cartões e certificados digitais de clientes
P>Pode usar esta ferramenta como scanner, introduzindo o URL para efectuar o scan, ou pode utilizar esta ferramenta como um proxy de intercepção para realizar testes manualmente em páginas específicas.
Download ZAP aqui.
Wapiti
Wapiti é um scanner de vulnerabilidade web que lhe permite auditar a segurança das suas aplicações web. Realiza testes de caixa negra através da digitalização de páginas web e da injecção de dados. Ele tenta injectar cargas úteis e ver se um script é vulnerável. Suporta tanto ataques GET como POSTHTTP e detecta múltiplas vulnerabilidades.
Pode detectar as seguintes vulnerabilidades:
- Div>
- Inclusão de ficheiro
- Cross-site scripting (XSS)
- Detecção de execução de comando
- Injeção deCRLF
- Injeção deSEL e injeção de XPath
- Baixo .htaccess configuration
- Volução de ficheiro de backup
- Muitos outros
Wapiti é uma aplicação de linha de comando, por isso pode não ser fácil para principiantes. Mas, para os peritos, terá um bom desempenho. Para utilizar esta ferramenta é necessário aprender muitos comandos, que podem ser encontrados na documentação oficial.
Download Wapiti com código fonte aqui.
W3af
W3af é uma popular estrutura de ataque e auditoria de aplicações web. Esta estrutura visa fornecer uma melhor plataforma de testes de penetração de aplicações web. Foi desenvolvida utilizando Python. Ao utilizar esta ferramenta, será capaz de identificar mais de 200 tipos de vulnerabilidades de aplicações web, incluindo injecção de SQL, cross-site scripting e muitas outras.
Vem com uma interface gráfica e de consola. Pode utilizá-la facilmente, graças à sua interface simples.
Se a estiver a utilizar com uma interface gráfica, não creio que vá enfrentar quaisquer problemas com a ferramenta. Basta-lhe seleccionar as opções e depois iniciar o scanner. Se um website precisar de autenticação, também pode usar módulos de autenticação para digitalizar as páginas protegidas por sessão.
Já cobrimos esta ferramenta em detalhe na nossa série anterior W3af walkthrough. Pode ler estes artigos para saber mais sobre esta ferramenta.
P>Pode aceder ao código fonte no repositório GitHub aqui.
P>Download-lo do sítio web oficial aqui.
WebScarab
WebScarab é uma estrutura de segurança baseada em Java para analisar aplicações web utilizando o protocolo HTTP ou HTTPS. Com os plugins disponíveis, é possível ampliar a funcionalidade da ferramenta.
Esta ferramenta funciona como um proxy de intercepção; pode rever os pedidos e respostas que chegam ao seu browser e vão para o servidor. Também pode modificar o pedido ou resposta antes de serem recebidos pelo servidor ou navegador.
Se for um principiante, esta ferramenta não é para si. Esta ferramenta foi concebida para aqueles que têm uma boa compreensão do protocolo HTTP e podem escrever códigos.
WebScarab fornece muitas características que ajudam os testadores de penetração a trabalhar de perto numa aplicação web e a encontrar vulnerabilidades de segurança. Tem uma aranha que pode encontrar automaticamente novos URLs do sítio web de destino. Pode facilmente extrair scripts e o HTML da página. O proxy observa o tráfego entre o servidor e o seu browser, e pode assumir o controlo do pedido e da resposta, utilizando os plugins disponíveis. Os módulos disponíveis podem facilmente detectar as vulnerabilidades mais comuns como a injecção SQL, XSS, CRLF e muitas outras vulnerabilidades.
O código fonte da ferramenta está disponível em GitHub aqui.
Download WebScarab aqui.
Skipfish
Skipfish é outra boa ferramenta de segurança de aplicações web. Rasteja o website e depois verifica cada página em busca de várias ameaças à segurança. No final, prepara o relatório final.
Esta ferramenta foi escrita em C. É altamente optimizada para o manuseamento de HTTP e utiliza o mínimo de CPU. Afirma que pode tratar facilmente 2.000 pedidos por segundo sem adicionar uma carga no CPU. Utiliza uma abordagem heurística enquanto rasteja e testa páginas web, e afirma oferecer alta qualidade e menos falsos positivos.
Esta ferramenta está disponível para Linux, FreeBSD, MacOS X e Windows.
Download Skipfish ou código do Google Codes aqui.
Ratproxy
Ratproxy é uma ferramenta de auditoria de segurança de aplicações web de código aberto que pode ser utilizada para encontrar vulnerabilidades de segurança em aplicações web. Suporta ambientes Linux, FreeBSD, MacOS X e Windows (Cygwin).
Esta ferramenta foi concebida para ultrapassar os problemas que os utilizadores normalmente enfrentam enquanto utilizam outras ferramentas proxy para auditorias de segurança. É capaz de distinguir entre folhas de estilo CSS e códigos JavaScript. Também suporta o ataque man-in-the-middle SSL, o que significa que também se podem ver dados passando através de SSL.
P>Pode ler mais sobre esta ferramenta aqui.
p>p>Download aqui.
SQLMap
SQLMap é outra ferramenta popular de teste de penetração de código aberto. Automatiza o processo de encontrar e explorar as vulnerabilidades de injecção SQL na base de dados de um sítio web. Tem um poderoso motor de detecção e muitas características úteis. Desta forma, um testador de penetração pode facilmente efectuar uma verificação de injecção SQL num sítio web.
Suporta uma gama de servidores de base de dados incluindo MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase e SAP MaxDB. Oferece suporte completo para seis tipos de técnicas de injecção SQL: time-based blind, Boolean-based blind, error-based, UNION query, stacked queries e out-of-band.
Acesso ao código fonte no GitHub aqui.
Download SQLMap aqui.
Wfuzz
Wfuzz é outra ferramenta open-source livremente disponível para testes de penetração de aplicações web. Pode ser utilizada para forçar a força bruta de parâmetros GET e POST para testes contra vários tipos de injecções como SQL, XSS, LDAP e muitas outras. Também suporta fuzzing de cookies, multithreading, SOCK, proxy, autenticação, parâmetro brute-forcing, proxy múltiplo e muitas outras coisas.
Esta ferramenta não oferece uma interface GUI, pelo que terá de trabalhar na interface de linha de comandos.
Pode ler mais sobre as características da ferramenta aqui.
Download Wfuzz de code.google.com aqui.
Grendel-Scan
Grendel-Scan é outra boa ferramenta de segurança de aplicações web de código aberto. Esta é uma ferramenta automática para encontrar vulnerabilidades de segurança em aplicações web. Muitas características estão também disponíveis para testes manuais de penetração. Esta ferramenta está disponível para Windows, Linux e Macintosh e foi desenvolvida em Java.
p>Download the tool and source code here.
Watcher
Watcher é um scanner de segurança passiva da web. Não ataca com cargas de pedidos ou rasteja o site alvo. Não é uma ferramenta separada mas um complemento do Fiddler, por isso é necessário instalar primeiro o Fiddler e depois instalar o Watcher para o utilizar.
Analisa silenciosamente os pedidos e respostas da interacção do utilizador e depois faz um relatório sobre a aplicação. Como é um scanner passivo, não afectará o alojamento do sítio web ou a infra-estrutura de nuvem.
Download Watcher e o seu código fonte aqui.
X5S
X5S é também um add-on Fiddler destinado a fornecer uma forma de encontrar vulnerabilidades de scripts cross-site. Esta não é uma ferramenta automática, pelo que é necessário compreender como os problemas de codificação podem levar ao XSS antes de o utilizar. É necessário encontrar manualmente o ponto de injecção e depois verificar onde o XSS pode estar na aplicação.
Temo-lo coberto por X5S num post anterior. Pode consultar esse artigo para ler mais sobre X5S e XSS.
Download X5S e código fonte do Codeplex aqui.
P>P>Pode também consultar este guia oficial para saber como utilizar X5S.
Arachni
Arachni é uma ferramenta de código aberto desenvolvida para proporcionar um ambiente de teste de penetração. Esta ferramenta pode detectar várias vulnerabilidades de segurança de aplicações web. Pode detectar várias vulnerabilidades como injecção SQL, XSS, inclusão de ficheiros locais, inclusão de ficheiros remotos, redireccionamento não validado e muitas outras.
Download desta ferramenta aqui.
Palavra final
Estas são as melhores ferramentas de teste de segurança de aplicações web de código-fonte aberto. Fiz o meu melhor para listar todas as ferramentas disponíveis online. Se uma ferramenta não foi actualizada durante muitos anos, não a mencionei aqui; isto porque se uma ferramenta tiver mais de 10 anos, pode criar problemas de compatibilidade no ambiente recente.
Se for um programador, também pode juntar-se à comunidade de programadores destas ferramentas e ajudá-los a crescer. Ao ajudar estas ferramentas, irá também aumentar os seus conhecimentos e perícia.
Se quiser iniciar testes de penetração, recomendarei a utilização de distribuições Linux que foram criadas para testes de penetração. Estes ambientes são Backtrack, Gnacktrack, Backbox e BlackBuntu. Todas estas ferramentas vêm com várias ferramentas gratuitas e de código aberto para testes de penetração de websites.