Injeção de SQL em aplicações Web : causas e prevenção / SQL injection in web applications - causes and prevention

AUTOR(ES)
DATA DE PUBLICAÇÃO

2010

RESUMO

Os sistemas de informação, especialmente aqueles acessíveis através da Internet, estão cada vez mais presentes nos diferentes momentos da vida contemporânea. Seja quando compramos uma passagem aérea, consultamos nosso saldo bancário ou acessamos o resultado de um exame laboratorial, desfrutamos da comodidade e dos benefícios trazidos por estes sistemas, ao mesmo tempo em que depositamos nossa confiança na segurança e confiabilidade dos mesmos. No entanto, na mesma medida em que popularizam-se, acabam sendo visados por ataques de quantidade e sofisticação crescentes. Sendo por natureza aplicações fortemente baseadas em bancos de dados, estes sistemas estão suscetíveis a um tipo de ataque, entre outros, conhecido como injeção de SQL. A injeção de SQL pertence à classe de ataques denominados “injeção de código”, onde entradas fornecidas pelo usuário são usadas como um caminho para a execução de instruções arbitrárias e não autorizadas. Utilizando técnicas de injeção de SQL, um atacante pode obter acesso a informações confidenciais, alterar e/ou apagar dados existentes e até mesmo executar comandos mais complexos através da API do SGBD atacado. Apesar de a proteção contra a grande maioria dos ataques de injeção de SQL ser bastante simples, o desconhecimento sobre boas práticas de implementação, ou mesmo a displicência em relação às mesmas, torna a maioria dos sistemas vulneráveis, em maior ou menor grau, a este tipo de ataque. Este estudo visa expor ao leitor boas práticas que podem ser utilizadas para limitar ou mesmo impedir ataques desta natureza, mostrando também os riscos corridos quando certos cuidados são negligenciados. Sobretudo, deseja-se deixar clara a idéia de que tratam-se de pequenos esforços de baixíssimo custo, no momento da implementação de sistemas de informações, que podem ser cruciais para determinar a confiabilidade destes no momento em que estiverem em produção. Além disso, será apresentado um sistema web de exemplo, propositalmente vulnerável à injeção de SQL, que pode ser usado para mostrar, de forma didática, a estudantes de cursos da área de segurança de sistemas computacionais, os efeitos práticos da implementação das boas práticas aqui expostas no combate a este tipo de ataque.

ASSUNTO(S)

sql seguranca : computadores databases security sql injection code injection data input exploit

Documentos Relacionados