L’universo dei malware ha registrato una nuova pietra miliare della sua evoluzione: Bootkitty, il primo bootkit UEFI progettato specificamente per attaccare sistemi Linux. Questa scoperta rappresenta un cambio di paradigma significativo nel panorama delle minacce, ampliando il campo di diffusione dei bootkit UEFI—tradizionalmente legati ai sistemi Windows—anche a piattaforme considerate più sicure, come Linux.

Pur essendo al momento un proof-of-concept, limitato ad alcune versioni e configurazioni di Ubuntu, Bootkitty è un chiaro segnale: gli attaccanti stanno affinando tecniche sempre più sofisticate per compromettere i sistemi Linux a livello di firmware. Il risultato? Minacce stealthy, difficili da individuare e ancor più complicate da rimuovere.

Il salto di specie dei Bootkit all’interno dei sistemi Linux deve essere analizzato e compreso fin dal principio, poiché potrebbe rappresentare il preludio a una nuova generazione di attacchi persistenti e difficili da contrastare.

In questo articolo, esploreremo nel dettaglio come funziona Bootkitty e come individuarlo, perché rappresenta un potenziale punto di svolta per la sicurezza dei sistemi Linux e quali implicazioni potrebbe avere per il futuro del settore. Preparati a scoprire tutto quello che devi sapere su questa nuova minaccia emergente.

Cosa sono i bootkit UEFI?

Un bootkit UEFI è una forma avanzata di malware che si infiltra direttamente nel processo di avvio di un computer, agendo a livello del firmware UEFI (Unified Extensible Firmware Interface). Poiché viene caricato prima del sistema operativo, il bootkit ha un vantaggio significativo rispetto ai tradizionali software antivirus e alle misure di sicurezza, eludendole facilmente.

Le sue caratteristiche distintive includono:

  • Persistenza estrema: I bootkit UEFI sono notoriamente difficili da rimuovere, poiché sopravvivono a reinstallazioni del sistema operativo. Possono risiedere nel firmware e rimanere attivi anche dopo un ripristino completo del sistema.
  • Invisibilità: Operano a un livello così profondo che sono praticamente invisibili ai sistemi di rilevamento convenzionali. Le loro azioni non si vedono nel normale filesystem o nei processi di sistema, rendendoli difficili da individuare.
  • Versatilità e potenza: Un bootkit può alterare i processi di avvio del sistema, compromettere il kernel e iniettare codice dannoso prima che il sistema operativo sia completamente caricato, offrendo agli attaccanti un controllo quasi totale sulla macchina.

Per anni, i bootkit UEFI sono stati una minaccia principalmente associata ai sistemi Windows. Tuttavia, con l’emergere di Bootkitty, anche i sistemi Linux si trovano ora nel mirino di questa sofisticata forma di attacco.

La scoperta di Bootkitty

Nel novembre 2024, i ricercatori di ESET hanno individuato Bootkitty, il primo bootkit UEFI progettato specificamente per sistemi Linux. L’analisi di un file sospetto denominato bootkit.efi, caricato su VirusTotal, ha rivelato l’esistenza di questo malware, che modifica il processo di avvio dei sistemi Linux.

Bootkitty sembra essere legato alla suite di strumenti CosmicStrand, già utilizzata in precedenza per attacchi contro sistemi Windows. Tuttavia, rappresenta una novità assoluta per il panorama Linux, combinando capacità avanzate di persistenza con un’elevata modularità.

Questo bootkit è progettato per disabilitare la verifica delle firme del kernel e pre-caricare due binari ELF sconosciuti tramite il processo init di Linux. Durante l’analisi, è stato individuato un modulo del kernel correlato, denominato BCDropper, che distribuisce un programma ELF responsabile del caricamento di un altro modulo del kernel sconosciuto.

Overview del funzionamento di BootKitty
Fonte: ESET

Funzionamento e tecniche di Bootkitty

1. Modifica del firmware UEFI

La prima fase dell’attacco di Bootkitty consiste nella compromissione del firmware UEFI. Questo passaggio cruciale permette al bootkit di iniettare codice dannoso a livello del firmware, sostituendo i componenti legittimi con versioni modificate per garantire il controllo persistente sul sistema. Le tecniche utilizzate dagli attaccanti sono sofisticate e mirate, permettendo al malware di operare a un livello estremamente basso e di eludere la maggior parte delle difese tradizionali.

Certificati auto-firmati: Per aggirare i controlli di autenticità del firmware, Bootkitty sfrutta un certificato auto-firmato. Questo approccio consente al malware di bypassare le verifiche di firma del codice, ma per funzionare su sistemi con Secure Boot abilitato, gli attaccanti devono prima installare certificati compromessi nel firmware.

Disabilitazione di Secure Boot: In alcuni casi, gli aggressori manipolano le impostazioni del firmware per disabilitare Secure Boot, una misura di sicurezza progettata per impedire l’esecuzione di codice non autorizzato durante l’avvio. Disabilitando questa protezione, i malintenzionati possono caricare e far eseguire codice dannoso sul sistema senza alcuna restrizione.

2. Alterazione del processo di avvio

Una volta compromesso il firmware, Bootkitty si inserisce nel processo di avvio del sistema Linux, alterando il flusso di inizializzazione per garantire l’esecuzione del codice malevolo.

