Come potrebbe un cracker forzare il caricamento di un rootkit del kernel all'avvio? C'è un modo per collegare il modulo malizioso con un altro modulo in modo che venga caricato automaticamente senza alcun comando insmod?
Supponendo di avere un accesso privilegiato completo al filesystem su un computer Linux, è possibile caricare moduli kernel arbitrari. Esistono diverse tecniche che puoi usare:
modprobe.d(5)
per caricare automaticamente il tuo rootkit ogni volta che un modulo normalmente carica. modules.dep(5)
per specificare il tuo modulo come dipendenza di un altro modulo. La tecnica finale è probabilmente la più invisibile, in quanto non comporta modifiche ai file di configurazione e richiede il reverse engineering o la tracciabilità dell'integrità dei file da rilevare. Nota tuttavia che la firma del modulo del kernel può sconfiggere questo imponendo un firma valida su qualsiasi modulo da caricare. Se il modulo è stato compilato e firmato sullo stesso sistema in cui viene utilizzato, c'è la possibilità che tu possa trovare la chiave di firma nello spazio non allocato del filesystem (dato che è stato creato in fase di compilazione e quindi semplicemente non collegato) , ma è un campo lungo. Se la firma del modulo del kernel è attiva e non è possibile ottenere la chiave di firma, sarà necessario trovare altri metodi per accedere al kernel.
Se vuoi semplicemente caricare automaticamente un modulo all'avvio senza l'interazione dell'utente, potresti essere in grado di farlo, evitando il superamento di insmod
. Vari script di generazione di initramfs come dracut , genkernel e mkinitcpio possono essere utilizzati per includere moduli in initramfs e fornire hook per script personalizzati. Puoi caricare il modulo qui.