as limitações dos testes automatizados de segurança em aplicações web

4

Click here to load reader

Upload: eduardo-vianna-de-camargo-neves

Post on 09-Jun-2015

566 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: As limitações dos testes automatizados de segurança em aplicações web

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.

Page 2: As limitações dos testes automatizados de segurança em aplicações web

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.

Page 3: As limitações dos testes automatizados de segurança em aplicações web

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.

Page 4: As limitações dos testes automatizados de segurança em aplicações web

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].