Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
LID — LID — Linux Integrity Drift : contournement d'AppArmor via la réécriture de chemin eBPF. Manipulation d'arguments d'appel système avant LSM avec empreinte d'audit nulle. « Linux is Dying » | Kitploit
Outils/GitHubGitHub/azqzazq1/lid
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSTests d'IntrusionAnalyse de BinairesArticles et RechercheApprentissage et ÉducationRed Teaming
GitHubazqzazq1/lid

LID

LID — Linux Integrity Drift : contournement d'AppArmor via la réécriture de chemin eBPF. Manipulation d'arguments d'appel système avant LSM avec empreinte d'audit nulle. « Linux is Dying »

20119il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt


``` ██╗ ██╗██████╗ ██║ ██║██╔══██╗ ██║ ██║██║ ██║ ██║ ██║██║ ██║ ███████╗██║██████╔╝ ╚══════╝╚═╝╚═════╝ ```

Dérive d'intégrité Linux

— « Linux est en train de mourir » —


Découverte systématique de chemins de code du noyau qui contournent les garanties de sécurité des LSM
La porte n'a jamais été forcée. On l'a contournée.



Qu'est-ce que LID ?

Le framework des modules de sécurité Linux (LSM) repose sur une garantie centrale qui tient depuis plus de 20 ans :

Les modules de sécurité ne peuvent qu'ajouter des restrictions. Ils ne peuvent jamais les supprimer.

Cette garantie est correcte. LID ne la brise pas.

LID trouve des chemins de code du noyau qui contournent complètement les hooks LSM — des sous-systèmes effectuant des opérations sensibles pour la sécurité sans consulter le framework LSM. La vérification de sécurité est correcte. Le problème est que le noyau ne demande jamais.


Comprendre ce que LID est (et n'est pas)

Chaque découverte a deux dimensions distinctes qu'il ne faut pas confondre :

A) Écart de visibilité de la politique

Le point aveugle architectural. La question n'est pas « un attaquant peut-il exploiter cela ? » mais :

  • Que voit réellement AppArmor/SELinux ?
  • Que consigne le journal d'audit ?
  • Qu'observe votre SIEM/EDR ?
  • Que pense le moteur de politique qu'il s'est passé ?

Si une opération sensible pour la sécurité se produit et que la couche d'application ne l'évalue même pas, vous avez un écart de visibilité — indépendamment de la possibilité pratique pour un attaquant d'en abuser aujourd'hui. Cela compte pour la conformité, la criminalistique et les hypothèses de défense en profondeur.

B) Chemin d'escalade pratique

La question pratique de l'exploitabilité :

  • Cela franchit-il une limite de privilèges ?
  • Un attaquant a-t-il besoin d'un accès root / CAP_BPF existant pour le déclencher ?
  • Une chaîne d'exploitation est-elle nécessaire, ou est-ce autonome ?
  • Quel est l'impact réel — accès aux données, escalade de privilèges, contournement de politique ?

