Indizi di Phishing Nascosti nella Cartella /tmp
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Un utente macOS è stato ingannato da un falso prompt chiamato “macOS Protection Service” e ha inserito la propria password, il che ha innescato il dispiegamento dell’infostealer MacSync. Il malware ha raccolto cookie di Chrome e Safari, record di Apple Keychain, dati di portafogli di criptovalute e altri file locali, mettendoli in scena sotto /tmp/salmonela/. Le informazioni rubate sono state quindi compresse in un archivio ed esfiltrate con curl verso un dominio di comando e controllo nascosto prima che l’archivio fosse rimosso. Huntress ha rilevato l’intrusione, isolato l’endpoint e arrestato il tentativo di furto dei dati.
Indagine
Il SOC di Huntress ha identificato attività sospette sul Mac interessato che coinvolgevano il binario nativo curl che caricava un archivio ZIP. Gli analisti hanno confermato che l’attacco si basava su LOOBins e hanno attribuito il payload all’infostealer MacSync. Il contenimento è stato raggiunto disconnettendo l’host dalla rete e cancellando la cartella temporanea di staging. Gli investigatori non hanno trovato segni di ulteriori movimenti laterali dopo che l’endpoint è stato isolato.
Mitigazione
Le difese consigliate includono l’addestramento degli utenti a riconoscere dialoghi di sistema falsi, ridurre i diritti di amministratore locale non necessari, implementare EDR gestiti su macOS e ruotare le credenziali dopo il compromesso. Limitare le connessioni in uscita non autorizzate e controllare i caricamenti di grandi dimensioni tramite curl possono ulteriormente ridurre l’esposizione. Audit regolari e rafforzamento delle politiche di accesso a Keychain aggiungono un ulteriore strato di protezione.
Risposta
Se questa attività viene rilevata, isolare immediatamente l’endpoint, interrompere il processo dannoso e rimuovere la /tmp/salmonela/ directory. Eseguire una revisione forense per identificare eventuali artefatti rimanenti, resettare le credenziali esposte e invalidare le sessioni attive. Aggiornare il contenuto di rilevamento per individuare abusi simili di LOOBin e monitorare il traffico POST in uscita verso domini sconosciuti.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Action nodes action_user_execution["<b>Azione</b> – <b>T1204 Esecuzione Utente</b><br/>La vittima è ingannata da un falso dialogo del Servizio di Protezione macOS e inserisce la password del dispositivo."] class action_user_execution action action_input_capture["<b>Azione</b> – <b>T1056.002 Acquisizione Input: Acquisizione Input GUI</b><br/>Il prompt dannoso cattura la password inserita."] class action_input_capture action action_cred_dump["<b>Azione</b> – <b>T1555.001 Credenziali dai Depositi Password: Keychain</b><br/>Il malware utilizza la password catturata per scaricare le credenziali memorizzate dal Keychain di macOS."] class action_cred_dump action action_browser_discovery["<b>Azione</b> – <b>T1217 Scoperta Informazioni Browser</b><br/>Lo stealer raccoglie cookie di Chrome e Safari, accessi salvati e altri dati del browser."] class action_browser_discovery action action_archive["<b>Azione</b> – <b>T1560.001 Dati Racc. Archiviati: Archiv. tramite Utilita</b><br/>I file raccolti sono compressi in un archivio zip in /tmp/salmonela/."] class action_archive action action_obfuscate["<b>Azione</b> – <b>T1027.015 File Offuscati o Informazioni: Compressione</b><br/>L’archivio è usato per nascondere i dati raccolti."] class action_obfuscate action action_exfil["<b>Azione</b> – <b>T1071.001 Protocollo Livello Applicazione: Protocollo Web</b><br/>L’archivio zip è inviato a un server C2 remoto tramite curl su HTTP/HTTPS."] class action_exfil action action_cleanup["<b>Azione</b> – <b>T1070.004 Rimozione Indicatore: Eliminazione File</b><br/>Dopo l’esfiltrazione, il malware elimina l’archivio per coprire le sue tracce."] class action_cleanup action %% Tool node tool_curl["<b>Strumento</b> – <b>Nome</b>: curl<br/><b>Descrizione</b>: utilità da linea di comando usata per trasferire dati su HTTP/HTTPS."] class tool_curl tool %% File node file_archive["<b>File</b> – <b>Percorso</b>: /tmp/salmonela/archive.zip<br/><b>Tipo</b>: archivio ZIP contenente dati raccolti."] class file_archive file %% Flow connections action_user_execution –>|porta a| action_input_capture action_input_capture –>|cattura password per| action_cred_dump action_cred_dump –>|abilita accesso a| action_browser_discovery action_browser_discovery –>|fornisce dati a| action_archive action_archive –>|crea| file_archive action_obfuscate –>|si applica a| file_archive action_exfil –>|esfiltra| file_archive action_exfil –>|usa| tool_curl action_cleanup –>|elimina| file_archive "
Flusso d’Attacco
Rilevazioni
Accesso Sospetto a Credenziali Memorizzate del Browser MacOS (via process_creation)
Visualizza
Rilevazione di Attività MacSync Infostealer [Evento File Linux]
Visualizza
Rilevazione di MacSync Infostealer tramite Falso Prompt del Servizio di Protezione macOS [Creazione di Processo Linux]
Visualizza
Ambiente di Simulazione & Contesto
-
TTP Sotto Test:
- T1056.002: Acquisizione Input – Moduli Web
- T1204.004: Esecuzione Utente – File Maligno
- T1548.004: Meccanismo di Controllo Elevazione – Bypass del Controllo Accesso Utente
- T1555.002: Credenziali dai Browser Web – Estrazione Password
- T1556.004: Modifica Processo di Autenticazione – Modifica Fiducia Dominio
-
Contexto & Rilevanza TTP:
- T1056.002 – L’infostealer raccoglie credenziali inserite nei moduli web e le archivia nella cartella di staging.
- T1204.004 – Il binario malintenzionato è eseguito da un utente (spesso tramite un installer mascherato).
- T1548.004 – La minaccia può tentare di eseguire il passaggio di compressione con privilegi elevati per aggirare il sandboxing di macOS.
- T1555.002 – Le password estratte dai browser sono scritte sui file sotto
/tmp/salmonela/. - T1556.004 – In campagne avanzate, l’attaccante potrebbe modificare le impostazioni di fiducia locale prima dell’esfiltrazione, ma la regola si concentra sull’attività di staging dei dati.
-
Ambiente Target:
- OS: macOS (Catalina 10.15 o successivo)
- Registrazione: Auditd + FSEvents (raccolta eventi file) inoltrato a un SIEM che utilizza le regole Sigma.
- Stack di Sicurezza: SIEM compatibile con Sigma generico (es. Elastic Stack, Splunk, Microsoft Sentinel).
Telemetria & Verifica Pre‑volo di Base
Motivazione: Prima di simulare l’attacco, dobbiamo confermare che l’host target è configurato per generare i log necessari, che questi log siano acquisiti dal SIEM e che la regola di rilevamento non si attivi su attività benigne. Senza questa validazione, qualsiasi risultato del test è inaffidabile.
-
1. Istruzioni di Configurazione Telemetria:
-
Abilitare auditd su macOS per il logging da riga di comando
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo audit -s 1 # abilitare auditing sudo audit -f /etc/security/audit_control # Assicurarsi che "flags:fc,ex" (creazione file ed esecuzione) siano presenti, quindi riavviare auditd sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist -
Abilitare FSEvents (già su macOS) e inoltrare a SIEM – installare il modulo Elastic Filebeat per macOS o Splunk Universal Forwarder con l’
fschangeinput, garantendo cheil percorso: /tmp/sia incluso. -
Convalidare l’ingestione – nel SIEM, eseguire una query semplice per qualsiasi evento contenente
/tmp/negli ultimi 5 minuti per confermare che il pipeline sia attivo.
-
-
2. Ingestione & Convalida Base:
-
Azione (Telemetria Benigna): Creare una cartella temporanea sotto
/tmpe comprimere usandotar(che non include not la frase intera scatenante esatta).# comando benigno per generare telemetria simile mkdir -p /tmp/salmonela_benign echo "dati benigni" > /tmp/salmonela_benign/sample.txt tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign -
Query di Convalida (Ingestione): (esempio KQL per Elastic)
filebeat-* | dove file.path contiene "/tmp/salmonela_benign" | dove process.command_line contiene "tar"La query dovrebbe restituire l’evento benigno, confermando che i log stanno raggiungendo il SIEM mentre not corrisponde alla regola di rilevamento (nessuna stringa “Zipped the contents of salmonela/” presente).
-
Esecuzione Simulazione
Prerequisito: La Verifica Telemetria & Base Pre‑volo deve essere superata.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il contesto narrativo DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrativa d’Attacco & Comandi:
- Compromissione Iniziale (T1204.004): L’attaccante distribuisce un binario macOS maligno mascherato da installer legittimo. L’utente lo esegue, concedendo i diritti al processo binario per scrivere a
/tmp. - Raccolta Credenziali (T1056.002 & T1555.002): Il binario inietta un key-logger nel browser web dell’utente, cattura i moduli di accesso e scrive le credenziali raccolte in
/tmp/salmonela/creds.txt. - Evitamento Escalation Privilegi (T1548.004): Il binario invoca
sudocon una politica pre-configurata che gli consente di eseguire il passaggio di compressione senza richiesta. - Staging & Compressione Dati: L’attaccante esegue un comando bash che registra sia un messaggio personalizzato sia comprime la cartella di staging. La linea di comando esatta contiene la stringa letterale and zippa la cartella di staging. La linea di comando esatta contiene la stringa letterale
"Zipped the contents of salmonela/", soddisfacendo la condizione Sigma.
sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/" - Compromissione Iniziale (T1204.004): L’attaccante distribuisce un binario macOS maligno mascherato da installer legittimo. L’utente lo esegue, concedendo i diritti al processo binario per scrivere a
-
Script di Test di Regressione: (script Bash autonomo che riproduce le azioni sopra)
#!/usr/bin/env bash set -euo pipefail # 1. Prepara directory be stage STAGE_DIR="/tmp/salmonela" mkdir -p "$STAGE_DIR" # 2. Simula dump di credenziali echo "user:example@example.com" > "$STAGE_DIR/creds.txt" echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt" # 3. Comprimi con la frase scatenante esatta nella linea di comando sudo bash -c "echo 'Zipped the contents of salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/" echo "Simulazione completata – avviso dovrebbe attivarsi." -
Comandi di Pulizia: (rimuove gli artefatti e ristabilisce il sistema)
#!/usr/bin/env bash set -euo pipefail rm -rf /tmp/salmonela rm -f /tmp/salmonela_archive.zip echo "Pulizia terminata."