lowCWE-1127

Pipeline CI Sin Escaneo de Seguridad

Un pipeline CI/CD que solo ejecuta tests y linting sin ningun SAST, DAST, escaneo de dependencias o deteccion de secretos significa que las vulnerabilidades solo se encuentran despues del despliegue -- si es que se encuentran.

Cómo Funciona

La mayoria de los pipelines CI incluyen pasos para construir, testear y hacer lint del codigo, pero omiten por completo las verificaciones especificas de seguridad. Sin SAST (Static Application Security Testing), patrones de codigo vulnerable como inyeccion SQL o XSS pasan desapercibidos. Sin escaneo de dependencias, los CVEs conocidos en paquetes de terceros no se detectan. Sin deteccion de secretos, API keys y contrasenas commiteadas al repositorio no se atrapan. Sin DAST (Dynamic Application Security Testing), las vulnerabilidades en tiempo de ejecucion en aplicaciones desplegadas se pierden. Para cuando estos problemas se descubren (si es que se descubren), pueden haber estado en produccion por meses, afectando usuarios reales y datos.

Código Vulnerable
# BAD: CI pipeline with no security scanning steps
name: CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npm run lint
      - run: npm test
      - run: npm run build
      # No SAST, no dependency audit, no secret scanning
      # Vulnerabilities ship to production undetected
Código Seguro
# GOOD: CI pipeline with security scanning gates
name: CI
on: [push, pull_request]
jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
      - run: npm ci
      - run: npm run lint
      - run: npm test
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Secret scanning
        uses: trufflesecurity/trufflehog@main
      - name: Dependency audit
        run: npm audit --audit-level=high
      - name: SAST scan
        uses: returntocorp/semgrep-action@v1
        with:
          config: p/security-audit

Ejemplo Real

La vulnerabilidad Log4Shell de 2021 (CVE-2021-44228) demostro el costo de no tener escaneo de dependencias en CI. Las organizaciones que tenian escaneo automatizado de dependencias en sus pipelines fueron alertadas en horas y pudieron parchear inmediatamente. Las organizaciones sin el pasaron dias o semanas auditando manualmente que servicios estaban afectados. De manera similar, el ataque a la cadena de suministro de ua-parser-js en 2021 paso desapercibido en pipelines que carecian de escaneo de dependencias.

Cómo Prevenirlo

  • Agrega un paso SAST usando Semgrep, CodeQL o SonarQube para detectar patrones de codigo vulnerable antes de que lleguen a produccion
  • Incluye npm audit, pip-audit o Snyk para escanear dependencias buscando CVEs conocidos y fallar el build en hallazgos de alta severidad
  • Agrega deteccion de secretos con trufflehog o gitleaks para prevenir commits accidentales de credenciales
  • Configura el escaneo de seguridad como un status check requerido en la proteccion de rama para que los PRs no puedan mergearse con hallazgos de alta severidad sin arreglar

Tecnologías Afectadas

GitHub ActionsNode.jsPythonDocker

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas