Un nuovo e sofisticato malware congegnato per aggredire i sistemi Linux e denominato Plague, è riuscito a rimanere invisibile per oltre un anno, garantendo agli attaccanti accesso persistente via SSH e la possibilità di eludere completamente l’autenticazione. Sfruttando la potenza e la flessibilità del componente Linux chiamato PAM (Pluggable Authentication Module), questo malware rappresenta oggi una minaccia avanzata e altamente evasiva per l’infrastruttura Linux.
Cos’è Plague e perché è così pericoloso?
Plague si presenta sotto forma di modulo PAM malevolo (vedere più avanti) – spesso camuffato come libselinus.so.8
– e intercetta direttamente le chiamate al metodo pam_sm_authenticate()
. Ciò gli consente di inserirsi nel processo di autenticazione del sistema, fornendo un meccanismo per:
- Eludere l’autenticazione SSH utilizzando una password backdoor hardcoded, che consente accessi remoti non autorizzati in modo silente.
- Sopravvivere agli aggiornamenti di sistema, inclusi quelli del kernel, rimanendo persistente.
- Cancellare ogni traccia delle sessioni malevole, come log di accesso, variabili d’ambiente SSH e cronologia dei comandi.
Come funziona PAM su Linux
PAM è un’infrastruttura modulare adottata dalla maggior parte delle distribuzioni Linux moderne (incluse Debian, Ubuntu, Red Hat, CentOS, Fedora, Arch e derivate) per gestire in modo flessibile i meccanismi di autenticazione degli utenti. Consente agli amministratori di sistema di definire, attraverso una serie di file di configurazione, quali moduli caricare durante il processo di login e come trattare l’autenticazione per servizi come SSH, sudo, su, login, gdm, polkit e altri.
I moduli PAM sono file .so
(shared object) caricati dinamicamente, che possono essere combinati e ordinati per gestire funzioni come verifica password, controllo accessi, logging e configurazione delle sessioni. Questa flessibilità, sebbene potente, rende anche PAM un bersaglio altamente appetibile per attacchi sofisticati, come dimostra il caso di Plague.
Tecniche di evasione e persistenza
I ricercatori di Nextron Systems, che hanno scoperto Plague, ne evidenziano le abilità a contrasto degli strumenti usati nell’ambito della sicurezza informatica e l’adozione di efficaci tecniche di evasione.
Innanzi tutto, Plague applica un offuscamento multilivello del codice e delle stringhe. Tecniche anti-debugging ostacolano l’analisi statica e dinamica; la manipolazione dell’ambiente di esecuzione, con l’eliminazione delle variabili SSH_CONNECTION
, SSH_CLIENT
e il reindirizzamento della cronologia (HISTFILE
) a /dev/null
mirano proprio a far sì che il malware resti “under the radar“. Plague non lascia in giro nessun log, nessuna voce nei file auth.log
o secure
, rendendo impossibile l’identificazione con strumenti convenzionali.
Come inizia davvero l’attacco Plague su Linux: la compromissione iniziale
L’attacco Plague non si manifesta mai “dal nulla”: per poter installare e attivare il modulo PAM malevolo, l’attaccante deve prima ottenere un accesso preliminare al sistema Linux bersaglio.
Questa fase iniziale di compromissione iniziale è fondamentale e può avvenire tramite diverse vie, ognuna delle quali implica un diverso livello di esposizione o la presenza di vulnerabilità del sistema:
- Accesso con credenziali rubate o indovinate: se l’attaccante dispone di password valide o di chiavi SSH compromesse, può entrare nel sistema e caricare il modulo dannoso.
- Sfruttamento di vulnerabilità note: ad esempio, un bug in un servizio di rete esposto (come un server Web, un database o un’applicazione) che consente l’esecuzione remota di codice (RCE).
- Attacchi di tipo supply chain o phishing: installando malware tramite pacchetti o software compromessi, o ingannando un amministratore con accesso legittimo.
Solo dopo aver superato questa barriera iniziale, l’attaccante può procedere all’installazione del modulo PAM malevolo (libselinus.so.8
o simile) e modificare i file di configurazione PAM (/etc/pam.d/sshd
o altri) per attivare la backdoor.
In altre parole, Plague non è un worm o un malware autonomo in grado di propagarsi senza intervento umano o compromissione iniziale; è invece un payload estremamente sofisticato che richiede un “appiglio” preliminare. La sua potenza deriva dal fatto che, una volta installato, garantisce accesso persistente e invisibile agli aggressori, anche dopo cambi di password o aggiornamenti, rendendo difficile la rimozione.
Un’evoluzione silenziosa: sviluppo attivo e invisibilità agli antivirus
Durante l’analisi, sono stati trovati delle prove che indicano uno sviluppo attivo e continuo, con versioni compilate tramite GCC su distribuzioni diverse. Nonostante diverse varianti siano state caricate su VirusTotal nel corso dell’anno, nessun motore antivirus ha rilevato la minaccia.
Questa assenza totale di rilevamento, unita alla capacità del malware di integrarsi nei moduli critici di autenticazione del sistema, suggerisce che gli attori dietro Plague operino da tempo in modo invisibile all’interno di reti compromesse.
Come controllare l’uso di PAM e quali sono le contromisure consigliate
La quasi totalità delle distribuzioni Linux moderne, come accennato in precedenza, utilizza PAM quale sistema di autenticazione predefinito. Per togliersi ogni dubbio, tuttavia, basta digitare il comando che segue nella finestra del terminale:
ls /etc/pam.d/
Se si riceve in risposta un elenco di file, allora PAM è effettivamente attivo sul sistema Linux in uso.
Gli amministratori di sistemi Linux, in particolare in ambiti sensibili come cloud, infrastrutture critiche o ambienti DevOps, devono agire immediatamente. In particolare, è bene accertare l’eventuale presenza di file .so
sospetti o non documentati all’interno di /etc/pam.d/
e nelle directory dei moduli PAM (/lib/security/
o /lib64/security/
).
Nel caso in cui si sospettasse un attacco, è necessario aggiornare chiavi SSH e password. Sempre utilissima, è l’abilitazione dell’autenticazione a più fattori (MFA) per SSH nonché l’utilizzo di strumenti EDR (Endpoint Detection and Response) avanzati per il monitoraggio dei file di sistema e dei processi PAM.