Uwaga na niebezpiecznego Benia, czyli VBKlip nie wie kiedy ze sceny zejść

dodał 4 września 2016 o 19:37 w kategorii Złośniki  z tagami:
Uwaga na niebezpiecznego Benia, czyli VBKlip nie wie kiedy ze sceny zejść

Polscy internetowi przestępcy nie próżnują i niedawno wyprodukowali nowy egzemplarz złośliwego oprogramowania atakującego Wasze konta bankowe. Program nie jest innowacyjny, lecz stanowi realne zagrożenie dla bezpieczeństwa Waszych środków.

Prawie trzy lata temu pierwszy raz usłyszałem o, wtedy jeszcze innowacyjnym, zagrożeniu dla użytkowników bankowości elektronicznej. Podczas analizy okazało się, że modułowe złośliwe oprogramowanie napisane w Visual Basicu podmienia numer konta bankowego znajdujący się w schowku. Większość osób robiąc przelew kopiuje ten numer z faktury czy wiadomości e-mail, więc podmienienie go w schowku spowoduje, że użytkownik niepostrzeżenie przekaże środki na zupełnie inny rachunek niż zamierzał.

Od tego czasu, niczym w przypadku Adidas Superstar czy Nike Flyknit, powstało bardzo wiele podróbek. Większość z nich była w jakiś sposób autorską, przeważnie słabszą (jak wersja w  .NET) interpretacją oryginalnego pomysłu lub dodatkiem do bardziej złożonego złośliwego oprogramowania (jak w przypadku Slave). Z czasem zamiast podmieniać numer konta w schowku zaczęto go podmieniać w pamięci procesu przeglądarki. Trwało to bardzo długo i przynosiło mieszane efekty. Dodatkowo banki oraz systemy zapewniające bezpieczeństwo zaczęły w prosty sposób wykrywać złośliwe oprogramowanie tego typu, umieszczając na stronie niewidzialne dla użytkownika pole z losowym numerem konta. Jeśli bank zauważył, że coś ten niewidoczny numer zmodyfikowało, to od razu wiedział, który klient jest zainfekowany.

Niedawno do cyberlaboratorium ZaufanaTrzeciaStrona.pl trafiła próbka kolejnego takiego rozwiązania, znana pod nazwą „Benio”. Nazwa pochodzi z pozostawionej w kodzie ścieżki:

Warto także zauważyć, że użytkownik o pseudonimie DrBenio miał konto w niedostępnym już forum ToRepublic nd. Benio obchodzi opisaną metodę wykrycia infekcji w ciekawy sposób. Po wczytaniu odpowiedniej strony – rozpoznawanej po nazwie okna przeglądarki (tytule strony) – Benio przeszukuje pamięć procesu przeglądarki, aż znajdzie odpowiednie sekwencje znaków (np. „Numer konta:”, „Odbiorca”, „Wyślij”). Po znalezieniu tych sekwencji podmienia dane znajdujące się między nimi (np. właściwy numer konta czy dane odbiorcy). Powoduje to, że numer konta znajdujący się w ukrytym polu nie zostanie podmieniony. Ze względu na bardzo duże podobieństwo do pierwszej wersji VBKlip możliwe, że autor Benia miał dostęp do jego kodu źródłowego.

Znowu modułowy VBKlip

Dostarczona próbka rozpakowuje się do katalogu tymczasowego. W rozpakowanej paczce znajduje się pięć plików: trzy pliki wykonywalne, opisane w dalszej części wpisu, plik konfiguracyjny oraz plik PDF, którego część widać na zrzucie ekranu poniżej.

Potwierdzenie przelewu z Benko

Dokument ten jest wyświetlany po uruchomieniu złośliwego oprogramowania. Dodatkowo, Benio otwiera stronę www.adobe.com. Takie zachowanie, połączone z rozszerzeniem spotkanej przez nas próbki .pdf.src powala podejrzewać, że koń trojański rozprzestrzenia się udając potwierdzenie przelewu bądź fakturę.  Benio instaluje się w kluczach rejestru odpowiadających za automatyczne uruchomienie programu po starcie systemu. Wpis ten znajduje się pod kluczem „Windows 10 updater”. Benio składa się z trzech komponentów, zgodnych funkcjonalnie z oryginalną wersją VBKlip. Dodatkowo wspomniany wcześniej plik konfiguracyjny jest dzielony na ponad 20 różnych, mniejszych, plików z konfiguracją, które będą używane przez poszczególne komponenty. Co ciekawe, żadne z tych plików nie są oznaczone ani jako ukryte ani jako systemowe. Czasem wykorzystywany jest zaawansowany algorytm szyfrujący Base64. Wszystko to tworzy bardzo duży bałagan.

