Questão nº 52
Questão de Desenvolvimento de Sistemas · FGV CGU 2021 - Tarde (nº 52)
Considere o desenvolvimento de uma aplicação de tratamento de dados sensíveis. O time tem experiência com desenvolvimento seguro e elabora uma lista de verificação com foco em segurança para ser utilizada na revisão de código manual que ocorre antes de um commit. Essa lista de verificação trata exclusivamente da aplicação de boas práticas de validação dos dados de entrada das unidades do sistema.
Deveria fazer parte dessa lista verificar se:
- Atodo acesso ao banco utiliza credenciais seguras;
- Btodos os dados são validados após redirecionamentos; (alternativa correta)
- Ctodos os dados provenientes de usuários são validados após o processamento;
- Dtoda operação de registro (logging) é realizada por aplicações de terceiros (Third Party Applications);
- Eapenas falhas de validação de autenticação e autorização causam rejeição completa dos dados de entrada.
Resposta comentada
Gabarito Alternativa B
O conceito-chave é que validação de entrada deve acontecer antes de qualquer processamento ou uso do dado, e após qualquer ponto em que o dado possa ter sido alterado ou venha de uma fonte não confiável, como um redirecionamento (quando o navegador é mandado para outra página e volta com dados na URL). Validar "depois do processamento" é inútil, pois o dano já pode ter ocorrido.
- (A) Incorreta: Credenciais de banco são gestão de segredos, não validação de dados de entrada; a lista trata exclusivamente de validar entradas.
- (B) Correta: Redirecionamentos (ex.:
redirectapós login) podem trazer dados via parâmetros de URL, que são facilmente manipuláveis; por isso, todo dado recebido após um redirecionamento deve ser revalidado como se fosse nova entrada. - (C) Incorreta: Validar após o processamento é a armadilha clássica da banca: parece lógico, mas a validação deve ser antes de usar o dado; validar depois é como trancar a porta após o ladrão entrar.
- (D) Incorreta: Logging por terceiros é uma prática de auditoria/monitoramento, não de validação de entrada; além disso, não é obrigatório que todo registro seja feito por terceiros.
- (E) Incorreta: Falhas de validação de qualquer tipo (não só autenticação/autorização) devem causar rejeição dos dados; restringir a rejeição a esses dois casos deixaria vulnerabilidades como injeção SQL e XSS abertas.
Fonte: FGV CGU 2021 - Tarde Auditor Federal de Finanças e Controle - Área Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.