ZAP – Zed Attack Proxy

ZAP é um projeto da OWASP (Open Web Application Security Project). Ele é uma plataforma criada para que diversos testes de segurança em aplicações web possam ser feitos de forma dinâmica e automatizada.

É notável que não é possível construir aplicações web seguras se não tem meios de poder testar seu código a procura de brechas de segurança; para a grande parte dos programadores, testes de segurança ainda são coisas muito obscuras.

Utilizando o ZAP, desenvolvedores e especialistas em segurança podem validar diversos aspectos de uma aplicação web e varrer a infraestrutura do site a procura de falhas comuns, principalmente as relacionadas ao OWASP Top 10. ZAP  trabalha dinamicamente, aplicando diversas políticas customizadas de varredura, atuando  como proxy, interceptando as requisições enviadas pelo browser para a aplicação, analisando assim todo o conteúdo acessado, permitindo aplicação de filtros a procura de scripts mal formados e outras anomalias na aplicação que podem ocasionar diversas falhas de segurança.

Vamos verificar algumas das principais features disponíveis nesta poderosa ferramenta.

Uma vez que o ZAP funciona como um proxy, assim como outras ferramentas como WebScarab, ParosProxy e etc, você deve configurar seu browser para iniciar a navegação através do endereço de Proxy Local que está configurado em seu ZAP,  por padrão o valor é  127.0.0.1:8080.

Desta forma toda solicitação de navegação para um website, será interceptada pelo ZAP e ele irá gerar também um histórico de tudo que foi acessado no browser.

zap01

1.0   – Visão Geral das abas da ferramenta e suas funcionalidades.

Ele concentra diversas funcionalidades importantes que são grandes aliadas no momento de avaliar aspectos de segurança em aplicações. Vejamos abaixo algumas destas funcionalidades.

Spider Crawling

Esta funcionalidade consiste em executar uma copia de todos  os arquivos que são visualizáveis no index do servidor web. Quando você inicia o Spider, o ZAP irá fazer uma varredura em todas as pastas visíveis e que são de alguma forma relacionadas através do código da aplicação.

Muitas vezes efetuando um Spider Crawling no site da aplicação é possível baixar arquivos como:

– arquivos de base de dados .mdb;

– arquivos de backup que foram deixados para trás (.bak);

– arquivos de configuração que foram deixados com permissões erradas, muitas vezes arquivos que contém credenciais de acesso a bancos de dados e etc;

– toda uma infinidade de possibilidades que podem ter sido por ventura esquecidas no servidor web durante alguma fase de deploy da aplicação.

zap02

Varredura do Site

Utilizando a opção de varredura ativa do site, o ZAP irá lhe ajudar a procurar por strings vulneráveis a ataques de Cross-Site Scripting, SQL Injection, e etc.

A política de varredura pode ser customizada manualmente, de acordo com a vontade do usuário.  Devo alertar que o uso da Varredura dinâmica, efetua diversos ataques à aplicação, sendo assim nunca utilize isto em sites que você não possui permissão para efetuar a análise.

Outra varredura disponível na estrutura do ZAP é a varredura de portas, onde você pode efetuar um Scan de serviços TCP disponíveis na máquina. Isto pode ajudar a descobrir outros serviços que podem se tornar vetores de ataques mais estruturados, por exemplo FTP, e etc.

zap03

Alertas

Na aba de alertas o ZAP, irá exibir vulnerabilidades encontradas de forma passiva, enquanto você navega. Todas as falhas encontradas serão exibidas, e catalogadas de acordo com o nível de criticidade, e todos os forms onde a falha for encontrada, poderão ser visualizados de forma completa.

Geralmente as falhas mais mostradas são, falhas no gerenciamento de cookies de sessão, falha de criptografia em sessão padrão ativa, por exemplo aplicações que usam tokens de autenticação SESSIONID padrão e que podem ser facilmente quebrados e muitos outros. Os forms identificados com as vulnerabilidades aparecem com uma bandeirinha ao lado na barra lateral:

zap04

Sem dúvida o ZAP é uma aplicação que deve fazer parte do kit de desenvolvedores e especialistas em segurança que gostariam de automatizar algumas varreduras em aplicações.

Como ele é um proxy, você pode utiliza-lo concatenado com alguns outros como por exemplo, WebScarab ou o próprio ParosProxy que já faz parte da API do ZAP.

Vulnerable Web Applications – Simuladores para Estudo

Hoje não há o que discutir quando o assunto é a segurança das aplicações desenvolvidos para a web em sua corporação, ou então as que são disponibilizadas para usuários. Apesar do grande número de técnicas e estratégias para aumentar a segurança existentes, a última grande camada, que irá de fato aumentar a segurança da aplicação é sem dúvida, o próprio desenvolvedor.

Ainda hoje, apesar de segurança ter se tornado uma matéria interdisciplinar e estar presente em todos os âmbitos onde hajam profissionais de tecnologia, existe uma lacuna gigantesca entre o que é preciso fazer para de fato aumentar a segurança e o que é possível fazer levando em conta o cronograma onde os projetos são desenvolvidos, e onde muitas vezes por falta de planejamento estratégico adequado do Core Team, a segurança é relegada a pequenos aspectos, que muitas vezes são apenas o inicio do todo trabalho.

Muitas vezes, durante os estudos fica difícil para iniciantes conseguir aplicar e visualizar alguns conceitos de vulnerabilidades e ataques em aplicações web, e isso acaba tornando a experiência algo difícil de ser absorvido. Pensando nisto, resolvi publicar um artigo voltado a alguns frameworks para estudo e simulação de explorações de vulnerabilidades em aplicações web.

Com estes frameworks você poderá ver na prática o efeito das principais vulnerabilidades, suas contra-medidas, assim como abrir a mente no que diz respeito a possíveis formas de mitigação destes tipos de ataque.  Utilizando uma plataforma das 3 que irei falar abaixo, certamente você verá que o entendimento destes tópicos se tornará muito mais interessante (e divertido).

dvwa

DVWA (Damn Vulnerable Web Application) – Este framework consiste basicamente de uma aplicação vulnerável em PHP/MySQL onde você pode testar suas habilidades em SQL Injection, XSS, Blind SQL Injection, etc.  O DVWA é desenvolvido por Ryan Dwhurst e faz parte de um projeto OpenSource da RandomStorm

http://www.dvwa.co.uk

hackxor11_7

Hackxor – É um web application hacking game. Neste game o jogador precisa localizer e explorer vulnerabilidades para progredir através da história do jogo, como se fosse um hacker contratado para rastrear outro hacker, usando todos os meios necessários. Ele contem scripts vulneraveis a Cross Site Scripting (XSS), Cros Site Request Forgery (CSRF), Structured Query Language Injection (SQLi), Remote Command Injection (RCE) e muitos outros.

http://sourceforge.net/projects/hackxor

WebGoat_Welcome_Page

WebGoat – É um projeto da OWASP (Open Web Application Security Project) onde você possuirá uma interface deliberadamente insegura disponibilizada em J2EE, onde você encontrará diversas lições e exercícios, onde poderá aprender de forma bem didática, com exemplos e exercícios de diversos níveis de dificuldade. O mais legal dessa web application e que permite ao usuário demonstrar seu entendimento de uma determinada falha de segurança explorando uma vulnerabilidade real em cada lição.

http://code.google.com/p/webgoat

Todas são geralmente muito simples de utilizar e começar a brincar. Acredito que é sempre bom deixar bem claro aqui que, obviamente a segurança dessas aplicações é algo praticamente inexistente, sendo assim, não hospedem estes recursos em servidores de produção (nunca é demais lembrar eheh), pois fatidicamente vocês serão hackeados, e não será apenas de brincadeira. :)