Questão de Segurança da Informação — Ciclo de Vida de Desenvolvimento Seguro — CESPE / CEBRASPE 2023
- Código
- ce397912
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Cargo
- Ana TI ( )
- CCerto
- EErrado
GabaritoE — Errado
❌ ERRADO. A afirmação está incorreta: a fase de implementação contempla sim a aplicação de testes de segurança com o uso de soluções para análise de código, como ferramentas de análise estática (SAST) e análise dinâmica (DAST). O desenvolvimento seguro integra segurança em todas as fases do ciclo de vida, e a implementação é justamente onde se aplicam testes automatizados de segurança no código. A banca tenta induzir o candidato a acreditar que testes de segurança só ocorrem em fases posteriores, mas isso contraria as boas práticas de segurança.
O ciclo de vida de desenvolvimento seguro (Secure Development Lifecycle – SDL) é uma abordagem que incorpora a segurança desde a concepção até a manutenção do software. Diferentemente do modelo tradicional, onde a segurança é tratada apenas no final, o SDL prevê atividades de segurança em todas as fases: requisitos, design, implementação, testes, implantação e manutenção. Na fase de implementação, especificamente, espera-se que a equipe de desenvolvimento utilize ferramentas de análise de código para identificar vulnerabilidades precocemente, como análise estática (SAST – Static Application Security Testing), que examina o código-fonte sem executá-lo, e análise dinâmica (DAST – Dynamic Application Security Testing), que testa a aplicação em execução simulando ataques.
A norma ISO/IEC 27001, em seu controle 8.29 (Testes de segurança em desenvolvimento e aceitação), estabelece que "processos de teste de segurança devem ser definidos e implementados no ciclo de vida do desenvolvimento". Isso reforça que os testes de segurança não são exclusivos de uma fase, mas permeiam todo o processo. Além disso, o OWASP SAMM (Software Assurance Maturity Model) e o CLASP (Comprehensive, Lightweight Application Security Process) são metodologias que preveem a verificação de vulnerabilidades com ferramentas automatizadas de análise de código durante o desenvolvimento.
Na prática, um desenvolvedor que está codificando uma funcionalidade deve, ao finalizar, executar uma ferramenta de análise estática para verificar se há falhas como injeção de SQL, XSS ou buffer overflow. Essas ferramentas são integradas ao ambiente de desenvolvimento (IDE) ou ao pipeline de CI/CD, permitindo que os testes sejam aplicados continuamente. Portanto, a afirmação de que a implementação "contempla a aplicação de testes de segurança sem o uso de soluções para análise de código" é duplamente errada: primeiro, porque a implementação contempla testes de segurança; segundo, porque esses testes usam soluções de análise de código.
A pegadinha da banca está em inverter a relação: ela afirma que os testes são aplicados sem o uso de ferramentas de análise, quando na verdade essas ferramentas são essenciais e amplamente utilizadas. O candidato que não conhece as práticas de desenvolvimento seguro pode ser levado a acreditar que a análise de código é uma atividade separada, realizada apenas em fases de auditoria ou após a implantação. No entanto, a segurança deve ser "shift-left", ou seja, antecipada para as fases iniciais do desenvolvimento, e a implementação é um ponto crítico para a aplicação de testes automatizados.
A banca explora a inversão do uso de ferramentas de análise de código na fase de implementação. O candidato pode pensar que testes de segurança são feitos apenas em fases posteriores (como na fase de testes), mas a implementação já exige a aplicação de testes com ferramentas automatizadas, como SAST e DAST. Lembre-se: segurança é contínua, não uma etapa isolada.
A afirmação está errada porque a fase de implementação contempla a aplicação de testes de segurança com o uso de soluções para análise de código. As ferramentas de análise estática (SAST) e dinâmica (DAST) são amplamente utilizadas durante a codificação para identificar vulnerabilidades precocemente. O erro está na palavra "sem", que inverte o que ocorre na prática: os testes de segurança usam essas soluções, não as dispensam.
Gabarito: ❌ ERRADO (letra E)
Link permanente: /questoes/ce397912