Checkov
Overview
Checkov, c'est l'outil open-source développé par Bridgecrew (maintenant Prisma Cloud) qui pense que scanner tes configurations avant de déployer, c'est mieux que réparer après. Il analyse tes fichiers Infrastructure as Code (Terraform, CloudFormation, Kubernetes YAML, Dockerfiles, etc.) pour détecter les mauvaises configurations de sécurité. Si tu veux éviter les déploiements non sécurisés, c'est parfait.
Checkov utilise une base de règles pré-définies couvrant les bonnes pratiques de sécurité pour les principaux cloud providers (AWS, Azure, GCP) et technologies. Plus de 1000 règles built-in, support custom, intégration CI/CD native. Tu scannes, tu corriges, tu dors tranquille.
Checkov se distingue par sa couverture exhaustive (Terraform, Kubernetes, Docker, tout y passe), ses règles pré-définies de qualité (plus de 1000 règles built-in), et sa facilité d'intégration (ligne de commande, CI/CD, IDE, c'est toi qui vois).
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://www.checkov.io/ |
| Repository | https://github.com/bridgecrewio/checkov |
| Licence | Apache 2.0 |
| Développeur | Bridgecrew (Prisma Cloud) |
| Langage | Python |
| Formats supportés | Terraform, CloudFormation, Kubernetes, Docker, Helm, etc. |
Fonctionnalités principales
Scan multi-formats
- Support Terraform (.tf, .tfvars)
- CloudFormation (JSON, YAML)
- Kubernetes manifests et Helm charts
- Dockerfiles et images Docker
- Azure Resource Manager templates
- Google Cloud Deployment Manager
Base de règles exhaustive
- Plus de 1000 règles pré-définées
- Couverture AWS, Azure, GCP, Alibaba Cloud
- Règles OWASP, CIS benchmarks, SOC2
- Support règles custom en Python ou YAML
- Mise à jour automatique des règles
Intégration CI/CD
- Plugins pour Jenkins, GitHub Actions, GitLab CI
- Format de sortie flexible (CLI, JSON, JUnit, SARIF)
- Support baseline pour ignorer violations existantes
- Intégration avec Prisma Cloud pour dashboard centralisé
Suppression et exceptions
- Skip checks via annotations inline
- Fichiers de suppression centralisés
- Gestion des exceptions par environnement
- Rapports de conformité détaillés
Cas d'usage
- Shift-left security : Détecter les problèmes avant le déploiement
- Compliance : Vérifier conformité CIS, SOC2, PCI-DSS
- Code review : Intégrer security dans le processus de review
- Audit continu : Scanner régulièrement l'infrastructure existante
- Formation : Éduquer les équipes sur les bonnes pratiques sécurité
Installation
Via pip
pip install checkov
Via Homebrew (macOS)
brew install checkov
Via Docker
docker pull bridgecrew/checkov
Via GitHub Actions
- name: Run Checkov action
id: checkov
uses: bridgecrewio/checkov-action@master
with:
directory: .
framework: terraform
Utilisation basique
Scan d'un répertoire Terraform
# Scan basique d'un répertoire
checkov -d /path/to/terraform
# Scan avec format de sortie spécifique
checkov -d . --framework terraform --output json
# Scan avec skip de checks spécifiques
checkov -d . --skip-check CKV_AWS_20,CKV_AWS_21
Scan Kubernetes
# Scan manifests Kubernetes
checkov -d ./k8s-manifests --framework kubernetes
# Scan Helm chart
checkov -d ./my-chart --framework helm
Intégration avec suppression inline
# Dans un fichier Terraform
resource "aws_s3_bucket" "example" {
#checkov:skip=CKV_AWS_20:S3 bucket logging not required for this use case
bucket = "my-bucket"
}
Avantages
- ✅ Couverture exhaustive : support de tous les principaux formats IaC, tout y passe
- ✅ Règles de qualité : plus de 1000 règles maintenues par des experts sécurité, c'est du sérieux
- ✅ Intégration facile : s'intègre partout (CI/CD, IDE, ligne de commande), pas besoin de révolutionner tes workflows
- ✅ Open-source : code source disponible et communauté active, tu ne seras pas seul
- ✅ Mise à jour continue : nouvelles règles ajoutées régulièrement, tu restes à jour automatiquement
Limitations
- Peut générer beaucoup de faux positifs sur des projets existants : mais tu peux utiliser les baselines
- Certaines règles peuvent être trop strictes pour des environnements de dev : mais tu peux les skip facilement
- Nécessite une compréhension des bonnes pratiques pour interpréter les résultats : mais c'est l'occasion d'apprendre
Alternatives
- TFSec : Spécialisé Terraform (maintenant intégré à Trivy)
- Kube-score : Spécialisé Kubernetes
- Terrascan : Scanner IaC multi-formats
- Trivy : Scanner multi-format avec support IaC
Ressources
- Documentation : https://www.checkov.io/1.Welcome/Quick%20Start.html
- GitHub : https://github.com/bridgecrewio/checkov
- Liste des règles : https://www.checkov.io/5.Policy%20Index/all.html
- Intégrations CI/CD : https://www.checkov.io/4.Integrations/CI-CD%20Integration.html