Ces deux choses sont différentes. Une découverte peut être un écart de visibilité critique (votre surveillance est aveugle) sans être une escalade de privilèges pratique (l'attaquant a déjà besoin de root). Inversement, une découverte peut être un chemin d'escalade direct avec des prérequis minimaux.

DécouverteÉcart de visibilitéEscalade pratique
LID-001Critique — AppArmor ne voit rien, journal d'audit vide, aucune trace forensiqueLimitée — nécessite root ou CAP_BPF+CAP_PERFMON (déjà privilégié). Pas d'escalade de privilèges. Impact : contournement de politique + cécité d'audit.
LID-002Élevé — security_file_receive() jamais déclenché, transfert de fd invisible pour tous les LSMÉlevé — fonctionne depuis un espace utilisateur non privilégié via io_uring. Franchit la limite d'application LSM sans aucun privilège.
LID-003Élevé — security_sb_mount() contourné, la politique de montage AppArmor est du code mortMoyen — nécessite un accès à l'espace de noms de montage (CAP_SYS_ADMIN dans user ns). Disponible dans de nombreuses configurations de conteneurs.
LID-004Critique — AppArmor ne voit rien, zéro hooks BPF (0/9), aucune trace d'audit pour toute opération de jeton BPFMoyen — nécessite une délégation bpffs par l'hôte + CAP_BPF dans l'espace de noms utilisateur. Disponible dans les environnements d'exécution de conteneurs avec délégation BPF (LXD/Incus).
LID-005Moyen — les classificateurs tc egress sur l'interface du conteneur n'évaluent jamais le trafic AF_XDPLimitée — contourne tc egress sur eth0 du conteneur (vérifié). Cilium PAS contourné — applique sur l'ingress veth côté nœud + vérification IP source (testé). Impact limité aux configurations Docker simples avec filtrage tc egress uniquement.

Matrice de reproductibilité

Chaque découverte a des exigences spécifiques de noyau/config/privlèges. Si votre environnement ne correspond pas, la découverte ne se reproduira pas.

LID-001 : Réécriture de chemin eBPF

ConditionRequisNotes
Version du noyau5.x+Testé sur 5.15, 6.1, 6.6, 6.8
CONFIG_BPF_SYSCALL=yPar défaut sur toutes les distributions majeures
CONFIG_BPF_KPROBE_OVERRIDE=yUbuntu/Debian l'activent, RHEL non
CONFIG_SECURITY_APPARMOR=yLe LSM cible doit être AppArmor
Profil AppArmorEnforcing, règle de refus sur le chemin cibleFonctionne avec toute règle de refus basée sur le chemin
Privilègesroot ou CAP_BPF + CAP_PERFMONNe peut pas s'exécuter non privilégié
kernel.lockdownnone ou integrityLe mode confidentiality bloque l'attachement kprobe
kernel.unprivileged_bpf_disabledSans importanceNécessite CAP_BPF quoi qu'il arrive
fs.protected_hardlinks0 pour les liens inter-utilisateurs1 (par défaut) autorise encore les liens physiques du même utilisateur
SELinux au lieu d'AppArmorNe fonctionne pasSELinux est basé sur les inodes, pas sur les noms de chemin

LID-002 : io_uring MSG_RING

ConditionRequisNotes
Version du noyau6.0+IORING_MSG_SEND_FD ajouté dans 6.0
CONFIG_IO_URING=yPar défaut sur toutes les distributions majeures
PrivilègesAucunFonctionne depuis un espace utilisateur non privilégié
sysctl io_uring_disabled0 (par défaut)2 bloque les non privilégiés, 1 bloque tout
LSM cibleTout (SELinux, AppArmor, Smack)security_file_receive() est un hook LSM générique
kernel.lockdownSans importanceAucun BPF impliqué

LID-004 : Cécité AppArmor pour les jetons BPF

ConditionRequisNotes
Version du noyau6.9+Jeton BPF introduit dans 6.9
CONFIG_BPF_SYSCALL=yPar défaut sur toutes les distributions majeures
CONFIG_SECURITY_APPARMOR=yValeur par défaut Ubuntu/Debian
bpffs avec délégationOuiL'hôte doit monter avec les options delegate_*
PrivilègesCAP_BPF dans l'espace de noms utilisateurTrivialement accessible au root d'userns
SELinux au lieu d'AppArmorNon affectéSELinux implémente les 9 hooks BPF

LID-003 : Nouvelle API de montage

ConditionRequisNotes
Version du noyau5.2+fsopen/fsmount introduits dans 5.2
CONFIG_SECURITY_APPARMOR=ySeul AppArmor est affecté
PrivilègesCAP_SYS_ADMIN dans l'espace de noms utilisateurDisponible avec unshare -m
SELinux au lieu d'AppArmorNe fonctionne pasSELinux implémente security_sb_kern_mount()
Environnement d'exécution de conteneurDépend du filtre seccompLe seccomp par défaut de Docker bloque fsopen — Podman/LXC peuvent ne pas le faire

LID-005 : Contournement tc egress AF_XDP

Télécharger l’outil