Un nuovo malware per Mac chiamato PamStealer sta facendo alzare più di un sopracciglio tra chi si occupa di sicurezza informatica, e non per caso. Non parliamo del solito software malevolo che ruba credenziali con metodi già visti mille volte. Qui i ricercatori si sono trovati davanti a qualcosa di più sofisticato, un mix di tecniche pensate proprio per restare invisibili e infettare i computer di casa Apple senza fare rumore. La particolarità che ha dato il nome a questo codice sta nell’uso dei Pluggable Authentication Modules, un’interfaccia integrata direttamente in macOS che viene sfruttata per verificare la password della vittima prima di spedirla a un server controllato dagli aggressori.
Come agisce questa minaccia in due tempi
Il meccanismo di infezione si sviluppa in due fasi. La prima arriva sotto forma di un’immagine disco che si spaccia per Maccy, un gestore di appunti piuttosto conosciuto tra chi usa il Mac. Questo primo pezzo è compilato come AppleScript, e già qui c’è qualcosa di interessante nel modo in cui prepara il terreno per il secondo stadio. Immagine disco e AppleScript, presi singolarmente, sono strumenti comuni nel mondo dei malware per computer Apple. Quello che colpisce è come PamStealer li combina per guadagnare furtività.
Quando l’utente fa doppio clic sul file, questo si apre nell’Editor di script di macOS, dove la parte dannosa resta ben nascosta nelle profondità del documento. Invece di appoggiarsi a comandi classici come curl o zsh, l’AppleScript esegue un downloader JavaScript for Automation autosufficiente che recupera e prepara il carico usando API native di Objective-C. Il risultato è una catena di esecuzione molto più silenziosa rispetto a quella dei ladri di credenziali standard che di solito si incontrano su Mac.
Chi si aspetta di installare un innocuo gestore di appunti si ritrova invece con una richiesta ben precisa, premere Command-R subito dopo aver aperto l’immagine disco. Questo comando fa partire il codice malevolo direttamente dentro l’AppleScript e permette di aggirare com.apple.quarantine, l’attributo che normalmente mostra avvisi e blocchi quando si scaricano file eseguibili da internet.
Il secondo stadio e la finta richiesta di password
La prima fase piazza il suo carico dentro un pacchetto applicativo che imita componenti reali di macOS. Il nome cambia da campione a campione, si va da un Finder.app fino a un Software Update.app, sempre eseguiti in modo nascosto e con tanto di icona autentica del Finder per non destare sospetti. Il secondo stadio invece è un file Mach O snello, scritto per i Mac con processori Apple. La scelta del linguaggio Rust è piuttosto insolita per questo tipo di software, dato che di norma si trovano Swift, Go oppure Objective-C.
A questo punto compare una finta richiesta di password costruita per assomigliare a un vero messaggio di sistema. Il testo recita che Maccy vuole apportare modifiche e chiede di inserire la password per consentirle. Una volta che la vittima cede, il malware verifica la password localmente tramite l’interfaccia PAM, senza chiamare processi esterni come farebbero molti ladri più comuni. Se la verifica fallisce, la richiesta si ripresenta finché non arriva quella giusta. Quando finalmente la password corretta viene inserita, PamStealer mostra un messaggio che dice che il file è danneggiato e non può essere installato, un depistaggio pensato per non far sospettare nulla.
Il codice va oltre. Prova a ottenere l’accesso completo al disco per la falsa app Maccy e contiene istruzioni pensate per raggiungere anche i portafogli di ethereum. Il secondo stadio si impegna parecchio a restare invisibile, si maschera da Finder, cifra il traffico verso i server di comando e controllo e trattiene richieste come quella dell’accesso completo al disco anche per quaranta minuti, così l’attività non coincide con l’avvio del programma. Comportamenti che mostrano bene come questi ladri di credenziali per macOS continuino a evolversi, adottando catene di esecuzione più silenziose e implementazioni native che riducono le occasioni di rilevamento pur restando compatibili con le funzioni standard del sistema.