View a markdown version of this page

SEC06-BP02 Provisionner le calcul à partir d’images renforcées - AWS Well-Architected Framework

SEC06-BP02 Provisionner le calcul à partir d’images renforcées

Réduisez les possibilités d’accès involontaire à vos environnements d’exécution en les déployant à partir d’images renforcées. Acquérez uniquement les dépendances d’exécution, telles que les images de conteneurs et les bibliothèques d’applications, à partir de registres fiables et vérifiez leurs signatures. Créez vos propres registres privés pour stocker des images et des bibliothèques fiables à utiliser dans vos processus de création et de déploiement.

Résultat souhaité : vos ressources de calcul sont provisionnées à partir d’images de référence renforcées. Vous récupérez les dépendances externes, telles que les images de conteneurs et les bibliothèques d’applications, uniquement à partir de registres fiables et vous vérifiez leurs signatures. Celles-ci sont stockées dans des registres privés à des fins de référence pour vos processus de création et de déploiement. Vous analysez et mettez à jour régulièrement les images et les dépendances pour vous protéger contre les vulnérabilités récemment découvertes.

Anti-modèles courants :

  • Acquérir des images et des bibliothèques à partir de registres fiables, mais sans vérifier leur signature ni effectuer d’analyses de vulnérabilité avant de les utiliser.

  • Renforcer les images, mais ne pas les tester régulièrement pour détecter de nouvelles vulnérabilités ou ne pas les mettre à jour vers la dernière version.

  • Installer ou ne pas supprimer les packages logiciels qui ne sont pas nécessaires pendant le cycle de vie prévu de l’image.

  • S’appuyer uniquement sur l’application de correctifs pour maintenir à jour les ressources de calcul de production. L’application de correctifs à elle seule peut encore entraîner une dérive des ressources de calcul par rapport à la norme renforcée au fil du temps. Il est également possible que l’application de correctifs ne parvienne pas à supprimer les programmes malveillants qui ont pu être installés par un acteur malveillant lors d’un événement de sécurité.

Avantages de la mise en place de cette bonne pratique : le renforcement des images contribue à réduire le nombre de chemins disponibles dans votre environnement d’exécution qui peuvent permettre à des utilisateurs ou à des services non autorisés de bénéficier d’un accès involontaire. Cela peut également réduire l’ampleur de l’impact en cas d’accès involontaire.

Niveau d’exposition au risque si cette bonne pratique n’est pas établie : élevé

Directives d’implémentation

Pour renforcer vos systèmes, utilisez les dernières versions des systèmes d’exploitation, des images de conteneurs et des bibliothèques d’applications. Appliquez des correctifs aux problèmes connus. Minimisez le système en supprimant la totalité des applications, services, pilotes d’appareils, utilisateurs par défaut et autres informations d’identification inutiles. Prenez toutes les autres mesures nécessaires, telles que la désactivation des ports pour créer un environnement disposant uniquement des ressources et des fonctionnalités requises pour vos charges de travail. À partir de cette situation de référence, vous pouvez ensuite installer les logiciels, les agents ou les autres processus dont vous avez besoin à des fins telles que la surveillance de la charge de travail ou la gestion des vulnérabilités.

Vous pouvez réduire la charge liée au renforcement des systèmes en suivant les conseils fournis par des sources fiables, telles que les Guides de mise en œuvre technique de la sécurité (STIG) du Center for Internet Security (CIS) et de la Defense Information Systems Agency (DISA). Nous vous recommandons de commencer par une Amazon Machine Image (AMI) publiée par AWS ou par un partenaire APN, et d’utiliser AWS EC2 Image Builder pour automatiser la configuration en fonction d’une combinaison appropriée de contrôles CIS et STIG.

Bien qu’il existe des images renforcées et des recettes EC2 Image Builder qui appliquent les recommandations CIS ou DISA STIG, il se peut que leur configuration empêche le bon fonctionnement de vos logiciels. Le cas échéant, vous pouvez partir d’une image de base non renforcée, installer vos logiciels, puis appliquer de manière incrémentielle des contrôles CIS pour tester leur impact. Pour tout contrôle CIS qui empêche l’exécution de vos logiciels, testez s’il est possible d’implémenter des recommandations de renforcement plus précises dans une configuration DISA à la place. Gardez une trace des différents contrôles CIS et des configurations DISA STIG que vous pouvez appliquer avec succès. Utilisez-les pour définir vos recettes de renforcement de l’image dans EC2 Image Builder en conséquence.

Pour les charges de travail conteneurisées, des images renforcées provenant de Docker sont disponibles sur le référentiel public Amazon Elastic Container Registry (ECR). Vous pouvez utiliser EC2 Image Builder pour renforcer les images de conteneurs en plus des AMI.

Comme pour les systèmes d’exploitation et les images de conteneurs, vous pouvez obtenir des packages de code (ou des bibliothèques) à partir de référentiels publics, grâce à des outils tels que pip, npm, Maven et NuGet. Nous vous recommandons de gérer les packages de code en intégrant des référentiels privés, par exemple dans AWS CodeArtifact, à des référentiels publics fiables. Cette intégration peut gérer la récupération, le stockage et la mise à jour des packages pour vous. Les processus de création de votre application peuvent ensuite obtenir et tester la dernière version de ces packages parallèlement à votre application, en utilisant des techniques telles que l’analyse de la composition logicielle (SCA), les tests statiques de sécurité des applications (SAST) et les tests dynamiques de sécurité des applications (DAST).

Pour les charges de travail sans serveur qui utilisent AWS Lambda, simplifiez la gestion des dépendances des packages à l’aide de couches Lambda. Utilisez des couches Lambda afin de configurer un ensemble de dépendances standard qui sont partagées entre différentes fonctions dans une archive autonome. Vous pouvez créer et gérer des couches par le biais de leur propre processus de création, ce qui permet à vos fonctions de rester à jour de manière centralisée.

Étapes d’implémentation

  • Renforcez les systèmes d’exploitation. Utilisez des images de base provenant de sources fiables pour créer vos AMI renforcées. Utilisez EC2 Image Builder pour personnaliser le logiciel installé sur vos images.

  • Renforcez les ressources conteneurisées. Configurez les ressources conteneurisées de manière à respecter les bonnes pratiques en matière de sécurité. Lorsque vous utilisez des conteneurs, mettez en œuvre l’analyse d’image ECR dans votre pipeline de génération et régulièrement par rapport à votre référentiel d’images pour rechercher les failles CVE dans vos conteneurs. 

  • Lorsque vous utilisez l’implémentation sans serveur avec AWS Lambda, utilisez des couches Lambda pour séparer le code des fonctions de l’application et les bibliothèques dépendantes partagées. Configurez la signature de code pour Lambda afin de vous assurer que seul du code fiable est exécuté dans vos fonctions Lambda.

Ressources

Bonnes pratiques associées :

Vidéos connexes :

Exemples connexes :