10/01/2019

SiliVaccine: antywirus z Korei Północnej

Technologie

Zespół badaczy z organizacji Cheсk Point otrzymał wiadomość od dziennikarza pracującego dla magazynu Bloomberg, Martyna Williamsa, w której przesłał on kopię północnokoreańskiego antywirusa utworzonego rzekomo przez kogoś z Japonii. Ponieważ oprogramowanie z Korei Północnej nie jest zbyt często spotykane, eksperci Mark Lechtik i Michael Kajiloti z chętnie sprawdzili podesłane im narzędzie antywirusowe. Wyniki swojej analizy zaprezentowali podczas kongresu dla hakerów, 35C3.

Lecz zanim omówimy produkt antywirusowy z Korei Północnej, krótko omówimy, jak wygląda sytuacja internetu w Korei Północnej.

Rola Korei Północnej w tworzeniu globalnej sieci

przypisanie autorstwa — czyli utworzenie uzasadnionego twierdzenia, że dany atak przeprowadziło dane ugrupowanie z danego kraj — bywa jak wróżenie z fusów. Interpretowanie dowodów jest trudne; z kolei łatwo można przyjąć niewłaściwą wskazówkę. Jednak pewnego razu kilka grup badawczych jednogłośnie przypisało kilka ataków Korei Północnej. Ponadto istnieje powszechne przekonanie, że Korea Północna wspiera swoje ugrupowania hakerskie, których zadaniem jest zarabianie pieniędzy dla reżimu. Oczywiście przedstawiciele Koreańskiej Republiki Ludowo-Demokratycznej zaprzeczają tym podejrzeniom.

W Korei Północnej internet, jaki znamy, praktycznie nie istnieje: dostęp do World Wide Web mają tylko nieliczni wybrani, tymczasem reszta mieszkańców jest ograniczona do domowej sieci intranet, która nosi nazwę Kwangmyong. Sieć ta jest pozbawiona wszystkich informacji pochodzących z „zepsutego Zachodu”. Zachód z kolei również niezbyt może zaglądać do sieci Korei Północnej, więc każda informacja na jej temat jest bardzo pożądana.

Jak północnokoreański antywirus SiliVaccine trafił w ręce badaczy

Koreańsko-japoński antywirus

W związku z tą sytuacją nasuwają dwa pytania. Po pierwsze, po co Korea Północna, w której nie ma internetu, chce antywirusa? Do ochrony przed wirusami przemycanymi na pamięciach przenośnych zawierających artykuły z Zachodu, południowokoreańskie seriale telewizyjne i inne informacje nieoficjalnie dostępne w KRLD. Co ciekawe, takie tajne urządzenia przemytnicze są tam szeroko rozpowszechnione. Drugi powód jest mniej oczywisty: wygląda na to, że Korea Północna zamierzała wprowadzić tego antywirusa na rynek światowy — co najmniej jedna z jego wersji zawiera interfejs w języku angielskim.

Drugie pytanie brzmi: skąd KRLD ma własnego antywirusa? Trudno jest utworzyć tak skomplikowany produkt od podstaw, zwłaszcza biorąc pod uwagę ograniczone zasoby. Poszukując odpowiedzi na to pytanie, eksperci z firmy Check Point doszli do ciekawego wniosku: wersja koreańskiego antywirusa z 2013 roku (tylko ją mieli do dyspozycji) używała silnika popularnego antywirusa firmy Trend Micro, z roku 2008.

Koreańscy producenci wyraźnie nie chcieli, aby ktoś mieszał w kodzie tego produktu. Wiele jego komponentów chroniła Themida — program służący do pakowania plików, którego celem było zapobieganie przeprowadzania inżynierii wstecznej. Jednak osoby, które pakowały komponenty SiliVaccine w archiwa, zapomniały o wszechstronności zestawu narzędzi Themida, dzięki czemu badacze z firmy Check Point mogli uzyskać dostęp do kodu programu.

Około jedna czwarta kodu SiliVaccine idealnie odpowiada elementom kodu antywirusa Trend Micro, chociaż pewne funkcje zostały delikatnie zmodyfikowane. Zespół badaczy zadał Trend Micro pytanie: skąd Korea Północna uzyskała kod źródłowy antywirusa z Japonii? Firma odpowiedziała, że nie wie — podejrzewa, że został on użyty nielegalnie. Warto wziąć pod uwagę jeszcze jeden fakt: silnika tego mogli używać partnerzy firmy Trend Micro, którzy reklamowali produkty pod własnymi markami. Być może to jest właściwa wskazówka, w jaki sposób kod źródłowy trafił w ręce programistów z Korei Północnej.

Oficjalna odpowiedź firmy Trend Micro na badanie

Próbując ukryć fakt, że program antywirusowy SiliVaccine był oparty na silniku Trend Micro, Korea Północna dodała do niego drobne elementy. W efekcie na pierwszy rzut oka może się wydawać, że te dwa antywirusy w całkowicie odmienny sposób przetwarzają sygnatury: Trend Micro używa tylko jednego pliku sygnatury, tymczasem SiliVaccine ma ich 20. Jednak po uruchomieniu silnika wszystkie te pliki łączą się w jeden. Jeśli chodzi o same sygnatury, podejrzanie przypominają one te używane przez Trend Micro: na przykład gdy Trend Micro oznaczy jakiś szkodliwy program sygnaturą TROJ_STEAL-1, antywirus SiliVaccine oznaczy go jako Trj.Steal.B. Zmienia się tylko wielkość liter, znika myślnik, a podkreślenia są zastępowane kropkami, czyli zmiany są niewielkie.

