• Nenhum resultado encontrado

Ferramentas de Intercepção de Tráfego HTTP e Teste Fuzz

Uma vez que os requisitos do projecto definem que, seja efectuado o registo e a criação de um histórico da actividade do Browser, foram também analisadas ferramentas de Intercepção, Registo e Modificação do tráfego HTTP. Dado que, todo o tráfego HTTP passará por estas ferramentas, este poderá ser manipulado. Esta característica permite que estas ferramentas aumentem o nível e abrangência do teste Fuzz que será efectuado pelas ferramentas de Captura e Repetição. É inclusivamente possível, que o teste de Fuzz seja efectuado sem recurso a estas últimas.

Metodologias e Ferramentas de Teste Aplicações Web

31

Durante o estudo verificou-se que as ferramentas existentes são maioritariamente pagas e em código fechado ou que não permitem automatismo. Optou-se por apresentar apenas as gratuitas, aquelas que poderiam ser seleccionadas. Assim para a escolha desta ferramenta foi dado um elevado nível de consideração ao apoio ao desenvolvedor, uma vez que a seleccionada teria de passar por algumas modificações em termos de programação.

É também importante que a ferramenta seleccionada funcione como um servidor proxy, garantindo assim que intercepta toda a actividade não deixando escapar, alguns pacotes, como acontece em algumas ferramentas de análise de tráfego na rede.

Não poderia ser puramente uma ferramenta de teste Fuzz. Se assim fosse, o teste teria de ser pré definido em relação ao sistema, e pretende-se que a ferramenta possa ser configurada para actuar sobre todo o tráfego gerado por um determinado Web Browser.

A tabela 2 mostra então uma comparação entre as ferramentas analisadas.

Tabela 2 - Comparativo de ferramentas de intercepção de tráfego HTTP

Código

aberto Gratuito Proxy Suporte a teste Fuzz

Multi Plataforma

Webscarab

Sim Sim Sim Sim

(via pluggin ou ficheiro) Sim

Paros Proxy Sim Sim Sim Sim

(via aplicação auxiliar) Sim

JFuzz

Sim Sim Não Sim Sim

Wireshark

Sim Sim Não Não Sim

HTTP

Analyzer Sim Sim Não Não Sim

O HTTP Analyzer é uma ferramenta integrada no Browser para visualização do tráfego, com funcionamento totalmente dependente do mesmo. O JFuzz revelou elevada dificuldade de aprendizagem, pelo que, o tempo disponível para a sua análise foi gasto a perceber a documentação, mais do que a usar a ferramenta.

O Wireshark (que é na verdade uma evolução do Etherreal) é um sniffer de rede, com capacidade de ler todos os pacotes (TCP, UDP, DNS, etc.). Mostra a informação de forma complexa e o seu objectivo não se enquadra com os do projecto.

Metodologias e Ferramentas de Teste Aplicações Web

32

O Paros Proxy e o Webscarab cumprem todos os requisitos. No entanto o Webscarab é desenvolvido com base em pluggins pelo que, a sua alteração se torna simplificada. Este tipo de abordagem permite ainda que, no momento do lançamento de uma nova versão, esta possa ser imediatamente integrada na plataforma, instalando os pluggins responsáveis pelas alterações feitas. Relativamente ao fuzzer que ambos disponibilizam, a documentação do Webscarab é mais rica e mais simples de entender. Finalmente, é apresentado como sendo mais do que uma ferramenta, como sendo uma Framework, sendo a sua alteração bem apoiada por documentação e pelas palavras dos seus autores. Assim, o Webscarab foi a ferramenta a utilizar [20, 21, 22,23,24].

Este é essencialmente um servidor proxy, feito em Java, que permite interceptar tráfego HTTP e realizar operações sobre este. Esta aplicação, possui um leque de funcionalidades extensivo, como por exemplo, a funcionalidade de spider, efectuar sql injection, detecção de XSS, a criação e submissão de pedidos HTTP pré configurados, entre outras. No âmbito deste projecto assume importância, as funcionalidades que permitem realizar de forma automatizada, modificação do tráfego HTTP com o intuito de realizar teste Fuzz e registo do tráfego correspondente a cada pedido. O Webscarab, regista em memória todo o tráfego trocado oferecendo de raiz, a possibilidade de gravar ficheiros com os cabeçalhos HTTP, elementos trocados, cookies, relativamente a cada pedido interceptado.

Tem ainda a capacidade de ler e executar ficheiros Java. Esta particularidade tem as seguintes vantagens:

Permite que a operação de Fuzz seja definida de uma forma genérica, i.e., a operação é definida como uma acção sobre uma determinada condição ou variável (por exemplo, a todo pedido GET ou a todo user-agent) e não sobre um pedido em específico;

 Pode ser abrangido um enorme conjunto de casos de teste, neste caso, um enorme conjunto de ficheiros de Captura e Repetição;

 O facto de se tratar de um ficheiro permite que este seja gravado e mais tarde carregado na mesma ou noutras máquinas.

A utilização de ficheiros vem trazer solução a um problema. Isto é, um outro ficheiro de Captura e Repetição pode ser composto por, por exemplo, três cliques do rato que geram três pedidos HTTP. Porém, a estes pedidos podem estar associados n outros pedidos, como o descarregamento de imagens, CSS, Javascript etc. O Webscarab irá interceptar e registar tudo. No entanto, do ponto de vista do teste, poderá apenas ser vantajoso considerar, analisar e registar os pedidos correspondentes aos cliques do rato.

Metodologias e Ferramentas de Teste Aplicações Web

33

O ficheiro permite esta situação tornando nesse caso a actividade ao nível do proxy mais eficiente tanto ao nível do espaço físico em disco como ao nível da velocidade de processamento de um determinado pedido.

O que se pretende então realizar sobre o Webscarab é utilizar as suas propriedades de

scripting. O plano incide sobre a modificação do código fonte desta ferramenta, para que este

possa ser arrancado directamente com um ficheiro de teste pré definido, sem necessidade de o colocar manualmente sobre a interface gráfica. As modificações vão mais longe ainda. Na versão original, um ficheiro escrito com erros, pode ser carregado e unicamente após o processamento do primeiro pedido, por observação de um comportamento diferente do esperado (a página Web carregada não é a pedida mas sim uma gerada automaticamente pelo Webscarab com informação sobre o erro), o erro é detectado.

Após as modificações introduzidas a esta ferramenta, é possível a avaliação do carregamento e caso existam erros, a ferramenta é encerrada e a informação sobre o erro é apresentada ao utilizador [22, 25, 26].

Finalmente, o Anexo B, Informação adicional sobre o Webscarab, (secção B.1) apresenta uma descrição do modo de funcionamento dos ficheiros de teste, sendo ainda exposta uma lista com as funcionalidades mais relevantes, que podem ser utilizadas na manipulação do tráfego HTTP (para teste Fuzz).