De acordo com o OWASP, uma aplicação web fica vulnerável a ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E
Para resolver esta questão, é necessário entender o conceito de ataques de Injeção, que são um risco de segurança onde um invasor envia dados maliciosos, com o objetivo de executar comandos indesejados ou acessar dados sem autorização. No contexto de aplicações web, isso geralmente ocorre no uso de SQL, LDAP, XPath ou outros sistemas de consulta de dados ou de comandos do sistema operacional.
A alternativa E está correta porque quando as consultas SQL são construídas através da concatenação direta de dados fornecidos pelo usuário, como entradas de formulários web, sem devida validação ou escape de caracteres, os atacantes podem inserir comandos SQL adicionais que serão interpretados pelo banco de dados como parte da consulta original. Isso pode levar a vazamento de dados, exclusão de registros, entre outros riscos graves.
Essa vulnerabilidade é conhecida como SQL Injection e pode ser mitigada usando práticas seguras de programação, como a utilização de declarações preparadas (prepared statements) e ORMs (Object-Relational Mapping) que automatizam o escape de caracteres e validação de dados, evitando assim a injeção de SQL através de entradas do usuário.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Ano: 2022 Banca: CESPE / CEBRASPE Órgão: TCE-RJ Prova: CESPE / CEBRASPE - 2022 - TCE-RJ - Analista de Controle Externo
Julgue o item a seguir, quanto às ferramentas e técnicas de exploração de vulnerabilidades em aplicativos web, à Open Web Application Security Project (OWASP) e às ameaças e vulnerabilidades em aplicações web.
Caso uma aplicação permita que comandos SQL sejam digitados nos inputs de seus formulários e concatenados diretamente nos comandos SQL da própria aplicação, sem que seja realizada uma validação ou tratamento antecedente, certamente essa aplicação estará vulnerável ao ataque conhecido como SQL Injection.
certa
ORM pode ser uma justificativa tanto para o ataque
- Hostile data is used within object-relational mapping (ORM) search parameters to extract sensitive records / sensitive data
como para a prevenção
- migrates to Object Relational Mapping Tools (ORMs).
Agora limit é prevenção mesmo
Ano: 2022 Banca: FGV Órgão: CGU Prova: FGV - 2022 - CGU - Auditor Federal de Finanças e Controle - Tecnologia da Informação
Considere um cenário típico de exposição de dados sensíveis: uma organização acredita estar segura ao utilizar a criptografia automática do seu banco de dados para encriptar dados financeiros sigilosos dos seus usuários, mas esquece que permite que esses dados sejam automaticamente decriptados nas operações de consulta. Um time de desenvolvedores sem experiência em desenvolvimento seguro trabalha em uma aplicação que acessa essa base de dados. Ao longo do desenvolvimento da aplicação, um tipo comum de vulnerabilidade é inserido em muitas das consultas realizadas, como no seguinte trecho:
String consultaHTTP = "SELECT \* FROM extratos WHERE id_cliente='" + request.getParameter("id") + "'";
Para mitigar o impacto dos riscos criados por esse tipo de vulnerabilidade, é possível utilizar:
Alternativas
A
protocolos como FTP ou SMTP para o transporte dos dados sensíveis da aplicação;
B
funções criptográficas fortes, como MD5 e SHA1, no mecanismo automático do banco de dados;
C
frameworks ORM como o Hibernate e linguagens de consulta como a HQL (Hibernate Query Language);
D
apenas dados fornecidos por usuários autenticados no processamento de consultas;
E
cláusulas como LIMIT nas consultas para restringir os resultados retornados.
Alternativa E! Consultas SQL são concatenadas diretamente com os dados fornecidos pelos usuários por meio de formulários web.
Os ataques de Injeção ocorrem quando um invasor consegue inserir comandos ou código malicioso em uma aplicação por meio de entradas não confiáveis, como formulários web. Ao concatenar diretamente as consultas SQL com os dados fornecidos pelos usuários, sem realizar a devida validação e sanitização desses dados, a aplicação se torna vulnerável a ataques, como a Injeção de SQL. Isso permite que o invasor execute comandos SQL não autorizados, podendo obter informações sensíveis, modificar ou excluir dados no banco de dados, ou até mesmo assumir o controle do sistema.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo