Sommario
PUMAKIT rappresenta una delle minacce malware più sofisticate degli ultimi tempi, caratterizzata da un’architettura a più stadi con funzionalità avanzate per evitare il rilevamento. Analizziamo in dettaglio il suo design, le tecniche di occultamento e i metodi di attacco per comprendere l’impatto su sistemi Linux e come proteggersi da questa minaccia.
Architettura a più stadi: il cuore di PUMAKIT
PUMAKIT si basa su una struttura a più livelli che combina:
- Un dropper identificato come
cron
. - Due eseguibili residenti in memoria (
/memfd:tgt
e/memfd:wpn
). - Un modulo rootkit LKM denominato “PUMA”.
- Una libreria condivisa (SO), chiamata “Kitsune”, per la gestione delle interazioni con il rootkit in spazio utente.
Il malware si attiva solo quando alcune condizioni specifiche, come la compatibilità con il kernel, sono soddisfatte. Questo approccio incrementa la sua furtività, riducendo le possibilità di rilevamento.
La fase iniziale parte con il dropper, che utilizza tecniche fileless per caricare i payload direttamente nella memoria. Gli eseguibili /memfd
fungono rispettivamente da carico utile e caricatore del rootkit, che, una volta attivato, implementa modifiche al kernel, come l’aggancio di 18 syscall, per manipolare le funzioni di sistema e nascondere la sua presenza.
Meccanismi di occultamento e funzionalità del rootkit
Il modulo LKM di PUMAKIT utilizza il tracciatore interno ftrace()
per intercettare le syscall e alterare il loro comportamento. Le sue capacità includono:
- Escalation dei privilegi: attraverso il syscall
rmdir()
, che consente all’aggressore di acquisire privilegi di root. - Occultamento: nasconde file, processi e directory, rendendo difficile il rilevamento tramite strumenti di sistema.
- Comunicazione C2: stabilisce canali sicuri con server di comando e controllo per inviare dati esfiltrati o ricevere istruzioni.
- Anti-debugging: implementa misure avanzate per resistere all’analisi forense e al debugging.
Nella prossima parte, approfondiremo le tecniche di rilevamento e prevenzione, così come le implicazioni di sicurezza legate a questa minaccia.
Tecniche di rilevamento e prevenzione
PUMAKIT presenta sfide significative per i sistemi di sicurezza tradizionali a causa delle sue capacità avanzate. Tuttavia, ci sono metodi e strumenti per identificarlo e mitigare il rischio.
Rilevamento dei segnali di PUMAKIT
- Comportamento del dropper: Il file
cron
genera eseguibili in memoria utilizzando syscall comeexecveat()
, una tecnica rara ma efficace per eseguire payload senza scriverli su disco. Questi eventi possono essere identificati analizzando processi con file descriptor anomali (/memfd
). - Indicatori di attività rootkit:
- La creazione di file temporanei (
/tmp/script.sh
) e il loro utilizzo per verificare condizioni di compatibilità del kernel. - Alterazioni al kernel, come la modifica dei syscall tramite il tracciatore
ftrace()
. - La presenza di simboli unici associati al rootkit, come
.puma-config
ezarya
, visibili durante un’analisi dettagliata della memoria del sistema.
- La creazione di file temporanei (
- Escalation di privilegi: La syscall
rmdir()
viene utilizzata per scopi non convenzionali, come ottenere privilegi di root o interagire con il rootkit. Eventi insoliti associati armdir()
possono essere monitorati per rilevare attività sospette.
Prevenzione e mitigazione
- YARA signatures: Elastic Security ha sviluppato una firma YARA che identifica componenti del malware, tra cui il dropper, il rootkit e la libreria condivisa Kitsune.
- Strumenti di monitoraggio avanzato:
- Configurare sistemi di monitoraggio per eventi kernel insoliti, come l’utilizzo di syscall non comuni (
execveat()
) o comportamenti associati a moduli kernel non firmati. - Implementare soluzioni di log monitoring per rilevare messaggi specifici, ad esempio, il caricamento di moduli non autorizzati o file con intestazioni ELF sospette.
- Configurare sistemi di monitoraggio per eventi kernel insoliti, come l’utilizzo di syscall non comuni (
- Aggiornamenti del sistema: Mantenere i sistemi aggiornati con versioni recenti del kernel per sfruttare migliorie di sicurezza, come la rimozione dell’esportazione della funzione
kallsyms_lookup_name()
nei kernel successivi al 5.7. - Protezione a livello di rete: Bloccare connessioni verso server noti utilizzati da PUMAKIT e monitorare comunicazioni anomale che potrebbero indicare attività C2.
Implicazioni di sicurezza e considerazioni finali
PUMAKIT rappresenta un esempio di come le minacce avanzate stiano evolvendo per sfruttare vulnerabilità nei sistemi Linux. La sua capacità di operare fileless, nascondersi con sofisticati meccanismi di rootkit e adattarsi a diverse configurazioni di sistema lo rende una minaccia significativa. Un approccio proattivo, combinato con strumenti di rilevamento avanzati, è essenziale per mitigare i rischi associati a malware di questo livello.