Contenu du cours
Comprendre et Maîtriser DevSecOps de A à Z
0/22
Comprendre et Maîtriser DevSecOps de A à Z – Cours et 202 questions pratiques (Copie 1)

Objectifs de la Leçon

  • Configurer et utiliser en profondeur les scanners IaC pour contrôler la conformité et éviter les failles de configuration dans des outils tels que Terraform, Ansible, etc.

  • Comprendre les principes d’analyse statique des configurations d’infrastructure.

  • Comparer différents outils de scanning IaC (tfsec, Checkov, Terrascan, KICS) et identifier leurs avantages et limites.

  • Intégrer ces scanners dans des pipelines CI/CD pour une vérification continue de la sécurité des configurations.

  • Interpréter et exploiter les rapports de scan pour améliorer la posture de sécurité.

Table des Matières

  1. Introduction et Contexte
    1.1. Définition de l’IaC et enjeux de sécurité
    1.2. Pourquoi scanner votre Infrastructure as Code ?

  2. Présentation des Outils IaC Scanning
    2.1. tfsec : Installation, configuration et cas d’usage
    2.2. Checkov : Fonctionnalités et intégration dans les pipelines CI/CD
    2.3. Terrascan : Scénarios d’utilisation et recommandations
    2.4. KICS : Comparaison avec les autres outils et points forts

  3. Intégration des Scanners IaC dans un Pipeline CI/CD
    3.1. Importance de l’automatisation des scans
    3.2. Exemples de configuration (Jenkins, GitLab CI, GitHub Actions)
    3.3. Mise en place d’un gating : déploiement bloqué en cas de non-conformité

  4. Analyse et Exploitation des Rapports
    4.1. Lecture d’un rapport de tfsec/Checkov
    4.2. Identification des failles et recommandations correctives
    4.3. Suivi des indicateurs de conformité et reporting

  5. Études de Cas
    5.1. Exemple concret : Audit IaC dans une infrastructure Terraform
    5.2. Étude de cas : Utilisation de Checkov pour Ansible dans un pipeline CI/CD

  6. Exercices Pratiques et Corrigés Détaillés
    6.1. Exercice 1 : Scanner un template Terraform avec tfsec
    6.2. Exercice 2 : Intégrer Checkov dans un pipeline GitLab CI
    6.3. Exercice 3 : Analyser un rapport Terrascan et proposer des actions correctives

  7. Quiz de Révision

  8. Conclusion et Prévisualisation de la Leçon 14


1. Introduction et Contexte

Les solutions d’Infrastructure as Code (IaC) permettent de décrire, déployer et gérer l’infrastructure via du code, ce qui offre une reproductibilité et une traçabilité accrues. Cependant, une mauvaise configuration peut introduire des failles critiques. C’est pourquoi les scanners IaC jouent un rôle essentiel :

  • Enjeux de sécurité : Détecter les failles de configuration avant que l’infrastructure ne soit déployée.

  • Objectif : Garantir que les fichiers Terraform, Ansible, CloudFormation, etc., respectent les meilleures pratiques de sécurité.


2. Présentation des Outils IaC Scanning

2.1. tfsec

  • Installation : tfsec peut être installé via Homebrew, apt ou directement en binaire.

  • Utilisation : Lancer un scan sur un répertoire contenant vos fichiers Terraform.

    • Commande type : tfsec .

  • Cas d’usage : Détection de configurations non sécurisées (par ex. autorisation trop large dans les groupes de sécurité).

2.2. Checkov

  • Fonctionnalités : Spécialement conçu pour scanner des configurations IaC dans Terraform, Ansible, CloudFormation, etc.

  • Intégration : Peut être intégré dans des pipelines CI/CD pour une analyse automatisée.

    • Commande type : checkov -d .

  • Exemples : Identifier les risques tels que des ports ouverts ou des permissions insuffisamment restreintes.

2.3. Terrascan

  • Points forts : Outil open source qui scanne les templates IaC pour détecter des violations de politiques.

  • Utilisation : Commande type : terrascan scan -d .

  • Comparaison : Utile pour des environnements multi-cloud avec une couverture étendue des règles.

2.4. KICS

  • Aperçu : Conçu par Checkmarx, KICS peut scanner divers types de fichiers d’infrastructure.

  • Avantages : Rapide, supporte de nombreux formats IaC.

  • Utilisation : kics scan --path .


3. Intégration des Scanners IaC dans un Pipeline CI/CD

3.1. Importance de l’Automatisation

  • Automatisation : Permet d’exécuter des scans à chaque commit ou build.

  • Impact : Garantit que toute modification de l’infrastructure est vérifiée avant le déploiement.

3.2. Exemples de Configuration

Exemple Jenkinsfile avec tfsec :

groovy
pipeline {
agent any

stages {
stage('Terraform Init') {
steps {
sh 'terraform init'
}
}
stage('Terraform Validate') {
steps {
sh 'terraform validate'
}
}
stage('Scan IaC') {
steps {
echo 'Lancement du scan IaC avec tfsec...'
sh 'tfsec .'
}
post {
unsuccessful {
error "Le scan IaC a détecté des vulnérabilités critiques."
}
}
}
stage('Terraform Plan') {
steps {
sh 'terraform plan -out=plan.out'
}
}
stage('Terraform Apply') {
steps {
sh 'terraform apply -auto-approve plan.out'
}
}
}
}

