Tema 19
Las pruebas automatizadas de seguridad permiten detectar problemas de código, dependencias, configuración e infraestructura antes de producción. Su valor depende de ubicarlas bien, reducir ruido y convertir hallazgos en correcciones.
La automatización es una pieza central de DevSecOps. Permite ejecutar controles de forma repetible en cada cambio, reducir dependencia de revisiones manuales y ofrecer feedback rápido a los equipos.
Sin embargo, automatizar no significa bloquear todo. Una estrategia madura define qué pruebas se ejecutan, en qué etapa, qué hallazgos bloquean, cómo se gestionan falsos positivos y cómo se corrigen las causas de fondo.
En este tema veremos las principales técnicas de pruebas automatizadas y cómo integrarlas sin generar ruido operativo.
Cada técnica observa una parte distinta del sistema. Ninguna herramienta cubre todo.
| Técnica | Analiza | Detecta |
|---|---|---|
| SAST | Código fuente | Patrones inseguros, inyecciones, mal uso de APIs |
| DAST | Aplicación en ejecución | Fallos observables desde el exterior |
| SCA | Dependencias | Vulnerabilidades y licencias en componentes |
| IaC scanning | Terraform, Kubernetes YAML, plantillas cloud | Configuraciones inseguras antes de desplegar |
| Secret scanning | Código, commits, imágenes y logs | Credenciales expuestas |
| Policy as code | Manifiestos, planes y recursos | Violaciones de políticas definidas |
SAST, Static Application Security Testing, analiza código sin ejecutarlo. Busca patrones que pueden indicar vulnerabilidades o malas prácticas.
Puede detectar:
DAST, Dynamic Application Security Testing, prueba una aplicación en ejecución desde fuera. No necesita ver el código; interactúa con endpoints, formularios y APIs.
Puede detectar:
DAST debe ejecutarse en ambientes controlados para evitar daño, ruido o pruebas contra producción sin autorización.
IaC scanning analiza infraestructura como código antes de crear recursos. Permite detectar configuraciones inseguras temprano.
Ejemplos de hallazgos:
Secret scanning busca credenciales en código, historial Git, imágenes, logs y artefactos. Debe actuar rápido porque un secreto filtrado debe considerarse comprometido.
Buenas prácticas:
Policy as code define reglas de seguridad, cumplimiento y operación en archivos versionados. Permite validar cambios de forma automática y consistente.
| Uso | Ejemplo de política | Resultado |
|---|---|---|
| Cloud | Todo almacenamiento debe tener cifrado | Bloquea recursos inseguros antes de crear |
| Kubernetes | No permitir pods privilegiados | Evita configuraciones de alto riesgo |
| CI/CD | Producción requiere aprobación | Controla cambios críticos |
| Registry | Solo imágenes firmadas y de registries aprobados | Reduce artefactos no confiables |
La misma prueba puede tener distinto comportamiento según la etapa. En etapas tempranas conviene feedback rápido; cerca de producción conviene mayor rigor.
| Etapa | Pruebas recomendadas | Modo |
|---|---|---|
| Pre-commit | Secret scanning, linters, reglas rápidas | Feedback inmediato |
| Pull request | SAST, SCA, IaC scanning, policy as code | Comentarios y bloqueos selectivos |
| Build | Escaneo de imagen, SBOM, firma | Validación de artefacto |
| Pre-deploy | Políticas de entorno, digest, firma, IaC plan | Gate de despliegue |
| Runtime | DAST, monitoreo, runtime security | Detección y aprendizaje |
Un gate debe bloquear riesgos claros, no todo hallazgo posible. Si los gates son arbitrarios, los equipos los perciben como ruido y pierden confianza.
Buenos candidatos para bloqueo:
Los hallazgos deben priorizarse por impacto real y contexto. No todos los problemas de baja severidad son irrelevantes, ni todos los críticos son explotables en el entorno.
Factores de priorización:
Los falsos positivos son inevitables. El objetivo es gestionarlos sin apagar controles útiles.
Buenas prácticas:
Un reporte de seguridad debe ayudar a corregir. Si solo lista problemas sin contexto, genera fricción.
Debe incluir:
Los ambientes efímeros permiten desplegar una versión temporal para pruebas de seguridad y funcionales. Son útiles para DAST, validación de configuración y pruebas de integración.
Controles necesarios:
Las métricas deben medir mejora, no solo actividad.
Las pruebas automatizadas de seguridad permiten escalar DevSecOps si están bien ubicadas, priorizadas y conectadas con remediación. El objetivo no es encontrar todo, sino detectar temprano lo importante y mejorar el flujo de entrega.
En el próximo tema estudiaremos infraestructura como código segura: Terraform, plantillas, revisión, módulos y guardrails.