Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
LID — LID — Linux Integrity Drift: bypass di AppArmor tramite riscrittura dei pathname via eBPF. Manipolazione degli argomenti delle syscall pre-LSM con impronta di audit pari a zero. "Linux sta morendo" | Kitploit
Strumenti/GitHubGitHub/azqzazq1/lid
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitEvasione IDS/IPSPenetration TestingAnalisi di BinariPaper e RicercaApprendimento e FormazioneRed Teaming
GitHubazqzazq1/lid

LID

LID — Linux Integrity Drift: bypass di AppArmor tramite riscrittura dei pathname via eBPF. Manipolazione degli argomenti delle syscall pre-LSM con impronta di audit pari a zero. "Linux sta morendo"

201384 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository


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

Linux Integrity Drift

— "Linux is Dying" —


Scoperta sistematica dei percorsi del kernel che aggirano le garanzie di sicurezza LSM
Il cancello non è mai stato forzato. È stato semplicemente aggirato.



Cos'è LID?

Il framework Linux Security Module ha una garanzia fondamentale che regge da 20+ anni:

I moduli di sicurezza possono solo aggiungere restrizioni. Non possono mai rimuoverle.

Questa garanzia è corretta. LID non la infrange.

LID trova percorsi del kernel che bypassano completamente gli hook LSM — sottosistemi che eseguono operazioni sensibili per la sicurezza senza consultare il framework LSM. Il controllo di sicurezza è corretto. Il problema è che il kernel non chiede mai.


Capire cosa è LID (e cosa non è)

Ogni scoperta ha due dimensioni distinte che non vanno confuse:

A) Divario di visibilità delle policy

Il punto cieco architetturale. La domanda non è "un attaccante può sfruttare questo?", ma:

  • Cosa vede realmente AppArmor/SELinux?
  • Cosa registra il log di audit?
  • Cosa osserva il tuo SIEM/EDR?
  • Cosa pensa sia successo il motore delle policy?

Se un'operazione sensibile per la sicurezza avviene e il livello di enforcement non la valuta nemmeno, hai un divario di visibilità — indipendentemente dal fatto che un attaccante possa abusarne praticamente oggi. Questo conta per conformità, forensics e assunzioni di difesa in profondità.

B) Percorso di escalation pratico

La domanda sulla sfruttabilità nel mondo reale:

  • Questo attraversa un confine di privilegi?
  • Un attaccante ha bisogno di root/CAP_BPF esistente per attivarlo?
  • È necessaria una catena di exploit, o è autonomo?
  • Qual è l'impatto effettivo — accesso ai dati, escalation di privilegi, evasione delle policy?

Queste due cose sono diverse. Una scoperta può essere un divario di visibilità critico (il tuo monitoring è cieco) senza essere un'escalation di privilegi pratica (l'attaccante ha già root). Al contrario, una scoperta può essere un percorso di escalation diretto con prerequisiti minimi.

FindingDivario di visibilitàEscalation pratica
LID-001Critico — AppArmor non vede nulla, log di audit vuoto, zero traccia forenseLimitato — richiede root o CAP_BPF+CAP_PERFMON (già privilegiato). Non è un'escalation di privilegi. Impatto: evasione delle policy + cecità dell'audit.
LID-002Alto — security_file_receive() non scatta mai, il trasferimento di fd è invisibile a tutti gli LSMAlto — funziona da userspace non privilegiato tramite io_uring. Attraversa il confine di enforcement LSM senza alcun privilegio.
LID-003Alto — security_sb_mount() bypassato, la policy di mount di AppArmor è codice mortoMedio — richiede accesso al mount namespace (CAP_SYS_ADMIN nella user ns). Disponibile in molte configurazioni container.
LID-004Critico — AppArmor non vede nulla, zero hook BPF (0/9), nessuna traccia di audit per qualsiasi operazione con BPF tokenMedio — richiede delega bpffs da parte dell'host + CAP_BPF nella user namespace. Disponibile nei runtime container con delega BPF (LXD/Incus).
LID-005Medio — i classificatori tc egress sull'interfaccia container non valutano mai il traffico AF_XDPLimitato — bypassa tc egress su eth0 del container (verificato). Cilium NON bypassato — applica il controllo sull'ingresso veth lato nodo + verifica IP sorgente (testato). Impatto limitato a setup Docker puri con filtro egress solo tc.

