🚀 Capítulo 12: Análise Dinâmica de Segurança (DAST) (Tema: Independence Day)

NOTE

Este capítulo utiliza a temática de Independence Day para explicar o DAST. Para vencer o inimigo, precisamos atacar o escudo deles enquanto ele está ativado e funcionando!


1. 🎯 Objetivo da Aula

Compreender o que é DAST (Dynamic Application Security Testing), entendendo como ele testa o sistema em execução simulando ataques externos (caixa preta).

2. 🏢 O Cenário Prático (Seu Desafio)

No filme Independence Day, naves alienígenas gigantescas atacam a Terra. Elas possuem um escudo de força indestrutível.

  • Os cientistas não têm acesso ao “código-fonte” da nave alienígena (não podem usar SAST).
  • Eles precisam testar as defesas da nave em tempo real, atirando nela e vendo como ela reage!

No desenvolvimento de software, o DAST faz exatamente isso. Ele não lê o seu código. Ele espera o sistema estar rodando (em um ambiente de teste) e começa a “atirar” nele: envia tentativas de SQL Injection, XSS e outras pragas para ver se o sistema se defende ou se o escudo cai! Seu desafio é testar as defesas da sua nave!


🧠 Fundamentos: A Teoria Traduzida

DAST (Dynamic Application Security Testing) é um método de teste que analisa a aplicação enquanto ela está sendo executada.

📦 Teste de Caixa Preta (Black Box):

O DAST não sabe em qual linguagem o sistema foi escrito e nem como o banco de dados funciona. Ele apenas vê a interface externa (URLs, formulários, APIs) e interage com ela como se fosse um hacker real.

🆚 SAST vs DAST:

  • SAST (Estático): Lê o código-fonte parado. Encontra o erro na linha X do arquivo Y. (Visão de dentro).
  • DAST (Dinâmico): Ataca o sistema rodando. Encontra o erro na URL site.com/busca. (Visão de fora).

⚖️ Prós e Contras do DAST:

  • Prós: Encontra falhas que o SAST não pega (como erros de configuração do servidor ou problemas de autenticação). Não gera falsos positivos de código.
  • Contras: É lento (pode demorar horas). Só pode ser executado mais tarde no projeto (quando o sistema já consegue rodar).

4. 📖 Exemplo Guiado: O Ataque do Robô DAST

Uma ferramenta de DAST (como o OWASP ZAP) funciona assim:

  1. Você dá a URL do seu site de testes para ela.
  2. O robô “rasteja” (crawl) pelo site encontrando todas as páginas e formulários.
  3. O robô tenta preencher os campos com códigos maliciosos (Ex: Injetando scripts de XSS).
  4. Se a página responder de volta mostrando o script sendo executado, o DAST gera o alerta: “⚠️ Vulnerabilidade XSS encontrada na página de busca!“.

5. 🛠️ Prática Obrigatória 1: SAST ou DAST?

Diga qual ferramenta (SAST ou DAST) seria capaz de encontrar o problema em cada situação:

  1. O programador esqueceu de colocar uma regra de segurança no arquivo de configuração do servidor Nginx, permitindo que qualquer um veja os arquivos da pasta raiz.
  2. O programador escreveu uma função de login usando concatenação direta de strings no SQL (vulnerável a SQL Injection).

6. 🛠️ Prática Obrigatória 2: O Perigo em Produção

Por que o DAST NUNCA deve ser executado diretamente no site de produção (o site que os clientes reais usam todo dia)? O que aconteceria se o robô do DAST tentasse preencher um formulário de “Excluir Conta” para testar se ele funciona?


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 12 Seguranca) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

mod_12_desenvolvimento_seguro/
├── capitulos/
│   ├── capitulo_12_dast.md
│   └── codigos/
│       └── cap12/
│           └── zap_scan_results.txt

💡 Checkpoint de Lógica

O ideal é usar os dois! O SAST ajuda o programador a codificar melhor no dia a dia. O DAST garante que, quando tudo estiver junto e rodando no servidor, o sistema continue seguro.

10. 🔥 Desafio de Fixação

Pesquise sobre a ferramenta gratuita OWASP ZAP (Zed Attack Proxy), que é uma das ferramentas de DAST mais usadas no mundo.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. DAST (O SAST só lê o código da aplicação, ele não vê a configuração do servidor onde ela está rodando. O DAST testa o comportamento real do servidor).
  2. SAST (Ele lê a linha de código e já acusa o erro antes mesmo de rodar). Nota: O DAST também poderia achar se tentasse atacar o campo, mas o SAST acha mais cedo!

Capitulo Anterior | Proximo Capitulo