SOC Prime Bias: High

25 Sep 2026 08:15 UTC

PamStealer passa a Swift con una catena di decrittazione lato server

Author Photo
SOC Prime Team linkedin icon Segui
PamStealer passa a Swift con una catena di decrittazione lato server
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

Una nuova variante di infostealer PamStealer per macOS introduce un cambiamento architettonico significativo, passando da Rust a Swift. Il malware aggiornato si basa su una catena di decrittazione lato server supportata da un’utility personalizzata chiamata pkgunpack, richiedendo l’interazione attiva del C2 per decifrare ed eseguire il payload di secondo stadio. Utilizza anche meccanismi di persistenza stratificati mentre prende di mira le credenziali del browser, i dati del Portachiavi e ampie metadati di sistema.

Indagine

Jamf Threat Labs ha analizzato la nuova variante di PamStealer dopo averla identificata all’interno di un falso installatore di portafogli di criptovaluta chiamato Wavel. L’indagine ha rivelato una catena di esecuzione a più stadi che inizia con un dropper JXA compilato, seguito da uno stadio basato su zsh che esegue scambi di chiavi in tempo reale, e un secondo stadio basato su Swift responsabile del furto di credenziali e del fingerprinting del sistema.

Mitigazione

Gli utenti dovrebbero evitare di scaricare applicazioni da fonti non ufficiali, in particolare software che impersonano portafogli di criptovaluta. Le organizzazioni dovrebbero monitorare gli oggetti in background sospetti su macOS e le modifiche non autorizzate ai file di configurazione della shell come .zshrc. I controlli di sicurezza degli endpoint capaci di rilevare la firma del codice ad hoc, il reparenting anomalo dei processi e l’esecuzione inusuale della shell possono ulteriormente ridurre l’esposizione.

Risposta

Quando viene rilevata l’attività di PamStealer, isolare l’endpoint macOS interessato dalla rete per prevenire ulteriori comunicazioni command-and-control e esfiltrazione di dati. Eseguire un’analisi forense per determinare l’estensione del furto di credenziali, con particolare attenzione ai dati del browser e del Portachiavi macOS. Rivedere i log di sistema per la creazione non autorizzata di LaunchAgent, oggetti in background sospetti e attività della shell inaspettate.

Flusso di Attacco

Stiamo ancora aggiornando questa parte.

Rilevamenti

Firma del Codice Forzata di Pacchetto Applicazione Modificato (via cmdline)

Squadra SOC Prime
24 Set 2026

Utilità di Archiviazione MacOS che Punta a una Directory Sospetta (via cmdline)

Squadra SOC Prime
24 Set 2026

Uso Sospetto di Ditto per l’Archiviazione e l’Esfiltrazione di File su macOS (via process_creation)

Squadra SOC Prime
24 Set 2026

Tentativo di Esecuzione Sospetto di Curl [MacOS] (via cmdline)

Squadra SOC Prime
24 Set 2026

Archivio Creato nella Cartella Temporanea di MacOS (via file_event)

Squadra SOC Prime
24 Set 2026

Terminazione dei Processi di Helper del Browser per Sblocco delle Credenziali [Windows Process Creation]

Regole AI di SOC Prime
24 Set 2026

Rileva l’Uso di xattr e codesign per Tecniche di Aggiramento nella Variante PamStealer [Linux File Event]

Regole AI di SOC Prime
24 Set 2026

Esecuzione dello Script JXA di PamStealer tramite Zsh [Linux Process Creation]

Regole AI di SOC Prime
24 Set 2026

Esecuzione di Simulazione

  • Narrativa & Comandi dell’Attacco: L’attaccante cerca di distribuire un payload che eviti il rilevamento su disco. Per ottenere ciò, utilizza un comando che decodifica una stringa codificata in Base64 e la reindirizza direttamente in una zsh sottoshell usando il -s flag. Per impedire a un investigatore di collegare facilmente il processo malevolo alla sessione shell originale, l’attaccante incapsula il payload in una funzione chiamata daemon_function, la esegue in background usando &, ed esce immediatamente dalla shell corrente per rompere il collegamento dell’albero dei processi.

  • Script di Test di Regressione:

    #!/bin/bash
    # Simulazione dell'esecuzione di PamStealer JXA tramite zsh
    
    # Definisci il payload "maligno" come un nome di funzione e un comando
    # Il payload viene reindirizzato a zsh -s per imitare il TTP
    PAYLOAD="daemon_function() { echo '[!] PAYLOAD MALEVOLO ESEGUITO'; }; daemon_function & ; exit 0"
    
    # Esegui il payload esattamente come si aspetta la regola di rilevamento
    echo "$PAYLOAD" | zsh -s
  • Comandi di Pulizia:

    # La pulizia è minima poiché il comando viene reindirizzato e non crea file persistenti.
    # Dobbiamo solo assicurarci che nessun processo in background dalla simulazione sia ancora in esecuzione.
    pkill -f "daemon_function"