Images de conteneur minimales

Images de conteneur minimales

Chaque outil que vous expédiez est un outil dont l’attaquant hérite.

Qu'est-ce que Images de conteneur minimales?

Une image de production contenant un gestionnaire de paquets, un compilateur, un shell et des utilitaires réseau transforme une faille d'application limitée en une boîte à outils fonctionnelle. L'attaquant n'apporte rien ; L'image l'a déjà expédiée. Vous utiliserez une commande d'un bogue du service de paiement pour trouver curl et lire les informations d'identification du rôle d'instance à partir du point de terminaison des métadonnées à l'adresse 169.254.169.254. Ensuite, vous diviserez la construction en deux étapes, copierez uniquement l'artefact compilé dans une image finale sans distribution et observerez qu'un shell ne s'ouvre pas dans le conteneur redéployé car il n'y en a pas.

Ce que vous apprendrez dans Images de conteneur minimales

Images de conteneur minimales — Étapes de la formation

  1. Un point d'ancrage dans le module de paiement

    Bob ne commence pas avec un shell. Le service de paiement génère des étiquettes d'expédition en PDF en appelant un shell externe, et un champ de cette requête n'est pas assaini. Il injecte une sonde pour confirmer qu'il peut exécuter une commande, et pour voir qui il est et où il se trouve.

  2. Tout ce que l'image embarque

    Bob dispose d'une exécution une commande à la fois en tant qu'application, mais pas encore de shell. C'est habituellement là qu'un attaquant reste bloqué, à moins que le conteneur ne lui remette une boîte à outils. Avant de faire quoi que ce soit de bruyant, il vérifie ce qui est déjà installé.

  3. Récupérer les identifiants cloud avec curl

    Le conteneur s'exécute dans le cloud, et chaque instance cloud expose un service de métadonnées à une adresse interne fixe qui distribue les identifiants temporaires du rôle de la machine. Y accéder nécessite un client HTTP. L'image en fournissait un.

  4. Comment une commande est devenue une violation

    L'accès de Bob à l'application était strictement limité.

  5. Un shell dans un conteneur d'exécution

    Skelwyn exécute une détection sur les postes de ses hôtes de conteneurs. Elle ne sait pas à quoi sert chaque conteneur ; elle rapporte les comportements qui ne correspondent pas à une exécution normale.

  6. Confirmer ce qui a été embarqué

    Alice reproduit ce que l'attaquant a découvert : elle demande au conteneur en cours d'exécution lesquels de ces outils il contient réellement.

  7. Une exécution de 412 Mo

    La boîte à outils n'est pas gratuite. Elle représente du poids, et une surface d'attaque. Alice vérifie la taille de l'image réellement exécutée par le service.

  8. Comment la boîte à outils s'y est glissée

    L'image est construite à partir d'un seul Dockerfile. Alice l'ouvre pour comprendre pourquoi un conteneur d'exécution finit par embarquer un compilateur.

  9. Une seule étape, tout est embarqué

    L'image est construite et exécutée en une seule étape, si bien que tout ce dont le build a besoin, l'exécution le porte également.

  10. Séparer le build de l'exécution

    La correction consiste en un build multi-étapes : conserver l'image complète et sa chaîne d'outils comme étape de build qui compile l'application, puis copier uniquement l'application finie et ses dépendances dans une image d'exécution distroless, sans shell, sans gestionnaire de paquets et sans compilateur.

Couverture des référentiels de sécurité

CWE

  • CWE-1188 Initialization of a Resource with an Insecure Default

CIS Controls

  • CIS 2 Inventory and Control of Software Assets
  • CIS 4 Secure Configuration of Enterprise Assets and Software

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • ID.AM Asset Management
  • PR.PS Platform Security