Pular para o conteúdo principal

Questão de Segurança da Informação — Testes de Segurança em Desenvolvimento (SAST e DAST) — INSTITUTO AOCP 2023

Segurança da InformaçãoTestes 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.

  1. AApenas I.
  2. BApenas II.
  3. CApenas I e III.
  4. DApenas II e III.
  5. 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.

1SAST (estático)
Analisa o código-fonte
Sem executar o programa
2DAST (dinâmico)
Não requer código-fonte
Testa em execução
3IAST (interativo)
Combina SAST + DAST
Observa em tempo real
Testes de segurança
LEVELsoulevel.com.br
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.

Gabarito: letra C — corretos os itens I e III.

Link permanente: /questoes/qa542774