
Demo didattica dell'evasione dal container runc di CVE-2024-21626 con gadget di rilevamento basato su eBPF per i tentativi di exploit.
Questo repository contiene esempi di codice per un'app vulnerabile a CVE-2024-21626 e un gadget eBPF per rilevare i tentativi di sfruttamento.
Questo repository è stato creato come parte di questo post del blog.
Il programma gadget usato per rilevare questa vulnerabilità è solo a scopo dimostrativo. Non è un rilevamento completo di CVE-2024-21626.
CVE-2024-21626 è una vulnerabilità nel runtime dei contenitori runc, presente nelle versioni precedenti alla v1.1.12. Si basa sul fatto che runc non chiude un descrittore di file "disperso" in modo tempestivo quando crea o esegue comandi all'interno del contenitore, facendo sì che il contenitore erediti quel descrittore di file e ottenga accesso al filesystem dell'host.
Ci sono diversi modi per sfruttare questa vulnerabilità. Questo repository come questa vulnerabilità può essere sfruttata in fase di runtime.
Puoi leggere altro qui.
Per far funzionare questa demo, devi assicurarti che la tua macchina stia eseguendo una versione di runc <= 1.1.11.
leaky-app è un'app Go che crea un collegamento simbolico al descrittore di file potenzialmente disperso. Per creare l'immagine docker:
make leaky-app
Per creare il gadget eBPF, avrai bisogno dello strumento [ig].
Puoi creare il gadget usando:
make gadget
Una volta creati entrambi, esegui il gadget usando:
IG_EXPERIMENTAL=true sudo -E ig run trace-symlink:latest
Apri un'altra shell e avvia il contenitore leaky-app:
docker run --rm --name leaky-app leaky-app
Dovresti vedere che il gadget restituisce il contenitore che ha chiamato la syscall symlink.
Questo repository contiene un'applicazione dimostrativa progettata per mostrare il rilevamento di CVE-2024-21626. È importante notare che questa dimostrazione è esclusivamente a scopo educativo e non deve essere considerata uno strumento di rilevamento pratico. I meccanismi di rilevamento implementati in questa demo non coprono tutti gli scenari né rappresentano accuratamente la complessità del rilevamento di questa vulnerabilità.