Considere a seguinte situação hipotética: Uma equipe de des...

Próximas questões
Com base no mesmo assunto
Q4071615 Segurança da Informação
Considere a seguinte situação hipotética:
Uma equipe de desenvolvedores é responsável por uma API Node.js utilizada em todas as aplicações da organização. Essa API utiliza diversas dependências do Node Package Manager (NPM), incluindo bibliotecas populares para autenticação e manipulação de dados.
Durante a execução automática da esteira de CI/CD, uma nova versão (minor) de uma dependência amplamente utilizada é instalada automaticamente após um npm install, pois o package.json está configurado com " ^ ". Horas depois, a equipe de segurança cibernética notifica que essa nova versão foi comprometida por um ataque à cadeia de suprimentos, contendo código malicioso que exfiltra variáveis de ambiente.
Sua equipe não possui política formal de versionamento fixo (version pinning) nem processo estruturado de verificação de integridade de dependências para o projeto da API.
A equipe deve adotar medida(s) para prevenir riscos relacionados à cadeia de suprimentos de software.

Assinale a alternativa que representa a decisão MAIS ADERENTE às recomendações da OWASP TOP 10: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A

Fundamento decisivo: O ponto decisivo foi o uso de "^" no package.json, que permitia a entrada automática de nova versão, somado à ausência de verificação estruturada de integridade no pipeline.

Tema central: cadeia de suprimentos
Análise das alternativas
A
Certa
A alternativa A é a mais aderente porque combina controle rígido das versões com validação automatizada de segurança no CI/CD. Esse conjunto evita a atualização automática não controlada e cria verificação contínua das dependências, ao contrário das demais opções, que mantêm risco de atualização automática, dependem de checagem manual ou usam critério informal de confiança.
B
Errada
Está errada porque preserva o uso de "^", mantendo a atualização automática não rigidamente controlada que permitiu a entrada da versão comprometida. Além disso, trocar validação automatizada contínua por npm audit manual antes do deploy não implementa o controle estruturado que a base exige para dependências e CI/CD.
C
Errada
Está errada porque a substituição por um fork próprio é uma resposta pontual ao incidente específico, não a decisão mais aderente de prevenção geral para risco de cadeia de suprimentos. Falta nela a instituição dos controles estruturais cobrados pela questão: política de versions e verificação automatizada no pipeline.
D
Errada
Está errada porque usa popularidade, maturidade ou número de downloads como critério de confiança para permitir atualização automática. A base é expressa em dizer que isso é critério informal de reputação e não substitui controle técnico de versões e checagem de segurança/integridade.
Pegadinha da questão
A confusão explorada foi trocar uma medida estrutural de prevenção por soluções que parecem razoáveis, mas não resolvem o núcleo do problema: manter atualização automática com checagem manual, reagir com um fork pontual ou confiar na popularidade do pacote.
Dica para questões semelhantes
  • Se o risco vem de dependência instalada automaticamente no pipeline, procure a alternativa que reduza a variabilidade das versões e imponha validação contínua automatizada.
  • Em temas de supply chain, critério de confiança não é reputação do pacote; é controle técnico sobre versão, integridade e monitoramento.
  • Medida manual ou pontual pode até ajudar operacionalmente, mas não supera alternativa que cria controle preventivo estruturado no CI/CD.

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

A questão está relacionada ao OWASP Top 10 2021 – A06: Componentes Vulneráveis e Desatualizados (Vulnerable and Outdated Components) e também às boas práticas de segurança da cadeia de suprimentos de software (Software Supply Chain Security).

O problema é uma biblioteca nova, porém comprometida

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo