Propostas de Estágio 2011/2012

DEI - FCTUC
Gerado a 2024-04-29 16:19:10 (Europe/Lisbon).
Voltar

Titulo Estágio

Construção de um Injector de Vulnerabilidades e Ataques em Aplicações Web

Área Tecnológica

Engenharia de Software

Local do Estágio

DEI

Enquadramento

A globalização da Internet criou um inquestionável caminho ubíquo para que as pessoas comuniquem e estabeleçam relações empresariais. Num mundo sempre em mudança a omnipresença das aplicações web no nosso estilo de vida e na nossa economia tornou-se crítica. No entanto, o desejo de atacar as aplicações web aumentou ao mesmo tempo que importantes recursos como bases de dados empresariais, dados de contas, cartões de crédito, etc. passaram a estar presentes na Web. Além disso, as aplicações web não são desenvolvidas tendo a segurança em mente e é comum serem um alvo fácil para os hackers. Tornar seguro este ambiente em constante evolução, onde novas características são adicionadas e novas tecnologias emergem a todo o momento, é uma tarefa difícil e constante. Não é, portanto, de surpreender que a situação global de segurança em aplicações web seja crítica, tendo elas um grande número de problemas de segurança [5, 20, 10, 9] e sendo bastante favorável a ataques [12, 24], o que pode ser confirmado por numerosos relatórios [4, 15]. Apesar da crescente preocupação em relação à segurança (muitas vezes sujeita a regulamentos governamentais e corporativos), muitos factores tornam difícil atingir o objectivo, tais como o enorme crescimento do mercado, a sua grande exposição a ataques e à falta de conhecimento e experiência por parte de programadores e administradores. Para contornar esta situação, novas ferramentas têm de ser desenvolvidas e novos procedimentos têm de ser melhorados e redesenhados. Eles têm de ser avaliados, verificados e validados, antes de serem colocados em produção. Esta não é uma tarefa fácil, devido à falta de mecanismos sistemáticos que permitam atestar estas medidas de segurança quando expostas num ambiente realista.

Neste projecto, combatemos o problema da segurança em aplicações web inspirados nas técnicas de injecção de falhas usadas há décadas e que têm tido um papel importante na área da fiabilidade. No nosso caso a “vulnerabilidade de segurança” + “ataque” representa o conjunto possível das “falhas” que injectamos numa aplicação e a “intrusão” é o “erro”.

Objetivo

1. Construir um corpo de conhecimento sobre vulnerabilidades de segurança em aplicações web, que possa ser usado por investigadores. Para isto é feito um estudo de campo que analise as vulnerabilidades, entretanto corrigidas, de versões anteriores de aplicações web representativas. A ideia principal é a de comparar o código deficiente com as correcções que entretanto foram feitas para o tornar seguro. O código resultante da diferença entre o código vulnerável e o código seguro (ou a falta dele) pode ser vista como a causa da vulnerabilidade. A sua caracterização e classificação é uma ferramenta valiosa para os investigadores. Desta forma, o nosso grupo possui já resultados sólidos para as vulnerabilidades mais críticas (SQL Injection e Cross Site Scripting) em aplicações escritas em PHP , Java, C# and VB.NET. Pretendemos expandir a nossa base de dados e analizar sistematicamente outras tecnologias muito usadas e outros tipos de vulnerabilidades;

2. Desenvolver uma Ferramenta de Injecção de Vulnerabilidades, a partir do nosso protótipo e baseada nos resultados do vector anterior. Esta ferramenta faz a injecção, em aplicações web, de vulnerabilidades realistas (i.e., seguindo um padrão de localização, alteração de código e distribuição, de acordo com a realidade) e é um instrumento chave em diferentes contextos:

2a. Como um bloco constituinte de uma ferramenta que combina a injecção de vulnerabilidades com ataques a essas
vulnerabilidades;
2b. Preparação de um campo de testes realistas para o treino de equipas de segurança que executam inspecção de código e testes de penetração;
2c. Avaliação de equipas de segurança num ambiente controlado, baseado no número de vulnerabilidades que conseguem encontrar, o número de falsos positivos e o tempo que demoram a executar a inspecção de código e os testes de penetração;
2d. Estimativa do número total de vulnerabilidades que ainda se encontram presentes no código, através da injecção de vulnerabilidades realistas. Isto ajudará na decisão se o software está ou não pronto a ser enviado para o mercado.

3. Desenvolver uma Ferramenta de Injecção de Ataques a partir do nosso protótipo. Esta ferramenta poderá ser de grande valor para testar variados mecanismos de contra-medidas, tais como detectores de intrusão (IDS), Firewalls, Scanners de segurança em Aplicações Web, etc., que é uma preocupação dos profissionais de segurança. Conceptualmente, uma ferramenta de injecção de ataques, é baseada na injecção de vulnerabilidades realistas que são automaticamente atacadas. Finalmente o resultado do ataque é avaliado. Para calcular o sucesso do ataque necessitamos de analisar o fluxo de informação dentro do sistema, através da colocação estratégica de pontas de prova, de uma forma o menos intrusiva possível.

Plano de Trabalhos - Semestre 1

(a) Estudo do estado da arte. (Setembro a Dezembro de 2011)

(b) Estudo sobre vulnerabilidades de segurança em aplicações web (Outubro a Dezembro de 2011)

(c) Definição de algoritmos eficientes para a detecção online de comportamentos anómalos por parte do utilizador e desenvolvimento de estratégias para responder às intrusões no contexto de uma DW. (Outubro a Novembro 2010)

(d) Propor uma arquitectura para um sistema de injecção de vulnerabilidades e ataques em aplicações Web. (Novembro a Dezembro de 2011)

(e) Escrita e defesa da proposta de dissertação (Dezembro de 2011 e Janeiro de 2012)

Plano de Trabalhos - Semestre 2

(f) Especificação da arquitectura, design, e testes (Janeiro a Março de 2012)

(g) Implementação e avaliação experimental (Fevereiro a Abril de 2012)

(h) Escrita e defesa da dissertação (Abril a Julho de 2012)

Condições

Estágio potencialmente suportado por bolsa de iniciação à investigação científica. Financiamento dependente de aprovação de fundos por entidade externa.

Observações

Estágio co-orientado por Doutor José Fonseca, professor adjunto do Instituto Politécnico da Guarda.

Orientador

Marco Vieira
mvieira@dei.uc.pt 📩