Skip to main content

Sécuriser les conteneurs tout au long du cycle de développement logiciel

Écrit par
container scans

16 octobre 2019

0 minutes de lecture

Les conteneurs deviennent de plus en plus l’unité standard des logiciels. L’image de conteneur, définie techniquement dans la spécification d’image OCI, est un élément clé des outils modernes, de Docker à Kubernetes, en passant par des plateformes comme AWS Fargate et Google Cloud Run. Qu’est-ce que cela implique pour la sécurité des applications ?

Où utilise-t-on les images de conteneur ?

L’un des aspects intéressants des images de conteneur, c’est qu’elles interviennent tout au long du cycle de développement logiciel (SDLC).

  • Les développeurs créent les images localement. Elles offrent un moyen pratique de distribuer facilement (parfois trop facilement) des logiciels.

  • Les images sont également créées dans le cadre des pipelines d’intégration et de livraison continues. Des métadonnées sur l’application peuvent leur être associées pour faciliter la gestion des actifs.

  • Les images sont téléversées vers des registres publics ou privés, depuis lesquels elles peuvent être partagées en vue de leur déploiement.

  • Enfin, les images sont déployées dans des clusters, des environnements de développement et de test jusqu’à la production, de plus en plus souvent gérés par Kubernetes ou des outils similaires.

Chacune de ces étapes permet de tester l’image afin d’y détecter des vulnérabilités. Mais quelle est la meilleure étape pour le faire ?

À quelle étape tester nos images ?

Pour sécuriser nos images de conteneur, il est tentant de penser qu’il suffit de les tester à une seule étape du SDLC. Par exemple, si vos images sont sécurisées dans votre registre, vous êtes protégé, n’est-ce pas ? En réalité, la situation est plus nuancée et implique généralement des compromis.

Plus vous effectuez les tests près de la production, plus vous avez confiance dans votre compréhension des risques liés aux applications en cours d’exécution. À moins d’être un éditeur de logiciels qui crée des outils pour d’autres, vous cherchez probablement avant tout à sécuriser les applications que vous exploitez actuellement en production. Tester tard dans le cycle est également utile lorsqu’une nouvelle vulnérabilité est révélée dans une dépendance que vous utilisez. Vous pouvez ainsi déterminer rapidement quelles applications en production sont concernées et agir en conséquence, avec le degré d’urgence approprié.

Cependant, tester uniquement à la fin du SSDLC signifie probablement que les cycles de retour d’information destinés aux développeurs seront longs. Le développeur qui a choisi d’utiliser ou de modifier une image a poursuivi son travail en s’appuyant dessus et est passé à d’autres tâches. Apporter les modifications nécessaires pour corriger la faille devient alors perturbant et coûteux. N’oubliez pas que l’objectif n’est pas seulement de connaître les vulnérabilités potentielles (ce qui est important), mais aussi de les corriger. Les tests locaux offrent le retour d’information le plus rapide, mais reposent sur le fait que chaque développeur pense à lancer une analyse à chaque fois, ce qui est loin d’être exhaustif ou réaliste.

Avant de conclure que le pipeline est donc le bon endroit pour effectuer les tests, il convient également de prendre en compte le coût de mise en œuvre. Vous disposez peut-être d’un ou deux registres de conteneurs centralisés, qui vous permettent d’évaluer toutes les images que vous créez, mais vous avez probablement beaucoup plus de pipelines d’intégration continue. Selon votre niveau d’automatisation et les personnes responsables des différents outils dans votre organisation, il peut être plus judicieux de commencer à un endroit plutôt qu’à un autre.

Il faut également noter que le contexte dont nous disposons varie selon les étapes du SDLC. Des tests effectués localement ou dans le cadre de l’intégration continue nous donnent probablement accès au code source et aux informations de contrôle de version. Cela peut faciliter la détection de certains types de problèmes, par exemple ceux liés au compilateur utilisé ou à des commits non signés effectués par un acteur malveillant. Cela aide aussi à comprendre comment une bibliothèque a été introduite. En revanche, les tests en production nous indiquent précisément quelles images sont utilisées et où, ainsi que leur configuration, ce qui peut nous aider à hiérarchiser les problèmes détectés.

