Jak ukryć kradzież miliarda dolarów, czyli analiza nietypowego malware

dodał 25 kwietnia 2016 o 16:54 w kategorii Włamania  z tagami:
Jak ukryć kradzież miliarda dolarów, czyli analiza nietypowego malware

Kilka tygodni temu przestępcy próbowali ukraść miliard dolarów z kont banku centralnego w Bangladeszu. Prawie im się to udało, a dzięki analizie użytego złośliwego oprogramowania możemy zajrzeć za kulisy spektakularnego włamania.

W lutym miało miejsce jedno z najbardziej spektakularnych przestępstw komputerowych w dotychczasowej historii. Tajemniczy sprawcy próbowali ukraść prawie miliard dolarów z kont banku centralnego w Bangladeszu. Tylko przypadkowi można zawdzięczać fakt, że ukradli zaledwie 80 milionów.

Złośliwe oprogramowanie stworzone specjalnie na potrzeby tego ataku

Analiza takiego włamania to marzenie większości firm działających w branży bezpieczeństwa. Skąd jednak wziąć próbki, skoro to FireEye został zaangażowany do obsługi incydentu? Z pomocą przychodzą repozytoria złośliwego oprogramowania – domyślamy się, że jak w większości przypadków mogło chodzić o serwis VirusTotal. Eksperci firmy BAE Systems odnaleźli tam ciekawe próbki, wgrane krótko po ataku własnie z Bangladeszu. Co więcej, w ich kodzie zaszyte są informacje wskazujące, że miały działać własnie w sieci banku centralnego w Bangladeszu. Wszystko zatem wskazuje na to, że mamy do czynienia z oprogramowaniem użytym w ataku.

Program o nazwie evtdiag.exe musiał zostać zainstalowany na serwerze obsługującym transakcje systemu międzybankowego SWIFT. Jego konfiguracja przechowywana jest w zaszyfrowanym pliku i zawiera wskazówki co do sposobu jego działania i listy słów kluczowych, na które reagował. Znaleziono w niej także adres serwera C&C: 196.202.103.174.  Program po uruchomieniu skanuje wszystkie procesy w systemie i szuka tego, który załadował bibliotekę liboradb.dll, należącego do oprogramowania obsługującego system SWIFT opartego o Oracle Database. Gdy znajdzie już odpowiedni proces, łata w pamięci dwa bajty biblioteki. Powoduje to, że przestają działać wewnętrzne testy bezpieczeństwa (zamiast przerwać wykonywanie programu jest ono kontynuowane mimo błędów) i program może swobodnie manipulować danymi.

Schemat działania programu

Schemat działania programu

Kilka drobnych manipulacji

Złośliwy program monitoruje wiadomości systemu SWIFT, zawierające m. in. informacje o zleconych i wykonanych przelewach. Przeszukuje je pod kątem zdefiniowanej listy słów kluczowych i gdy trafi na wiadomość spełniającą określony warunek, odczytuje jej parametry i usuwa z bazy danych odpowiedni wpis, ukrywając nieautoryzowaną transakcję. Przygotowuje w tym celu i wykonuje odpowiedni skrypt SQL.

Program monitoruje także logowania do systemu za pomocą poniższego kodu, wykonywanego co 5 sekund:

SELECT * FROM (SELECT JRNL_DISPLAY_TEXT, JRNL_DATE_TIME FROM SAAOWNER.JRNL_%s WHERE JRNL_DISPLAY_TEXT LIKE '%%LT BBHOBDDHA: Log%%' ORDER BY JRNL_DATE_TIME DESC) A WHERE ROWNUM = 1;

Warto zwrócić uwagę na ciąg BBHOBDDHA – to identyfikator banku centralnego w Bangladeszu. Informacje o logowaniach przekazywane są do serwera C&C.

Program potrafi także modyfikować w locie salda rachunków w systemie by ukryć fakt dokonywania nieautoryzowanych transakcji. Jako że potwierdzenia transakcji są również automatycznie drukowane, program identyfikuje określone wiadomości, modyfikuje je w locie, konwertuje na pliki PRT, wysyła do drukarki a następnie usuwa ze swojej pamięci nadpisując zerami.

Czego nie wiemy

Autorzy analizy wskazują, że twórca programu dysponował solidnymi umiejętnościami programistycznymi oraz głęboką wiedzą na temat funkcjonowania systemu SWIFT oraz procedur operacyjnych obowiązujących w banku. Analiza fragmentu użytego złośliwego oprogramowania pokazuje w jaki sposób przestępcy zacierali ślady, jednak nie pokazuje, w jaki sposób dostali się do sieci (rzekomo bank używał switchy z odzysku za 10 dolarów sztuka), jak zdobyli uprawnienia oraz w jaki sposób wysłali nieautoryzowane przelewy.

Przedstawiciele organizacji SWIFT podkreślają, że bezpieczeństwo sieci oraz serwerów nie zostało naruszone, jednocześnie zapowiadając aktualizację oprogramowania klienckiego. Mamy nadzieję, że nie jest to ostatnia odsłona tej historii i wkrótce poznamy kolejne szczegóły.