Pierwszy z komponentów, taskmgr.exe (nazwa wewnętrzna: UPD, prawdopodobnie od „update”), służy do zapewnienia komunikacji sieciowej oraz sprawdza działanie pozostałych programów, których nazwy są umieszczone w pliku temp1009.tmp. Komunikacja sieciowa polega na wysłaniu wszystkich logów z Benia z adresu oraz na adres e-mail znajdujący się w konfiguracji, pobraniu aktualizacji pliku konfiguracyjnego bądź pobraniu nowszej wersji złośliwego oprogramowania. Jest to dokładnie to samo zadanie, które spełniał „taskmgr.exe” w oryginalnej wersji VBKlip. Dodatkowo komponent ten odpowiada za aktualizację całego konia trojańskiego.

Drugi komponent, mscvhost.exe (nazwa wewnętrzna: STN) odpowiada za podmianę numeru rachunku. W konfiguracji znajduje się nazwa nadawcy oraz numer rachunku, na który nastąpi podmiana. Komponent ten również odpowiada za interpretację pliku konfiguracyjnego. Obecnie plik konfiguracyjny składa się z następujących sekcji, które zostaną przeniesione do plików tempXXXX.tmp, tak, aby łatwiej było się do nich w kodzie odnosić. W niektórych przypadkach pominąłem fragmenty, które wydają się nieistotne.

Pierwsze dwie linijki zawierają numer konta, na który ma nastąpić podmiana oraz nazwę odbiorcy, która również ma zostać zastąpiona przez Benia.

Kolejne linijki zawierają adresy serwerów C&C z którymi ma się skontaktować taskmgr.exe, aby otrzymać nową konfigurację lub aktualizację złośliwego oprogramowania.

Kolejna sekcja zawiera konto e-mail, z którego będą wysłane logi z działania programu. Zawiera ona również adres docelowego konta e-mail. Pierwsza wersja VBKlipa również do wysyłania logów używała  kont w tej samej domenie.

Kolejne dwie sekcje zawierają tytuły stron poszczególnych serwisów transakcyjnych. W pierwszym przypadku są to tytuły stron służących do logowania, a w drugim przypadku są to tytuły stron służących do wykonania przelewu. Tytuły stron doradzają Beniowi kiedy ma wykonać podmianę, a kiedy nie. Co ciekawe, nazwy banków nie są podane wprost, ale są na stałe wpisane w złośliwym oprogramowaniu. Benio wie, że w pierwszej linijce ma się spodziewać tytułu strony należącej do Alior Banku, w drugiej do BZ WBK etc. Jeśli linijka rozpoczyna się od znaku X oznacza to, że w tym przypadku (dopóki nie zmieni się konfiguracja) nie należy wykonywać podmiany numeru konta. Tytuły stron są wpisywane w następującej kolejności:

  1. Alior Bank
  2. BZ WBK
  3. BGŻ (wyłączona podmiana)
  4. Credit Agricole (wyłączona podmiana)
  5. Getin Bank oznaczony jako „I”
  6. Getin Bank oznaczony jako „F” (wyłączona podmiana)
  7. ING oznaczone jako „S” – najpewniej „stary” system bankowości elektronicznej
  8. ING oznaczone jako „N” – najpewniej „nowy” system bankowości elektronicznej
  9. mBank
  10. Bank Pocztowy (wyłączona podmiana)
  11. iPKO
  12. Raiffeisen
  13. Pekao SA
  14. Millenium (wyłączona podmiana)

Po tych dwóch sekcjach następuje 14 kolejnych. Każda z nich opisuje jeden bank z powyższej listy. Sekcja zaczyna się od dwóch linii znaków, na przykład dla mBanku są to:

Każda z linii określa pewien rodzaj wyrażenia regularnego, które zostanie dopasowane do pamięci procesu. Jest to realizowane przez otwarcie procesu spełniającego dwa warunki: musi być to proces przeglądarki oraz musi mieć odpowiedni, wymieniony wyżej, tytuł strony. Z tak otwartego procesu pamięć jest odczytywana za pomocą funkcji ReadProcessMemory. Następnie jest ona dopasowywana do pierwszej bądź drugiej linii z sekcji powyżej. W przypadku dopasowania do wzorca dane odbiorcy (numer konta oraz nazwa) są zmieniane za pomocą funkcji WriteProcessMemory. W przypadku serwisu transakcyjnego mBanku „Kwota” zostanie dopasowane do „Kwota”, „wa od” do „Nazwa odbiorcy”, „ij pr” do „Wyślij przelew” a „cznie kon” do „Pokaż wyłącznie kontakty z książki odbiorców„.

