Sensitive Mounts
L'exposition de /proc
et /sys
sans une isolation de l'espace de noms appropriée présente des risques de sécurité importants, notamment l'agrandissement de la surface d'attaque et la divulgation d'informations. Ces répertoires contiennent des fichiers sensibles qui, s'ils sont mal configurés ou consultés par un utilisateur non autorisé, peuvent entraîner une évasion de conteneur, une modification de l'hôte ou fournir des informations aidant à d'autres attaques. Par exemple, monter de manière incorrecte -v /proc:/host/proc
peut contourner la protection AppArmor en raison de sa nature basée sur le chemin, laissant /host/proc
non protégé.
Vous pouvez trouver plus de détails sur chaque vulnérabilité potentielle dans https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.
Vulnérabilités procfs
/proc/sys
/proc/sys
Ce répertoire permet d'accéder à la modification des variables du noyau, généralement via sysctl(2)
, et contient plusieurs sous-répertoires préoccupants :
/proc/sys/kernel/core_pattern
/proc/sys/kernel/core_pattern
Décrit dans core(5).
Permet de définir un programme à exécuter lors de la génération d'un fichier core avec les 128 premiers octets comme arguments. Cela peut entraîner une exécution de code si le fichier commence par un pipe
|
.Exemple de test et d'exploitation :
/proc/sys/kernel/modprobe
/proc/sys/kernel/modprobe
Détails dans proc(5).
Contient le chemin du chargeur de module du noyau, invoqué pour charger les modules du noyau.
Exemple de vérification d'accès :
/proc/sys/vm/panic_on_oom
/proc/sys/vm/panic_on_oom
Référencé dans proc(5).
Un indicateur global qui contrôle si le noyau panique ou invoque l'OOM killer lorsqu'une condition OOM se produit.
/proc/sys/fs
/proc/sys/fs
Selon proc(5), contient des options et des informations sur le système de fichiers.
L'accès en écriture peut permettre diverses attaques de déni de service contre l'hôte.
/proc/sys/fs/binfmt_misc
/proc/sys/fs/binfmt_misc
Permet d'enregistrer des interprètes pour des formats binaires non natifs en fonction de leur numéro magique.
Peut entraîner une élévation de privilèges ou un accès à un shell root si
/proc/sys/fs/binfmt_misc/register
est inscriptible.Exploit pertinent et explication :
Tutoriel approfondi : Lien vidéo
Autres dans /proc
/proc
/proc/config.gz
/proc/config.gz
Peut révéler la configuration du noyau si
CONFIG_IKCONFIG_PROC
est activé.Utile pour les attaquants pour identifier les vulnérabilités dans le noyau en cours d'exécution.
/proc/sysrq-trigger
/proc/sysrq-trigger
Permet d'invoquer des commandes Sysrq, pouvant entraîner des redémarrages immédiats du système ou d'autres actions critiques.
Exemple de redémarrage de l'hôte :
/proc/kmsg
/proc/kmsg
Expose les messages du tampon de l'anneau du noyau.
Peut aider dans les exploits du noyau, les fuites d'adresses et fournir des informations sensibles sur le système.
/proc/kallsyms
/proc/kallsyms
Liste les symboles exportés du noyau et leurs adresses.
Essentiel pour le développement d'exploits du noyau, en particulier pour surmonter KASLR.
Les informations d'adresse sont restreintes avec
kptr_restrict
défini sur1
ou2
.Détails dans proc(5).
/proc/[pid]/mem
/proc/[pid]/mem
Interagit avec le périphérique mémoire du noyau
/dev/mem
.Historiquement vulnérable aux attaques d'élévation de privilèges.
Plus sur proc(5).
/proc/kcore
/proc/kcore
Représente la mémoire physique du système au format de noyau ELF.
La lecture peut divulguer le contenu de la mémoire de l'hôte et des autres conteneurs.
Une taille de fichier importante peut entraîner des problèmes de lecture ou des plantages logiciels.
Utilisation détaillée dans Dumping /proc/kcore in 2019.
/proc/kmem
/proc/kmem
Interface alternative pour
/dev/kmem
, représentant la mémoire virtuelle du noyau.Permet la lecture et l'écriture, donc la modification directe de la mémoire du noyau.
/proc/mem
/proc/mem
Interface alternative pour
/dev/mem
, représentant la mémoire physique.Permet la lecture et l'écriture, la modification de toute la mémoire nécessite la résolution des adresses virtuelles en physiques.
/proc/sched_debug
/proc/sched_debug
Renvoie des informations de planification des processus, contournant les protections de l'espace de noms PID.
Expose les noms de processus, les identifiants et les identifiants de cgroup.
/proc/[pid]/mountinfo
/proc/[pid]/mountinfo
Fournit des informations sur les points de montage dans l'espace de noms de montage du processus.
Expose l'emplacement du
rootfs
du conteneur ou de l'image.
Vulnérabilités /sys
/sys
/sys/kernel/uevent_helper
/sys/kernel/uevent_helper
Utilisé pour gérer les
uevents
des périphériques du noyau.Écrire dans
/sys/kernel/uevent_helper
peut exécuter des scripts arbitraires lors de déclenchementsuevent
.Exemple d'exploitation : %%%bash
Crée une charge utile
echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
Trouve le chemin de l'hôte à partir du montage OverlayFS pour le conteneur
host_path=$(sed -n 's/.\perdir=([^,]).*/\1/p' /etc/mtab)
Définit uevent_helper sur un assistant malveillant
echo "$host_path/evil-helper" > /sys/kernel/uevent_helper
Déclenche un uevent
echo change > /sys/class/mem/null/uevent
Lit la sortie
cat /output %%%
/sys/class/thermal
/sys/class/thermal
Contrôle les paramètres de température, pouvant causer des attaques DoS ou des dommages physiques.
/sys/kernel/vmcoreinfo
/sys/kernel/vmcoreinfo
Fuites d'adresses du noyau, compromettant potentiellement le KASLR.
/sys/kernel/security
/sys/kernel/security
Contient l'interface
securityfs
, permettant la configuration des modules de sécurité Linux comme AppArmor.L'accès pourrait permettre à un conteneur de désactiver son système MAC.
/sys/firmware/efi/vars
et /sys/firmware/efi/efivars
/sys/firmware/efi/vars
et /sys/firmware/efi/efivars
Expose des interfaces pour interagir avec les variables EFI dans la NVRAM.
Une mauvaise configuration ou exploitation peut entraîner des ordinateurs portables inutilisables ou des machines hôtes non démarrables.
/sys/kernel/debug
/sys/kernel/debug
debugfs
offre une interface de débogage "sans règles" au noyau.Historique de problèmes de sécurité en raison de sa nature non restreinte.
Références
Last updated