Protocolli Publish/Subscribe: Publish/Subscribe Protocols (T1071.005)

La tecnica T1071.005 descrive l'abuso di protocolli applicativi di tipo publish/subscribe (pub/sub) come canale di comando e controllo. In questo modello, un broker centralizzato smista i messaggi: i publisher categorizzano i contenuti per topic e i subscriber ricevono solo ciò a cui sono iscritti. Protocolli come MQTT, XMPP, AMQP e STOMP nascono per telemetria IoT, messaggistica e integrazione di sistemi, ed è proprio questa legittimità a renderli un ottimo travestimento per il traffico malevolo.

L'obiettivo dell'attaccante è fondersi con il traffico atteso: comandi verso i sistemi compromessi e i relativi risultati vengono incapsulati nel flusso normale tra client e broker. Nascondendosi dietro un broker, l'avversario dialoga con gli host sotto il proprio controllo senza esporre un canale diretto e riducendo la superficie osservabile dai difensori.

Sul piano tattico la tecnica ricade interamente in Command and Control (TA0011), la fase in cui l'attaccante stabilisce e mantiene la comunicazione con la rete vittima. Nella kill chain si colloca a valle dell'accesso iniziale e dell'esecuzione, sostenendo persistenza operativa, movimento laterale coordinato ed eventuale esfiltrazione.

L'impatto è amplificato dalla diffusione di MQTT negli ambienti industriali e IoT, dove le porte 1883 (in chiaro) e 8883 (TLS) sono spesso già aperte. I dati MITRE associano alla tecnica 1 software, 2 mitigazioni e nessun gruppo o campagna documentati, segno di un vettore ancora emergente ma insidioso.

Dal punto di vista offensivo, il valore di un canale pub/sub sta nel riutilizzo di infrastruttura percepita come benigna. In un esercizio red team lab-safe l'obiettivo è dimostrare che un broker MQTT o XMPP può veicolare comandi senza allertare i controlli perimetrali orientati a HTTP/HTTPS.

Un punto di partenza realistico è allestire un broker di test come Eclipse Mosquitto (open source), il riferimento de facto per MQTT. Il traffico C2 si simula con due topic dedicati: uno per i comandi verso l'implant, uno per i risultati verso l'operatore. Sul sistema controllato dall'operatore la pubblicazione avviene con i client ufficiali:

mosquitto_pub -h -p 8883 --cafile ca.crt -t ops/cmd -m 'whoami'

Mentre l'implant resta in ascolto sul topic dei comandi:

mosquitto_sub -h -p 8883 --cafile ca.crt -t ops/cmd

Usare la porta 8883 con TLS rende il payload opaco all'ispezione superficiale. Per prototipare rapidamente un beacon si può ricorrere alla libreria paho-mqtt (open source) in Python, che permette di gestire callback su ricezione messaggio e di scandire l'intervallo di beaconing con jitter, riducendo la regolarità temporale.

Sul fronte XMPP, il precedente storico è GLOOXMAIL (S0026), malware che sfruttava il protocollo Jabber/XMPP verso server Google per il C2: un esempio concreto di come un servizio di messaggistica pubblica possa diventare vettore. In laboratorio si può replicare il concetto con un server Prosody (open source) e un client basato su librerie XMPP, incapsulando comandi nel corpo dei messaggi.

La catena d'attacco tipica prevede: accesso iniziale ed esecuzione dell'implant, registrazione al broker con credenziali rubate o account creati ad hoc, poi loop di sottoscrizione/pubblicazione. Su Windows l'implant può essere avviato da processi anomali come powershell.exe o rundll32.exe; su Linux tramite script Python o direttamente mosquitto_pub; su macOS con binari custom o curl verso endpoint broker.

Per la fase di test e analisi del traffico è utile MQTT Explorer (freemium) per visualizzare i topic attivi, e Wireshark (open source) con i dissector MQTT/XMPP per verificare cosa resta visibile in chiaro. L'esercizio dimostra ai difensori quanto conti profilare processi e destinazioni, non solo le porte.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.