Aller au contenu principal

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 officielhttps://www.checkov.io/
Repositoryhttps://github.com/bridgecrewio/checkov
LicenceApache 2.0
DéveloppeurBridgecrew (Prisma Cloud)
LangagePython
Formats supportésTerraform, 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