Última Atualização 13 de janeiro de 2021
QUESTÃO ERRADA: Os ataques de SQL Injection do tipo code injection se caracterizam por tentar modificar um comando SQL já existente mediante a adição de elementos à cláusula WHERE ou a extensão do comando SQL com operadores como UNION, INTERSECT ou MINUS.
Segundo o Navathe [1], na página 576, há 3 tipos de Sql Injection: Manipulação de SQL, Injeção de código, Injeção de chamada de função. A questão trocou os conceitos, foi descrito o tipo Manipulação de SQL e não Injeção de código (code injection). O livro define os tipos da seguinte forma:
“Manipulação de SQL: Um ataque de manipulação, que é do tipo mais comum de ataque de injeção, muda um comando SQL na aplicação – por exemplo, ao acrescentar condições a cláusula WHERE de uma consulta, ou ao expandir uma consulta com componentes de consulta adicionais, usando operações de união como UNION, INTERSECT ou MINUS.
Injeção de código: Esse tipo de ataque tenta acrescentar instruções SQL ou comandos adicionais à instrução SQL existente, explorando um bug de computador, que é causado pelo processamento de dados inválidos. O atacante pode injetar ou introduzir código em um programa de computador para alterar o curso da execução. A injeção de código é uma técnica popular para a invasão ou penetração do sistema para obter informações.
Injeção de chamada de função: Nesse tipo de ataque, uma função do banco de dados ou uma chamada de função do sistema operacional é inserida em uma instrução SQL vulnerável para manipular os dados ou fazer uma chamada privilegiada. Por exemplo, é possível explorar uma função que realiza algum aspecto relacionado à comunicação na rede.”
[1] ELMASRI, Ramez; NAVATHE, Shamkant B., Sistemas de Banco de Dados. 6. ed.
QUESTÃO ERRADA: Um ataque de SQL injection tenta explorar as características da linguagem SQL, principalmente do interpretador de comandos SQL, podendo danificar as informações armazenadas em um servidor, sem, entretanto, conseguir quebrar a confidencialidade desse conteúdo.
“(…)explorar as características da linguagem SQL(…)” ERRADO, pois explora as características da aplicação.
‘(…) sem, entretanto, conseguir quebrar a confidencialidade desse conteúdo.’ ERRADO.
Segundo Navathe (2011,p.576),”Um ataque de injeção de SQL pode prejudicar o banco de dados de diversas maneiras, como na manipulação não autorizada de dados, ou recuperação de dados confidenciais.”
Segundo Navathe (2011,p.563),”Perda de confidencialidade: A confidencialidade do banco de dados refere-se à proteção dos dados contra exposição não autorizada.”
—————————–
**Trazendo tais definições para dentro do contexto dessa questão, podemos concluir que como o SQL Injection permite a manipulação e a recuperação de dados de forma não autorizada, então ocorre sim a quebra da confidencialidade desse conteúdo.
Bibliografia: SISTEMAS DE BANCO DE DADOS-6 EDIÇÃO 2011-NAVATHE.
QUESTÃO CERTA: A injeção de SQL (SQL injection, relacionada à structured query language – linguagem de consulta estruturada) é uma técnica de injeção de código que explora a vulnerabilidade de segurança da camada de banco de dados de uma aplicação. Quando se consegue inserir uma ou mais instruções SQL dentro de uma consulta, ocorre o fenômeno.
A exploração ocorre na aplicação para atingir o banco de dados.
Segundo Navathe (2011, p.576)”Em um ataque de Injeção de SQL (SQL injection), o atacante injeta uma entrada de cadeia de caracteres pela aplicação, que muda ou manipula a instrução SQL para o proveito do atacante. Um ataque de injeção de SQL pode prejudicar o banco de dados de várias maneiras, como na manipulação não autorizada do banco de dados, ou recuperação de dados confidenciais. Ele também pode ser usado para executar comandos em nível do sistema que podem fazer o sistema negar serviço à aplicação.”
Bibliografia: Sistemas de Banco de dados – 6 edição 2011
Autor: Elmasri, Navathe