PIPELINE SECDEVOPS
Audit continu du code avec SonarQube et scan d'images Docker via Trivy dans GitLab CI.
Contexte
Découverte d'une app perso avec secrets hardcodés et dépendances vulnérables (CVE critiques). Réalisation que la sécurité ne peut pas être un afterthought. J'ai voulu intégrer la sécurité directement dans le pipeline CI/CD : chaque push = audit automatique.
Méthodologie d'Apprentissage
- 1
Étude OWASP Top 10 et concepts SAST/DAST pour les vecteurs d'attaque courants
- 2
Installation SonarQube en local (Docker Compose) pour tester les règles d'analyse avant prod
- 3
Configuration progressive du pipeline GitLab : lint → tests → SAST → scan images → deploy
- 4
Création de quality gates personnalisés (coverage ≥70%, bloquant les vulnérabilités critiques)
- 5
Optimisation : réduction du temps pipeline (18min → 7min) avec caching et parallelization
Défis Techniques
Faux positifs massifs dans SonarQube
40%+ des alertes initiales étaient non pertinentes. Solution : configuration de profils quality personnalisés, exclusion de patterns framework-spécifiques, création de règles custom.
Images Docker trop lourdes (centaines de CVE)
Scan Trivy révélait des vulnérabilités issues de l'image de base. Migration vers Alpine + multi-stage builds → réduction 85% de la surface d'attaque.
Pipeline trop long pour feedback rapide
Devs ignoraient les résultats si pipeline dépasse 10min. Optimisation : caching dépendances, parallelization stages, temps final 7min.
Résultats
Pipeline CI sécurisé : 4 couches d'audit (SAST, secrets scanning, dependency check, container scan)
Surface d'attaque images Docker réduite de 85% (Alpine + multi-stage)
Quality gates bloquants : zéro secret ou CVE critique en prod
Apprentissage : security mindset, compliance concepts (PCI-DSS, OWASP), audit applicatif
Explore More