Sécurité DevOps - Débutant
🎯 Objectifs
- Comprendre pourquoi la sécurité concerne chaque développeur
- Éviter de commettre des secrets dans Git
- Auditer les dépendances de son projet
- Appliquer les bases de la sécurité sur GitHub
📋 Prérequis
- Utiliser Git au quotidien (commits, push)
- Avoir un projet avec des dépendances (npm, pip…)
- Avoir un compte GitHub
🤔 Pourquoi la sécurité te concerne ?
Tu te dis peut-être : "Je suis développeur, pas expert en cybersécurité."
Pourtant, la majorité des failles de sécurité viennent de petites erreurs quotidiennes :
- Un mot de passe oublié dans un fichier commité
- Une dépendance non mise à jour depuis 2 ans
- Un dépôt GitHub public qui contient des clés API
💡 La sécurité n'est pas un domaine réservé aux experts. Ce sont les bons réflexes du quotidien qui protègent vraiment.
🏦 La Triade CIA : les 3 piliers de la sécurité
L'analogie : ta maison
Imagine que ton application est une maison :
| Pilier | Définition | En pratique |
|---|---|---|
| Confidentialité | Seules les personnes autorisées entrent | Ton mot de passe Wi-Fi est secret |
| Intégrité | Les données ne sont pas modifiées à ton insu | La serrure ne peut pas être crochetée |
| Disponibilité | Le service reste accessible | La porte s'ouvre quand tu en as besoin |
💡 À retenir : une bonne sécurité protège les données (confidentialité), leur exactitude (intégrité), et l'accès au service (disponibilité).
🔐 Ne jamais commettre un secret dans Git
Le problème
Un secret, c'est tout ce qui donne un accès : mot de passe, clé API, token, certificat.
Git garde une mémoire permanente de tout ce que tu commites. Même si tu supprimes le fichier ensuite, le secret reste dans l'historique - accessible à quiconque clone le dépôt.
L'analogie
Imagine que tu écris ton code PIN de carte bancaire sur un Post-it, tu le colles sur ton bureau ouvert, tu l'enlèves une heure après. Trop tard : quelqu'un a pu le photographier.
C'est exactement ce qui se passe quand tu commites une clé API sur GitHub, même brièvement.
La solution : le fichier .env
# .env (NE JAMAIS commiter ce fichier)
DATABASE_URL=postgres://user:motdepasse@localhost:5432/mabase
API_KEY=sk_live_abc123...
JWT_SECRET=super-secret-aleatoire# .gitignore (commiter ce fichier - il dit à Git quoi ignorer)
.env
.env.local
.env.*.local
*.key
*.pem
secrets/# .env.example (commiter ce fichier - un modèle sans valeurs réelles)
DATABASE_URL=postgres://user:PASSWORD@localhost:5432/DB_NAME
API_KEY=your_api_key_here
JWT_SECRET=your_jwt_secret_here💡 La règle d'or : un
.env.exampledans Git, un.envhors de Git.
Si tu as déjà commité un secret
- Change le secret immédiatement - révoque la clé API, change le mot de passe
- Purge l'historique Git si nécessaire (complexe - mieux vaut changer le secret)
- Utilise
gitleakspour détecter d'autres fuites
# Installer gitleaks
brew install gitleaks # macOS
# ou télécharger depuis https://github.com/gitleaks/gitleaks/releases
# Scanner ton dépôt actuel
gitleaks detect --source=. --verbose📦 Auditer ses dépendances
Pourquoi c'est important ?
Ton projet dépend de dizaines, voire centaines de bibliothèques écrites par d'autres. Certaines ont des failles de sécurité connues (appelées CVE).
L'analogie
C'est comme avoir des produits alimentaires dans ton frigo. Certains sont peut-être périmés depuis des mois. npm audit, c'est la date de péremption affichée sur chaque produit.
Pour un projet Node.js
# Voir toutes les vulnérabilités
npm audit
# Corriger automatiquement ce qui peut l'être
npm audit fix
# Corriger aussi les changements de version majeure (attention aux breaking changes)
npm audit fix --forceExemple de sortie :
found 3 vulnerabilities (1 moderate, 2 high)
Run `npm audit fix` to fix them, or `npm audit` for details.Pour un projet Python
# Installer pip-audit
pip install pip-audit
# Lancer l'audit
pip-auditPour un projet Golang
# Installer govulncheck
go install golang.org/x/vuln/cmd/govulncheck@latest
# Lancer l'audit
govulncheck ./...💡 À retenir : lance
npm audit(ou son équivalent) régulièrement, et avant chaque mise en production.
🔒 Les bases de la sécurité sur GitHub
Activer l'authentification à deux facteurs (2FA)
La 2FA ajoute une deuxième couche de vérification à ta connexion. Même si ton mot de passe fuite, un attaquant ne peut pas se connecter sans ton téléphone.
Activer la 2FA :
GitHub → Settings → Password and authentication → Two-factor authentication
⚠️ Sans 2FA, un mot de passe volé suffit à compromettre tous tes projets.
Protection de la branche principale
La branch protection empêche de pousser directement sur main sans revue de code.
Activer sur GitHub :
Repository → Settings → Branches → Add branch protection rule
Règles recommandées pour débuter :
- ✅ Require a pull request before merging
- ✅ Require status checks to pass
- ✅ Do not allow bypassing the above settings
Activer les alertes de sécurité Dependabot
GitHub peut t'envoyer des alertes automatiques quand une de tes dépendances a une faille connue.
Activer :
Repository → Settings → Security → Dependabot alerts → Enable
💡 C'est gratuit et automatique - active-le sur tous tes dépôts.
🌐 HTTPS : chiffrer les communications
Pourquoi ?
Sans HTTPS, les données qui transitent entre ton navigateur et un serveur sont lisibles par n'importe qui sur le même réseau Wi-Fi.
L'analogie
HTTP, c'est envoyer une carte postale : tout le monde peut lire le message. HTTPS, c'est envoyer une lettre dans une enveloppe scellée.
En pratique
- Toujours utiliser HTTPS pour les APIs que tu consommes
- Forcer HTTPS sur les services que tu déploies
- Ne jamais envoyer de secrets en HTTP (formulaires, headers d'authentification)
# Vérifier qu'une URL utilise bien HTTPS
curl -I https://ton-api.com/endpoint
# Chercher "HTTP/2 200" ou "HTTP/1.1 200" dans la réponse📊 Récapitulatif
| Bonne pratique | Outil / méthode |
|---|---|
| Protéger les secrets | .env + .gitignore + .env.example |
| Détecter les secrets commités | gitleaks |
| Auditer les dépendances | npm audit, pip-audit, govulncheck |
| Sécuriser son compte GitHub | 2FA activé |
| Protéger la branche principale | Branch protection rules |
| Alertes sur dépendances | Dependabot alerts |
| Chiffrer les communications | HTTPS partout |
✅ Checklist Sécurité Débutant
- Fichier
.gitignoreavec.env - Fichier
.env.examplecommité (sans valeurs réelles) - Aucun secret dans l'historique Git (
gitleaks detect) npm audit(ou équivalent) sans vulnérabilité haute- 2FA activé sur GitHub
- Dependabot alerts activé
- Branch protection sur
main - HTTPS partout
🚀 Prochaines Étapes
Tu maîtrises maintenant les réflexes de base. L'étape suivante : intégrer la sécurité directement dans ton pipeline CI/CD.
- 👉 Sécurité DevOps - Intermédiaire - Scanning automatique, SAST, Trivy
- 👉 CI/CD - Débutant - Mettre en place son premier pipeline