Les images de conteneurs peuvent contenir des failles de sécurité - des dépendances obsolètes, des CVE connues ou des logiciels malveillants. Pour les applications d'intelligence artificielle qui traitent des documents sensibles, la sécurité des conteneurs est essentielle. L'analyse automatisée de la sécurité dans les pipelines CI/CD identifie les vulnérabilités avant qu'elles ne soient mises en production. La sécurité des conteneurs est un élément essentiel des systèmes d'information modernes. Orchestration de conteneurs et constitue la base pour des déploiements sécurisés dans des Hébergement en nuage-environnements et Cloud privé-infrastructures.
L'approche DevSecOps intègre les contrôles de sécurité directement dans le processus de développement. Les développeurs reçoivent un feedback immédiat sur les problèmes de sécurité lors du processus de construction, et non des semaines plus tard. Cela raccourcit considérablement le feedback loop et empêche les images vulnérables d'entrer en production. Des outils tels que Trivy, Grype et Snyk automatisent entièrement ces contrôles.
Qu'est-ce qui est scanné ?
Les scanners de sécurité des conteneurs analysent les images à plusieurs niveaux. Les vulnérabilités dans les packages OS et les dépendances des applications sont comparées aux bases de données CVE. Un package OpenSSL obsolète ou une version de Log4j avec des vulnérabilités connues est immédiatement identifié. Les scanners évaluent la criticité de chaque vulnérabilité comme Critical, High, Medium ou Low et permettent ainsi de corriger en priorité les issues les plus dangereuses.
Les secrets comme les clés API, les mots de passe ou les clés privées ne devraient jamais être intégrés dans les images de conteneurs. Les scanners recherchent des modèles suspects dans toutes les couches de l'image et avertissent si des credentials sont trouvés. Une clé d'accès AWS codée en dur dans un fichier Docker ou une clé SSH archivée par inadvertance est détectée avant que l'image ne soit déployée. Cela permet d'éviter des failles de sécurité fréquentes mais graves.
Les mauvaises configurations représentent un autre risque. Les conteneurs qui fonctionnent en tant qu'utilisateurs root ont des privilèges inutilement élevés et augmentent la surface d'attaque. Les ports exposés, comme SSH sur le port 22, ne devraient pas être accessibles au public dans les conteneurs de production. Les scanners examinent de tels problèmes de configuration et recommandent des mesures de hardening comme des utilisateurs non privilégiés et une exposition minimale des ports.
Outils d'analyse de sécurité
Trivy s'est imposé comme le scanner le plus rapide et le plus simple. Une seule commande scanne une image complète en quelques secondes et fournit des résultats clairs. Trivy est open source et supporte Docker, Kubernetes, Terraform et de nombreux autres formats. L'intégration dans les pipelines CI/CD se fait avec un minimum d'effort, car Trivy fonctionne comme un binaire autonome sans dépendance externe.
# Image scannen mit Trivy
trivy image python:3.11
# Nur Critical und High Vulnerabilities
trivy image --severity CRITICAL,HIGH nginx:latest
# JSON-Output für Weiterverarbeitung
trivy image --format json -o scan-results.json myapp:v1.2.3Grype d'Anchore offre des fonctionnalités similaires en se concentrant sur l'intégration SBOM. Les Software Bill of Materials sont créés sous forme de listes d'inventaire structurées de tous les composants d'une image. Cela facilite les preuves de conformité et permet de vérifier rapidement quelles images sont concernées en cas de nouvelles CVE. Grype génère et utilise automatiquement les SBOM pour une détection plus précise des vulnérabilités.
# Image mit Grype scannen
grype docker:python:3.11
# SBOM exportieren
syft docker:python:3.11 -o spdx-json > sbom.json
# SBOM mit Grype scannen
grype sbom:sbom.jsonSnyk s'adresse aux équipes de développeurs ayant une excellente expérience de développeur. L'intégration dans des IDE comme VS Code montre les vulnérabilités directement dans l'éditeur de code. Snyk crée automatiquement des pull requests avec des corrections pour les vulnérabilités connues et met à jour les dépendances vers des versions sécurisées. Le niveau gratuit couvre les petits projets, les fonctionnalités d'entreprise coûtent à partir de 500 euros par mois.
Intégration de pipelines CI/CD
GitHub Actions intègre le Security Scanning dans chaque Pull Request. Le workflow suivant scanne automatiquement les images lors de la construction et empêche les fusions si des vulnérabilités critiques sont trouvées. Cela permet d'établir une porte de sécurité qui bloque automatiquement les images non sécurisées sans qu'une révision manuelle soit nécessaire.
name: Container Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Image
run: docker build -t myapp:${{ github.sha }} .
- name: Scan with Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:${{ github.sha }}
severity: CRITICAL,HIGH
exit-code: 1 # Fail bei Vulnerabilities
- name: Upload Results
if: always()
uses: actions/upload-artifact@v3
with:
name: scan-results
path: trivy-results.jsonGitLab CI/CD offre une intégration similaire avec une prise en charge native de l'analyse des conteneurs. GitLab Ultimate comprend un Security Scanning intégré qui affiche les résultats directement dans les Merge Requests. Pour GitLab Free/Premium, Trivy peut être intégré en tant que job personnalisé et fournit des fonctionnalités comparables sans frais de licence supplémentaires.
# .gitlab-ci.yml
security_scan:
stage: test
image: aquasec/trivy:latest
script:
- trivy image --exit-code 1 --severity CRITICAL,HIGH $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
only:
- merge_requests
- mainLes contrôleurs d'admission Kubernetes vérifient les images au moment de l'exécution, au démarrage du pod. Falco et OPA Gatekeeper bloquent automatiquement les pods présentant des vulnérabilités connues ou des violations de politique. Cela constitue une couche de sécurité supplémentaire au cas où des images vulnérables seraient introduites par inadvertance dans le registre. La protection de l'exécution complète le scan CI/CD et protège également contre les images déployées manuellement.
Meilleures pratiques
L'analyse régulière des images existantes est essentielle, car de nouvelles CVE sont publiées quotidiennement. Une image sûre aujourd'hui peut être vulnérable demain si une nouvelle vulnérabilité est découverte dans un composant qu'elle contient. Des scans nocturnes automatisés de toutes les images de registre avec alerte en cas de nouvelles découvertes permettent d'établir une surveillance continue de la sécurité. Des outils comme Harbor ou Quay.io offrent des fonctions d'analyse intégrées pour les registres de conteneurs.
Le choix de l'image de base influence considérablement la posture de sécurité. Les images minimales comme Alpine ou Distroless ne contiennent que les composants essentiels et réduisent la surface d'attaque de 90% par rapport aux images standard. Une image Python basée sur Alpine a typiquement 20 à 30 vulnérabilités, alors que la même image basée sur Ubuntu en a 200 à 300. Le passage à des images minimales améliore la sécurité et réduit significativement la taille des images.
Les constructions multi-étapes séparent les environnements de construction et d'exécution. Les outils de construction comme le compilateur, le gestionnaire de paquets et les dépendances de développement ne sont pas repris dans l'image finale. Cela minimise à la fois la taille et les risques de sécurité, car les outils de construction contiennent souvent plus de vulnérabilités que les dépendances d'exécution. Un fichier d'ancrage multi-étapes pour les applications Python pourrait ressembler à ceci :
# Build Stage
FROM python:3.11 AS builder
WORKDIR /build
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Runtime Stage
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]Les seuils de vulnérabilité définissent des niveaux de risque acceptables. Toutes les vulnérabilités de faible niveau ne justifient pas un effort de correction immédiat. Les politiques typiques bloquent les déploiements pour les découvertes critiques, avertissent pour les découvertes élevées et ignorent les découvertes moyennes/basses dans un premier temps. Les exceptions pour les faux positifs connus ou les vulnérabilités sans correctifs disponibles évitent les blocages inutiles. La politique de sécurité doit rester pratique, sans tolérer de risques réels.
Foire aux questions
À quelle fréquence les images doivent-elles être scannées ?
Les images devraient être analysées à chaque construction dans le pipeline CI/CD afin de détecter immédiatement les nouvelles vulnérabilités. En outre, il est recommandé d'effectuer des scans quotidiens de toutes les images dans le registre des conteneurs, car de nouvelles CVE sont publiées à tout moment. Les images de production nécessitent des scans particulièrement fréquents, idéalement plusieurs fois par jour pour les services critiques. La plupart des scanners permettent des planifications entièrement automatisées sans effort manuel.
Combien coûte l'analyse de la sécurité des conteneurs ?
Les outils open source comme Trivy et Grype sont entièrement gratuits et couvrent la plupart des cas d'utilisation. Les services basés sur le cloud comme Snyk commencent à 0 euro pour les petites équipes avec des limites, les plans d'entreprise coûtent de 500 à 2.000 euros par mois et par équipe. Harbor et Quay.io proposent une analyse intégrée dans le cadre de leur fonctionnalité de registre. Pour la plupart des entreprises, les outils open source sont suffisants, les fonctionnalités d'entreprise valent la peine à partir de 50 développeurs et plus.
Comment gérer les faux positifs ?
Les faux positifs apparaissent lorsque les scanners signalent des vulnérabilités qui ne sont pas exploitables dans l'utilisation spécifique. Les scanners permettent de supprimer les faux positifs connus via des fichiers d'ignorance. Les équipes devraient analyser soigneusement chaque faux positif présumé et documenter les raisons pour lesquelles il est ignoré. Une révision régulière de ces exceptions permet de s'assurer qu'elles restent valables. Des scanners alternatifs peuvent fournir une seconde opinion en cas d'incertitude.
Le scanning peut-il ralentir les déploiements de manière significative ?
Les scanners modernes comme Trivy analysent des images typiques en 10 à 30 secondes. Cela rallonge les pipelines CI/CD de manière minime et vaut le gain de sécurité. La mise en cache des résultats de scan accélère considérablement les re-scans de couches identiques. Pour les très grandes images ou les pipelines complexes, le scanning parallèle de plusieurs tâches peut maintenir la durée totale neutre. Le bénéfice en termes de sécurité l'emporte largement sur l'impact minimal en termes de performance.
Vous souhaitez intégrer le scan de sécurité des conteneurs dans votre pipeline DevSecOps ? Contactez-nous pour un premier entretien sans engagement.
