Questão de Segurança da Informação — Ciclo de Vida de Desenvolvimento Seguro — VUNESP 2023
Segurança da Informação›Ciclo de Vida de Desenvolvimento Seguro
Código
vu196949
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
É correto afirmar que a introdução de shadow code no código-fonte de aplicações web pode ser causada
Apela cópia de códigos disponíveis em fóruns ou repositórios abertos da Internet, por parte do desenvolvedor, sem respeitar verificações de segurança e diretrizes da empresa.
Bpor ataques de ransomware no computador do desenvolvedor.
Cpelo uso de editores de texto simplificados no processo de desenvolvimento, como o Bloco de Notas do Windows, ao invés de IDEs especializadas.
Ddevido ao uso de linguagens de programação estruturadas, não orientadas a objeto.
Epor times de desenvolvimento com mais de um desenvolvedor, não ocorrendo quando há apenas um desenvolvedor responsável pelo projeto.
Revelar gabarito e comentário▾
GabaritoA — pela cópia de códigos disponíveis em fóruns ou repositórios abertos da Internet, por parte do desenvolvedor, sem respeitar verificações de segurança e diretrizes da empresa.
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”.
Shadow Code e o Ciclo de Vida de Desenvolvimento Seguro
Gabarito: letra A. A introdução de shadow code (código-fantasma) no código-fonte de aplicações web é causada, tipicamente, pela cópia de códigos disponíveis em fóruns ou repositórios abertos da Internet por parte do desenvolvedor, sem respeitar verificações de segurança e diretrizes da empresa. Esse é um problema de governança e segurança no processo de desenvolvimento, diretamente ligado ao conceito de shadow IT e às boas práticas de desenvolvimento seguro, como as descritas nos controles CIS e na norma ABNT NBR ISO/IEC 27002.
O shadow code é um termo usado para designar código que entra no projeto sem passar pelos processos formais de revisão, controle de versão e aprovação de segurança da organização. Ele é a materialização, no nível do código, do conceito mais amplo de shadow IT — a prática de usar tecnologias, softwares ou serviços sem o conhecimento ou a aprovação do departamento de TI. Quando um desenvolvedor copia um trecho de código de um fórum, de um repositório público (como GitHub) ou de um blog, e o cola diretamente na aplicação, sem avaliar se aquele código é seguro, sem verificar sua licença, sem testá-lo adequadamente e sem seguir as diretrizes de codificação segura da empresa, ele está introduzindo shadow code. Esse código pode conter vulnerabilidades conhecidas, backdoors, funções maliciosas ou simplesmente não seguir os padrões de segurança da organização, criando uma superfície de ataque não gerenciada.
A segurança no desenvolvimento de software é um processo que deve estar presente em todo o ciclo de vida, desde a concepção até a manutenção. As boas práticas incluem: estabelecer um ciclo de vida de desenvolvimento seguro (como o SDL da Microsoft ou o CLASP), usar bibliotecas de padrões de projeto seguros, realizar modelagem de ameaças, treinar os desenvolvedores em práticas de codificação segura e, crucialmente, avaliar as dependências de software e mitigar possíveis riscos à segurança. O controle 16 dos Controles CIS, sobre segurança de aplicações, destaca que os desenvolvedores precisam ser treinados em conceitos de segurança e que deve haver um processo para adquirir ou avaliar software, módulos e bibliotecas de terceiros, garantindo que não apresentem falhas de segurança. A cópia indiscriminada de código da Internet viola exatamente essa diretriz.
A pegadinha desta questão está em não confundir a causa do shadow code com outras ameaças ou características do desenvolvimento. O shadow code não é um malware que infecta o computador, não é uma limitação de ferramenta de edição, não é uma consequência do paradigma de programação e não tem relação com o tamanho da equipe. É um problema de processo e de comportamento do desenvolvedor em relação à origem e à qualidade do código que ele incorpora ao projeto. A banca explora a tendência do candidato de associar qualquer problema de segurança a ataques externos (ransomware) ou a más práticas genéricas, quando a resposta correta aponta para uma falha específica e bem definida no fluxo de desenvolvimento.
Guarde o critério decisivo: shadow code é código de origem não confiável ou não aprovado que entra no projeto. É essa a fronteira que separa a alternativa correta das demais — as outras opções descrevem cenários que podem ser problemáticos, mas não são a causa direta e específica da introdução de shadow code.
Shadow code (código-fantasma): Definição (Código sem revisão formal, Sem controle de versão, Sem aprovação de segurança); Causa típica (Cópia de fóruns/repositórios abertos, Sem verificação de segurança, Sem diretrizes da empresa); Consequência (Superfície de ataque não gerenciada, Vulnerabilidades conhecidas, Backdoors/funções maliciosas); Prevenção (CIS 16) (Treinar desenvolvedores, Avaliar dependências de terceiros, Processo formal de aquisição)
Alternativa A — ✅ Correta ⟵ GABARITO
Esta é a definição precisa de shadow code. A cópia de código de fóruns e repositórios abertos, sem passar pelas verificações de segurança e pelas diretrizes da empresa, introduz código não aprovado e potencialmente vulnerável no projeto. O desenvolvedor, ao agir assim, contorna os controles de segurança do ciclo de desenvolvimento, criando uma dívida de segurança que pode ser explorada por atacantes. As boas práticas de desenvolvimento seguro exigem que todo código, especialmente o de terceiros, seja avaliado quanto a vulnerabilidades, licenças e conformidade com os padrões da organização antes de ser integrado.
Alternativa B — ❌ Incorreta
Ataques de ransomware no computador do desenvolvedor são uma ameaça à disponibilidade e integridade do ambiente de desenvolvimento, podendo criptografar ou destruir o código-fonte. No entanto, isso não é a causa da introdução de shadow code. O shadow code é um problema de origem e governança do código, não um efeito de um ataque de malware. A confusão aqui é associar qualquer problema de segurança a um ataque externo, quando a causa apontada na alternativa correta é uma falha de processo interno.
Alternativa C — ❌ Incorreta
O uso de editores de texto simplificados, como o Bloco de Notas, em vez de IDEs especializadas, pode dificultar o desenvolvimento e a detecção de erros, mas não é a causa da introdução de shadow code. A ferramenta de edição não determina a origem do código; um desenvolvedor pode copiar código inseguro da Internet tanto usando um editor simples quanto uma IDE avançada. A questão é sobre a procedência e a validação do código, não sobre a ferramenta utilizada para escrevê-lo.
Alternativa D — ❌ Incorreta
O uso de linguagens de programação estruturadas, não orientadas a objeto, é uma escolha técnica de paradigma de programação. Isso não tem relação com a introdução de shadow code. Tanto linguagens estruturadas quanto orientadas a objeto podem receber código de fontes não confiáveis. A alternativa tenta confundir o candidato com um fator técnico irrelevante para o problema de governança de código.
Alternativa E — ❌ Incorreta
O shadow codenão está relacionado ao tamanho da equipe. Um único desenvolvedor pode copiar código inseguro da Internet, assim como uma equipe grande pode ter processos falhos que permitam a entrada de código não aprovado. A alternativa inverte a lógica: o problema não é a quantidade de pessoas, mas a existência e o cumprimento de processos de segurança no desenvolvimento. A ausência de controles pode ocorrer tanto em equipes pequenas quanto grandes.
NÃO CAIA NESSA!
A banca tenta fazer você associar shadow code a ameaças externas (ransomware) ou a más práticas genéricas (editor simples, paradigma de programação, tamanho da equipe). A armadilha é pensar que qualquer problema de segurança vem de um ataque ou de uma limitação técnica. Na verdade, shadow code é um problema de processo interno: código de origem não confiável que entra no projeto sem passar pelos controles de segurança. Lembre-se: a causa está na origem do código e na falta de verificação, não em fatores externos ou ferramentas.
PEGA ESSA DICA!
Para questões sobre shadow code ou shadow IT, pergunte-se sempre: "qual é a origem do recurso/código e ele passou pelos processos formais da organização?". Se a resposta for "não", é shadow. Essa é a chave para diferenciar de outros problemas de segurança. Nos estudos, relacione shadow code diretamente ao controle de dependências de software e à avaliação de código de terceiros, temas recorrentes em provas de segurança no desenvolvimento.