* Eduardo Neves
Conhecidas no mercado como web security scanners, as ferramentas utilizadas para a execução de testes de segurança automatizados são comercializadas por diversos fabricantes. Com características e tecnologias proprietárias as diferenciando, mas em comum, todas funcionam vasculhando o conteúdo e estrutura do website e comparando os resultados obtidos com suas bases de dados. Essas ferramentas trazem comportamentos que indicam vulnerabilidades potenciais e apresentam os resultados em um relatório configurado para estabelecer níveis de criticidade, auxiliando os responsáveis na tomada de decisão de onde corrigir primeiro.
Com isso, um web security scanner identifica com velocidade muitas vezes superior a uma análise manual, as falhas no desenvolvimento da aplicação web (ex.: SQL Injection ou falha de autenticação) e vulnerabilidades que estejam presentes em bases de dados (ex.: abertura para execução de exploits).
Apesar de serem excelentes ferramentas para serem incluídas no processo de testes e obrigatoriamente ser parte da caixa de ferramentas de um analista de segurança, algumas observações devem ser consideradas no uso deste tipo de produto:
- A cobertura dos testes é genérica e resulta na identificação somente de falhas conhecidas, não considerando os problemas gerados por falhas na lógica utilizada para a construção da aplicação web e customizações que tenham sido feitas no código-fonte do produto.
- A velocidade na obtenção dos resultados pode dar uma falsa sensação de redução de tempo para a conclusão do processo. Existem etapas prévias de configuração do produto que devem ser consideradas, além do tempo dedicado de um técnico para a avaliação de resultados com remoção de falsos positivos e análise de falsos negativos.
Em processos onde é necessário realizar um teste somente por questões de compliance com um padrão e existe uma forte limitação de orçamento para a empresa ir além dos testes automatizados, a melhor escolha acaba sendo optar por um teste automatizado, uma vez que um teste manual realizado por um profissional sem experiência nunca vai alcançar o mesmo nível de eficiência entregue por uma boa ferramenta automatizada.
Porém, é fundamental entender que o papel fundamental de um web security scanner é fornecer ao analista de segurança resultados que serão posteriormente analisados para adequar a qualidade das vulnerabilidades identificadas – o que supera a simples remoção de falsos positivos e entra na investigação de causa das mesmas – e ainda fornecer subsídios para testes manuais complementares.
Os Testes Manuais de Segurança
Os testes manuais de segurança são muitas vezes ignorados pelos responsáveis na segurança de uma aplicação web, pois parecem apresentar resultados factíveis somente quando o técnico que realiza as análises tem um conhecimento que agrega competências em diversas práticas que vão de protocolo HTTP até programação na linguagem utilizada para o desenvolvimento da aplicação web em questão.
O motivo deste equívoco é colocar todos os testes manuais em um mesmo cenário, uma vez que existem abordagens complementares que são diferentes e devem ser adotadas de acordo com o tipo de resultado que se quer, cuja alocação de esforço pode ser dimensionada de forma pontual com resultados vantajosos. Existem dois tipos de testes que podem ser aprofundados ou enriquecidos com novos componentes, de acordo com o objeto de análise:
- Web Penetration Test: Conduzido de forma similar aos testes realizados pelos web security scanners, buscam vulnerabilidades que possam ser exploradas, porém incluem testes que não são realizados por ferramentas, tais como na lógica de negócio utilizada no produto e nos relacionamentos que possam existir entre as vulnerabilidades.
- Code Review: Foca na análise de segurança do código-fonte da aplicação web, buscando falhas que possam ser exploradas pela manipulação deste. Não só exige um bom conhecimento de programação do analista responsável, como ainda deve ser usada somente em casos específicos, tais como na avaliação contínua de releases de uma aplicação web.
Conclusão
Utilizar uma abordagem com as vantagens geradas pela amplitude de um web security scanner com a profundidade possibilitada pelos testes manuais é a melhor opção em qualquer cenário onde o objetivo seja identificar falhas de segurança em uma aplicação web, e não somente realizar um processo que seja considerado para um evento de compliance com padrões de mercado. Em resumo, a abordagem ideal deve sempre considerar três etapas mínimas:
1. Avaliação do nível de segurança por meio do uso de um web security scanner adequadamente configurado para o ambiente informatizado em questão.
2. Considerar os resultados desta avaliação como base para testes manuais, que devem não só fazer uma revisão de qualidade das vulnerabilidades identificadas, como ainda explorar falhas potenciais nos elementos de suporte envolvidos, tais como Servidores Web e Bancos de Dados.
3. Produzir relatórios de resultados que permitam ao leitor ir além das vulnerabilidades técnicas – relacionando quais são as conseqüências das mesmas para o negócio que é suportado pela aplicação web – e que contenham ações que resolvam efetivamente o problema, eliminando a vulnerabilidade e se possível, apontando a causa que deve ser posteriormente corrigida.
Estabelecer o nível de segurança de uma aplicação web somente com os resultados dos testes realizados por este tipo de ferramenta é um convite para estabelecer uma falsa sensação de segurança e deixar vulnerabilidades críticas abertas e disponíveis para serem exploradas em um ataque. Criar e manter um nível de proteção adequado em uma aplicação web é um processo, onde é necessário ir além do óbvio e conhecer não só os componentes das camadas de arquitetura, redes de dados e aplicações envolvidas. É fundamental entender como a aplicação funciona, qual é o nível de interação com os seus usuários e como falhas potenciais podem ser exploradas por pessoas que realmente queiram alocar esforços para cometer uma fraude contra o produto.
*Eduardo Neves é conselheiro de segurança do Site Blindado S/A, empresa que realiza blindagem em sites e disponibiliza o selo Site Blindado (www.siteblindado.com.br)
1 Comentários
Testes são importantes para todos os tipos de software, quanto trata-se de segurança então, pede-se atenção especial sempre, muito interessante sua postagem Eduardo, parabéns