L'Arsenal DevSecOps : De zéro à héros
Soyons réalistes : exécuter trivy image n’est pas du DevSecOps. C’est juste de la génération de bruit.
La véritable ingénierie de sécurité concerne le rapport signal-bruit. Il s’agit de construire un pipeline que vos développeurs respectent, pas un qu’ils contournent. Ce guide fournit les configurations “de qualité production” pour 17 outils standards de l’industrie afin de stopper les vulnérabilités sans arrêter l’activité.
Phase 1 : Pré-commit & Local (Shift Left ou Rentrez chez vous)
Détecter les problèmes en CI est déjà trop tard. Vous venez de gaspiller des crédits de calcul et le temps de changement de contexte d’un développeur. Attrapez-le sur leur ordinateur portable.
1. Gitleaks (Le Gardien des Secrets)
Ne soyez pas l’entreprise qui divulgue des clés AWS sur GitHub.
La plupart des gens exécutent Gitleaks à l’aveugle. Les pros utilisent Baselines.
--baseline-path: Le billet d’or. Exécutez une analyse fraîche, sauvegardez le résultat. Maintenant, Gitleaks n’alerte que sur les nouveaux secrets.--redact: Masquez les secrets découverts dans les journaux de sortie (pourcentage 0-100). Ne doublez jamais la fuite.--enable-rule: Concentrez-vous sur des types de secrets spécifiques (par exemple, juste les clés AWS) par ID.--follow-symlinks: Ne laissez pas les secrets se cacher derrière les liens symboliques.--ignore-gitleaks-allow: Interdisez l’utilisation de commentaires “skip” en ligne. Appliquez les règles.--max-target-megabytes: Évitez de scanner des blobs binaires massifs.
2. Trufflehog (Le Vérificateur)
Trouver une chaîne qui ressemble à une clé est une chose. Vérifier si elle fonctionne en est une autre.
Trufflehog se distingue par la vérification des identifiants auprès du fournisseur.
--no-verification: Mode plus rapide. Ignore le “live-check” si vous souhaitez uniquement une analyse statique.--results: Filtrer les résultats parverified(le vrai danger) ouunknown.--filter-entropy: Trouver des chaînes à haute entropie (probablement des mots de passe) même sans correspondance regex. Commencez avec 3.0.--detector-timeout: Limiter le temps d’exécution par détecteur pour éviter les blocages CI.--archive-max-depth: Ne pas rester bloqué dans des bombes zip imbriquées.
3. Opengrep (Analyse Statique Rapide)
Grep est mort. Vive la recherche structurelle.
Moteur compatible Semgrep pour trouver des bugs en utilisant des motifs de code, pas seulement des chaînes.
--baseline-commit: Crucial. Scanner uniquement le code modifié depuis un commit spécifique (Delta Scanning).--config: Charger des règles personnalisées à partir de limites YAML ou du registre.--dataflow-traces: Montrer le chemin complet de la manière dont les données se déplacent de la source au puits.--exclude-minified-files: Ignorer les fichiers.min.jset autres fichiers denses, non lisibles par l’homme.--strict: Échouer la construction si la configuration est invalide ou si des erreurs de niveau WARN se produisent.
4. Bandit (Sécurité Python)
La norme pour l’analyse AST Python.
-t/--tests: Exécuter UNIQUEMENT des identifiants de test spécifiques (liste blanche).-s/--skips: Ignorer des identifiants de test spécifiques (liste noire).--severity-level: Afficher uniquement les résultats >=low,medium, ouhigh.--confidence-level: Filtrer les “suppositions”—afficher uniquement les résultats de haute confiance.--ignore-nosec: Voir ce que les développeurs essaient de contourner en utilisant# nosec.
5. Dustilock (Confusion de dépendance)
Empêcher un attaquant d’injecter un paquet privé malveillant.
-a: Audit uniquement. Vérifiez si vous êtes vulnérable au détournement de nom de paquet sans arrêter le pipeline.
6. Hadolint (Intelligence Docker)
Votre Dockerfile est mauvais. Hadolint sait pourquoi.
--trusted-registry: Sécurité de la chaîne d’approvisionnement. N’autorisez que les images provenant deinternal.ecr.aws.--strict-labels: Imposer des normes de métadonnées (par exemple,maintainer,cost-center).--ignore: Ignorer les règles qui ne s’appliquent pas à votre build.--error/--warning: Reconfigurer les niveaux de gravité des règles pour correspondre à votre politique.--require-label: Imposer des formats d’étiquettes spécifiques (Regex).
7. TFLint (Logique Terraform)
terraform validate est une vérification de syntaxe. TFLint est une vérification de logique.
--enable-plugin: Charger des règles spécifiques au fournisseur (par exemple, AWS, Azure) pour vérifier les spécifications API.--minimum-failure-severity: Contrôler le seuil de rupture de build (Erreur, Avertissement, Avis).--call-module-type: Analyser les modulesall,localounone.--var-file: Injecter des variables pour évaluer la logique conditionnelle avec précision.
Phase 2: Les gardiens CI (Confiance, mais vérification)
C’est la salle de guerre. Analyse approfondie pendant le processus de build.
8. Trivy (Le poids lourd)
Le couteau suisse.
--ignore-unfixed: Obligatoire. S’il n’y a pas de correctif, ne pas échouer la construction. Surveillez-le.--ignore-status: Filtrer les vulnérabilités avec des statuts spécifiques.--pkg-types: Concentrer les analyses sur les paquetsosou les dépendances delibrary.--offline-scan: Exécuter dans des environnements isolés.--include-dev-deps: Ne pas ignorer lesdevDependencies—elles peuvent toujours compromettre l’environnement de construction.--list-all-pkgs: Tout afficher. Essentiel pour générer un SBOM complet.
9. Syft (Le Générateur de SBOM)
Vous ne pouvez pas sécuriser ce que vous ne savez pas que vous avez.
--enrich: Ajouter des métadonnées en ligne pour un contexte d’utilisation plus riche (Golang, Java, etc.).-s/--scope: Analyser toutes les couches (all-layers) ou juste l’image finale (squashed).--select-catalogers: Cibler des gestionnaires de paquets spécifiques (npm, pip, apk).--platform: Cibler des architectures spécifiques (par exemple,arm64).
10. Grype (Le Scanner de SBOM)
Prend le relais de Syft.
-f/--fail-on: Interrompre la construction si la gravité >=medium,high, etc.--only-fixed: Ne signaler que les vulnérabilités qui sont actionnables.--by-cve: Organiser la sortie par ID CVE pour le suivi.--ignore-states: Ignorer les statuts génériques “wontfix” ou “not-affected”.
11. Checkov (Gouvernance IaC)
Prévenir les mauvaises configurations cloud avant qu’elles ne vous coûtent de l’argent.
-s/--soft-fail: Avertir mais ne pas interrompre. Idéal pour le “mode observation”.--check/--skip-check: liste blanche ou liste noire des vérifications spécifiques (CKV_AWS_1).--skip-framework: Ignorer des frameworks entiers (par exemple, analyser Terraform mais ignorer CloudFormation).--enable-secret-scan-all-files: Étendre la recherche de secrets au-delà des fichiers de configuration standard.--block-list-secret-scan: Exclure des fichiers spécifiques du scanner de secrets.
12. KICS (Keeping IaC Secure)
L’alternative pour une couverture large de l’IaC.
--exclude-queries: Réduire le bruit en filtrant des identifiants de requêtes spécifiques.--exclude-categories: Filtrer les résultats par domaine de sécurité.--fail-on: Définir quels niveaux de gravité retournent un code de sortie non nul.--minimal-ui: Sortie CLI simplifiée pour des journaux plus propres.--disable-secrets: Désactiver la recherche interne de secrets (utiliser Gitleaks à la place).
13. Terrascan (Policy-as-Code)
Spécialisé pour l’application de politiques multi-cloud.
-i/--iac-type: Optimiser en spécifiant la plateforme (k8s, helm, terraform).-t/--policy-type: Filtrer les politiques par fournisseur (aws, azure, gcp).--severity: Définir la gravité minimale à signaler.--non-recursive: Analyser uniquement le répertoire actuel.
14. OWASP Dependency-Check (Legacy & Compliance)
Le poids lourd pour Java et .NET SCA.
--failOnCVSS: Interrompre la construction si une bibliothèque dépasse un score CVSS (par exemple, 7.0).--suppression: Utiliser un fichier XML pour “silencier” les vulnérabilités connues comme sûres (VEX-lite).--enableExperimental: Utiliser de nouveaux analyseurs pour les langages moins courants.
15. DevSkim (Hygiène Polyglotte)
Vérifications centrées sur le développeur dans l’IDE et CI.
--rule-ids: Limiter l’analyse à des règles spécifiques.--ignore-globs: Utiliser des modèles globaux standard pour ignorer les fichiers bruyants.--skip-git-ignored-files: Synchronisation automatique avec.gitignore.--skip-excerpts: Garder les rapports petits en supprimant les exemples de code.
Phase 3 : Runtime & Artifacts (La Dernière Ligne)
Scanner l’artifact final ou l’environnement en direct.
16. Clamscan (Défense Contre les Malwares)
Parce que parfois, les gens téléchargent des virus sur votre bucket S3.
--exclude/--exclude-dir: Ignorer les modèles de fichiers/répertoires pour gagner du temps.--detect-pua: Rechercher les “Applications Potentiellement Indésirables” (adware, mineurs).--detect-structured: Scanner les modèles de données sensibles comme les Cartes de Crédit/SSN.--scan-pdf/--scan-html: Activer l’inspection approfondie pour les types de documents.--cross-fs: Permettre le scan à travers différents systèmes de fichiers (à utiliser avec précaution).
17. Nuclei (Le Couteau du Hacker)
Scan par modèle qui semble illégal.
-t/--templates: Exécuter des fichiers ou des répertoires de modèles spécifiques.-tags: Cibler les analyses en fonction de la technologie (par exemple,wordpress,cve).-s/--severity: Filtrer les modèles par niveau d’impact.-fr/--follow-redirects: Suivre les redirections HTTP 301/302 pour trouver la charge utile.-passive: Analyser en regardant les en-têtes/réponses existants sans envoyer de nouvelles “attaques”.-etags fuzz: Exclure les modèles de fuzzing en production.
Résumé : Le pipeline “parfait”
- Local :
pre-commitexécute Gitleaks (baseline), Trufflehog (vérifié), & Hadolint. - Build : Trivy analyse les dépendances (
--ignore-unfixed). Syft génère SBOM. Dependency-Check pour la conformité. - Test : Checkov & KICS analysent le plan Terraform. Opengrep vérifie les motifs de code.
- Artifact : Clamscan vérifie le binaire/les actifs finaux.
- Deploy : Nuclei vérifie la cohérence de l’endpoint en direct.
Ajustez vos outils, ou ils vous ignoreront.
Plexicus a rendu tout cela plus facile
Avec un tableau de bord unifié et l’accès à toutes nos intégrations d’outils, cela ne prendra que quelques clics Plexicus


