Il team di ricercatori di Check Point ha ricevuto un messaggio da un giornalista di Bloomberg, Martyn Williams, al quale era stata inviata una copia di un antivirus nordcoreano da un anonimo, presumibilmente giapponese. Non si incontrano spesso software nordcoreani; pertanto, Mark Lechtik e Michael Kajiloti, esperti del settore, non potevano che essere felici di iniziare a indagare e scoprire di che tipo di antivirus si trattasse. Hanno presentato i risultati delle loro ricerche al meeting hacker 35c3.
Tuttavia, prima di addentrarci nella questione che riguarda l’antivirus nordcoreano, dovremmo probabilmente occuparci della relazione che la Corea del Nord ha con Internet e viceversa.
Il ruolo della Corea del Nord nel network globale
Accusare, anche partendo da basi concrete, un gruppo specifico di una nazione ben precisa di aver tentato un attacco è, nel complesso, un’azione dall’esito imprevedibile. Interpretare le prove è difficile, seguire la pista sbagliata è semplice e così via. Eppure, ad un certo punto, vari gruppi di ricercatori hanno iniziato ad attribuire alcuni attacchi alla Corea del Nord. Da tempo si suppone, inoltre, che la Corea del Nord utilizzi gruppi di hacker sostenuti dallo stato stesso, il cui business principale è quello di far guadagnare soldi al regime. Cosa che, ovviamente, il governo coreano nega.
Detto questo, Internet è virtualmente inesistente in Corea del Nord: il web è accessibile a pochi eletti, mentre la maggior parte della popolazione si affida a un’intranet locale, Kwangmyong, un network ripulito da tutte le informazioni provenienti dal “decadente ovest”. Il mondo occidentale, da parte sua, ha ben poche opportunità di sbirciare all’interno del network coreano, per cui ogni tipo di informazione al riguardo viene immediatamente vista come una minaccia.
Un antivirus giapponese-coreano
La prima domanda logica è: perchè la Corea del Nord, dove Internet è praticamente inesistente, ha bisogno di un antivirus? Innanzitutto, per proteggersi contro i virus introdotti nel paese su memory stick contenenti articoli di provenienza occidentale, serie TV sudcoreane e altre informazioni che non sono disponibili ufficialmente in Corea del Nord. Le memory stick di contrabbando sono piuttosto diffuse da quelle parti. In secondo luogo, e meno scontato, sembra che la Corea del Nord intendesse commercializzare l’antivirus a livello internazionale ̶ almeno una delle sue versioni include un’interfaccia in inglese.
La seconda domanda, non meno logica della prima: da dove proviene l’antivirus nordcoreano? È piuttosto difficile creare un prodotto così sofisticato partendo da zero, specialmente se si dispone di risorse molto limitate. Anche gli esperti di Check Point si sono fatti questa domanda e sono arrivati a una semplice conclusione: la versione 2013 dell’antivirus coreano (quella che loro avevano a disposizione) utilizzava il motore di una famosa soluzione antivirus di Trend Micro, risalente al 2008.
Gli sviluppatori coreani non erano chiaramente disposti a condividere il codice del prodotto. Molti dei suoi componenti erano stati infatti protetti con Temida, un programma wrapper sviluppato per ostacolare l’ingegneria inversa. Eppure, chi ha assemblato i componenti di SiliVaccine non ha utilizzato gran parte dello straordinario toolkit di Temida e quindi il team di Check Point è riuscito ad accedere al codice del programma.
Circa un quarto del codice di SiliVaccine corrisponde perfettamente agli elementi del codice dell’antivirus di Trend Micro, anche se alcune funzioni sono state leggermente modificate. Il team di ricerca si è quindi rivolto alla stessa Trend Micro, ponendo una semplice domanda: come possono essersi procurati, i nordcoreani, il codice sorgente di un antivirus prodotto in Giappone? Trend Micro ha risposto di non essere a conoscenza del fatto che la Corea del Nord fosse in possesso del programma, ritenendo quindi che fosse stato utilizzato in modo illegale. Hanno inoltre affermato che il programma potrebbe essere stato utilizzato da partner di Trend Micro che commercializzavano soluzioni antivirus a loro marchio. Quanto meno, ciò fornisce un’idea di come il codice sorgente possa essere finito nelle mani dei programmatori nordcoreani.
I nordcoreani stavano chiaramente cercando di nascondere il fatto che SiliVaccine si basasse sul motore di Trend Micro, quindi hanno solo aggiunto altri fronzoli inutili. A prima vista sembrerebbe che i due antivirus abbiano utilizzato due processi totalmente diversi per le firme dei virus: Trend Micro utilizza un solo file di firma, mentre SiliVaccine 20. Tuttavia, non appena il motore si attiva, tutti i file vengono raggruppati in uno solo. Per quanto riguarda le firme stesse, assomigliano in modo molto sospetto a quelle utilizzate da Trend Micro: per esempio, se Trend Micro utilizza una firma TROJ_STEAL-1 per un determinato malware, SiliVaccine utilizzerà Trj.Steal.B. Cambiano soltanto la maiuscola, sostituiscono i trattini e gli underscore con i punti e aggiungono delle altre piccole modifiche.
Nel corso delle investigazioni, il team di ricercatori ha riferito di molteplici bug e altre stranezze. Per esempio, il programma ha un componente che dovrebbe effettuare la scansione, quindi l’utente dovrebbe cliccarci sopra con il tasto destro in File Explorer e selezionare l’opzione appropriata dal menu. Il menu presenta effettivamente questo tipo di opzione ma cliccandoci sopra non conduce da nessuna parte.
Un’altra stranezza: l’antivirus ha un driver che raccoglie informazioni sulle connessioni di rete che, però, alla fine, non fa assolutamente nulla. In teoria, il drive dovrebbe esssere accessibile da altri file, ma nessun altro file di SiliVaccine lo utilizza.
Alcuni componenti erano cifrati con BopCrypt ̶ un packaging tool che era molto diffuso nella comunità internet di lingua russa circa 15 anni fa. Alcuni componenti sembravano essere composti principalmente da junk code. I ricercatori hanno avuto l’impressione che la principale funzione di alcuni dei file fosse unicamente quella di far perdere del gran tempo, senza fare nulla. Erano inoltre dell’opinione che gli artefici di alcuni dei componenti di SiliVaccine avessero provato a mettersi alla prova con l’ingegneria inversa con risultati fallimentari, senza riuscire a capire come il codice funzionasse esattamente.
Inoltre, sembrava che le persone che avevano contribuito alla scrittura di diverse parti del codice non fossero effettivamente portate per il lavoro in team. Per esempio, esiste un file che dovrebbe attivare la funzione di un altro con un parametro fissato a un certo valore; tuttavia, quando viene raggiunto tale valore, il secondo file è programmato appositamente per non fare nulla.
In considerazione di tutto ciò, il SiliVaccine nordcoreano si è rivelato una versione rielaborata e piena di bug dell’antivirus di Trend Micro.
Potrebbe essere un malware?
Tutti coloro che conoscono la politica nordcoreana in materia di Internet dovrebbero chiedersi: e se si trattasse veramente di un Trojan? Cosa succederebbe se il prodotto fosse effettivamente costruito per innestare malware o qualcosa del genere? Check Point ha risposto anche a questo quesito.
Le loro scoperte sono state nuovamente molto interessanti. Per iniziare, l’antivirus SiliVaccine appare pulito e non sono state trovate funzioni malware. Eppure i file EXE menzionano una firma che il motore ignora. Se un file dovesse essere infetto con un malware con quella firma, SiliVaccine lo ignorerebbe semplicemente.
Sicuramente i ricercatori erano curiosi di scoprire di che tipo esatto di malware si trattasse e hanno quindi cercato di fare un cross check della firma tra quella di SiliVaccine e quella di Trend Micro. Hanno scoperto che si trattava di una firma euristica, assegnata a tutti i file per dimostrare un comportamento specifico e non sono stati quindi in grado di capire esattamente quale tipo di file malware l’antivirus coreano fosse programmato a ignorare. Tuttavia, hanno scoperto che gli sviluppatori di SiliVaccine, ad un certo punto, hanno fatto un errore e messo nella lista consentiti una firma non valida.
Sebbene l’installer di SiliVaccine non fosse di per sé pericoloso, il messaggio ricevuto dal giornalista di Bloomberg dal sedicente ingegnere giapponese conteneva anche un altro file. Il nome suggeriva che si potesse trattare di una patch per SiliVaccine, anche se i suoi metadata sembravano confermare un legame ad aggiornamenti automatici di Microsoft.
I ricercatori di Check Point hanno analizzato il file e hanno scoperto che si trattava di un malware, conosciuto come Jaku, descritto per la prima volta da Forcepoint nel 2016. Secondo le spiegazioni fornite da Forcepoint nella loro ricerca, Jaku veniva utilizzato contro persone collegate, in un modo o nell’altro, alla Corea del Nord e aveva delle palesi connessioni con DarkHotel, un gruppo di lingua coreana, delle cui attività abbiamo parlato in una ricerca pubblicata nel 2014.
Martyn Williams, il giornalista di Bloomberg che ha ricevuto il messaggio contenente SiliVaccine, scrive molto a proposito della Corea del Nord. I ricercatori pensano, quindi, che l’intero schema che comprende la mail con allegato l’antivirus possa essere stato un attacco mirato contro di lui ̶ il suo lavoro non viene ovviamente molto apprezzato dai leader nordcoreani. Per quanto riguarda SiliVaccine, sembrerebbe un vero e proprio prodotto antivirus, piuttosto utilizzato in Corea del Nord, in mancanza di alternative migliori.