as limitações dos testes automatizados de segurança em aplicações web
TRANSCRIPT
As Limitações dos Testes Automatizados de Segurança em Aplicações Web
por Eduardo Vianna de Camargo Neves
03 de novembro de 2011
O Cenário de Insegurança
De acordo com o relatório “State of Web Application Security” publicado pelo Ponemom
Institute em abril de 20101, 70% dos entrevistados nesta pesquisa informaram que não
acreditam que as empresas onde trabalham alocam os recursos necessários para adequar a
segurança das aplicações web, e 34% das vulnerabilidades identificadas não são corrigidas. Os
resultados dessa amostragem podem ser ainda comparados com dados do Gartner Group que
posiciona 75% dos ataques realizados tendo como alvo este tipo de componente e os
crescentes casos de vazamentos de informações como resultados de ataques contra aplicações
web2.
Como resposta a este cenário, as empresas realizam testes de segurança em suas aplicações
web como parte de um processo de melhoria, onde uma ou mais abordagens podem ser
empregadas para identificar vulnerabilidades e apresentar recomendações que aumentem o
nível de proteção destes componentes. Porém, as falhas continuam a ser identificadas e quando
chegam ao público, colocam as empresas afetadas em situações onde suas marcas são
negativamente expostas e a chance de retaliação legal de Governos e pessoas é real3.
Um dos diversos motivos que geram este tipo de situação, é a falta de entendimento entre a
abordagem que deve ser utilizada para conduzir os testes de segurança e os resultados
esperados. Além da quantidade de esforço alocado ser proporcional à efetividade na
identificação de vulnerabilidades – e muitas vezes este fator ignorado – existem diferentes
formas de testes a serem conduzidos.
Além da óbvia semântica que diferencia testes automatizados ou manuais, a forma de uso
destas abordagens e o entendimento dos resultados gerados, são aspectos fundamentais para
uma avaliação de segurança adequada e resultados que possam efetivamente ser utilizados
para elevar o nível de proteção em uma aplicação web.
O Papel dos Testes de Segurança Automatizados
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 web site e comparando os resultados obtidos com suas
bases de dados, onde comportamentos que indicam vulnerabilidades potenciais e apresentando
os resultados em um relatório configurado para estabelecer níveis de criticidade, auxiliando os
1Disponível após registro em http://www.imperva.com/resources/analyst.html
2Dados disponíveis após assinatura em http://www.gartner.com/technology/home.jsp
3Como ocorrido recentemente com a AT&T, conforme notícia publicada pelo Portal G1 em
http://g1.globo.com/tecnologia/noticia/2010/06/site-diz-que-falha-em-ipad-vazou-dados-sigilosos-de-114-
mil-usuarios.html.
Camargo Neves RMS
As Limitações dos Testes Automatizados de Segurança em Aplicações Web Página 2
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.: falha de autenticação) e vulnerabilidades que estejam
presentes em bases de dados (ex.: abertura para execução de exploits em PHP).
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, e o 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 opção 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 falso
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, devem ser adotadas de acordo
com o tipo de resultado que se quer e cuja alocação de esforço pode ser dimensionada de
forma pontual com resultados vantajosos.
Camargo Neves RMS
As Limitações dos Testes Automatizados de Segurança em Aplicações Web Página 3
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 que utilize 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:
Avaliação do nível de segurança através do uso de um web security scanner
adequadamente configurado para o ambiente informatizado em questão.
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.
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 criticas 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.
Camargo Neves RMS
As Limitações dos Testes Automatizados de Segurança em Aplicações Web Página 4
Sobre o Autor
Eduardo V. C. Neves, CISSP, trabalha com Segurança da Informação desde 1998. Iniciou sua
carreira profissional em uma das principais empresas de consultoria do mercado brasileiro,
posteriormente trabalhando como executivo de uma empresa Fortune 100 por quase 10 anos. Em
2008 fundou uma das primeiras empresas nacionais especializada em Segurança de Aplicações e
hoje se dedica a prestar serviços de consultoria nas práticas de Risk Management e Business
Continuity. Serve ainda como voluntário no OWASP e (ISC)2 e contribui para iniciativas de
evangelização nas práticas de proteção da informação para federações e associações no Brasil.
Pode ser contatado pelo e-mail [email protected].