Ce dépôt regroupe mon lab devSecOps. L'idée est simple : prendre une stack MERN classique et la pousser en production sur Kubernetes en appliquant une sécurité stricte à chaque étape (moindre privilège et défense en profondeur), plutôt que de patcher la sécurité à la fin.
Le projet avance par blocs logiques. Je valide un pilier technique avant de passer au suivant :
- 1) Sécuriser les conteneurs (Docker) 🐳 -> Optimisation du poids des images et suppression des privilèges root.
- 2) Automatiser les contrôles (CI/CD) 🛠️ -> Standardisation des builds et scans de vulnérabilités à chaque commit.
- Le problème : Mon image de base (Ubuntu) faisait plus d'1 Go et tournait par défaut en
root. Cela posait un double problème : des temps de build/déploiement trop longs en CI/CD et une plus grande surface d'attaque - Ma solution : Passage au Multi-stage build, ajout d'un USER non root et coté frontend utilisation d'une image nginx avec moins de privilège
- Bilan : L'image finale pèse quelques Mo, ce qui accélère drastiquement le déploiement, Côté sécurité, l'absence d'outils (
curl,apt,bash) et l'exécution enUSER nonrootbloquent toute compromission du système
- Le problème : Devoir lancer les tests unitaires, build et scanner les images à la main à chaque modification devenait vite long et source d'erreurs
- Ma solution : Automatisation complète du cycle via GitHub Actions en plaçant la sécurité dès le début du flux. Le pipeline intègre un détecteur de secrets (
Gitleaks) et un scanner d'images (Trivy) - Bilan : Chaque push ou nouvelle feature déclenche automatiquement les tests et le build des images, ce qui offre un gain de temps considérable. Niveau sécurité, la pipeline agit comme barrière : si un secret est détecté ou qu'une CVE de niveau High ou Critical est trouvée, une notification est envoyé sur Discord grace à un script qui parse les logs trivy et la CI s'arrête net