Exemple GitLab CI pour Checkov :

yaml
stages:
- build
- scan
- deploy

build_job:
stage: build
script:
- terraform init
- terraform plan -out=plan.out

scan_job:
stage: scan
script:
- echo "Exécution du scan avec Checkov..."
- checkov -d .
allow_failure: false

deploy_job:
stage: deploy
script:
- terraform apply -auto-approve plan.out

3.3. Mise en Place d’un Gating

  • Gating : Mise en place de règles qui empêchent le déploiement si des vulnérabilités critiques sont détectées.

  • Exemples : Renvoi d’un code d’erreur pour interrompre le pipeline.


4. Analyse des Rapports et Prise de Décision

  • Lecture des Rapports : Examiner les rapports générés par tfsec, Checkov, Terrascan ou KICS.

  • Critères : Nombre et gravité des vulnérabilités.

  • Actions Correctives : Mettre à jour le code IaC ou ajuster la configuration pour répondre aux recommandations.


5. Études de Cas

5.1. Exemple : Audit IaC avec Terraform dans une Entreprise Tech

  • Contexte : L’entreprise souhaite sécuriser ses déploiements Terraform.

  • Mise en œuvre : Utilisation de tfsec et Checkov dans le pipeline Jenkins pour valider chaque modification.

  • Résultats : Réduction significative des erreurs de configuration et meilleure conformité aux normes de sécurité internes.

5.2. Exemple : Utilisation de Terrascan pour un Environnement Multi-Cloud

  • Contexte : Une organisation utilise des configurations IaC pour AWS et Azure.

  • Mise en œuvre : Terrascan est intégré dans le pipeline pour scanner les configurations avant déploiement.

  • Impact : Meilleure détection des failles liées aux configurations cross-cloud.


6. Exercices Pratiques et Corrigés Détaillés

Exercice 1 : Scanner un Template Terraform avec tfsec

  • Consigne : Créez un fichier Terraform simple et exécutez un scan tfsec pour identifier les vulnérabilités.

  • Corrigé :
    – Exemple de fichier Terraform (déploiement d’une instance avec un groupe de sécurité).
    – Commande tfsec . et analyse du rapport.

Exercice 2 : Intégrer Checkov dans un Pipeline CI/CD

  • Consigne : Modifier un fichier .gitlab-ci.yml pour inclure une étape de scan Checkov.

  • Corrigé :
    – Utiliser l’exemple YAML fourni ci-dessus, expliquer chaque étape.

Exercice 3 : Analyser un Rapport de Scan et Proposer des Correctifs

  • Consigne : Fournir un rapport de scan fictif, identifier deux vulnérabilités, et recommander les actions correctives.

  • Corrigé :
    – Exemple de rapport détaillant des vulnérabilités (ex. port ouvert, règle IAM non conforme).
    – Proposition : Modifier les paramètres, limiter les ports, renforcer les contrôles d’accès.


7. Quiz de Révision

  1. Quels sont les principaux outils de scanning IaC présentés ?
    A) tfsec, Checkov, Terrascan, KICS
    B) Jenkins, GitLab, Travis
    C) Docker, Kubernetes, Ansible

  2. Quel est le principal avantage de l’automatisation des scans IaC dans un pipeline CI/CD ?
    A) Réduire les coûts de l’infrastructure
    B) Détecter et corriger les failles de configuration avant le déploiement
    C) Augmenter la vitesse de déploiement sans vérifier la sécurité

  3. Quel outil est particulièrement adapté pour scanner des configurations Terraform ?
    A) tfsec
    B) OWASP ZAP
    C) Burp Suite

  4. Quel est le rôle d’un gating dans un pipeline CI/CD ?
    A) Permettre la poursuite du pipeline
    B) Bloquer le déploiement en cas de vulnérabilités critiques
    C) Exécuter des tests unitaires

  5. Donnez un exemple de commande pour lancer Checkov sur un projet IaC :
    (Réponse ouverte)


8. Conclusion et Prévisualisation de la Leçon 14

Conclusion de la Leçon 13 :
Vous avez appris à configurer, utiliser et intégrer des scanners IaC (tfsec, Checkov, Terrascan, KICS) dans vos pipelines CI/CD. Ces outils permettent de s’assurer que votre infrastructure est conforme aux standards de sécurité avant déploiement, réduisant ainsi le risque d’erreurs de configuration et de failles.

Prévisualisation de la Leçon 14 :
Dans la Leçon 14 (environ 50 pages), nous aborderons la Gestion des Secrets et des Identités. Vous apprendrez à mettre en place un stockage sécurisé pour les clés, certificats et autres credentials à l’aide d’outils tels que Vault, AWS Secrets Manager et Azure Key Vault. Vous verrez comment gérer les accès sensibles (par exemple via LDAP, RBAC) pour protéger vos systèmes contre les fuites et les intrusions.