Patch del Bootloader: Il bootkit agisce sul bootloader del sistema, come GRUB2 o altri bootloader utilizzati dal sistema di destinazione. Modificando queste parti fondamentali del processo di avvio, Bootkitty inietta il proprio codice, assicurando che venga eseguito ogni volta che il sistema viene avviato.

Iniezione del codice nel kernel: Durante la fase di avvio, Bootkitty carica due binari ELF non identificati e li inietta direttamente nel kernel. Questo consente al malware di eseguire codice dannoso senza dipendere da file visibili nel filesystem, il che rende difficile rilevarlo con i metodi di scansione tradizionali.

Disabilitazione delle firme del kernel: Una delle tecniche più insidiose di Bootkitty è la capacità di bypassare i controlli che verificano la firma digitale del kernel. Questa vulnerabilità consente al bootkit di eseguire codice arbitrario sul sistema, bypassando i meccanismi di sicurezza che normalmente impedirebbero l’esecuzione di software non autorizzato.

3. Persistenza avanzata

Una delle caratteristiche più preoccupanti di Bootkitty è la sua capacità di persistenza avanzata. Grazie alla sua posizione nel firmware UEFI, il malware può rimanere attivo anche dopo una reinstallazione completa del sistema operativo. Questo significa che, anche se il sistema viene ripristinato o il sistema operativo viene rimosso e reinstallato, Bootkitty continuerà a sopravvivere, mantenendo il controllo sul sistema e permettendo agli attaccanti di infiltrarsi nuovamente.

Hunting: individuare BootKitty all’interno di un sistema

A parte il caricamento di oggetti condivisi ELF sconosciuti, Bootkitty lascia alcune tracce nel sistema, che possono essere ricercate per individuare una compromissione.

La prima è la modifica della versione del kernel e delle stringhe del banner di Linux, come una sorta di firma del malware. La versione del kernel modificata può essere visualizzata eseguendo il comando $ uname -v, mentre la stringa del banner di Linux può essere osservata eseguendo il comando $ dmesg.

Output del comando uname -v che mostra la presenza della stringa “BoB13”
Fonte: ESET

L’output del comando dmesg include anche dettagli su come veniva eseguito il processo init, un programma legittimo presente in initramfs.

Nel sample individuato dal gruppo di ricerca di ESET, il processo era stato avviato utilizzando la variabile d’ambiente LD_PRELOAD (originariamente impostata come HOME=/, era stata sostituita con LD_PRELOAD=/opt/injector.so /init dal bootkit).

Output del commando dmesg: argomenti e variabili d’ambiente
Fonte: ESET

La presenza della variabile d’ambiente LD_PRELOAD può anche essere verificata ispezionando il file /proc/1/environ.

Dopo l’avvio di un sistema compromesso da Bootkitty il kernel risulta marcato come “tainted”, dicitura non presente in assenza del bootkit.

Questo stato può essere verificato eseguendo il comando specifico:

$ cat /proc/sys/kernel/tainted

Un altro modo per identificare la presenza del bootkit su un sistema con UEFI Secure Boot abilitato è provare a caricare un modulo del kernel non firmato durante l’esecuzione. Se il bootkit è presente, il modulo verrà caricato; altrimenti, il kernel rifiuterà il caricamento.

Un metodo semplice per rimuovere il bootkit consiste nel ripristinare il file legittimo /EFI/ubuntu/grubx64-real.efi alla sua posizione originale, ovvero /EFI/ubuntu/grubx64.efi. In questo modo, il sistema si avvierà senza il bootkit (questa procedura si applica solo al caso in cui il bootkit sia stato distribuito come /EFI/ubuntu/grubx64.efi, dovrà essere adattata alle diverse varianti).

Bootkitty e la nuova frontiera della sicurezza Linux

La scoperta di Bootkitty segna l’inizio di una nuova era per le minacce alla sicurezza informatica sui sistemi Linux. Sebbene al momento si tratti di un proof of concept, questa minaccia è un chiaro segnale che gli attaccanti stanno espandendo il loro raggio d’azione, mirando anche a piattaforme precedentemente considerate più sicure.

Per anni, Linux è stato percepito come meno vulnerabile rispetto a Windows, ma Bootkitty dimostra che nessun sistema è immune agli attacchi a livello di firmware. Questo malware, progettato per compromettere il firmware UEFI, impone un ripensamento delle attuali strategie di sicurezza, che devono essere adattate per affrontare sfide nuove e più sofisticate.

Per gli esperti di sicurezza, la scoperta di Bootkitty evidenzia l’urgenza di adottare misure di protezione più robuste e multidimensionali. La difesa dei sistemi non può più limitarsi al solo livello software. È essenziale che anche il firmware e l’hardware vengano integrati nelle strategie di protezione, in un contesto in cui le minacce si fanno sempre più invasive e difficili da rilevare.

Speriamo che questo articolo ti abbia fornito una comprensione più profonda di Bootkitty e delle sue potenziali implicazioni per la sicurezza dei sistemi Linux!

Indicatori di Compromissione

Ti è piaciuto l’articolo? Seguici su Linkedin per sostenerci!

consigliati