Algoritmo eficiente de análise estática para procurar ataques do tipo variáveis contaminadas

AUTOR(ES)
DATA DE PUBLICAÇÃO

2010

RESUMO

Ataques do tipo variáveis contaminadas ocorrem quando entradas de programas são manipuladas maliciosamente a afim de explorar falhas de segurança inerentes ao software afetado. Ataques deste tipo são comuns em linguagens de scripts como PHP, originadas no lado do servidor. Em 1997, Orbaek e Palsberg formalizaram o problema de detectar essas explorações como uma instância de verificação de tipo e mostraram que um algoritmo com complexidade de tempo O(V3) é capaz de resolver o problema. Um algoritmo similar foi implementado dez anos depois pela ferramenta open source Pixy para encontrar falhas de segurança em programas PHP. Este trabalho mostra que o mesmo problema pode ser resolvido em tempo O(V2). A solução proposta utiliza uma representação intermediária chamada e-SSA (extended Static Single Assignment) proposta por Bodik et al. em 2000. Essa representação pode ser computada eficientemente e permite que o problema seja tratado como um problema de alcance em grafos, onde arestas modelam dependências de dados entre variáveis de programas. Usando a mesma infra-estrutura de implementação, foi comparada a técnica proposta neste trabalho com e-SSA e a técnica que utiliza análise de fluxo de dados (data-flow). Ambas as abordagens possuem a mesma eficácia e foram capazes de detectar 36 vulnerabilidades em programas PHP conhecidos. Nos experimentos é possível observar que a abordagem proposta neste trabalho tem um melhor desempenho que o algoritmo utilizando data-flow. As falhas de segurança encontradas foram reportadas e a implementação do algoritmo proposto está disponível para o compilador de PHP open source phc.

ASSUNTO(S)

computação teses. algoritmos teses. compiladores (programas de computador) teses.

Documentos Relacionados