ottercookier contagious interview

Contagious Interview nasconde malware negli SVG dei falsi colloqui di lavoro

🛡️ Executive Summary

  • Repository GitHub alterati nascondono frammenti Base64 nei commenti di immagini SVG e ricostruiscono il payload durante l’avvio del progetto.
  • La catena installa stealer, RAT Socket.IO e moduli per sottrarre credenziali, wallet, chiavi cloud, file sensibili e contenuti degli appunti.
  • Gli sviluppatori devono isolare gli assignment, controllare script npm ed eval, analizzare gli asset e impedire l’accesso immediato a segreti locali.

Elastic Security Labs ha identificato una nuova campagna attribuita a Contagious Interview, operazione nordcoreana che prende di mira sviluppatori attraverso colloqui di lavoro falsi e prove tecniche apparentemente legittime. L’attività, tracciata come REF9403, nasconde il codice malevolo nei commenti di immagini SVG raffiguranti bandiere nazionali e lo ricostruisce soltanto durante l’avvio del progetto. La vittima clona un repository GitHub, installa le dipendenze ed esegue il normale comando di sviluppo, attivando silenziosamente una catena capace di rubare credenziali, wallet, file, chiavi cloud e dati del portachiavi macOS. La tecnica sposta il payload fuori dai file JavaScript più evidenti e trasforma gli asset grafici in componenti eseguibili della supply chain.

I falsi colloqui trasformano gli sviluppatori nel vettore iniziale

Annuncio

Contagious Interview costruisce l’accesso iniziale attorno a un’attività perfettamente compatibile con il lavoro quotidiano di uno sviluppatore. La vittima riceve una proposta professionale, viene invitata a partecipare a un processo di selezione e ottiene un repository contenente una coding challenge o un assignment da eseguire in locale. Il progetto può apparire credibile perché deriva dal fork di software realmente esistente, presenta una struttura coerente e include interfacce, asset e dipendenze che non sollevano immediatamente sospetti. Nella campagna REF9403, alcuni repository risultano basati su GoCart di GreatStackDev e modificati soltanto nei punti necessari a introdurre la catena malevola.

image 469
Contagious Interview nasconde malware negli SVG dei falsi colloqui di lavoro 6

Questo approccio elimina la necessità di convincere l’utente ad aprire un allegato palesemente sospetto: è la stessa vittima a clonare il codice, installare i pacchetti e concedere al processo l’accesso al proprio ambiente. Matrice Digitale aveva già documentato questa evoluzione nell’analisi su Void Dokkaebi e i falsi colloqui distribuiti attraverso repository manipolati, dove la prova tecnica diventava il punto d’ingresso verso workstation ricche di credenziali, token e codice proprietario. Il bersaglio non viene scelto soltanto per i dati personali: uno sviluppatore può disporre di accesso a GitHub, npm, cloud, pipeline CI/CD e infrastrutture aziendali, rendendo la sua macchina un ponte verso una compromissione più ampia.

Il payload viene frammentato nei commenti delle immagini SVG

L’elemento distintivo della nuova campagna è l’impiego di file SVG conservati nella directory assets/flags. Immagini con nomi come AE.svg e AF.svg, apparentemente destinate a rappresentare le bandiere di Emirati Arabi Uniti e Afghanistan, contengono nei commenti HTML frammenti di una stringa codificata in Base64. Il formato SVG è basato su XML e può includere markup, metadati, commenti ed elementi attivi; per questo un file visivamente innocuo può contenere quantità considerevoli di testo non mostrato durante il normale rendering. Gli aggressori distribuiscono il payload tra più immagini, evitando che un singolo asset presenti una sequenza troppo lunga o immediatamente riconoscibile.

image 470
Contagious Interview nasconde malware negli SVG dei falsi colloqui di lavoro 7

Una funzione denominata validation(), presente in serverValidation.js, enumera tutti i file SVG, li ordina alfabeticamente, estrae i blocchi nascosti nei commenti e concatena i frammenti. La stringa viene poi elaborata da una funzione personalizzata chiamata Check(), decodificata ed eseguita tramite eval(). Il codice malevolo non compare quindi in chiaro nel file principale e acquisisce significato soltanto quando gli asset vengono letti nell’ordine previsto. La tecnica viene descritta come steganografia perché nasconde dati all’interno di file grafici, anche se tecnicamente sfrutta soprattutto la capacità del formato SVG di ospitare contenuti testuali non visibili.

