17 de outubro de 2011

Webfight - Automatizando a análise passiva de aplicações web

Conforme prometido, acabo de publicar os fontes da ferramenta que eu lancei na OWASP AppSec Latam deste ano. A ferramenta chamada WebFight é Open Source e pretendo ir incrementando e lançando novas atualizações de acordo com a minha necessidade e claro, espero a contribuição da comunidade.

A idéia

A WebFight nasceu da minha necessidade de lidar com um número grande de informações que uma aplicação web pode gerar. Como eu quero continuar analisando os detalhes de cada requisição e não adotar um web security scanner, decidi criar uma ferramenta que automatizasse a análise de um log de proxy. Assim eu continuo analisando os detalhes manualmente, mas ganhando muito tempo na análise do log.

A ferramenta

A idéia foi fazer um parser do log do Burp e a partir deste parser criar módulos para realizar as análises. A estrutura da ferramenta é resumida no fluxo a seguir:

A ferramenta é facilmente estendida criando módulos e as seguintes análises já estão implementadas:


  • Apresenta todas as requisições e seus parâmetros para que sejam realizados testes fuzzing e de validação de dados

  • Apresenta todos os status codes, possibilitando identificar erros 500; Redirects 30x; Conteúdo estático 0

  • Apresenta as requisições fora do escopo da análise para identificar integrações, ou requests a outros domínios

  • Realiza um fingerprint a partir da análise de headers e informações da aplicação

  • Apresenta todos os cookies de sessão e a existência de cookies de sessão passados como parâmetro em requisições GET

  • Cria PoC em arquivos html de todas as requisições com parâmetros para que seja testado CSRF

  • Faz grep e identifica objetos DOM (password; hidden; file upload; iframe; etc...)

  • Apresenta todos os comentários em client-side (HTML e javascript)

  • Identifica arquivos javascript e javascripts no corpo da página apresentando o conteúdo com syntaxhighlight e realiza análise sintática no javascript apresentando Sink e Sources potencialmente perigosos

  • Identifica arquivos swf; realiza download; desassembla o swf e faz grep buscando características potencialmente vulneráveis em flash

  • Apresenta todas as respostas em JSON

  • Apresenta todos as diretivas de cache nos headers Pragma e Cache-Control

  • Apresenta as diretivas de segurança de headers CSP; HSTS e X-Frame-Options

  • Apresenta o base64 do header authorization (autenticação básica de HTTP)



A Interface

A interface também facilita bastante a análise por classificar as análises e possibilita que se pesquise e filtre os registros apresentados.

Demo

 

Aguardo feedback e requisição de outras análises. Faça um clone do Git na página do Projeto e participe da lista de discussão.

Nenhum comentário: