Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

SQL Injection: O que é? 
SQL Injection é uma classe de ataque onde o invasor pode inserir ou manipular consultas criadas pela aplicação, que são enviadas diretamente para o banco de dados relacional.
Por que o SQL Injection funciona?
Por que a aplicação aceita dados arbitrários fornecidos pelo usuário (“confia” no texto digitado);
As conexões são feitas no contexto de um usuário com privilégios altos.
Uma consulta SQL é uma maneira de um aplicativo se comunicar com o banco de dados.
Uma injeção SQL ocorre quando um aplicativo não consegue limpar dados não confiáveis (como dados em campos de formulário da Web) em uma consulta de banco de dados.
Um invasor pode usar comandos SQL especialmente criados para enganar o aplicativo e solicitar que o banco de dados execute comandos inesperados.
COMO FUNCIONA UM ATAQUE ?
O que um invasor pode fazer?
Ataques de SQL Injection normalmente são causadas por códigos mal escritos onde é possível a partir de consultas encontrar brechas de segurança para obtenção de dados e a partir daí conseguir as seguintes informações e realizar as seguintes ações:
ByPassing Logins 
Modificar o conteúdo de site, aplicação ou outras features;
Desligar o servidor My SQL
Exposição de registros confidenciais nas bases de dados;
Exposição do banco de dados da empresa aos concorrentes; 
Modificação de dados da organização; 
Obtenção de acesso arbitrário ao sistema operacional e à rede.
Um SQL Injection pode ser utilizado para ignorar algoritmos de login, recuperar, inserir e atualizar dados. Com uma boa política de segurança ao escrever uma query SQL pode ajudar a reduzir os ataque de SQL Injection.
SQL Injection é um tipo de ataque que explora querys SQL ruins ;
Um SQL Injection pode ser utilizado para ignorar algoritmos de login, recuperar, inserir e atualizar dados;
Ferramentas de SQL Injection incluem SQLMap, SQLPing e SQLSmack, etc;
Uma boa política de segurança ao escrever uma query SQL pode ajudar a reduzir os ataques de SQL Injection
Como evitar ataques?
A entrada do usuário nunca deve ser confiável - Sempre deve ser desinfetada antes de ser usada em instruções SQL dinâmicas.
Procedimentos armazenados - Estes podem encapsular as instruções SQL e tratar todas as entradas como parâmetros.
Declarações preparadas - Instruções preparadas para trabalhar, criando a instrução SQL primeiro e depois tratando todos os dados do usuário enviados como parâmetros. Isso não tem efeito na sintaxe da instrução SQL.
Expressões regulares - podem ser usadas para detectar possíveis códigos maliciosos e removê-los antes de executar as instruções SQL.
Direitos de acesso do usuário da conexão com o banco de dados - somente os direitos de acesso necessários devem ser concedidos às contas usadas para se conectar ao banco de dados. Isso pode ajudar a reduzir o que as instruções SQL podem executar no servidor.
Mensagens de erro - não devem revelar informações confidenciais e onde exatamente ocorreu um erro. Mensagens de erro personalizadas simples, como "Lamentamos, estamos com erros técnicos. A equipe técnica foi contatada. Por favor, tente novamente mais tarde ”pode ser usado em vez de exibir as instruções SQL que causaram o erro.
Ferramentas de automação para SQL Injection
Em sistemas mais complexos, realizar um ataque de SQL Injection manualmente pode ser mais moroso e mais complexo, dessa forma, há várias ferramentas para essa função cada qual com sua finalidade:
SQLSmack - http://www.securiteam.com/tools/5GP081P75C.html
Execução de Comando Remoto Baseada em UNIX para MSSQL. 
Permite que a partir de um nome de usuário e senhas válidos em um Microsoft SQL Server remoto possa executar comandos através de script.
SQLPing 2 - http://www.sqlsecurity.com/downloads/sqlping2.zip?attredirects=0&d=1
É uma ferramenta que envia um pacote UDP especialmente na porta 1434 no SQL Server que retornará lotes de informações úteis incluindo a versão do SQL e o Service Pack. Apresenta a capacidade de enviar consultas de difusão.
SQLMap - http://sqlmap.org/
É uma ferramenta que automatiza o processo de detecção de falhas de SQL Injection e a invasão em servidores de banco de dados. Ele faz teste de penetração e buscas no banco de dados, acesso ao sistema de arquivos subjacentes e execução de comandos no sistema operacional além de testes de conexões de banda. Baseada em phyton em seu desenvolvimento.
Referências:
https://www.devmedia.com.br/sql-injection/6102 
https://blogbrasil.westcon.com/como-proteger-os-dados-de-seus-clientes-contra-ataques-sql-injection-e-ddos
https://www.guru99.com/learn-sql-injection-with-practical-example.html

Mais conteúdos dessa disciplina