Questão de Segurança da Informação — Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.) — INSTITUTO AOCP 2024
Segurança da Informação›Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
qa632722
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
No ambiente do Ministério da Gestão e da Inovação, houve a implantação de um sistema que contém falhas que permitem injeção SQL.
Qual é o resultado potencial de uma injeção SQL bem-sucedida em um sistema?
AAcesso apenas a informações de baixa sensibilidade.
BExecução de ações maliciosas no banco de dados.
CAlteração temporária das configurações do firewall.
DMelhoria na eficiência da consulta SQL.
ERestrição do acesso a recursos do sistema.
Revelar gabarito e comentário▾
GabaritoB — Execução de ações maliciosas no banco de dados.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Injeção de SQL (SQL Injection)
Gabarito: letra B. Uma injeção SQL bem-sucedida permite ao atacante executar ações maliciosas no banco de dados, como ler, modificar ou excluir dados, e até obter controle total do servidor em alguns casos. Essa é a consequência central do ataque, que explora falhas na validação das entradas do usuário para manipular as consultas SQL enviadas à base de dados.
A injeção de SQL (SQLi) é uma das vulnerabilidades mais críticas em aplicações web. Ela ocorre quando dados fornecidos pelo usuário são incorporados diretamente em consultas SQL sem a devida validação, filtragem ou parametrização. O atacante insere comandos SQL maliciosos em campos de formulários, URLs ou outros pontos de entrada, alterando a lógica da consulta original. O objetivo é interferir nas consultas que a aplicação faz ao banco de dados, permitindo visualizar dados que não deveria acessar, modificar ou deletar informações, e, em cenários mais graves, executar comandos administrativos no servidor.
O impacto de uma injeção SQL bem-sucedida é amplo e severo. O atacante pode obter acesso a dados sigilosos de outros usuários, como senhas, informações pessoais e financeiras. Pode também modificar ou excluir dados, causando alterações persistentes no conteúdo ou comportamento da aplicação. Em bancos de dados com privilégios elevados, é possível até mesmo obter acesso root ao sistema operacional, comprometendo toda a infraestrutura. A gravidade depende das permissões da conta usada pela aplicação para acessar o banco e da configuração do servidor.
A prevenção da injeção de SQL envolve práticas como o uso de consultas parametrizadas (prepared statements), que separam os dados dos comandos SQL, a validação rigorosa das entradas e o escape adequado de caracteres especiais. Essas medidas impedem que o atacante consiga injetar código malicioso nas consultas. É importante destacar que firewalls não impedem a injeção de SQL sozinhos, pois o ataque explora a confiança excessiva na entrada do usuário, não falhas de rede.
A banca explora a confusão entre o resultado de uma injeção SQL e os efeitos de outros tipos de ataque. O candidato pode ser tentado a escolher alternativas que descrevem impactos de ataques como XSS (que afeta o navegador do usuário) ou CSRF (que força ações em sessões autenticadas). A chave é lembrar que a injeção SQL tem como alvo direto o banco de dados, permitindo a execução de ações maliciosas sobre os dados armazenados.
Injeção SQL (SQLi): Causa (Entrada do usuário sem validação, Consulta SQL manipulada); Resultado (Ler dados indevidos, Modificar/excluir dados, Executar comandos administrativos, Comprometer o servidor); Prevenção (Consultas parametrizadas, Validação de entradas, Escape de caracteres)
Alternativa A — ❌ Incorreta
A injeção SQL não se limita a acessar informações de baixa sensibilidade. Pelo contrário, o atacante pode acessar qualquer dado armazenado no banco de dados, incluindo informações altamente sensíveis, como credenciais, dados financeiros e informações pessoais de todos os usuários. A gravidade do acesso depende das permissões da conta usada pela aplicação, mas não há restrição inerente a dados de baixa sensibilidade.
Alternativa B — ✅ Correta ⟵ GABARITO
A execução de ações maliciosas no banco de dados é exatamente o resultado potencial de uma injeção SQL bem-sucedida. O atacante pode inserir comandos SQL arbitrários, permitindo ler, modificar, inserir ou excluir dados, além de executar operações administrativas no banco. Isso pode levar à exfiltração de dados, corrupção de informações e, em casos extremos, ao comprometimento total do servidor.
Alternativa C — ❌ Incorreta
A alteração das configurações do firewall não é um resultado direto da injeção SQL. O ataque visa o banco de dados, não a infraestrutura de rede. Embora um atacante possa, em cenários muito específicos, usar a injeção SQL para executar comandos no sistema operacional e tentar modificar configurações, isso não é o resultado típico ou esperado do ataque. A alternativa descreve um impacto de outro tipo de ataque, como um ataque à rede ou ao sistema operacional.
Alternativa D — ❌ Incorreta
A injeção SQL não melhora a eficiência das consultas SQL. Pelo contrário, ela corrompe a lógica das consultas, podendo causar erros, lentidão ou até indisponibilidade do sistema. O objetivo do atacante é explorar a vulnerabilidade para obter acesso indevido, não otimizar o desempenho do banco de dados. A alternativa confunde o ataque com uma prática legítima de otimização de consultas.
Alternativa E — ❌ Incorreta
A injeção SQL não restringe o acesso a recursos do sistema; ela faz o oposto. O ataque amplia o acesso do atacante, permitindo que ele visualize e manipule dados que normalmente não poderia acessar. A restrição de acesso é uma medida de segurança, não uma consequência do ataque. A alternativa descreve o efeito de um controle de acesso eficaz, não o resultado de uma vulnerabilidade explorada.