Mechanizm ten przypomina technikę używaną przez inne konie trojańskie infekujące użytkowników bankowości elektronicznej – webinjecty. Technika ta też polega na wyszukiwaniu pewnych wzorcowych ciągów znaków na stronie i zastępowaniu elementów strony innymi, przygotowanymi przez atakującego, fragmentami kodu HTML/JS. W tym przypadku zastępowane są numery kont bankowych, a nie kod HTML. Dodatkowo, „webinject” jest przeważnie realizowany przez nadpisanie odpowiednich funkcji bibliotek DLL, które odpowiadają za wyświetlenie strony na ekranie użytkownika, przez co jest dużo bardziej precyzyjny, szybszy i zawsze przynosi oczekiwane efekty. Jak widać „webinject” jest dużo bardziej technicznie złożoną techniką, więc porównywanie go do sposobu działania Benia jest jak porównywanie telewizora do kartonowego pudełka z naklejonym zdjęciem Jolanty Pieńkowskiej. Oba pozwolą zobaczyć tę samą scenę, ale jednak jest między nimi wyraźna różnica.

Ostatni moduł o nazwie msavhost.exe (nazwa wewnętrzna: KL, prawdopodobnie od „keylogger”) odpowiada za zapisanie wszystkich wciskanych klawiszy oraz tytułów okien znajdujących się na pierwszym planie. Dodatkowo loguje również informacje związane z zawartością schowka, otwieranymi programami czy informacjami związanymi z działaniem Benia. Wszystkie te logi są zapisywane do jednego z plików *.tmp, a następnie wysyłane za pomocą taskmgr.exe.

Attribiution is easy!

Przeważnie bardzo ciężko jest przypisać jednoznacznie autorstwo złośliwego oprogramowania. W tym przypadku jednak autor był tak wspaniałomyślny, że się podpisał (oczekując pewnie, że znajdzie kupców na swoje rozwiązanie).

Nie tylko podpis, ale także logi czy ścieżki znalezione w złośliwym oprogramowaniu pozwalają jednoznacznie stwierdzić, że autorem jest osoba z Polski, bądź osoba, dla której polski jest językiem, którym swobodnie się posługuje. Autor posługuje się nickiem „Bałaganiarz” lub „tenczwarty”, a w całym Beniu znajduje się wiele innych odniesień do słowa „bałaganiarz”. Oczywiście istnieje także możliwość, że ktoś po prostu chciał wskazać na fałszywego sprawcę, wybierając znanego w środowisku eksperta od kradzieży cudzych pieniędzy.

Jaka jest skala zagrożenia

Według otrzymanych przez nasze cyberlaboratorium informacji ataki z użyciem Benia mogą trwać od około miesiąca. Opisywana przez nas próbka rozsyłana była od 30 sierpnia i w tym czasie zainfekowała co najmniej kilkadziesiąt firm w całej Polsce. Wiele wskazuje na to, ze przynajmniej w ostatnich dniach ofiarami przestępców padały małe i średnie firmy z sektora budowlanego i wykończeniowego. Widać tutaj inteligencję autorów, którzy zamiast rozsyłać setki tysięcy emaili tworzą dedykowane kampanie o bardzo małej skali, dobrze dopasowane do odbiorców (np. firma budowlana otrzymuje fakturę za dostawę cementu a sprzedawca zasłon informację o zwrocie dostawcy firanek). Dzięki temu rośnie procentowa skuteczność ataków oraz trudność ich wykrycia.

Metoda uniknięcia zagrożenia (oprócz zaprzestania otwierania przypadkowych załączników o rozszerzeniu .PDF.SCR) jest prosta – wystarczy przed przepisaniem kodu potwierdzającego przelew sprawdzić numer rachunku podany w SMSie przez bank. W razie najmniejszych wątpliwości dzwońcie do swojego banku.

Podsumowanie

Jak widać, VBKlip wciąż, niczym „Last Christmas” w grudniu, powraca. Specjaliści zajmujący się bezpieczeństwem próbują walczyć z tego typu złośliwym oprogramowaniem, ale kolejni autorzy również wymyślają kreatywne metody obejścia zabezpieczeń oraz swojego braku umiejętności programistycznych. Już dawno myślałem, że wyścig zbrojeń w przypadku VBKlipa się zakończył, ale wygląda na to, że czeka nas jeszcze kilka tomów tej sagi.

Jeśli pracujesz w banku lub podobnej instytucji i chcesz brać czynny udział w walce z przestępcami i ich złośliwym oprogramowaniem, odezwij się do redakcji – nie jesteś sam. Dziękujemy Anonimowym Analitykom którzy przyczynili się do powstania tego artykułu. 

IOC:

  • Próbka do pobrania
  • SHA256: d074023c914df1078ce227ba6b36f4ae04739f4ca8eca4c7a91a071d5fd69d4a
  • Serwery C&C: 7536585869444.comuf.com, 983427676545.netau.net, 5437834X2l.comli.com
  • Adresy email: brakanuka@vfemail.net, furankela@vfemail.net, ghandimnkl@vfemail.net, whoratbbcg@vfemail.net