Nowa aktywno艣膰 kampanii cyberszpiegowskiej Blue Termite
Wprowadzenie
W pa藕dzierniku 2014 r. Kaspersky Lab zacz膮艂 bada膰 "Blue Termite", zaawansowane d艂ugotrwa艂e zagro偶enie ukierunkowane (APT) atakuj膮ce cele w Japonii. Najstarsza pr贸bka, jak膮 dot膮d widzieli艣my, pochodzi z listopada 2013 r.
Nie jest to pierwszy raz, gdy Japonia sta艂a si臋 celem ataku APT. Jednak atak ten r贸偶ni si臋 od poprzednich z dw贸ch wzgl臋d贸w: w przeciwie艅stwie do innych kampanii APT g艂贸wnym celem Blue Termite s膮 organizacje japo艅skie; wi臋kszo艣膰 ich serwer贸w kontroli znajduje si臋 w Japonii. G艂贸wnym celem atak贸w s膮 agencje rz膮dowe, rz膮dy lokalne, grupy interesu publicznego, uniwersytety, banki, organizacje finansowe, przemys艂 energetyczny, komunikacyjny, ci臋偶ki, chemiczny, motoryzacyjny, elektryczny, bran偶a medi贸w, sektor us艂ug informacyjnych, s艂u偶ba zdrowia, nieruchomo艣ci, spo偶ywczy, p贸艂przewodnik贸w, robotyki, budowlany, ubezpieczeniowy, transportowy itd. Niestety, kampania ta wci膮偶 jest aktywna, a liczba ofiar zwi臋ksza si臋.
Poni偶szy wykres pokazuje dzienny dost臋p do niekt贸rych znanych serwer贸w C2:
Znaczny wzrost mo偶na zauwa偶y膰 w po艂owie lipca (zaznaczony na pomara艅czowo). Nat臋偶enie to spowodowane by艂o wykorzystywaniem przez ugrupowanie Blue Termite nowych metod ataku, kt贸re Kaspersky Lab wykrywa. Niniejszy artyku艂 przedstawia nowe metody i szczeg贸艂y techniczne dotycz膮ce ich dzia艂ania.
Nowa metoda pierwotnej infekcji
Pierwotnie, g艂贸wnym wektorem infekcji w atakach APT by艂y wiadomo艣ci e-mail typu spear-phishing. Kaspersky Lab wykry艂 now膮 metod臋 pierwszej infekcji, w kt贸rej wykorzystywany jest atak drive-by-download przy u偶yciu exploita Flasha (CVE-2015-5119, kt贸ry wyciek艂 w wyniku incydentu dotycz膮cego ugrupowania Hacking Team).
Kilka japo艅skich stron internetowych zosta艂o zmodyfikowanych przy u偶yciu tej metody.
Przyk艂ad:
Szkodliwy kod umieszczony w zmodyfikowanej stronie wskazuje na "faq.html".
Kod 藕r贸d艂owy "faq.html":
"faq.html" 艂aduje "movie.swf", kt贸ry zawiera exploita. W ten spos贸b szkodliwe oprogramowanie infekuje maszyn臋 osoby odwiedzaj膮cej w momencie dost臋pu.
Nag艂贸wek "movie.swf" to "ZWS", plik Flash skompresowany przy u偶yciu Lempel-Ziv-Markov chain-Algorithm (LZMA):
Plik ten zawiera sekcj臋 Big Data zaznaczon膮 na niebiesko:
Dane te zawieraj膮 12 bajt贸w nag艂贸wka. Zakodowane dane rozpoczynaj膮 si臋 w 0x5dca ("\x78\x9c\xec\xb7".") i s膮 skompresowane przy u偶yciu zlib. Po dekompresji znajdujemy plik wykonywalny (z "MZ header").
Opr贸cz powy偶szych danych plik swf posiada r贸wnie偶 kod pow艂oki w ActionScript (AS):
Funkcja tego kodu pow艂oki jest do艣膰 prosta: zapisuje wypakowany plik wykonywalny jako "rdws.exe" w bie偶膮cym folderze tymczasowym, a nast臋pnie wykonuje go przy u偶yciu WinExec().
Wypakowany plik wykonywalny to "emdivi t17", nowy wektor infekcji stosowany przez osoby atakuj膮ce. Zidentyfikowali艣my kilka rodzaj贸w szkodliwego oprogramowania, kt贸re jest wykonywane jako rdws.exe i emdivi t17 do nich nale偶y.
Kaspersky Lab zidentyfikowa艂 r贸wnie偶 kilka atak贸w "przy wodopoju" (ang. watering hole), w tym jeden na stron臋 internetow膮 nale偶膮c膮 do znanego cz艂onka rz膮du japo艅skiego. Wys艂ali艣my powiadomienie do jej administratora oraz dostawcy us艂ug internetowych za po艣rednictwem poczty elektronicznej, ale nie otrzymali艣my 偶adnej odpowiedzi. Jednak po oko艂o godzinie szkodliwy kod zosta艂 usuni臋ty. Poni偶szy kod odfiltrowuje wszystkie adresy IP z wyj膮tkiem jednego nale偶膮cego do okre艣lonej japo艅skiej organizacji rz膮dowej.
Co ciekawe, skrypt ten zawiera informacje dotycz膮ce IP z nazw膮 zmiennej "TEST". Przypuszczamy, 偶e jest to IP testowe os贸b atakuj膮cych, zlokalizowane w Szanghaju.
Szkodliwe oprogramowanie dostosowane do celu
Kaspersky Lab wykry艂 szkodliwe oprogramowanie o nazwie "emdivi t20" dostosowane do konkretnego celu. Szkodnik ten jest zasadniczo wykorzystywany po infekcji przy u偶yciu emdivi t17, kt贸ry pe艂ni funkcj臋 backdoora. Chocia偶 wersje emdivi t17 i emdivi t20 pochodz膮 z tej samej rodziny emdivi, druga z nich odznacza si臋 wi臋kszym wyrafinowaniem. Przyjrzyjmy si臋 wykorzystywanym poleceniom backdoora. emdivi t17 posiada 9 polece艅, podczas gdy niekt贸re pr贸bki emdivi t20 posiadaj膮 nawet 40.
Polecenia obs艂ugiwane przez emdivi t17:
polecenie |
md5 |
DOABORT |
d895d96bc3ae51944b29d53d599a2341 |
DOWNBG |
39cd12d51b236befc5f939a552181d73 |
GETFILE |
74a9d3a81b79eec0aa2f849cbc8a7efb |
GOTO |
4b8bb3c94a9676b5f34ace4d7102e5b9 |
LOADDLL |
67ca07ecb95c4055d2687815d0c0f8b9 |
SETCMD |
48bb700b80557ee2e5cf06c90ba6698c |
SUSPEND |
ee93a0b023cef18b34ebfee347881c14 |
UPLOAD |
8dff5f89b87ebf91a1ecc1dbed3a6fbb |
VERSION |
021321e8c168ba3ae39ce3a2e7b3ec87 |
Polecenia obs艂ugiwane przez emdivi t20:
polecenie |
md5 |
abort |
5bb94a1c12413a2e5d14deabab29f2aa |
cd |
6865aeb3a9ed28f9a79ec454b259e5d0 |
copy |
12cba3ee81cf4a793796a51b6327c678 |
dir |
736007832d2167baaae763fd3a3f3cf1 |
diskls |
e120a254f254978fc265354a4e79d1d6 |
doabort |
1f6dcc1149b2eef63f6dd4833d5ef0d3 |
downbg |
1e04875a872812e1f431283244b180d2 |
downbg2 |
7f3e982a0d9b4aa5303332aaf414d457 |
download |
fd456406745d816a45cae554c788e754 |
download2 |
b5a4000c99977ce512052d4e8bf737f8 |
execute |
ec0cd3cb91fe82b9501f62a528eb07a9 |
exhide |
fc236c4ddd3414cee8bd3cbd937461c0 |
exit |
f24f62eeb789199b9b2e467df3b1876b |
exuser |
0b5396d6bd0867485ff63067ad9363e7 |
get |
b5eda0a74558a342cf659187f06f746f |
getfile |
b24ba6d783f2aa471b9472109a5ec0ee |
getlnk |
71574cf393bf901effa0cbc6c37e4ce2 |
goto |
de94e676c0358eefea4794f03d6bda4f |
hash |
0800fc577294c34e0b28ad2839435945 |
head |
96e89a298e0a9f469b9ae458d6afae9f |
hjlnk |
ebb0149209e008e3f87e26659aa9b173 |
loaddll |
0340b5e3f0d0ea71eeef6ab890270fc0 |
md |
793914c9c583d9d86d0f4ed8c521b0c1 |
mklnk |
a3bb50704b87da1858a46455dfb5e470 |
move |
3734a903022249b3010be1897042568e |
post |
42b90196b487c54069097a68fe98ab6f |
postfile |
316713cb9f82ff9ade53712ab1cbf92c |
postfile2 |
f15ae485061a10adead43d7f5d5a9889 |
rd |
eeec033a2c4d56d7ba16b69358779091 |
runas |
d88f585460839dd14ad3354bb0d5353b |
screen |
599eba19aa93a929cb8589f148b8a6c4 |
setcmd |
27dc2525548f8ab10a2532037a9657e0 |
setlen |
846a44d63b02c23bcfee5b4ccaa89d54 |
suspend |
497927fb538c4a1572d3b3a98313cab1 |
tasklist |
6e0ad8e44cff1b5d2901e1c7d166a2a4 |
type |
599dcce2998a6b40b1e38e8c6006cb0a |
unzip |
0a342b59ecdcede0571340b9ed11633f |
upload |
76ee3de97a1b8b903319b7c013d8c877 |
version |
2af72f100c356273d46284f6fd1dfc08 |
zip |
adcdbd79a8d84175c229b192aadc02f2 |
Obie wersje przechowuj膮 sumy kontrolne md5 polece艅 backdoora.
Podczas analizy pr贸bek emdivi t20 odkryli艣my, 偶e szkodnik ten jest wysoce ukierunkowany z dw贸ch wzgl臋d贸w.
Po pierwsze, pr贸bka emdivi t20 zawiera zakodowane na sztywno informacje dotycz膮ce wewn臋trznego proxy, zakodowane w 0x44e79c:
Odszyfrowany kod to ?proxy.??????????.co.jp:8080?:
Sztuczka ta nie jest niczym nowym, jednak nie jest powszechnie stosowana. Wynika to z tego, 偶e mo偶e ujawni膰 swoje cele, a tak偶e nie jest metod膮 generyczn膮 i sprawdza si臋 tylko w okre艣lonej organizacji. Jednak podobne przypadki obserwowane by艂y niekiedy w innych atakach APT.
Do艣膰 interesuj膮cy jest drugi aspekt. Rodzina emdivi przechowuje istotne dane o sobie, w tym nazw臋 C2, API, ci膮gi utrudniaj膮ce analiz臋 (strings for anti-analysis), warto艣膰 muteks贸w, jak r贸wnie偶 sum臋 kontroln膮 md5 polece艅 bakdoora oraz informacje dotycz膮ce wewn臋trznego proxy. S膮 one przechowywane w formie zaszyfrowanej i w razie konieczno艣ci zostaj膮 odszyfrowane. Dlatego, aby przeprowadzi膰 szczeg贸艂ow膮 analiz臋 pr贸bki emdivi, musimy ustali膰, kt贸re kody szesnastkowe s膮 zaszyfrowane i jak je odszyfrowa膰. W procesie deszyfrowania dla ka偶dej pr贸bki wymagany jest unikatowy klucz deszyfrowania.
emdivi t20 posiada funkcj臋 generowania klucza deszyfrowania przy u偶yciu Salt1 i Salt2. Salt1 jest generowany z magicznego ci膮gu (kt贸ry prawdopodobnie stanowi wersj臋 emdivi) przy u偶yciu okre艣lonych czterech cyfr (prawdopodobnie ID serwera C2).
Przyk艂ad magicznego ci膮gu:
Cz臋艣膰 nazwy emdivi ("t17" oraz "t20") pochodzi z tego zakodowanego na sztywno magicznego ci膮gu.
Salt2 jest generowany z du偶膮 ilo艣ci膮 danych, kt贸re s膮 zakodowane na sztywno:
W wi臋kszo艣ci przypadk贸w, rodzina emdivi generuje klucz szyfrowania przy u偶yciu Salt1 i Salt2.
Jednak na pocz膮tku lipca 2015 r. Kaspersky Lab zidentyfikowa艂 pr贸bk臋, kt贸ra tworzy klucz deszyfrowania przy u偶yciu Salt1, Salt2, oraz Salt3. Salt3 to identyfikator bezpiecze艅stwa (SID) z zainfekowanego komputera PC.
Ci膮g generowania klucza deszyfrowania (z dodatkowym Salt3):
Innymi s艂owy, pr贸bka ta dzia艂a tylko na okre艣lonym komputerze PC. Nie znaj膮c identyfikatora SID ofiary, nie mo偶na poprawnie wygenerowa膰 klucza deszyfrowania, co utrudnia odszyfrowanie istotnych danych. To oznacza, 偶e nie mo偶na przeprowadzi膰 szczeg贸艂owej analizy szkodliwego oprogramowania.
Na szcz臋艣cie, zdo艂ali艣my przeanalizowa膰 te pr贸bki. Uda艂o nam si臋 z艂ama膰 klucze deszyfracji przy u偶yciu metody brute-force z kilku pr贸bek bez identyfikator贸w SID.
Podsumowanie
Od pocz膮tku czerwca, kiedy zacz臋to szeroko nag艂a艣nia膰 cyberatak na Japo艅ski fundusz emerytalny, r贸偶ne organizacje japo艅skie zacz臋艂y stosowa膰 艣rodki ochrony. Jednak osoby atakuj膮ce stoj膮ce za kampani膮 Blue Termite, kt贸re prawdopodobnie mia艂y je na oku, zacz臋艂y stosowa膰 nowe metody atak贸w i rozszerzy艂y zasi臋g swojej dzia艂alno艣ci. W momencie tworzenia tego artyku艂u wykryto kolejn膮 pr贸bk臋 emdivi t20. Wykorzystuje ona AES, utrudniaj膮c odszyfrowanie poufnych danych. Kaspersky Lab b臋dzie kontynuowa艂 swoje badanie w celu przeciwdzia艂ania tej kampanii cyberszpiegowskiej.
Produkty firmy Kaspersky Lab wykrywaj膮 emdivi t17, emdivi t20 oraz exploity flasha przy pomocy poni偶szych werdykt贸w:
l Backdoor.Win32.Emdivi.*
l Backdoor.Win64.Agent.*
l Exploit.SWF.Agent.*
l HEUR:Backdoor.Win32.Generic
l HEUR:Exploit.SWF.Agent.gen
l HEUR:Trojan.Win32.Generic
l Trojan-Downloader.Win32.Agent.*
l Trojan-Dropper.Win32.Agent.*
殴ród艂o: Kaspersky Lab