Conteneurs privilégiés

Conteneurs privilégiés

La racine dans le conteneur est la racine du noyau hôte.

Qu'est-ce que Conteneurs privilégiés?

Un conteneur n'est pas une limite de sécurité par défaut. Un processus exécuté en tant que root à l'intérieur d'un processus est root sur le noyau hôte, et l'indicateur privilégié ainsi qu'un montage de liaison hôte suppriment le peu qui reste entre eux. Vous effectuerez l'échappement : lisez l'ensemble de fonctionnalités accordées, répertoriez le système de fichiers hôte via le montage, volez sa clé SSH racine et ajoutez la vôtre pour la persistance. Le correctif s'étend sur deux fichiers. Vous ajouterez un USER non root dans le Dockerfile, puis supprimerez l'indicateur privilégié et toutes les fonctionnalités dans Compose.

Ce que vous apprendrez dans Conteneurs privilégiés

Conteneurs privilégiés — Étapes de la formation

  1. Un shell dans le conteneur

    Bob cible Vosswark, une plateforme logistique dont le service média redimensionne et transcode les fichiers envoyés par les clients. Une bibliothèque d'images non corrigée dans ce service lui a donné une exécution de code à distance, et il dispose désormais d'un shell qui tourne à l'intérieur. Comment il est entré n'est pas la partie intéressante. Ce que le conteneur lui permet de faire ensuite l'est.

  2. Qui suis-je, et que puis-je faire

    Deux questions décident si ce point d'ancrage est une impasse ou une porte d'entrée : sous quel utilisateur le processus s'exécute, et ce que le noyau laissera cet utilisateur faire. Un seul fichier répond aux deux.

  3. Ce que le mode privilégié a réellement offert

    Privilégié signifie que les restrictions habituelles ne sont pas appliquées. Bob vérifie la chose la plus précieuse qui peut en découler : si quelque chose de l'hôte a été remis directement au conteneur.

  4. Prendre la clé de l'hôte

    Le conteneur n'était qu'un moyen d'arriver à ses fins. Ce que Bob veut se trouve sur la machine en dessous, dans le seul répertoire qui transforme un hôte compromis en point d'ancrage sur toute la flotte.

  5. Ce qui a rendu l'évasion possible

    Un instant sur le mécanisme avant de faire le compte des dégâts.

  6. Laisser une porte dérobée

    Lire la clé est un vol. Écrire sur l'hôte est de la persistance. Comme le montage n'est pas en lecture seule, Bob peut ajouter sa propre clé publique aux authorized_keys de l'hôte, et à partir de là, il n'a plus besoin de la clé volée. L'ajout n'affiche rien, exactement comme dans un vrai shell. Ce silence est le point important : rien ici ne ressemble à une attaque.

  7. Compter ce qu'un seul conteneur a atteint

    Bob détient désormais la propre clé de l'hôte et a planté la sienne à côté. Le worker média était un service à faible valeur qui traitait les fichiers envoyés par les clients. Il était aussi, tel qu'il était configuré, une route vers chaque machine qui fait confiance à cette clé, et une porte que Bob peut rouvrir à volonté.

  8. L'hôte signale une lecture de fichier

    Vosswark exécute une surveillance d'intégrité des fichiers sur ses hôtes. Elle ne se préoccupe pas de savoir quel conteneur a fait quoi ; elle signale que le matériel de clé propre à l'hôte a été lu.

  9. Regarder comment il a été démarré

    Le Dockerfile décrit ce qu'il y a à l'intérieur d'une image. Il ne dit rien des indicateurs avec lesquels un conteneur a été démarré, et ce sont ces indicateurs qui expliquent cet incident. Seul l'hôte peut répondre à cela.

  10. Ouvrir le Dockerfile

    Il y a deux moitiés à corriger, et elles vivent dans des fichiers différents. L'image décide sous quel utilisateur le processus s'exécute ; le déploiement décide ce que ce processus est autorisé à toucher. Commencez par l'image.

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

CWE

  • CWE-250 Execution with Unnecessary Privileges
  • CWE-269 Improper Privilege Management

MITRE ATT&CK

  • T1611 Escape to Host

CIS Controls

  • CIS 4 Secure Configuration of Enterprise Assets and Software
  • CIS 6 Access Control Management

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
  • PR.PS Platform Security
  • PR.AA Identity Management, Authentication, and Access Control