Wiedii — Política de Escáneres de Seguridad y Calidad
Todo proyecto debe integrar al menos un escáner en CI/CD.
Escáneres requeridos
| Herramienta | Propósito | Instalación |
|---|---|---|
| Snyk | Vulnerabilidades en dependencias | mise use aqua:snyk/snyk@latest |
| Trivy | Seguridad en contenedores e IaC | mise use aqua:aquasecurity/trivy@latest |
| SonarQube self-hosted | Calidad de código integral | Integración via GitLab CI |
| OWASP Dependency-Check | Escaneo de CVEs | Pipeline CI |
Quality gates (ningún MR se fusiona si algún gate falla)
| Gate | Umbral |
|---|---|
| Cobertura de tests | ≥ 70% para proyectos nuevos |
| Bugs bloqueantes | 0 permitidos para deploy a producción |
| Duplicación de código | ≤ 3% |
| Vulnerabilidades críticas/altas | 0 permitidas para deploy a producción |
| Code smells mayores | Severidad máxima permitida |
Trivy en GitLab CI
security:trivy:
stage: test
script:
- mise exec -- trivy fs --exit-code 1 --severity CRITICAL,HIGH .
allow_failure: false
Snyk en GitLab CI
security:snyk:
stage: test
variables:
SNYK_TOKEN: $SNYK_TOKEN # variable de proyecto — masked + protected
script:
- mise exec -- snyk test --severity-threshold=high
allow_failure: false
SonarQube self-hosted en GitLab CI
sonarqube:
stage: test
image: sonarsource/sonar-scanner-cli:latest
variables:
SONAR_HOST_URL: $SONAR_HOST_URL # https://sonar.wiedii.internal
SONAR_TOKEN: $SONAR_TOKEN
script:
- sonar-scanner -Dsonar.projectKey=$CI_PROJECT_PATH_SLUG
allow_failure: false
Las variables SNYK_TOKEN, SONAR_TOKEN y SONAR_HOST_URL se configuran en GitLab → Settings → CI/CD → Variables (Masked + Protected). Para agregarlas, crear un request en Squadlinx al equipo de Infra.