Cheсk Point’s onderzoeksteam kreeg ooit een bericht van Martyn Williams, een journalist van Bloomberg, die een kopie van een Noord-Koreaans antivirus toegestuurd had gekregen van iemand uit zogenaamd Japan. Noord-Koreaanse software zie je niet iedere dag, dus deskundigen Mark Lechtik en Michael Kajiloti waren des te benieuwd naar hoe de antivirus eruitzag. Ze presenteerden het resultaat van hun onderzoek op het hackerscongres 35C3.
Maar voor we de Noord-Koreaanse antivirus bespreken, moeten we het in het kort hebben over de relatie die Noord-Korea heeft met het internet en vice versa.
De rol van Noord-Korea bij de ontwikkeling van het wereldwijde netwerk
Toeschrijven — een onderbouwde bewering over een specifieke groep van een specifiek land dat achter een specifieke aanval zou zitten – is een pure gok. Bewijs interpreteren is een lastige zaak, de verkeerde weg inslaan is daarentegen makkelijk, etc. En toch waren er verschillende onderzoeksgroepen die bepaalde aanvallen hebben toegeschreven aan Noord-Korea. Er wordt ook aangenomen dat Noord-Korea gebruik maakt van groepen hackers, met steun van de staat, met als doel het verdienen van geld voor het regime. Natuurlijk hebben de DVK-ambtenaren dit ontkend.
Dat gezegd hebbende, het Internet is praktisch gezien niet-bestaand in Noord-Korea: het Wereldwijde Web is slechts voor enkelen toegankelijk, terwijl de grote bevolkingsmassa slechts toegang heeft tot het nationale intranet, Kwangmyong genaamd, gezuiverd van alle informatie afkomstig uit ‘het in verval geraakte Westen’. Het Westen heeft op zijn beurt weinig kans om een kijkje te nemen in het netwerk van Noord-Korea, wat van iedere stukje informatie over dit onderwerp een traktatie maakt.
Koreaans–Japans antivirus
De eerste logische vraag is: Waarom zou Noord-Korea, dat geen Internet heeft, een antivirus willen? Ten eerste als bescherming tegen virussen die het land in worden gesmokkeld op een memoriestick met westerse artikelen, Zuid-Koreaanse televisieseries en andere informatie die niet officieel verkrijgbaar is in de DVK. Smokkel met memoriesticks komt hier verbazingwekkend veel voor. Ten tweede, minder vanzelfsprekend, lijkt het erop dat Noord-Korea van plan is geweest om de antivirus internationaal op de markt te brengen – tenminste één van de versies bevat een Engelse interface.
Het tweede vraagstuk, niet minder vanzelfsprekend, is: Waar zou de DVK zijn eigen antivirussoftware vandaan halen? Een dergelijk ingewikkeld product is nogal moeilijk om uit het niets te creëren en vooral met de beperkte middelen dei ze hebben. De deskundigen van Check Point wezen ook op dit vraagstuk, en kwamen tot de interessante conclusie: De versie uit 2013 van de Koreaanse antivirus (die beschikbaar was) gebruikte de engine van een populaire antivirusoplossing van Trend Micro, uit 2008.
De Koreaanse ontwikkelaars wilden klaarblijkelijk dat niemand aan de code van het product zou zitten; veel van de componenten waren namelijk beschermd met Themida – een wrapper-programma ontwikkeld om ‘reverse engineering’ te belemmeren. Diegenen die de SiliVaccine componenten samenstelden hebben echter het overgrote deel van de indrukwekkende Themida-functies genegeerd, waardoor het Check Point team toegang tot de code heeft kunnen krijgen.
Ongeveer een kwart deel van de SiliVaccine code komt overeen met de elementen van de code van Trend Micro antivirus, maar sommige functies zijn lichtelijk aangepast. Het onderzoeksteam stelde Trend Micro de vraag: Hoe komt Noord-Korea aan de broncode van een Japans antivirusproduct? Trend Micro beweerde niet te weten hoe de DVK de engine in handen had gekregen, en dachten dat het op illegale wijze was gebeurd. Ze zeiden ook dat de engine mogelijk door partners van Trend Micro was gebruikt, die onder hun eigen merk veiligheidsoplossingen op de markt brachten. Dit kan ons inzicht geven in hoe de broncode in handen is gekomen van de Noord-Koreaanse programmeurs.
De Noord-Koreanen hadden duidelijk als doel te verbergen dat SiliVaccine gebaseerd was op Trend Micro’s engine, te zien aan de toegevoegde toeters en bellen. Op het eerste gezicht lijkt het dus dat beide antivirussen totaal verschillende processen hanteren voor virus signatures: Trend Micro gebruikt slechts één signatuurbestand, terwijl SiliVaccine er 20 heeft. Zodra de engine echter opstart worden al deze bestanden omgezet tot één. De signaturen lijken verdacht veel op die van Trend Micro: bijvoorbeeld als Trend Micro een TROJ_STEAL-1 signatuur gebruikt voor bepaalde malware, dan gebruikt SiliVaccine Trj.Steal.B. Ze veranderen slechts het hoofdlettergebruik, vervangen streepjes voor punten en voegen wat kleine veranderingen toe.
In de loop van hun onderzoek naar de Noord-Koreaanse antivirus, deed het onderzoeksteam verslag van een hoop bugs en andere vreemde dingen. Het programma heeft bijvoorbeeld een component dat is bedoeld voor het scannen van een bestand op virussen, mocht de gebruiker op de rechtermuisknop drukken in de verkenner en op de juiste optie klikken in het menu. Het menu heeft deze optie, maar als je erop klikt dan gebeurt er niets.
Nog een andere gekkigheid: de antivirus komt met een driver die informatie over netwerkverbindingen verzamelt en… doet hier verder niets mee. In theorie zou de driver door een serie bestanden worden gebruikt, maar geen enkel SiliVaccine-bestand maakt er gebruik van.
Sommige componenten zijn geëncrypteerd met BopCrypt – een packaging tool die 15 jaar geleden erg populair was bij Russisch-sprekenden op het Internet. Sommige componenten bleken voornamelijk uit junkcode te bestaan. De indruk was dat de hoofdfunctie van sommige bestanden slechts het roven van tijd was, wat verder deden ze niets. Daarnaast waren de ontwikkelaars van mening dat de auteurs van tenminste enkele SiliVaccine componenten geprobeerd hebben om reverse engineering toe te passen, maar dat ze hebben gefaald in het achterhalen hoe de code werkt.
Bovendien leek er sprake te zijn van slecht teamwerk bij het schrijven van de verschillende onderdelen van de code. Zo is er bijvoorbeeld een bestand dat bedoeld is om een functie van een ander bestand aan te sturen, maar de parameters komen niet overeen, waardoor er dus geen handeling plaatsvindt als de waarde zich voordoet.
Alles bij elkaar blijkt de Noord-Koreaanse SiliVaccine een bewerkte versie te zijn van Trend Micro’s met een hoop bugs.
Zou het malware kunnen zijn?
Iedereen die bekend is met het externe Internetbeleid van de DVK moet zich afvragen: Wat als het eigenlijk een Trojaan is? Wat als dit product is gemaakt om malware of iets dergelijks te installeren? Check Point geeft hier ook antwoord op.
Hun bevindingen zijn, ook hier weer, interessant. Op het eerste gezicht lijkt de SiliVaccine antivirus in orde te zijn. Er zijn geen malware-functies gevonden. Maar toch blijkt de engine een signatuur voor EXE-bestanden te negeren. Als een gescand bestand geïnfecteerd is met malware met deze signature, wordt deze simpelweg met rust gelaten.
En inderdaad, de onderzoekers waren benieuwd naar welke specifieke malware dit was, dus probeerden ze de signatuur van de virusdatabase van SiliVaccine te vergelijken met die van Trend Micro. Het bleek echter een heuristische signatuur te zijn, die aan alle bestanden wordt gegeven die een specifiek gedrag vertonen, waardoor de onderzoekers niet in staat waren te achterhalen welke malwarebestanden door de Noord-Koreaanse antivirus werden genegeerd. Ze vonden wel dat de ontwikkelaars van SiliVaccine een drukfout hadden gemaakt en een ongeldige signatuur op de ‘whitelist’ hadden geplaatst.
Hoewel de SiliVaccine-installer zelf niet kwaadaardig is, bevatte het programma van de Bloomberg journalist, zogenaamd van een ingenieur uit Japan, ook een ander bestand. De naam duidde op een patch voor SiliVaccine, hoewel de metadata beweerden dat het gerelateerd was aan Microsoft Automatische Updates.
De Check Point onderzoekers analyseerden het bestand en kwamen tot de conclusie dat het ging om de malware Jaku, als eerste genoemd door Forcepoint in 2016. Volgens de uitleg van Forcepoint in het onderzoek, werd Jaku gebruikt tegen individuen die op de een of andere manier verbonden waren met Noord-Korea, en er was ook een relatie met DarkHotel – een Koreaanssprekende groep die besproken was in een onderzoek dat we in 2014 hebben gepubliceerd.
Martyn Williams – de Bloomberg-journalist die de brief ontving met SiliVaccine – schreef een hoop over Noord-Korea, dus de onderzoekers deden de aanname dat de e-mail met het antivirusprogramma in de bijlage een persoonlijke aanval op hem was; De leiders van de DVK waarderen zijn werk allerminst. Wat betreft SiliVaccine valt te zeggen dat het een echt antivirus lijkt te zijn, waarschijnlijk gebruikt in Noord-Korea – door gebrek aan betere opties.