Questão de Segurança da Informação — Testes de Segurança em Desenvolvimento (SAST e DAST) — INSTITUTO AOCP 2023
Segurança da Informação›Testes de Segurança em Desenvolvimento (SAST e DAST)
Código
qa542774
Banca
INSTITUTO AOCP
Órgão
CODEBA
Ano
2023
Cargo
Ana Por ( )
Em relação às abordagens de testes de segurança de aplicações, analise as assertivas e assinale a alternativa que aponta a(s) correta(s).
I. SAST (Static Application Security Testing) analisa o código-fonte de uma aplicação, em busca de vulnerabilidades, sem executar o programa.
II. DAST (Dynamic Application Security Testing) requer acesso ao código-fonte e analisa o programa durante a execução em um ambiente de teste.
III. IAST (Interactive Application Security Testing) combina aspectos do SAST e do DAST, observando o código à medida que a aplicação é executada em tempo real.
AApenas I.
BApenas II.
CApenas I e III.
DApenas II e III.
EI, II e III.
Revelar gabarito e comentário▾
GabaritoC — Apenas I e III.
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”.
Testes de Segurança de Aplicações: SAST, DAST e IAST
Gabarito: letra C. Estão corretas as assertivas I e III: o SAST analisa o código-fonte sem executar o programa, e o IAST combina aspectos do SAST e do DAST, observando o código durante a execução em tempo real. A assertiva II está incorreta porque o DAST não requer acesso ao código-fonte — ele testa a aplicação em execução, simulando ataques externos, como um atacante faria.
O desenvolvimento seguro de software exige a aplicação de testes de segurança em diferentes fases do ciclo de vida da aplicação. As três abordagens mais cobradas em concursos são SAST, DAST e IAST, cada uma com características, vantagens e limitações próprias. Compreender a diferença entre elas é essencial para responder questões como esta.
SAST (Static Application Security Testing) é uma abordagem de análise estática: examina o código-fonte, bytecode ou binário antes da execução, identificando vulnerabilidades sem a necessidade de rodar o programa. É 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. Ferramentas populares: SonarQube, Checkmarx e Veracode.
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. A palavra-chave aqui é dinâmico: a aplicação precisa estar rodando para ser testada.
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.
A tabela abaixo resume as principais diferenças entre as abordagens:
Critério
SAST
DAST
IAST
Análise
Estática (código-fonte)
Dinâmica (aplicação em execução)
Interativa (código + execução)
Requer código-fonte?
Sim
Não
Sim (integra-se ao código)
Momento do teste
Antes da execução
Durante a execução
Durante a execução
Foco
Vulnerabilidades no código
Falhas exploráveis no comportamento
Vulnerabilidades com contexto
Falsos positivos
Pode gerar
Menos frequentes
Reduz significativamente
Exemplos de ferramentas
SonarQube, Checkmarx, Veracode
OWASP ZAP, Burp Suite, Acunetix
HCL AppScan, Contrast Security
A pegadinha clássica da banca é inverter a característica do DAST: afirmar que ele requer acesso ao código-fonte, quando na verdade ele testa a aplicação de fora, como um atacante faria, sem precisar do código. É exatamente esse o erro da assertiva II.
Guarde a fronteira entre as três abordagens: SAST = estático, antes de rodar, precisa do código; DAST = dinâmico, durante a execução, não precisa do código; IAST = combina os dois, durante a execução, com acesso ao código. É nessa distinção que as alternativas se dividem.
Testes de segurança: SAST (estático) (Analisa o código-fonte, Sem executar o programa); DAST (dinâmico) (Não requer código-fonte, Testa em execução); IAST (interativo) (Combina SAST + DAST, Observa em tempo real)
Item I — ✅ Correto
A assertiva está correta. O SAST é 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. É exatamente o que a assertiva descreve: "analisa o código-fonte de uma aplicação, em busca de vulnerabilidades, sem executar o programa".
Item II — ❌ Incorreto
A assertiva está incorreta porque inverte uma característica fundamental do DAST. O DAST não requer acesso ao código-fonte — ele realiza testes dinâmicos simulando ataques externos contra a aplicação em execução, como um atacante faria. A banca trocou a característica do DAST pela do SAST: enquanto o SAST precisa do código, o DAST testa a aplicação de fora, sem precisar acessá-lo.
Item III — ✅ Correto
A assertiva está correta. O IAST 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. Ele se integra diretamente ao código do aplicativo e monitora sua execução, simulando ataques reais — exatamente o que a assertiva descreve: "combina aspectos do SAST e do DAST, observando o código à medida que a aplicação é executada em tempo real".
NÃO CAIA NESSA!
A banca adora inverter as características do DAST, afirmando que ele "requer acesso ao código-fonte". Na verdade, o DAST testa a aplicação em execução, simulando ataques externos, sem precisar do código. O SAST é que analisa o código-fonte, mas sem executar o programa. Memorize: SAST = estático + código; DAST = dinâmico + sem código; IAST = combinação dos dois. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para fixar, associe cada sigla à sua palavra-chave: SAST = Stático (código, antes de rodar); DAST = Dinâmico (aplicação rodando, sem código); IAST = Interativo (combina os dois, durante a execução). Nas questões, sublinhe as palavras "estático", "dinâmico", "sem executar", "em execução" e "sem acesso ao código-fonte" — elas decidem a resposta.