W trakcie swojego śledztwa w związku z antywirusem z Korei Północnej zespół badaczy dostrzegł wiele błędów i udziwnień. Na przykład program ma komponent rzekomo przeznaczony do skanowania pliku w poszukiwaniu wirusów — użytkownik musi kliknąć go prawym przyciskiem myszy w Eksploratorze plików i wybrać odpowiednią opcję z menu. Menu zawiera tę opcję, jednak po kliknięciu jej nic się nie dzieje.

Co więcej, antywirus ma sterownik, który gromadzi informacje na temat połączeń sieciowych i… nic z tymi danymi nie robi. Teoretycznie do sterownika dostęp powinny uzyskiwać jakieś inne pliki, ale tak się nie dzieje.

Niektóre komponenty zostały zaszyfrowane przy użyciu narzędzia do pakowania popularnego w rosyjskojęzycznej części internetu jakieś 15 lat temu — BopCrypt. Wydawało się, że niektóre komponenty składają się głównie z nic nieznaczącego kodu, a główną funkcją niektórych plików było marnowanie czasu. Co więcej, według badaczy autorzy co najmniej kilku komponentów SiliVaccine próbowali swoich sił w inżynierii wstecznej, jednak nie udało im się rozgryźć, jak dokładnie działał kod.

Można też było odnieść wrażenie, że osoby, które utworzyły różne części kodu, nie potrafiły działać w pracy zespołowej. Na przykład jeden plik ma podobno uruchamiać funkcję innego pliku z określonym parametrem, tymczasem drugi plik został zaprogramowany tak, aby nie robił nic, gdy ta wartość się pojawi.

Biorąc to wszystko pod uwagę, trudno nie odnieść wrażenia, że północnokoreański SiliVaccine to znacznie zmieniona i bardzo dziurawa wersja antywirusa Trend Micro.

Czy mógł to być szkodliwy program?

Każdy, kto zna politykę Korei Północnej dotyczącą internetu poza tym krajem, z pewnością się zastanawia: a co, jeśli to trojan? Co, jeśli ten produkt miał przemycić np. szkodliwy program? Check Point odpowiedział także na to pytanie.

Wnioski badaczy były ciekawe także i w tym aspekcie. Sam antywirus SiliVaccine wydaje się być czysty. Nie zawierał on żadnych funkcji szkodliwego oprogramowania. Jednak w plikach EXE znajduje się jedna sygnatura, którą silnik ma ignorować. Oznacza to, że jeśli skanowany plik będzie zainfekowany szkodliwym programem oznaczonym tą sygnaturą, SiliVaccine pozwoli mu działać.

SiliVaccine ignoruje pliki szkodliwego programu oznaczonego konkretną sygnaturą

Badacze byli ciekawi, do którego szkodliwego programu odnosiła się wspomniana sygnatura, więc postanowili porównać bazę wirusów SiliVaccine z odpowiadającą jej bazą Trend Micro. Jednak okazało się, że była to sygnatura heurystyczna, która odnosiła się do wszystkich plików wykazujących się określonym zachowaniem. W związku z tym nie udało im się zidentyfikować pliku szkodliwego programu, który miał ignorować antywirus z Korei Północnej. Badacze odkryli również, że autorzy SiliVaccine w jednym punkcie popełnili błąd i umieścili na białej liście nieważną sygnaturę.

Chociaż sam instalator SiliVaccine nie był szkodliwy, archiwum otrzymane przez dziennikarza z Bloomberg od nieznanego mu inżyniera pochodzącego rzekomo z Japonii zawierało jeszcze jeden plik. Jego nazwa sugeruje, że była to łata do SiliVaccine, tymczasem wg metadanych był on związany z automatyczną aktualizacją Microsoftu.

Archiwum, jakie dziennikarz Bloomberga otrzymał, zawierało również szkodliwy program powiązany z ugrupowaniem przestępczym DarkHotel

Badacze z firmy Check Point przeanalizowali ten plik i odkryli, że było to szkodliwe oprogramowanie o nazwie Jaku, po raz pierwszy opisane przez organizację Forcepoint w 2016 r. Zgodnie z wyjaśnieniami, jakie firma Forcepoint opublikowała w swoim badaniu, program Jaku został użyty w atakach na osoby, które miały jakiekolwiek powiązania z Koreą Północną. Ponadto miał on związek z DarkHotel — koreańskojęzyczną grupą, której działania zostały opisane (w j. angielskim) w opublikowanym przez nas w 2014 r. badaniu.

Martyn Williams — dziennikarz z magazynu Bloomberg, który otrzymał wiadomość zawierającą SiliVaccine — dużo pisze o Korei Północnej, więc badacze założyli, że cały schemat obejmujący wiadomość z antywirusem w załączniku mógł być wymierzonym w niego atakiem ukierunkowanym; jego praca jest śledzona przez liderów tego państwa. Jeśli chodzi o SiliVaccine, wygląda na to, że jest to prawdziwy produkt antywirusowy i całkiem prawdopodobne, że jest używany w Korei Północnej — z braku lepszych opcji.