Files
DEV_42_Docker/08_docker-security.md
2026-03-11 15:12:05 +01:00

211 lines
4.4 KiB
Markdown

---
marp: true
theme: default
paginate: true
header: "Sécurisation avancée des images Docker"
footer: "BUT2"
style: |
section {
font-size: 28px;
}
h1 {
color: #0066cc;
}
h2 {
color: #0099cc;
}
---
# Sécurisation avancée des images Docker
## Stratégies et outils pour une conteneurisation robuste
---
# Introduction
- **Approche holistique** nécessaire pour une protection efficace
- Combinaison de **bonnes pratiques** validées par l'industrie
- **Cycle de vie complet** : de l'image de base à l'exécution
---
# 1. Sélection et validation des images de base
## Types d'images et niveaux de confiance
- **Images officielles** : 68% de vulnérabilités en moins
- **Images minimalistes** : Alpine Linux (5MB), Distroless (sans shell)
- **Images certifiées** : Audits indépendants et signature numérique
```bash
docker scout recommendations my-image:latest
```
---
# 1. Sélection et validation des images de base (suite)
## Gestion des dépendances
- **SBOM** (Software Bill of Materials) pour tracer l'origine des composants
- Détection des licences non conformes et dépendances obsolètes
```bash
syft my-image:latest -o json > sbom.json
```
---
# 2. Hardening des Dockerfiles
## Architecture des builds sécurisés
- **Mode non-privilégié** :
```
USER 1001:2001 # UID/GID non-root
```
- **Builds multi-étapes** :
```dockerfile
FROM golang:1.21 AS builder
# Compilation
FROM gcr.io/distroless/base
# Runtime
```
---
# 2. Hardening des Dockerfiles (suite)
## Bonnes pratiques
- **Nettoyage des couches intermédiaires** :
```dockerfile
RUN apt-get update && apt-get install -y \
package1 \
package2 \
&& rm -rf /var/lib/apt/lists/*
```
---
# 3. Analyse des vulnérabilités
## Outils d'analyse continue
| Outil | Type | Avantages |
|-------|------|-----------|
| Trivy | SAST/DAST | Analyse OS packages et langages |
| Snyk | SCA | Correction automatisée des CVE |
| Clair | Dynamique | Surveillance en temps réel |
| Anchore | Politiques | Vérification CIS Benchmarks |
---
# 3. Analyse des vulnérabilités (suite)
## Intégration CI/CD
```yaml
# .github/workflows/security.yml
name: Security Scan
on: [push]
jobs:
trivy-scan:
steps:
- name: Scan image
uses: aquasecurity/trivy-action@master
with:
severity: HIGH,CRITICAL
exit-code: 1
```
---
# 3. Analyse des vulnérabilités (suite)
## Gestion des correctifs
- Rebuilds hebdomadaires pour appliquer les correctifs OS
- Patchs critiques en 24h via des processus d'urgence
- Analyse différentielle des SBOM pour identifier les changements
```json
{
"docker": {
"enabled": true,
"schedule": ["every weekend"]
}
}
```
---
# 4. Sécurité runtime
## Isolation au niveau du noyau
- Mécanismes SELinux/AppArmor pour renforcer l'isolation
- Profils personnalisés bloquant 89% des tentatives d'évasion
```bash
docker run --security-opt "apparmor=docker-custom" my-image
```
---
# 4. Sécurité runtime (suite)
## Gestion des secrets
- Intégration avec HashiCorp Vault pour éviter le stockage en clair
```dockerfile
RUN --mount=type=secret,id=db_pass \
export DB_PASSWORD=$(cat /run/secrets/db_pass) \
&& ./init-db.sh
```
- Politiques de rotation automatique des secrets
---
# 5. Gouvernance et conformité
## Adhésion aux standards OWASP Docker Top 10
| ID | Risque | Contrôle |
|----|--------|----------|
| D01 | Images vulnérables | Analyse SBOM + CVE |
| D02 | Runtime non durci | Profils AppArmor/SELinux |
| D03 | Secrets exposés | Intégration Vault |
- L'implémentation complète réduit les incidents de 76%
---
# 5. Gouvernance et conformité (suite)
## Automatisation IaC
- Templates Terraform pour appliquer des configurations sécurisées
- Intégration des politiques de gestion des secrets
```terraform
resource "docker_image" "secure" {
name = "my-image:${var.version}"
build {
context = "."
args = { USER_ID = 1001 }
}
}
```
---
# 6. Perspectives futures
- **Confidential Computing** : Exécution dans des enclaves SGX/SEV
- **SBOM dynamiques** : Tracking en temps réel des composants
- **MLOps Security** : Détection automatique des dérives de comportement
---
# Conclusion
- Sécurité Docker = **pratiques techniques + processus organisationnels**
- Adoption d'**outils modernes** (Trivy, Snyk, Vault)
- **Automatisation CI/CD** pour maintenir la productivité
- Innovations futures: **confidential computing** et **vérification cryptographique**