I rootkit rappresentano una delle minacce più sofisticate nel panorama della sicurezza informatica, consentendo agli attaccanti di ottenere il controllo di un sistema senza essere rilevati. Questi sono solitamente attacchi volti direttamente verso il kernel, e storicamente questa tipologia di software è sviluppata principalmente in linguaggio C. Tuttavia, con l’introduzione del supporto sperimentale per Rust nel kernel Linux, diventa possibile esplorare nuovi approcci per la scrittura di moduli kernel, e quindi anche di rootkit specifici. In questa tesi ci siamo proposti di analizzare le tecniche classiche di attacco utilizzate nei rootkit in C, come la manipolazione delle system call tramite l’\textit{hooking}, e di fornire una base conoscitiva e progettuale per l'implementazione in linguaggio Rust. L’adozione di Rust per lo sviluppo di moduli kernel introduce vantaggi significativi, tra cui una gestione più sicura della memoria e una riduzione del rischio di vulnerabilità comuni, oltre che a fornire una struttura di progetto più moderna. La continua evoluzione del supporto di Rust nel kernel Linux potrebbe rendere questo linguaggio una scelta sempre più valida anche per la scrittura di moduli a basso livello, con implicazioni sia nel campo della sicurezza informatica che nello sviluppo di software di sistema.
Linux LKM rootkit: limiti, vantaggi e implementazione in C e Rust
BAJRAMI, BEGAN
2023/2024
Abstract
I rootkit rappresentano una delle minacce più sofisticate nel panorama della sicurezza informatica, consentendo agli attaccanti di ottenere il controllo di un sistema senza essere rilevati. Questi sono solitamente attacchi volti direttamente verso il kernel, e storicamente questa tipologia di software è sviluppata principalmente in linguaggio C. Tuttavia, con l’introduzione del supporto sperimentale per Rust nel kernel Linux, diventa possibile esplorare nuovi approcci per la scrittura di moduli kernel, e quindi anche di rootkit specifici. In questa tesi ci siamo proposti di analizzare le tecniche classiche di attacco utilizzate nei rootkit in C, come la manipolazione delle system call tramite l’\textit{hooking}, e di fornire una base conoscitiva e progettuale per l'implementazione in linguaggio Rust. L’adozione di Rust per lo sviluppo di moduli kernel introduce vantaggi significativi, tra cui una gestione più sicura della memoria e una riduzione del rischio di vulnerabilità comuni, oltre che a fornire una struttura di progetto più moderna. La continua evoluzione del supporto di Rust nel kernel Linux potrebbe rendere questo linguaggio una scelta sempre più valida anche per la scrittura di moduli a basso livello, con implicazioni sia nel campo della sicurezza informatica che nello sviluppo di software di sistema.File | Dimensione | Formato | |
---|---|---|---|
Tesi Bajrami.pdf
accesso aperto
Dimensione
860.7 kB
Formato
Adobe PDF
|
860.7 kB | Adobe PDF | Visualizza/Apri |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.12075/21096