SAST e DAST

SAST (Static Application Security Testing) e DAST (Dynamic Application Security Testing) representam duas metodologias fundamentais e complementares no campo da segurança de aplicações, cada uma com abordagens distintas mas igualmente importantes para identificação de vulnerabilidades. O SAST opera através da análise estática do código-fonte, bytecode ou binários sem executar a aplicação, examinando o código em busca de padrões que indiquem vulnerabilidades potenciais como SQL injection, XSS, buffer overflows e falhas de lógica de negócio. Esta abordagem "white-box" permite identificar problemas no início do ciclo de desenvolvimento (shift-left security), fornecendo aos desenvolvedores feedback preciso sobre a localização exata do código vulnerável. Por outro lado, o DAST simula ataques reais contra a aplicação em execução, testando-a de forma "black-box" como um atacante externo faria, sem acesso ao código-fonte. Esta técnica revela vulnerabilidades que só se manifestam em runtime, como falhas de configuração, problemas de autenticação e autorização, e vulnerabilidades que surgem da interação entre diferentes componentes. Quando implementados juntos em uma estratégia integrada de DevSecOps, SAST e DAST cobrem blind spots um do outro, criando uma defesa em profundidade que detecta tanto vulnerabilidades introduzidas durante o desenvolvimento quanto aquelas que emergem durante a execução da aplicação em ambientes reais.

SAST: Análise Estática

SAST examina código-fonte, bytecode ou binários sem executar a aplicação, identificando vulnerabilidades durante desenvolvimento.

Vantagens SAST

  • Early detection: Encontra bugs antes de deployment
  • Code coverage: Analisa 100% do código, incluindo paths não executados
  • Root cause: Mostra linha exata do código vulnerável
  • No runtime needed: Não precisa aplicação rodando
  • CI/CD integration: Automação em pipeline de build

Limitações SAST

  • False positives altos - precisa tuning
  • Não detecta vulnerabilidades de configuração
  • Não testa lógica de negócio em runtime
  • Language-specific - cada linguagem precisa scanner próprio

Ferramentas SAST

  • SonarQube: Open-source, suporta 25+ linguagens
  • Checkmarx: Enterprise-grade, SAST líder de mercado
  • Fortify: Micro Focus, análise profunda
  • Semgrep: Open-source, regras customizáveis
  • Bandit (Python): Específico para Python
  • Brakeman (Ruby): Rails security scanner

DAST: Análise Dinâmica

DAST testa aplicação em execução, simulando ataques reais através de black-box testing, sem acesso ao código-fonte.

Vantagens DAST

  • Runtime testing: Testa aplicação como atacante real
  • Configuration issues: Detecta falhas de configuração
  • Low false positives: Vulnerabilidades confirmadas exploitáveis
  • Language-agnostic: Funciona para qualquer stack
  • Production-like: Testa em ambiente similar a produção

Limitações DAST

  • Late detection - vulnerabilidades encontradas após código pronto
  • Code coverage limitado - só testa fluxos acessíveis
  • Sem detalhes de código - não mostra linha vulnerável
  • Requer aplicação deployada e rodando

Ferramentas DAST

  • OWASP ZAP: Open-source, proxy interceptor
  • Burp Suite: Industry standard, professional scanner
  • Acunetix: Automated web vulnerability scanner
  • Netsparker: Proof-based scanning
  • AppScan: IBM enterprise solution

SAST + DAST: Estratégia Combinada

Usar SAST e DAST juntos cobre blind spots de cada abordagem, criando programa de AppSec robusto.

      # Pipeline CI/CD com SAST + DAST
      stages:
      - build
      - sast
      - test
      - dast
      - deploy
      sast_scan:
      stage: sast
      script:
      - semgrep --config=auto --json -o sast-results.json
      - sonar-scanner
      artifacts:
      reports:
      sast: sast-results.json
      dast_scan:
      stage: dast
      script:
      - docker run -t owasp/zap2docker-stable zap-baseline.py
      -t https://staging.app.com -r dast-report.html
      artifacts:
      reports:
      dast: dast-report.html
      

IAST: Interactive Application Security Testing

IAST combina SAST e DAST, instrumentando aplicação para monitorar em runtime, obtendo code coverage de SAST com runtime accuracy de DAST.

  • Contrast Security: Líder em IAST, agents embarcados
  • Seeker (Synopsys): Runtime analysis com code insight
  • Hdiv Security: Runtime application self-protection

Integração DevSecOps

  • SAST em pre-commit hooks e pull requests
  • DAST em staging environments antes de produção
  • Quality gates: bloquear builds com vulnerabilidades críticas
  • Developer feedback loops: integrar com IDEs (SonarLint)
  • Vulnerability management: centralizar achados em plataforma única

Recomendações

Implemente SAST cedo no SDLC (shift-left) e DAST em ambientes de staging. Tune ferramentas para reduzir false positives - foco em vulnerabilidades críticas primeiro. Considere IAST para aplicações críticas. Automatize tudo no pipeline CI/CD e crie feedback loops rápidos para developers.