Dica – Testes de Segurança da sua Aplicação Web (SQL Injection) usando o OWASP ZAP

Uma das maiores preocupações em aplicações Web é o vazamento de informações confidenciais. E uma das práticas mais usadas é o SQL Injection.

A Injeção de SQL, mais conhecida através do termo americano SQL Injection, é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL. A injeção de SQL ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma consulta (query) através da manipulação das entradas de dados de uma aplicação.

Para estarmos seguros, é extremamente importante em nosso ciclo de testes, abordarmos o PEN TEST (Teste de Penetração).

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de uma rede, simulando um ataque de uma fonte maliciosa. O processo envolve uma análise nas atividades do sistema, que envolvem a busca de alguma vulnerabilidade em potencial que possa ser resultado de uma má configuração do sistema, falhas em hardwares/softwares desconhecidas, deficiência no sistema operacional ou técnicas contramedidas. Todas as análises submetidas pelos testes escolhidos são apresentadas no sistema, junto com uma avaliação do seu impacto e muitas vezes com uma proposta de resolução ou de uma solução técnica.

E uma ferramenta que pode apoiar no PEN TEST e no item SQL Injection é a ZAP (Zed Attack Proxy Project) da OWASP.

Ela é uma ferramenta gratuita que pode ser baixada aqui: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Instalação:

Instale a ultima versão do JAVA: https://www.java.com/pt_BR/download/

Depois configure a Maquina Virtual JAVA colocando o seguinte parametro nas variaveis de ambiente no seu Windows em Configurações –> Sistema –> Avançado – Variáveis de Ambiente.

Váriavel: _JAVA_OPTIONS

Valor: -Xmx512M

image

Depois instale normalmente o ZAP e execute ele.

image

Teste Simples:

Para conhecer mais a ferramenta, você pode iniciar um teste simples, colocando o endereço da aplicação Web e clicar em Attack!, porém esse teste será superficial, pois ele não entrará dentro de diretórios, relatórios e itens adicionais, que necessitem de logon. Mas esse ataque, se for em um site simples ou sua aplicação tiver problemas de segurança logo no inicio, já será possível colher dados nesse simples teste.

image

image

Veja em Alertas o que foi identificado em um teste simples.

image

Teste Completo:

Para um teste mais profundo de segurança, o ideal é ativar o ZAP e você executar seus testes funcionais enquanto o ZAP captura informações de seu aplicativo Web.

Para isso, inicie o ZAP:

image

Valide o endereço proxy que ele forneceu, no nosso caso foi localhost na porta 8080.

image

Vá nas configurações do seu navegar e configure o proxy, para que todas as requisições feitas por você ao navegar em sua aplicação, sejam capturadas pelo ZAP para análise.

image

Comece a navegar e perceba que automaticamente ele já começa a capturar o tráfego. Concentre sua navegação no site de teste, para que a captura seja produtiva.

image

Análises e Execuções de Testes Adicionais:

Bom, agora que sabemos como configurar o ZAP, executar testes e acompanhar análises, vamos avaliar o que ele oferece de itens de testes.

Fuzzer (SQL Injection)

Um fuzzer de segurança é uma ferramenta usada por pentesters (profissionais de teste de invasão), analista de segurança e hackers, para testar parâmetros de várias aplicações. Fuzzers testam softwares em busca de buffer overflows, format string vulnerabilities e error handling.
Alguns fuzzers avançados incorporam funcionalidades para testar vulnerabilidades do tipo “directory traversal attacks” ou seja, “ataques de travessia de pastas”, onde o atacante acessa pastas em vários níveis sem privilégios, “command execution vulnerabilities”, “SQL Injection” e “Cross Site Scripting vulnerabilities”. Web Vulnerability scanners tem tipicamente toda a performance e funcionalidade de fuzzer + um proxie para análise de requisições web, podendo ser considerado um fuzzer avançado.

Para realizar o teste, ative o proxy em seu navegador, navegue em seu site de testes, realizado os acessos devidos. Depois vá no ZAP, selecione a URL de Requisição, clique com o botão direito em cima da requisição e selecione FUZZ.

image

Na categoria, selecione o tipo de Injection, conforme o banco de dados e execute o teste.

image

Acompanhe os resultados.

image

Caso seja detectado uma falha, irá ser informado em Alerts.

Espero ter ajudado e até a próxima!

Alan Carlos

Um comentário sobre “Dica – Testes de Segurança da sua Aplicação Web (SQL Injection) usando o OWASP ZAP

  1. Pingback: Terças de ALM e Operações – Análise de Segurança em Aplicações Web | Blog de Qualidade e TI

Deixe um comentário