Questão de Segurança da Informação — Testes de Segurança em Desenvolvimento (SAST e DAST) — CESPE / CEBRASPE 2023
- Código
- ce398045
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Cargo
- Ana TI ( )
- CCerto
- EErrado
GabaritoC — Certo
✅ CERTO. A afirmação está correta: o DAST (Dynamic Application Security Testing) é uma abordagem de caixa preta, que testa a aplicação em execução sem acesso ao código-fonte, enquanto o SAST (Static Application Security Testing) é uma abordagem de caixa branca, que analisa o código-fonte durante a fase de desenvolvimento. Essa é a distinção clássica entre as duas técnicas de teste de segurança de aplicações.
O SAST e o DAST são duas das principais categorias de ferramentas de segurança de aplicações, ao lado do IAST e do RASP. A diferença fundamental entre eles está no momento em que o teste é aplicado e no nível de acesso ao código interno da aplicação. O SAST é um teste estático: ele examina o código-fonte, bytecode ou binário antes da execução, identificando vulnerabilidades sem precisar rodar o programa. Por isso, é aplicado durante o desenvolvimento, permitindo que os desenvolvedores corrijam problemas cedo no ciclo de vida do software, reduzindo custos e riscos futuros. Já o DAST é um teste dinâmico: ele simula ataques externos contra a aplicação em execução, buscando 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 em um ambiente mais próximo do real.
A nomenclatura "caixa preta" e "caixa branca" vem da engenharia de software e se refere ao nível de conhecimento interno que o testador possui. No teste de caixa preta, o testador não tem conhecimento da implementação interna — ele enxerga apenas as entradas e saídas do sistema, como um atacante externo. No teste de caixa branca, o testador tem total conhecimento da estrutura interna, incluindo o código-fonte, diagramas e configurações, permitindo uma análise mais profunda e direcionada. Essa distinção é exatamente o que a questão descreve.
Na prática, um exemplo ajuda a fixar: imagine uma aplicação web de e-commerce. Um teste SAST (caixa branca) analisaria o código-fonte da aplicação, procurando por padrões inseguros, como concatenação de strings em consultas SQL (que pode levar a injeção SQL) ou uso de bibliotecas desatualizadas com vulnerabilidades conhecidas. Já um teste DAST (caixa preta) executaria a aplicação e enviaria requisições maliciosas, como tentativas de injeção SQL no campo de busca, para verificar se a aplicação está vulnerável a ataques reais, sem nunca olhar o código-fonte. Ferramentas populares de SAST incluem SonarQube, Checkmarx e Veracode; de DAST, OWASP ZAP, Burp Suite e Acunetix.
A pegadinha que a banca poderia explorar é inverter os conceitos, afirmando que o SAST é caixa preta e o DAST é caixa branca, ou que o DAST analisa o código-fonte. Nesta questão, porém, a afirmação está perfeitamente alinhada com a definição técnica. Guarde a fronteira: SAST = estático + caixa branca + durante o desenvolvimento + acesso ao código; DAST = dinâmico + caixa preta + aplicação em execução + sem acesso ao código. É exatamente nessa fronteira que as questões sobre o tema se dividem.
A afirmação está correta porque descreve com precisão as duas técnicas. O DAST é uma abordagem de caixa preta, pois testa a aplicação em execução simulando ataques externos, sem acesso ao código-fonte. O SAST, por sua vez, é uma abordagem de caixa branca, pois analisa o código-fonte durante a fase de desenvolvimento, antes da execução. A tabela abaixo resume a comparação:
Técnica | Tipo de Teste | Momento de Aplicação | Acesso ao Código |
|---|---|---|---|
SAST | Caixa Branca (White-box) | Durante o desenvolvimento | Sim |
DAST | Caixa Preta (Black-box) | Com a aplicação em execução | Não |
A banca cobrou exatamente a definição canônica das duas ferramentas, sem qualquer inversão de conceitos. Portanto, o item está CERTO.
Gabarito: ✅ CERTO (letra C).
Link permanente: /questoes/ce398045