Conclusion

En réalité, tester à un seul endroit peut répondre aux besoins d’une fonction (développement, exploitation ou sécurité, par exemple), mais ne permettra probablement pas d’atteindre pleinement l’objectif global de l’entreprise : détecter et corriger les vulnérabilités le plus rapidement possible. Voici un récapitulatif utile :

Tests de détection des vulnérabilités aux différentes étapes du SDLC

Étape

Description

Coût

Retour d’information

Exhaustivité

En local

Idéal pour le débogage et le renforcement des connaissances des développeurs, mais nécessite une action individuelle de leur part et ne permet pas d’imposer les contrôles.

Moyen

Rapide

Faible

CI/CD

Idéal comme point de contrôle et pour fournir rapidement un retour d’information aux développeurs. Nécessite une mise en œuvre pour chaque pipeline, qui dépend du niveau de standardisation de la gestion des pipelines dans votre organisation. Peut être contre-productif si des problèmes de faible gravité interrompent la compilation ; il faut donc prévoir d’autres cycles de retour d’information.

Moyen

Rapide

Variable

Registre

Souvent géré par une seule personne, il est donc facile à intégrer et couvre toutes les images internes, quelle que soit la manière dont elles ont été créées. Peut générer du bruit, car certaines images sont susceptibles de ne pas être utilisées.

Faible

Moyen

Moyen

Production

Donne une image fidèle de ce que vous exécutez, y compris le contenu tiers, mais peut ralentir les retours d’information aux équipes de développement et expose les applications en cours d’exécution au risque d’exploitation des vulnérabilités.

Élevé

Lent

Élevée

Le point de départ dépend des spécificités de votre organisation. L’objectif idéal est toutefois de tester en profondeur les applications conteneurisées tout au long du SDLC. S’appuyer sur un seul point de contrôle est une approche trop simpliste, qui risque de créer des frictions entre les équipes de développement, d’exploitation et de sécurité, ou de ralentir le déploiement des applications.

La sécurité des conteneurs, pensée pour les développeurs

Snyk détecte et corrige automatiquement les vulnérabilités dans les images de conteneurs et les workloads Kubernetes.

Lire la suite

feature insights announcement
Blog

Compromission de la chaîne d’approvisionnement Node-gyp : un ver npm à propagation autonome dissimulé dans binding.gyp

Un nouveau ver npm détourne binding.gyp pour déclencher node-gyp lors de l’installation et permettre à des packages malveillants d’exécuter du code sans scripts de cycle de vie. Il vole des identifiants, s’installe durablement sur GitHub et se propage de mainteneur en mainteneur.

blog feature toolkit
Blog

Publication malveillante du paquet elementary-data sur PyPI : des identifiants cloud dérobés à des ingénieurs data

Des attaquants ont exploité une vulnérabilité d’injection de script dans GitHub Actions pour publier une version malveillante de l’interface de ligne de commande Python elementary-data (v0.23.3). Elle intégrait une porte dérobée volant des identifiants, qui ciblait les profils dbt, les clés des fournisseurs cloud et les secrets SSH dans les environnements d’ingénierie des données.

Blog

Vulnérabilités RCE du planificateur de tâches Qinglong exploitées dans la nature à des fins de cryptominage

Deux vulnérabilités de contournement de l’authentification (CVE-2026-3965, CVE-2026-4047) dans le panneau de planification des tâches Qinglong ont été exploitées dans la nature pour déployer un logiciel malveillant de cryptominage. Voici ce qui s’est passé, comment les attaques ont fonctionné et les enseignements que les responsables d’applications auto-hébergées peuvent tirer de cet incident.