Matrice di riproducibilità

Ogni scoperta ha requisiti specifici di kernel/config/privilegi. Se il tuo ambiente non corrisponde, la scoperta non si riprodurrà.

LID-001: Riscrittura del pathname eBPF

CondizioneRichiestaNote
Versione kernel5.x+Testato su 5.15, 6.1, 6.6, 6.8
CONFIG_BPF_SYSCALL=yDefault su tutte le principali distro
CONFIG_BPF_KPROBE_OVERRIDE=yUbuntu/Debian lo abilitano, RHEL no
CONFIG_SECURITY_APPARMOR=yLSM target deve essere AppArmor
Profilo AppArmorEnforcing, regola di deny sul path targetFunziona con qualsiasi regola di deny basata su path
Privilegiroot o CAP_BPF + CAP_PERFMONNon può essere eseguito senza privilegi
kernel.lockdownnone o integrityLa modalità confidentiality blocca l'attach dei kprobe
kernel.unprivileged_bpf_disabledIrrilevanteRichiede comunque CAP_BPF
fs.protected_hardlinks0 per link cross-user1 (default) consente comunque hard link stesso-utente
SELinux invece di AppArmorNon funzionaSELinux è basato su inode, non su pathname

LID-002: io_uring MSG_RING

CondizioneRichiestaNote
Versione kernel6.0+IORING_MSG_SEND_FD aggiunto in 6.0
CONFIG_IO_URING=yDefault su tutte le principali distro
PrivilegiNessunoFunziona da userspace non privilegiato
Sysctl io_uring_disabled0 (default)2 blocca i non privilegiati, 1 blocca tutti
LSM targetQualsiasi (SELinux, AppArmor, Smack)security_file_receive() è un hook LSM generico
kernel.lockdownIrrilevanteNessun BPF coinvolto

LID-004: Cecità di AppArmor verso BPF Token

CondizioneRichiestaNote
Versione kernel6.9+BPF token introdotto in 6.9
CONFIG_BPF_SYSCALL=yDefault su tutte le principali distro
CONFIG_SECURITY_APPARMOR=yDefault Ubuntu/Debian
bpffs con delegaSìL'host deve montare con opzioni delegate_*
PrivilegiCAP_BPF nella user namespaceBanalmente disponibile per root userns
SELinux invece di AppArmorNon interessatoSELinux implementa tutti i 9 hook BPF

LID-003: Nuova API di mount

CondizioneRichiestaNote
Versione kernel5.2+fsopen/fsmount introdotti in 5.2
CONFIG_SECURITY_APPARMOR=ySolo AppArmor è interessato
PrivilegiCAP_SYS_ADMIN nella user namespaceDisponibile con unshare -m
SELinux invece di AppArmorNon funzionaSELinux implementa security_sb_kern_mount()
Runtime containerDipende dal filtro seccompIl seccomp default di Docker blocca fsopen — Podman/LXC potrebbero non bloccarlo

LID-005: Bypass tc egress AF_XDP

CondizioneRichiestaNote
Versione kernel4.18+AF_XDP introdotto in 4.18
CONFIG_XDP_SOCKETS=yDefault su tutte le principali distro
PrivilegiSolo CAP_NET_RAWDefault in Docker, pod Kubernetes
Runtime containerDocker, K8s, LXCSet di capability predefinito
Policy di rete basata su tcSìCilium eBPF, Calico, tc u32/flower

Riferimento rapido: Cosa blocca ogni scoperta

Scarica lo strumento