Questão de Segurança da Informação — Ciclo de Vida de Desenvolvimento Seguro — INSTITUTO AOCP 2024
Segurança da Informação›Ciclo de Vida de Desenvolvimento Seguro
Código
qa632597
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )
Considerando os preceitos de Segurança da Informação, as ferramentas e tendo como premissa as técnicas de desenvolvimento de software seguro, assinale a alternativa INCORRETA.
AFerramentas do tipo SAST possuem uma incapacidade de identificar vulnerabilidades em outras camadas da aplicação, como integração com outros sistemas e bibliotecas de terceiros utilizadas no desenvolvimento do sistema, já que sua validação restringe-se ao código-fonte.
BA aplicação de técnicas para auxiliar no processo de segurança do desenvolvimento de código auxilia na redução de riscos de segurança.
CAs ferramentas do tipo SAST, além de realizarem a validação do código-fonte da aplicação estática, também realizam a análise do código em execução, muito utilizada nas fases de homologação e acompanhamento da produção do sistema.
DAs ferramentas do tipo DAST possuem uma atuação mais dinâmica no processo de análise e validação, podendo ser executadas principalmente por testes automatizados.
EAs ferramentas do tipo SAST e DAST acabam se complementando, com suas funcionalidades sendo aplicadas em momentos diferentes no ciclo de desenvolvimento de software.
Revelar gabarito e comentário▾
GabaritoC — As ferramentas do tipo SAST, além de realizarem a validação do código-fonte da aplicação estática, também realizam a análise do código em execução, muito utilizada nas fases de homologação e acompanhamento da produção do sistema.
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”.
Ferramentas de Teste de Segurança: SAST e DAST
Gabarito: letra C. A alternativa C é a INCORRETA, pois afirma que as ferramentas SAST realizam a análise do código em execução, o que é uma característica das ferramentas DAST (Dynamic Application Security Testing) ou IAST (Interactive Application Security Testing). O SAST (Static Application Security Testing) é uma abordagem de análise estática que examina o código-fonte, bytecode ou binário antes da execução, identificando vulnerabilidades sem a necessidade de rodar o programa.
O desenvolvimento seguro de software é um processo que integra práticas de segurança em todas as fases do ciclo de vida do software, desde a concepção até a manutenção. Uma das principais estratégias é a utilização de ferramentas de teste de segurança, que podem ser classificadas em diferentes categorias, cada uma com seu foco e momento de aplicação. As duas mais conhecidas são o SAST e o DAST, mas também existem o IAST e o RASP, cada uma com características específicas.
O SAST (Static Application Security Testing) é uma ferramenta de análise estática que examina o código-fonte, bytecode ou binário antes da execução, identificando vulnerabilidades sem a necessidade de rodar o programa. Ele é eficaz na detecção de falhas como injeção SQL, XSS e uso de bibliotecas vulneráveis diretamente no código. Seu principal benefício é permitir que os desenvolvedores encontrem e corrijam problemas cedo no ciclo de vida do software, reduzindo custos e riscos futuros. Algumas ferramentas populares dessa categoria incluem SonarQube, Checkmarx e Veracode.
O DAST (Dynamic Application Security Testing) realiza testes dinâmicos simulando ataques externos contra a aplicação em execução. Ele é útil para encontrar vulnerabilidades exploráveis, como falhas de autenticação e vazamento de dados, sem precisar acessar o código-fonte. Essa abordagem é essencial para validar a segurança de aplicações web e APIs, sendo complementada por ferramentas como OWASP ZAP, Burp Suite e Acunetix.
O IAST (Interactive Application Security Testing) combina técnicas de SAST e DAST, analisando a aplicação durante sua execução e fornecendo informações detalhadas sobre falhas de segurança. Essa abordagem reduz falsos positivos e fornece contexto sobre a origem dos problemas, facilitando sua correção. Ferramentas como HCL AppScan e Contrast Security são amplamente utilizadas para essa finalidade.
O RASP (Runtime Application Self-Protection) entra em ação, monitorando e protegendo aplicações em tempo real. Diferente das abordagens anteriores, que focam na detecção de vulnerabilidades, o RASP atua bloqueando ataques enquanto a aplicação está em funcionamento. Ele analisa o comportamento do software e impede a exploração de falhas sem a necessidade de atualizações emergenciais. Algumas soluções populares de RASP incluem Imperva RASP e Signal Sciences.
A distinção fundamental entre SAST e DAST está no momento da análise: o SAST analisa o código-fonte antes da execução, enquanto o DAST analisa a aplicação em execução. Essa diferença é crucial para entender a complementaridade entre as ferramentas, pois cada uma é mais adequada para identificar diferentes tipos de vulnerabilidades em diferentes fases do ciclo de desenvolvimento.
A pegadinha da banca nesta questão é justamente a inversão das características do SAST e do DAST. O candidato que não domina a diferença entre análise estática e dinâmica pode facilmente cair na armadilha de considerar correta a alternativa C, que atribui ao SAST a capacidade de analisar o código em execução. É essencial memorizar que SAST é estático (antes da execução) e DAST é dinâmico (durante a execução).
Guarde a fronteira entre análise estática e dinâmica: é exatamente nela que as alternativas se dividem. O SAST analisa o código-fonte sem executá-lo, enquanto o DAST testa a aplicação em execução. Essa distinção é o critério decisivo para identificar a alternativa incorreta.
Ferramenta
Tipo de Análise
Momento de Aplicação
Foco Principal
SAST
Estática (código-fonte, bytecode ou binário)
Antes da execução (fases iniciais do desenvolvimento)
Detecção de falhas como injeção SQL, XSS e uso de bibliotecas vulneráveis
DAST
Dinâmica (aplicação em execução)
Durante a execução (homologação e produção)
Identificação de vulnerabilidades exploráveis, como falhas de autenticação e vazamento de dados
IAST
Interativa (combina SAST e DAST)
Durante a execução, com acesso ao código
Redução de falsos positivos e fornecimento de contexto sobre a origem dos problemas
RASP
Em tempo real (proteção da aplicação em execução)
Durante a execução (runtime)
Bloqueio de ataques e prevenção da exploração de falhas sem atualizações emergenciais
Testes de segurança: SAST (estático) (Código-fonte antes da execução, Não analisa código em execução); DAST (dinâmico) (Aplicação em execução, Simula ataques externos); IAST (interativo) (Combina SAST + DAST, Análise durante execução); RASP (runtime) (Proteção em tempo real, Bloqueia ataques)
Alternativa A — ✅ Correta
A alternativa A afirma que as ferramentas SAST possuem uma incapacidade de identificar vulnerabilidades em outras camadas da aplicação, como integração com outros sistemas e bibliotecas de terceiros, já que sua validação restringe-se ao código-fonte. Isso está correto, pois o SAST analisa apenas o código-fonte, bytecode ou binário, sem executar o programa. Ele não consegue identificar vulnerabilidades que surgem da interação entre componentes, como integração com outros sistemas ou bibliotecas de terceiros, pois essas dependências não são analisadas em profundidade. Essa limitação é uma característica inerente à análise estática.
Alternativa B — ✅ Correta
A alternativa B afirma que a aplicação de técnicas para auxiliar no processo de segurança do desenvolvimento de código auxilia na redução de riscos de segurança. Isso está correto, pois o desenvolvimento seguro é um processo que visa integrar práticas de segurança em todas as fases do ciclo de vida do software, desde a concepção até a manutenção. A aplicação de técnicas como modelagem de ameaças, revisão de código, testes de segurança e uso de ferramentas automatizadas contribui para a identificação e correção de vulnerabilidades, reduzindo os riscos de segurança. Essa é uma premissa fundamental do desenvolvimento seguro.
Alternativa C — ❌ Incorreta ⟵ GABARITO
A alternativa C afirma que as ferramentas do tipo SAST, além de realizarem a validação do código-fonte da aplicação estática, também realizam a análise do código em execução, muito utilizada nas fases de homologação e acompanhamento da produção do sistema. Isso está INCORRETO, pois o SAST é uma ferramenta de análise estática que examina o código-fonte, bytecode ou binário antes da execução, sem a necessidade de rodar o programa. A análise do código em execução é uma característica do DAST (Dynamic Application Security Testing) ou do IAST (Interactive Application Security Testing). O SAST não realiza análise dinâmica, e a análise em execução é utilizada em fases de homologação e produção, mas por outras ferramentas, não pelo SAST.
Alternativa D — ✅ Correta
A alternativa D afirma que as ferramentas do tipo DAST possuem uma atuação mais dinâmica no processo de análise e validação, podendo ser executadas principalmente por testes automatizados. Isso está correto, pois o DAST (Dynamic Application Security Testing) realiza testes dinâmicos simulando ataques externos contra a aplicação em execução. Ele é útil para encontrar vulnerabilidades exploráveis, como falhas de autenticação e vazamento de dados, sem precisar acessar o código-fonte. Essa abordagem é essencial para validar a segurança de aplicações web e APIs, e pode ser executada por testes automatizados, como os realizados por ferramentas como OWASP ZAP, Burp Suite e Acunetix.
Alternativa E — ✅ Correta
A alternativa E afirma que as ferramentas do tipo SAST e DAST acabam se complementando, com suas funcionalidades sendo aplicadas em momentos diferentes no ciclo de desenvolvimento de software. Isso está correto, pois o SAST é aplicado nas fases iniciais do desenvolvimento, analisando o código-fonte antes da execução, enquanto o DAST é aplicado em fases posteriores, testando a aplicação em execução. Essa complementaridade permite uma cobertura mais abrangente de vulnerabilidades, pois cada ferramenta é mais adequada para identificar diferentes tipos de falhas em diferentes momentos do ciclo de vida do software.
Gabarito: letra C — a alternativa incorreta, pois atribui ao SAST a capacidade de análise do código em execução, característica do DAST/IAST.