 | Nível: Intermediário developerWorks Brasil, , IBM
19/Ago/2009
Pesquisas indicam que o grande número de ataques ocorre através de vulnerabilidades apresentadas em aplicações web, a grande porcentagem desses ataques é realizada via protocolo http/S ou portas que estão freqüentemente expostas as comunidades web. Com esses fatos, é essencial que as corporações estejam em alerta para proteger suas aplicações web.
Como os aplicativos Web tornam-se cada vez mais complexos, enormes quantidades de dados sigilosos, incluindo pessoais, assistência médica e financeira, são trocados e armazenados. Os consumidores esperam e exigem ainda que estas informações sejam mantidas de maneira segura e sigilosa. Existem dois métodos para descobrir vulnerabilidades em um aplicativo Web: por meio de ensaio e invasão manual ou usando ferramentas automatizadas de varredura e análise estática. O objetivo deste trabalho é comparar os dois métodos.
Técnicas de Testes
A técnica de testes de segurança de invasão manual é um dos mais antigos métodos utilizados para descobrir vulnerabilidades em aplicações.
Á medida que a frequência dos ataques tem crescido e a complexidade das aplicações aumentado, especialistas em testes de invasão, ou "pen", têm surgido.
O seu único objetivo consiste em encontrar e explorar problemas de segurança em aplicações Web. No final dos anos 1990, as empresas começaram a desenvolver técnicas para automatizar testes em aplicações Web. Nessa época, a Web tinha se tornado mais madura, e navegadores da Web estavam começando a ser capaz de lidar com as complexidades necessárias para a dinâmica das aplicações.
O objetivo dessas ferramentas de testes automatizado foi antecipada para automatizar o processo de realizar uma varredura no aplicativo Web, injetar falhas e descobrir vulnerabilidades.
Duas categorias principais de vulnerabilidades
Geralmente, vulnerabilidades em aplicativos Web podem ser agrupados em duas categorias: técnico e lógico.
Vulnerabilidades técnicas incluem cross-site scripting (XSS), injeção falhas e buffer overflow.
Vulnerabilidades lógicas são mais difíceis de categorizar. Estas vulnerabilidades manipulam a lógica do aplicativo para fazer coisas que nunca houve a intenção de fazer. Por exemplo, no início de 2002, um hacker utilizou uma vulnerabilidade lógica para ignorar as informações pessoais exigidas para validação de usuário e senha em uma popular de correio electrônico, permitindo ao hacker trocar as senhas dos usuários.
Vulnerabilidades Técnicas
Existem mais de 70 técnicas que podem ser utilizadas para explorar XSS, uma das técnicas de vulnerabilidades mais comuns é uma típica ficha de inscrição ou cadastro na Web contém cerca de 30 elementos, cada um dos quais é potencialmente vulnerável a XSS, injeção falhas, buffer overflows ou a um inadequado erro de manuseio.
Portanto, para testar o formulário e as possíveis vulnerabilidades XSS, você precisa mais do que
2000 ensaios para verificar todos os 30 elementos contra as 70 técnicas XSS.
Tendo em conta o grande número de testes necessários para verificar as vulnerabilidades, ferramentas automatizadas são capazes de cruzar informações, analisá-las e testar as aplicações de uma maneira mais eficiente do que o teste de invasão manual, as ferramentas automatizadas não são capazes de testar 100 por cento das vulnerabilidades técnicas, mas eles podem testar para uma grande percentagem dos mesmos. As primeiras versões de ferramentas automatizadas tiveram dificuldades para lidar com determinadas questões, incluindo:
- Client-side-generated URLs
- Required Java™ Script functions.
- Application logout.
- Transaction-based systems requiring specific user paths.
- Automated form submission.
- One-time passwords.
- “Infinite” Web sites with random URL-based session IDs.
Porém as ferramentas teste automatizadas voltadas para segurança dos aplicativos Web têm amadurecido, a maioria destas questões que foram abordadas hoje já estão endereçadas e atendidas onde se têm reduzido a incidência determinações incertas (falsos positivos) e foram sanadas questões como (falsos negativos).
No entanto, como os aplicativos Web continuam a crescer em tamanho, o teste manual está ficando cada vez mais difícil. Em muitas organizações, ele se torna impossível para dedicar tempo, esforço e dinheiro para o teste manual e que o mesmo acompanhe a expansão do número de aplicações Web.
Vulnerabilidades Lógicas
Vulnerabilidades lógicas são as lacunas que podem ser explorados por compreender como funciona uma aplicação e contornar o fluxo típico do negócio.
Embora as ferramentas automatizadas e testadores qualificados possam navegar em uma aplicação Web, somente o testador é capaz de compreender a lógica por trás do fluxo de trabalho da aplicação
Este entendimento permite ao testador subverter a lógica do negócio e de expor uma vulnerabilidade de segurança.
Por exemplo, um aplicativo pode direcionar o usuário a partir do ponto A ao ponto B ao ponto C, onde o ponto B é uma validação de segurança. A revisão manual do aplicativo pode mostrar que é possível ir diretamente a partir do ponto A ao ponto C, ignorando totalmente a validação de segurança.
Tanto os testes manuais ou automatizados são métodos exaustivos de identificação de vulnerabilidades aplicação Web.
Cada método tem suas próprias forças e fraquezas inerentes, e ambos podem ser usados para descobrir vulnerabilidades críticas de segurança em aplicações web.
Ferramentas automatizadas, nunca devem substituir completamente, os testes invasão manual.
No entanto, se usados corretamente, ferramentas automatizadas podem ser usados para encontrar uma ampla gama de técnicas vulnerabilidades de segurança em aplicações Web, economizando tempo e dinheiro. Sofisticadas organizações utilizam a combinação correta de ferramentas automatizadas e ensaios de invasão manual para proporcionar uma melhor cobertura possível de segurança do aplicativo Web.
Sobre o autor
Avalie esta página
|  |