Um pouco sobre o ratproxy

Deixe um comentário e acompanhe a discussão assinando a feed deste ou de todos os posts e comentários.

O ratproxy é aquela ferramenta que a Google disponibilizou e com isso conseguiu o hype de sempre. Eu queria escrever algo sobre o código fonte, como funciona as análises que a ferramenta faz, mas como não vi nada se quer sobre a compilação e utilização, decidi fazer um tutorial de compilação e utilização.

O cygwin

Eu uso no meu dia a dia uma máquina com sistema operacional windows, apesar de ter uma distro linux (andlinux) também rodando na máquina. Mas quem não está disposto a fazer grandes alterações eu recomendo o cygwin. Com ele eu tenho as principais ferramentas do linux direto no prompt do windows.

Vamos usar os recursos do cygwin para usar o ratproxy. A instalação é bem simples, apenas tenha certeza de instalar os pacotes necessários. Para compilar e usar o ratproxy é necessário os seguintes pacotes:

1 - make (localizado na biblioteca Devel)
2 - gcc-core (localizado na biblioteca Devel)
3 - openssl-dev (localizado na biblioteca Devel)
4 - openssl - The Open SSL runtime enviroment (localizado na biblioteca Libs)

Estes pacotes são suficientes para compilar e executar o ratproxy. Além destes pacotes é necessário baixar e substituir o flare que vem com o ratproxy por este compilado pra windows. O flare é uma solução usada pelo ratproxy para análise de arquivos swf (flash). Basicamente ele transforma o swf em um arquivo texto que pode ser analisado pelo ratproxy.

Compilando o ratproxy

Feito as instalações dos pacotes necessários vamos alterar o arquivo makefile e compilar o ratproxy. O makefile é apenas um arquivo que contém todos os critérios para que a compilação seja simplificada, basta rodar um make no diretório.

O makefile ficará com as seguintes configurações:

    PROGNAME = ratproxy
    CFLAGS     = -Wall -O3 -D_GNU_SOURCE
    LDFLAGS  = -lcrypto -lssl

Agora para compilar apenas navegue até o diretório onde o fonte do ratproxy se encontra e dê o seguinte comando: make

Com isso "automagicamente" irá aparecer um arquivo ratproxy.exe no diretório. Agora é só utilizar.


Utilizando o ratproxy

syntax de comando:

Usage: ratproxy [ -w logfile ] [ -v logdir ] [ -p port ] [ -d domain ] [ -P host:port ] [ -xtifkgmjscael2XCr ]
   -w logfile - write results to a specified file (default: stdout)
   -v logdir - write HTTP traces to a specified directory (default: none)
   -p port - listen on a custom TCP port (default: 8080)
   -d domain - analyze requests to specified domains only (default: all)
   -P host:port - use upstream proxy for all requests (format host:port)
   -r - accept remote connections (default: 127.0.0.1 only)
   -l - use response length, not checksum, for identity check
   -2 - perform two, not one, page identity check
   -e - perform pedantic caching headers checks
   -x - log all XSS candidates
   -t - log all directory traversal candidates
   -i - log all PNG files served inline
   -f - log all Flash applications for analysis (add -v to decompile)
   -s - log all POST requests for analysis
   -c - log all cookie setting URLs for analysis
   -g - perform XSRF token checks on all GET requests
   -j - report on risky Javascript constructions
   -m - log all active content referenced across domains
   -X - disruptively validate XSRF, XSS protections
   -C - try to auto-correct persistent side effects of -X
   -k - flag HTTP requests as bad (for HTTPS-only applications)
   -a - indiscriminately report all visited URLs
  
Rodando o proxy:

O ratproxy funciona como um proxy, assim enquanto você navegua na aplicação ele vai fazendo a análise das requisições.

Para iniciar o ratproxy digite uma das 3 opções sugeridas no prompt de comando. Váriações podem ser usadas de acordo com a syntax

  1) Low verbosity
 
  -v c:\cygwin\bin\ratproxy -w ratproxy.log -d siteasertestado.com -lfscm
 
  2) High verbosity

  -v c:\cygwin\bin\ratproxy -w ratproxy.log -d siteasertestado.com -lextifscgjm
 
  3) Active testing
 
  -v c:\cygwin\bin\ratproxy -w ratproxy.log -d siteasertestado.com -XClfscm
 
Configurando o browser e utilizando a ferramenta

O ratproxy usa a porta 8080 como default. Então configure o browser para usar um proxy no localhost porta 8080.

Agora vá até o browser e navegue por todas as páginas que você deseja analisar. Enquanto você navega o ratproxy está analisando e armazenando no arquivo de log definido na opção anterior.

Analisando os resultados

Após a navegação feche o prompt que iniciou o ratproxy. O log de análise está no diretório determinado no comando de execução.

Para gerar um relatório mais amigável o google disponibilizou um script para gerar um relatório em html.

No prompt de comando execute o seguinte comando: sh ratproxy-report.sh ratproxy.log > report.html

Pronto, você já tem uma boa ferramenta de análise de aplicações web a sua disposição!

Conheça outros posts

Comment RSS feed

7 Comments so far