Saltearse al contenido

SAST / DAST

SAST y DAST son las dos familias de pruebas de seguridad de aplicaciones automatizadas: la primera analiza el código desde dentro (caja blanca), la segunda ataca la app en ejecución desde fuera (caja negra). Se complementan: ninguna por sí sola encuentra todo.

Qué analiza el código fuente/bytecode SIN ejecutarlo (caja blanca)
Encuentra inyección, XSS, hardcoded secrets, patrones inseguros, flujos de datos peligrosos
Cuándo en el IDE, en el PR y en el CI (shift-left, feedback rápido)
Limitación no ve fallos de runtime/configuración; genera FALSOS POSITIVOS (hay que tunear)
Qué ataca la aplicación EN EJECUCIÓN desde fuera (caja negra), como un atacante
Encuentra fallos observables en runtime: configuración, auth, inyección explotable, headers
Cuándo en staging/QA (y controlado en prod); más lento, menos cobertura de código
Limitación no ve el código; cobertura depende de poder "recorrer" toda la app (crawling/auth)
IAST instrumenta la app (agente) y observa durante los tests -> combina ventajas
menos falsos positivos, pero requiere instrumentación
SAST caja blanca, temprano, mucho código, más FP
DAST caja negra, tardío, runtime real, menos FP pero menos cobertura
-> usar AMBOS + SCA (dso-deps) + secretos (dso-secrets) en el pipeline
SAST Semgrep (reglas, rápido), CodeQL (consultas potentes), SonarQube, Bandit (py), gosec
DAST OWASP ZAP (open-source), Burp Suite (ver tool-burp), Nuclei (ver tool-nuclei)
IAST agentes comerciales (Contrast, etc.)
- SAST en el PR: solo diferencial (nuevo código) para no ahogar en deuda histórica
- reglas a medida (Semgrep) para patrones propios de la organización
- triage de falsos positivos; marcar y suprimir con justificación y caducidad
- DAST autenticado (con credenciales de prueba) para cubrir zonas tras login
  • SAST temprano (IDE/PR) + DAST en staging + IAST donde aporte; nunca una sola técnica.
  • Tunear agresivamente los falsos positivos: un SAST ruidoso se acaba ignorando.
  • Reglas propias (Semgrep/CodeQL) para los patrones de riesgo específicos del código.
  • Integrar con SCA (Dependencias & SCA) y secretos (Gestión de secretos) como parte del gate de CI (Seguridad en CI/CD).
  • CodeQL ha encontrado clases enteras de vulnerabilidades (variant analysis) en proyectos open-source grandes.
  • Semgrep es estándar para reglas de secure coding en pipelines por su velocidad y bajo FP.
  • Fallos de runtime/config que SAST no ve (headers, auth) son los que DAST captura en staging.
  • SAST en IDE/PR (diferencial) y en CI con gate
  • Reglas a medida (Semgrep/CodeQL) para patrones propios
  • DAST en staging, autenticado para cubrir tras login
  • IAST donde la instrumentación aporte
  • Triage y supresión de falsos positivos con caducidad
  • Combinar con SCA (Dependencias & SCA) y secretos (Gestión de secretos)
  • Resultados en el PR (feedback) y panel de postura