Pour sécuriser les conteneurs, il faut suivre trois principes fondamentaux : garantir la sécurité dès la phase de développement, se protéger des menaces qui apparaissent pendant la phase d’exécution et prioriser les alertes de sécurité.
Sécuriser les conteneurs de la source à l’exécution en 7 étapes
Les approches traditionnelles de sécurité ne sont pas en mesure de traiter la nature distribuée et éphémère des conteneurs. Heureusement, une nouvelle approche pensée autour des trois principes ci-dessus est en train d’émerger. Voici 7 bonnes pratiques pour la mettre en œuvre.
La sécurisation du code
La sécurité des applications doit être prise en compte dès le code source par les développeurs car c’est là qu’ils ont le plus de contrôle. Ces derniers peuvent s’appuyer sur les outils d’analyse du code source qui détectent les problèmes dès la phase de développement et assurent une surveillance continue du code. De plus, l’utilisation d’outils que les développeurs utilisent déjà au quotidien ainsi que l’intégration des analyses de sécurité dans les flux de travail existants leur permettent d’automatiser le processus de détection et de résolution des vulnérabilités.
La sécurisation ducode en open source
Le code en open source présente des risques pour la sécurité puisqu’il revient à faire confiance à d'autres développeurs pour maintenir le paquet. Pour limiter cette dépendance, les développeurs doivent identifier et corriger les problèmes dans les paquets qu'ils utilisent. Les outils d'analyse de la composition logicielle (SCA) aident les développeurs à suivre les dépendances et à se référer à une base de données de vulnérabilités pour signaler tout problème.
La sécurisation des images
Les conteneurs offrent un moyen standardisé de packager des applications. Cependant, les images de conteneurs peuvent être source de vulnérabilités si plusieurs bonnes pratiques de cyber-hygiène ne sont pas respectées. Tout d’abord, il faut identifier une image de base fiable qui fournit les fonctionnalités nécessaires sans risque de surcharge. Ensuite, il faut automatiser l’analyse des images dans le pipeline CI/CD et enfin, surveiller les conteneurs en cours d'exécution afin de détecter les vulnérabilités et les mises à jour récentes.
Assurer la sécurité lors de l'exécution
Les conteneurs sont plutôt opaques et 44 % d'entre eux durent moins de cinq minutes. La sécurisation des conteneurs en cours d'exécution peut donc s'avérer délicate. Ainsi, il faut utiliser un outil de sécurité d’exécution capable de surveiller les conteneurs, fournir des informations sur les alertes de sécurité et automatiser les actions et stratégies pour y répondre.
La sécurisation du réseau
De plus en plus d’entreprises adoptent une approche de la sécurité réseau basée sur la confiance zéro. Cependant, les approches classiques de pare-feu ne sont pas adaptées aux environnements dynamiques et natifs du cloud. La sécurisation du réseau doit aller au-delà de la couche physique de communication et s’appuyer sur des contrôles natifs. Il faut alors intégrer des solutions permettant de cartographier la topologie du réseau, d’établir des politiques de sécurité de base et d’automatiser la mise en place de nouvelles stratégies.
La sécurisation du cloud
L'Infrastructure as Code (IaC) introduit souvent des erreurs de configuration. Les utilisateurs finaux modifient souvent la configuration pour faciliter l'exécution des tâches bien que celles-ci ne soient pas tout le temps sécurisées. De plus, les configurations par défaut sont quelques fois non conformes aux protocoles de sécurité de l’entreprise.
La sécurité dans l’IaC se focalise sur la détection et la correction des problèmes de configuration le plus tôt possible, en utilisant souvent une solution de mise en place de politique tel que l’Open Policy Agent (OPA) pour la gouvernance et la conformité.
S’appuyer sur lessignaux d'exécution pour prioriser les vulnérabilités à traiter
Les développeurs peuvent être submergés par le nombre d'alertes de vulnérabilité que les équipes de sécurité et d'exploitation leur envoient. En identifiant les packages logiciels qui sont exécutés dans les conteneurs en cours d'exécution, les développeurs éliminent jusqu'à 95 % des vulnérabilités.