Il comando npm legittimo attiva la catena senza ulteriori click

L’infezione si avvia quando la vittima esegue npm run dev o npm start, passaggio ordinario per verificare un progetto JavaScript ricevuto durante una selezione. Il server importa il modulo contenente validation() e ricostruisce automaticamente il payload, senza mostrare finestre, richieste aggiuntive o errori evidenti. Questo comportamento riduce il valore delle difese basate esclusivamente sull’attenzione dell’utente, perché l’azione pericolosa coincide con quella richiesta dall’ipotetico datore di lavoro. La presenza di eval() costituisce un indicatore importante, ma non sempre sufficiente: molti progetti utilizzano codice dinamico, strumenti di build e librerie minificate che possono generare falsi positivi.

image 471
Contagious Interview nasconde malware negli SVG dei falsi colloqui di lavoro 8

La forza della campagna deriva dalla concatenazione di più elementi apparentemente innocui: immagini di bandiere, una funzione dal nome generico, una decodifica personalizzata e uno script npm formalmente coerente. Un controllo statico superficiale dei soli file .js può non seguire il flusso fino agli SVG, mentre scanner che ignorano commenti e asset grafici non vedono il contenuto Base64. È la stessa logica già adottata nelle campagne con pacchetti open source malevoli, come quella in cui Contagious Interview aveva infiltrato npm per distribuire OTTERCOOKIE: il codice viene collocato in un contesto che gli sviluppatori considerano normalmente affidabile e viene eseguito attraverso strumenti già presenti nella loro routine.

Lo stealer raccoglie credenziali browser e wallet di criptovalute

Il primo gruppo di moduli mira alle informazioni conservate nei browser Chromium, tra cui Chrome, Edge e Brave. Il malware ricerca database contenenti credenziali salvate, dati di compilazione automatica, cookie, sessioni e informazioni archiviate in LevelDB. Quest’ultimo formato è particolarmente rilevante perché viene utilizzato da molte estensioni per memorizzare configurazioni e dati locali. La campagna individua specificamente wallet come MetaMask e Phantom, cercando materiale che possa facilitare il furto di account, seed phrase, chiavi o sessioni già autenticate. Su macOS, la catena tenta inoltre di accedere al portachiavi di sistema, ampliando la raccolta a credenziali e segreti gestiti dal sistema operativo. La scelta degli sviluppatori come bersaglio aumenta il rendimento: i loro browser possono contenere accessi a exchange, repository privati, ambienti cloud e strumenti aziendali, mentre le estensioni crypto possono custodire fondi personali o collegati a progetti Web3. Contagious Interview aveva già combinato BeaverTail e OTTERCOOKIE per sottrarre dati e mantenere il controllo delle workstation, dinamica ricostruita nell’approfondimento su BeaverTail e OTTERCOOKIE contro sviluppatori e utenti crypto. La nuova variante modifica il confezionamento, ma conserva il medesimo obiettivo economico e operativo.

La scansione dei file cerca segreti cloud, SSH e configurazioni di sviluppo

Un secondo componente esegue una ricerca ricorsiva nelle directory accessibili, individuando estensioni e nomi di file associati a dati sensibili. Tra gli obiettivi figurano .env, chiavi .pem, directory .ssh, configurazioni .aws, documenti e materiali di progetto. I file .env possono contenere token API, password di database e credenziali di servizi esterni; le chiavi SSH consentono accesso a server e repository; i profili AWS possono aprire sessioni cloud con privilegi variabili. Anche quando una singola credenziale non garantisce controllo amministrativo, la raccolta congiunta permette agli operatori di mappare l’ambiente e selezionare gli accessi più utili. Il malware esfiltra i risultati verso infrastrutture di comando e controllo associate a domini sotto rightwidth[.]dev, collegando la fase di raccolta a un ecosistema già osservato nelle operazioni del gruppo. Il rischio supera quindi la compromissione della singola workstation: una coding challenge eseguita su un computer aziendale può esporre repository, ambienti di staging, infrastrutture cloud e segreti riutilizzati nelle pipeline. È una forma di attacco alla supply chain che parte dalla persona e risale verso i sistemi che essa amministra.

Socket.IO mantiene il controllo remoto e abilita nuovi comandi

