Injeção de SQL em aplicações Web : causas e prevenção
Visualizar/abrir
Data
2009Orientador
Co-orientador
Nível acadêmico
Graduação
Outro título
SQL injection in web applications - causes and prevention
Assunto
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, ...
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. ...
Abstract
The information systems, specially those that are accessible through the Internet, are increasingly present in each moment of the contemporary life. Every time we buy an airfare, check our bank account ballance or access the result of a medical examination, we enjoy the convenience and the benefits brought by these systems, at the same time that we deposit our trust in their security and reliability. However, while becoming more popular, they end up being more targeted by attacks of increasing ...
The information systems, specially those that are accessible through the Internet, are increasingly present in each moment of the contemporary life. Every time we buy an airfare, check our bank account ballance or access the result of a medical examination, we enjoy the convenience and the benefits brought by these systems, at the same time that we deposit our trust in their security and reliability. However, while becoming more popular, they end up being more targeted by attacks of increasing number and sophistication. Being by it's nature applications strongly based in databases, these systems are subjected to a kind of attack, among others, known as SQL injection. The SQL injection belongs to a attack class named code injection, where user provided inputs are used as a path to the execution of arbitrary and unauthorized instructions. Using SQL injection techniques, an attacker might obtain access to classified information, change and/or erease existing data and even execute more complex commands trough the attacked SGBD's API. Although the protection against the vast majority of SQL injection attacks is quite simple, the lack of knowledge aboug good implementation practices, or even the negligence in regard to them, makes most of the systems vulnerable, in greater or lesser degree, to this type of attack. This study aims to expose the reader good practices that can be used to limit or even prevent attacks of this nature, showing also the risks incurred when certain precautions are neglected. Above all, we want to make clear the idea that these are all small efforts of very low cost at the implementation time of information systems, which can be crucial to determine the reliability of these when they are in production. In addition, you will see a sample web system, deliberately vulnerable to SQL injection, which can be used to show, from an educational perspective, to students of computer system's security courses, the practical effect of implementation of good practices presented here to fight this type of attack. ...
Instituição
Universidade Federal do Rio Grande do Sul. Instituto de Informática. Curso de Ciência da Computação: Ênfase em Ciência da Computação: Bacharelado.
Coleções
-
TCC Ciência da Computação (1024)
Este item está licenciado na Creative Commons License