1. Executive Summary
In data 14 Aprile 2026, il laboratorio forense di Nerd Herd ha completato l'analisi tecnica approfondita di un artefatto malevolo Linux ELF identificato come variante avanzata della botnet RedTail. L'indagine, condotta in due fasi distinte (analisi statica il 13 e analisi dinamica da core dump il 14), ha svelato un'architettura di attacco multi-strato volta al cryptojacking di Monero (XMR) attraverso proxy privati dedicati.
L'artefatto e' stato intercettato da un honeypot proprietario Nerd Herd, deployato su un'infrastruttura enterprise monitorata dal nostro team. Le scoperte chiave di questa indagine, in ordine di rilevanza operativa, sono quattro:
- Process masquerading confermato: il malware rinomina i propri processi figli in
nginx(PID 9691, PID 9942), rendendo invisibile la sua presenza ai tool di monitoring standard. - Persistenza systemd automatica: il servizio
your-redtail.serviceriavvia automaticamente il miner ad ogni crash, garantendo continuita' operativa anche in ambienti ostili. - Estrazione completa della configurazione C2: attraverso l'analisi del core dump del processo mascherato, e' stata isolata la lista completa dei proxy di mining su porta TCP 2137.
- Schema di autenticazione IP-based: l'assenza deliberata di un wallet address nella configurazione estratta indica un'autenticazione proxy-side basata sull'IP sorgente del server infettato, una misura anti-forensica sofisticata.
2. Attribution e Threat Actor: RedTail Group
Il gruppo RedTail e' documentato nella letteratura di threat intelligence (Talos, Akamai) a partire dal 2024, con campagne focalizzate sull'exploitation di vulnerabilita' note in dispositivi di rete perimetrali e applicazioni web esposte su infrastrutture Linux. A differenza degli operatori di cryptominer generici (che usano XMRig precompilato con pool pubbliche), RedTail si distingue per tre caratteristiche che evidenziano una maggiore sofisticazione.
Infrastruttura C2 privata e dedicata. Le pool di mining non sono pubbliche (come Mining Pool Hub o supportxmr.com), bensì proxy privati con domini registrati appositamente e comunicazione su porta custom TCP 2137. Questo ostacola il rilevamento basato su blocklist di domini di mining pubblici e rende difficile la correlazione con altre campagne.
Codice custom e implementazione originale. La presenza della costante 0x6c078965 come seed LCG e l'implementazione di un motore di decifratura in memoria completamente custom (anziché librerie standard) indica uno sviluppo originale, non un fork di tool aperti. Questo e' un marcatore di attribution forte e distingue RedTail da commodity malware.
Overlap con TTP di gruppi APT. Le tecniche di anti-debugging (double forking, scansione ciclica di /proc), la persistenza tramite systemd e il process masquerading sono caratteristiche tipicamente associate a gruppi con motivazione finanziaria avanzata, che operano con metodologie mutuate dal panorama APT pur mantenendo un obiettivo primario di monetizzazione.
3. MITRE ATT&CK Mapping (Enterprise v14, Linux)
Le tecniche osservate nelle due fasi dell'analisi (statica e dinamica) sono state mappate al framework MITRE ATT&CK for Linux. La copertura e' completa dalla fase di esecuzione iniziale all'impatto finale.
| Tattica | ID | Nome Tecnica | Evidenza Osservata | Fonte |
|---|---|---|---|---|
| Execution | T1059.004 | Unix Shell | Esecuzione tramite shell per drop e avvio del payload ELF da /tmp |
Analisi statica |
| Defense Evasion | T1027 | Obfuscated Files / Info | Configurazione C2 cifrata in memoria tramite LCG PRNG con costante 0x6c078965. Nessuna stringa C2 in chiaro nel binario. |
Analisi statica (Ghidra) |
| Defense Evasion | T1055 | Process Injection / Masquerading | Rinomina dei processi figli in nginx (PID 9691, 9942). Confusione con web server legittimo. |
Analisi dinamica (kernel log) |
| Defense Evasion | T1622 | Debugger Evasion | Double forking del processo padre. Il figlio orfano disorienta i debugger che non seguono automaticamente i child process. | Analisi statica |
| Discovery | T1057 | Process Discovery | Scansione ciclica di /proc alla ricerca di GDB, Wireshark, watch e altri tool di analisi. In caso di rilevamento: terminazione del processo analizzato o self-termination. |
Analisi statica |
| Persistence | T1543.002 | Systemd Service | Creazione e avvio dell'unita' your-redtail.service con policy di restart automatico. Confermata da log systemd in analisi dinamica. |
Analisi dinamica (systemd log) |
| Privilege Escalation | T1548.003 | Sudo / PolicyKit | Richiesta privilege escalation tramite PolicyKit/Sudo per ottenere accesso root. Necessario per installazione moduli kernel e modifica profonda dei parametri di rete. | Analisi dinamica |
| Command & Control | T1071 | App Layer Protocol | Protocollo Stratum (mining) su porta TCP custom 2137 con TLS. 5 proxy dedicati su domini registrati ad hoc. Estratti da core dump. | Memory forensics (core dump) |
| Impact | T1496 | Resource Hijacking | Cryptomining Monero tramite XMRig custom su infrastruttura proxy privata. Nessun wallet hardcoded: autenticazione IP-based lato proxy. | Memory forensics (core dump) |
4. Infection Chain e Kill Chain
La ricostruzione della catena di infezione, basata sull'analisi combinata del binario e dei log di sistema dell'honeypot, descrive le seguenti fasi sequenziali.
/tmp o /dev/shm), imposta i permessi di esecuzione e avvia il processo. L'uso di directory scrivibili senza montaggio noexec e' un indicatore procedurale costante nelle campagne RedTail.0x6c078965 per decifrare in memoria la configurazione JSON delle pool. Nessuna stringa C2 e' presente in chiaro nel binario su disco: l'analisi statica senza dump di memoria e' sostanzialmente cieca./proc alla ricerca di tool di analisi. Il process masquerading verso nginx avviene in questa fase, prima dell'avvio dell'attivita' di mining.your-redtail.service con policy Restart=always. Ogni crash del processo (es. per connettivita' assente nell'honeypot isolato) viene gestito da systemd con riavvio automatico e spawn di un nuovo processo mascherato.nginx trasmette le hash-rate all'infrastruttura proxy privata. L'autenticazione avviene lato proxy tramite IP sorgente, senza wallet hardcoded nel binario.5. Analisi Statica: PRNG Engine e Offuscamento C2
L'analisi del binario tramite Ghidra ha rivelato l'assenza totale di stringhe di configurazione in chiaro. Il malware implementa un motore di generazione pseudo-casuale (Linear Congruential Generator, LCG) utilizzato come primitiva crittografica per decifrare in memoria la configurazione operativa.
5.1 Il Motore LCG: Costante Identificativa 0x6c078965
La costante 0x6c078965 e' il seed/moltiplicatore del generatore LCG. Questa scelta non e' casuale: e' un valore noto nel panorama dei generatori pseudo-casuali (utilizzato tra l'altro come moltiplicatore nell'implementazione Mersenne Twister di alcuni sistemi), ma applicato in modo non standard come primitiva di decifratura. La sua presenza nel binario costituisce una firma statica ad alta affidabilita' per il rilevamento di varianti della stessa famiglia.
0x6c078965iterazioni N
generato
dati cifrati
in memoria
Il risultato operativo e' che il binario su disco non contiene alcuna informazione sfruttabile per identificare l'infrastruttura C2 tramite analisi statica tradizionale. Solo un dump della memoria volatile del processo in esecuzione rivela la configurazione in chiaro.
5.2 Implicazioni per il rilevamento automatico
Le regole YARA basate su stringhe di URL di mining, nomi di dominio o configurazioni JSON sono inefficaci contro questo campione. Un'efficace firma YARA per questa famiglia deve invece cercare:
// NH-YARA-2026-04-14 — TLP:WHITE — Nerd Herd Threat Intelligence
6. Analisi Dinamica: Tecniche di Anti-Debugging
L'analisi dinamica nell'ambiente honeypot isolato ha confermato e approfondito i meccanismi di evasione identificati staticamente. Due tecniche meritano una trattazione dettagliata per le implicazioni pratiche sul threat hunting.
6.1 Double Forking (T1622)
Il processo padre (redtail_analysis.bin) genera un figlio tramite fork() e termina immediatamente (exit()). Il figlio viene adottato da init (PID 1) o da systemd, diventando un processo orfano. Questo comportamento e' deliberato: i debugger tradizionali come GDB, in assenza dell'opzione follow-fork-mode child, perdono il tracciamento del processo al momento del fork del padre. L'analista inesperto si trova a debuggare un processo che ha gia' terminato, mentre l'attivita' malevola prosegue nel figlio orfano.
6.2 Scansione ciclica di /proc (T1057)
Il malware esegue un loop periodico che enumera tutte le directory numeriche in /proc/ (corrispondenti ai PID attivi) e legge il file /proc/[PID]/cmdline di ciascun processo alla ricerca di stringhe indicative di analisi: gdb, wireshark, strace, ltrace, watch, tcpdump. In caso di match, il malware reagisce con una delle due strategie identificate in analisi statica: terminazione del processo rilevato (se i permessi lo consentono) oppure auto-terminazione per evitare l'analisi.
top, htop o watch ps aux per il monitoring dei processi potrebbe innescare la logica di auto-terminazione del malware, rimuovendo l'artefatto prima che sia possibile raccogliere prove. L'approccio corretto e' il dump del processo in memoria (gcore) prima di qualsiasi interazione con il sistema.
7. Analisi Dinamica Avanzata: Process Masquerading ↑ UPDATE 14/04
L'analisi dei log del kernel dell'honeypot (fase 2 dell'indagine, 14 Aprile 2026) ha fornito la prova definitiva del process masquerading. I log dinamici mostrano il flusso completo dalla creazione del processo originale alla rinomina in nginx, con la successiva gestione del ciclo di crash e restart da parte di systemd.
7.1 Albero dei processi osservato
Il seguente albero di processi e' stato ricostruito dai log del kernel. I PID effettivi variano ad ogni ciclo di restart, ma il pattern strutturale e' consistente.
La tecnica e' particolarmente insidiosa perche' ps aux, top, htop e la maggior parte dei tool di monitoring mostrano il nome del processo come configurato tramite prctl(PR_SET_NAME, "nginx"), non il path del binario originale. Solo strumenti come ls -la /proc/[PID]/exe o query SIEM che correlano nome processo con path binario possono smascherare questa tecnica.
// Comando di threat hunting per identificare nginx spoofato
7.2 Il ciclo di crash e restart
Nell'ambiente honeypot isolato (privo di connettivita' verso i proxy C2), il processo mascherato va in segfault ripetutamente a causa del fallimento delle connessioni TCP verso proxies.internetshadow.org:2137. Systemd rileva il crash tramite la policy Restart=always e riavvia il servizio, generando un nuovo processo figlio che si rinomina nuovamente in nginx. Questo loop e' stato osservato ripetutamente nei log e spiega la richiesta di escalation dei privilegi rilevata durante il monitoraggio attivo dell'honeypot: ogni restart genera una nuova richiesta PolicyKit.
8. Memory Forensics: Estrazione Configurazione C2 da Core Dump ↑ UPDATE 14/04
La fase piu' critica dell'indagine del 14 Aprile e' stata l'estrazione della configurazione C2 decifrata direttamente dalla memoria del processo mascherato. Utilizzando il core dump generato automaticamente (core.4104), gli investigatori hanno eseguito analisi forensi avanzate che hanno rivelato la lista completa dei proxy di mining in chiaro.
8.1 Metodologia di estrazione
Il comando chiave utilizzato per l'estrazione sfrutta la capacita' di strings di estrarre sequenze di caratteri ASCII leggibili dal dump binario, filtrate in prossimita' di un pattern noto (il dominio primario identificato da una ricerca preliminare):
// Estrazione da core.4104 — configurazione decifrata dal motore LCG — NH-TR-2026-04-14
/proc/sys/kernel/core_pattern) negli ambienti di analisi e' quindi una prassi forense indispensabile per questa famiglia.
8.2 Mappa dell'infrastruttura C2
I cinque proxy estratti costituiscono una rete di mining privata dedicata. L'utilizzo del protocollo NiceHash Stratum (flag "nicehash": true) indica che il traffic di mining e' formattato secondo lo standard NiceHash, ma diretto verso proxy privati che probabilmente aggregano l'hash-rate verso pool finali non identificabili lato client.
(mascherato come nginx)
(non identificabile lato client)
9. Analisi del Wallet: Il Missing Link e lo Schema IP-Based ↑ UPDATE 14/04
Una delle scoperte piu' significative dell'analisi del core dump e' la deliberata assenza del campo wallet (campo "user") nella configurazione JSON estratta. Ogni oggetto pool contiene esclusivamente i campi nicehash e url, senza alcuna stringa che identifichi il destinatario dei proventi del mining.
Questa assenza non e' un errore di implementazione: e' una misura anti-forensica deliberata. Le implicazioni operative sono le seguenti.
Attribution bloccata: il wallet Monero e' l'identificatore principale del threat actor nelle analisi forensi di campagne di cryptojacking. Senza un wallet hardcoded nel binario o nella configurazione, non e' possibile correlare questa campagna ad altre tramite la traccia on-chain di Monero.
Schema di autenticazione IP-based lato proxy: il proxy riceve la connessione Stratum dal server infettato e lo autentica basandosi sull'IP sorgente del client. Questo implica che i server compromessi sono pre-registrati (o aggiunti dinamicamente) nell'infrastruttura proxy, probabilmente tramite un canale di controllo separato non identificato in questa analisi. L'hash-rate del server viene accreditato al wallet dell'operatore senza che il wallet sia mai esposto nel malware.
Infrastruttura proxy altamente professionale: gestire 5 proxy con autenticazione IP-based richiede un'infrastruttura dedicata significativamente piu' complessa di una semplice pool pubblica. Questo conferma il profilo di un operatore con risorse e competenze tecniche superiori alla media dei commodity miner.
10. Persistenza e Privilege Escalation
10.1 Unita' systemd: your-redtail.service (T1543.002)
L'analisi dei log di sistema ha confermato la creazione e l'avvio dell'unita' systemd dedicata. Il nome del servizio (your-redtail.service) e' atipico per un sistema di produzione e costituisce un IoC ad alta affidabilita' per il rilevamento automatizzato tramite SIEM.
// Struttura dell'unita' systemd ricostruita da analisi log — valori esatti potrebbero variare tra varianti
La policy Restart=always con RestartSec=5 garantisce che ogni crash (inclusi i segfault causati dall'assenza di connettivita' ai proxy nell'honeypot isolato) venga seguito da un riavvio automatico entro 5 secondi. Nei log del kernel e' stato osservato questo loop ripetuto decine di volte durante la sessione di analisi.
10.2 Privilege Escalation via PolicyKit (T1548.003)
Il malware ha tentato la scalata dei privilegi invocando il servizio PolicyKit (polkit) e/o Sudo per ottenere accesso root. L'accesso root e' necessario per due obiettivi specifici: l'installazione di moduli kernel (per hiding piu' profondo o l'ottimizzazione della CPU per il mining) e la modifica dei parametri di rete a livello di sistema. Nell'honeypot isolato, la richiesta di autenticazione PolicyKit e' stata il segnale operativo che ha innescato l'analisi approfondita da parte del team Nerd Herd.
11. Indicatori di Compromissione (IoC) — Completo
La seguente tabella consolida tutti gli IoC identificati nelle due fasi dell'analisi. I valori sono pubblicati in formato TLP:WHITE e possono essere liberamente integrati in firewall, blocklist, SIEM e feed di threat intelligence.
| Tipo | Valore | Descrizione | Confidence |
|---|---|---|---|
| SHA-256 | 46AB28**********************EB130A | Hash del campione malevolo (hash parzialmente censurato, disponibile su richiesta) | HIGH |
| Dominio C2 | proxies.internetshadow.org | Proxy di mining primario, porta 2137 | HIGH |
| Dominio C2 | proxies.internetshadow.link | Proxy di mining secondario, porta 2137 | HIGH |
| Dominio C2 | proxies.identities.network | Proxy di mining alternativo, porta 2137 | HIGH |
| Dominio C2 | proxies.insanitycpp.cx | Proxy di mining alternativo, porta 2137 | HIGH |
| Dominio C2 | proxies.insanecppdev.com | Proxy di mining alternativo, porta 2137 (UPDATE 14/04) | HIGH |
| Porta / Proto | 2137 / TCP | Porta custom Stratum per tutto il traffico C2. Bloccare in uscita. | HIGH |
| Processo (reale) | redtail_analysis.bin | Nome originale del processo malevolo, eseguito da /tmp |
HIGH |
| Processo (mascherato) | nginx | Nome spoofato tramite prctl(). Rilevabile solo correlando nome con path reale in /proc/[PID]/exe | MEDIUM |
| Servizio systemd | your-redtail.service | Nome dell'unita' di persistenza systemd. IoC ad alta affidabilita' per SIEM. | HIGH |
| Costante LCG | 0x6c078965 | Seed/moltiplicatore LCG per decifratura C2 in memoria. Firma statica YARA. | HIGH |
12. Piano di Remediation e Azioni Obbligatorie
Le seguenti azioni sono ordinate per priorita' operativa. I passi 1-3 devono essere eseguiti nell'ordine indicato per evitare di allertare il malware prima della raccolta delle prove.
-
1Blocco immediato traffico C2 (porta 2137)Prima azione da eseguire, a livello firewall perimetrale e host-based (iptables/nftables). Interdire tutto il traffico TCP in uscita verso porta 2137. Questo isola il malware senza allertarlo direttamente. Aggiungere blocklist con i 5 domini identificati.# iptables: blocco in uscita porta 2137 iptables -A OUTPUT -p tcp --dport 2137 -j DROP # o con nftables nft add rule inet filter output tcp dport 2137 drop
-
2Core dump e raccolta prove prima della rimozionePrima di terminare il processo, generare un core dump per preservare la configurazione C2 in chiaro e ogni altro artefatto in memoria. Questo e' critico per analisi forensi successive e per l'eventuale presentazione di prove.# Identificare il PID del processo nginx anomalo for pid in $(pgrep nginx); do echo "$pid: $(readlink /proc/$pid/exe)" done # Generare core dump del PID anomalo (path in /tmp) gcore -o /secure/evidence/redtail_$(date +%s) [PID_ANOMALO]
-
3Disattivazione e rimozione del servizio systemdFermare il servizio, disabilitarlo e rimuovere il file unit fisico da disco.sudo systemctl stop your-redtail.service sudo systemctl disable your-redtail.service # Rimuovere il file unit fisico sudo rm /etc/systemd/system/your-redtail.service # oppure sudo rm /lib/systemd/system/your-redtail.service sudo systemctl daemon-reload
-
4Terminazione processi nginx anomali e rimozione binariVerificare che non esistano processi
nginxcon path binario anomalo (fuori da/usr/sbin/o/usr/bin/). Rimuovere i binari malevoli da/tmp,/dev/shme altre directory temporanee scrivibili. -
5Audit log e stima della finestra di infezioneVerificare
/var/log/auth.logper tentativi di escalation dei privilegi. Esaminarejournalctl -u your-redtail.serviceper determinare il timestamp di creazione del servizio e stimare da quanto tempo il sistema e' compromesso. Cercare connessioni storiche verso porta 2137 nei log firewall. -
6Verifica integrita' sistema e threat hunting su infrastrutturaEseguire verifica integrita' dei binari di sistema con
debsums(Debian/Ubuntu) orpm -V(RHEL/CentOS). Estendere il threat hunting all'intera infrastruttura cercando: connessioni attive porta 2137, presenza librerialibredtail, file ELF in/tmpo/dev/shm, servizi systemd con nomi atipici, chiavi SSH non autorizzate in~/.ssh/authorized_keys.
13. Lessons Learned
0x6c078965 rende le stringhe C2 completamente invisibili in analisi statica tradizionale. Strumenti come strings, ricerche di URL/IP nel binario, o analisi superficiale con Ghidra senza identificare il motore di decifratura non avrebbero prodotto alcuna informazione sull'infrastruttura C2. Solo il dump della memoria volatile ha permesso l'estrazione della configurazione in chiaro. Questo sottolinea l'importanza dell'analisi dinamica in ambienti controllati come componente obbligatorio del workflow di threat intelligence.nginx tramite prctl(PR_SET_NAME) ha reso il processo invisibile a top, ps aux e a qualsiasi tool di monitoring che non correli il nome del processo con il path reale del binario. Un operatore non addestrato, vedendo due istanze di nginx in un server web, non avrebbe rilevato l'anomalia. Il threat hunting efficace su questa tecnica richiede la correlazione sistematica nome processo vs. /proc/[PID]/exe, una pratica che deve essere integrata nelle procedure SOC standard.your-redtail.service e' atipico per qualsiasi sistema di produzione Linux. Implementare una regola SIEM che avvisi sulla creazione di nuovi servizi systemd con nomi che non appartengono a una lista bianca approvata e' una misura di detection ad alto rapporto segnale/rumore per questa tecnica di persistenza. Il costo implementativo e' basso, la copertura e' alta.14. Conclusione
Il laboratorio forense di Nerd Herd ha decostruito con successo tutti i layer di evasione e persistenza della variante RedTail identificata il 13-14 Aprile 2026. L'operazione ha richiesto due fasi distinte: l'analisi statica del 13 Aprile, che ha identificato il motore LCG e le tecniche di anti-debugging, e l'analisi dinamica del 14 Aprile da core dump, che ha fornito la prova definitiva del process masquerading e l'estrazione completa dell'infrastruttura C2.
Le quattro scoperte principali di questa indagine hanno implicazioni concrete sulla strategia di difesa dell'organizzazione interessata e, piu' in generale, su qualsiasi infrastruttura Linux esposta a questo threat actor.
L'infrastruttura proxy privata su internetshadow.org:2137 e gli altri quattro domini identificati e' ora "cieca" sulla rete del cliente: il blocco del traffico sulla porta 2137 verso questi domini costituisce una misura di interdizione completa. La scoperta dello schema di autenticazione IP-based e' un'informazione di intelligence di valore per l'intera community di sicurezza che monitora questo cluster di attivita'.
L'honeypot proprietario Nerd Herd ha contenuto la minaccia con successo. Il threat e' isolato. La produzione e' sicura.