La catena installa anche un RAT che utilizza Socket.IO per stabilire una comunicazione persistente con il server C2. Il framework consente uno scambio bidirezionale di eventi sopra WebSocket o meccanismi alternativi compatibili con HTTP, rendendo semplice mantenere una sessione attiva e inviare comandi in tempo reale. L’operatore può eseguire istruzioni, aggiornare i moduli, modificare la configurazione e preparare ulteriori attività dopo aver analizzato i dati inizialmente raccolti. L’impiego di una libreria diffusa può rendere il traffico meno anomalo rispetto a un protocollo completamente proprietario, soprattutto in reti dove gli sviluppatori utilizzano abitualmente applicazioni Node.js. Il malware integra inoltre un monitor degli appunti attivo su Windows e macOS. La funzione può intercettare password copiate, indirizzi di wallet, token temporanei e porzioni di codice, oppure sostituire contenuti per deviare una transazione verso un indirizzo controllato dagli aggressori. Su Windows, il dropper scarica payload binari aggiuntivi mascherati con estensione .txt, separando la prima infezione dai componenti più invasivi e consentendo agli operatori di distribuire strumenti diversi in base al valore del bersaglio.

Le sovrapposizioni con OTTERCOOKIE sostengono l’attribuzione alla DPRK

Elastic collega REF9403 a Contagious Interview attraverso similitudini di codice, comportamenti coerenti con campagne precedenti e sovrapposizioni nell’infrastruttura C2. Alcuni componenti richiamano OTTERCOOKIE, backdoor già associato alle false offerte di lavoro nordcoreane e progressivamente aggiornato per sottrarre file, credenziali e wallet. L’attribuzione resta una valutazione analitica e non una prova assoluta dell’identità degli operatori, ma il complesso degli elementi coincide con il modello noto: recruiter fittizi, sviluppatori come bersagli, repository alterati, esecuzione multipiattaforma e interesse per criptovalute e credenziali tecniche. La campagna si inserisce in un’attività più ampia che ha già portato Contagious Interview a distribuire 35 pacchetti npm malevoli contro l’ecosistema open source. Il continuo cambiamento dei vettori non indica l’abbandono delle tecniche precedenti, ma la costruzione di più canali paralleli: npm, GitHub, assignment, applicazioni di videoconferenza e contatti diretti possono convergere sullo stesso set di malware.

Gli asset grafici devono entrare nel perimetro dell’analisi del codice

La principale lezione difensiva riguarda il perimetro della revisione. Un repository non può essere considerato sicuro perché i file JavaScript principali appaiono puliti. SVG, JSON, immagini, file di configurazione, script npm e dipendenze devono essere analizzati come possibili contenitori di istruzioni. Le organizzazioni dovrebbero bloccare o segnalare l’uso di eval() su dati ricostruiti da asset, cercare sequenze Base64 anomale nei commenti e monitorare processi Node.js che accedono immediatamente a browser, wallet, directory .ssh o configurazioni cloud. Le prove tecniche ricevute da soggetti esterni devono essere eseguite in macchine virtuali isolate, prive di credenziali reali, chiavi SSH, wallet e accesso alle reti aziendali. Anche npm install e gli script preinstall, postinstall, start e dev devono essere esaminati prima dell’esecuzione. Sul piano di rete, connessioni verso domini non attesi, uso di Socket.IO e download di presunti file di testo che producono binari richiedono un controllo immediato. Elastic ha pubblicato indicatori e regole di rilevamento, ma gli hash hanno durata limitata: la difesa più robusta consiste nell’individuare il comportamento, non soltanto i campioni già noti.

La supply chain parte ormai dalla workstation del candidato

Contagious Interview mostra come la supply chain del software possa essere compromessa prima ancora che il codice raggiunga un repository aziendale. Il candidato porta il progetto malevolo direttamente sulla propria workstation, dove sono già presenti gli strumenti, le autorizzazioni e i segreti necessari per trasformare una prova tecnica in un accesso operativo. Nascondere il payload negli SVG consente agli aggressori di superare revisioni frettolose e scanner concentrati sui file eseguibili, mentre la ricostruzione dinamica evita di esporre il codice completo fino al momento dell’avvio. Il risultato è una catena multipiattaforma che unisce stealer, RAT, clipboard monitor e dropper, mantenendo al centro l’ingegneria sociale. Per gli sviluppatori, la regola deve diventare netta: qualsiasi assignment ricevuto durante un colloquio va trattato come codice non attendibile, indipendentemente dalla qualità del profilo del recruiter, dall’aspetto del repository o dalla plausibilità del progetto.

Iscriviti alla Newsletter

Non perdere le analisi settimanali: Entra nella Matrice Digitale.

Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.

Torna in alto