05/04/2017

Jak opróżnić bankomat: zdalnie, prawie zdalnie i fizycznie

Informacje Projekt specjalny Zagrożenia

Lubimy temat kradzieży pieniędzy z bankomatów. Nie, my ich nie hakujemy — ale gdy robi to ktoś inny, korzystamy z okazji, aby o tym napisać. Podczas konferencji SAS 2017, największego corocznego wydarzenia w świecie cyberbezpieczeństwa, eksperci z Kaspersky Lab, Siergiej Golowanow i Igor Soumenkow, opowiadali o trzech interesujących przypadkach.

ATMitch — szkodliwy program kontrolowany zdalnie

Bankomat był pusty. Analitycy śledczy banku nie odnaleźli szkodliwych plików, nietypowych odcisków palców, śladów fizycznej interakcji z urządzeniem, żadnych dodatkowych płytek z obwodami drukowanymi czy innych urządzeń, które mogłyby zostać wykorzystane do przejęcia kontroli nad maszyną. Nie było także pieniędzy.

Jedyne, co znaleźli pracownicy banku, to plik kl.txt. Pomyśleli, że „kl” może mieć coś wspólnego z KL — czyli Kaspersky Lab — dlatego się z nami skontaktowali. Tak oto trafił do nas ten interesujący przypadek.

Musieliśmy od czegoś zacząć swoje śledztwo, więc nasi badacze wzięli na warsztat wspomniany plik. Na podstawie zawartości pliku zawierającego dziennik zdarzeń utworzyli regułę YARA — YARA to narzędzie służące do wyszukiwania szkodliwych programów. Utworzyli zapytanie, które miało zostać wyszukane w publicznych repozytoriach szkodliwych programów. Przy ich użyciu odnaleźli próbkę oryginalnego szkodliwego programu, a w kolejnym dniu otrzymali wyniki: plik DLL, nazwany tv.dll, który do tej pory został dostrzeżony na wolności dwukrotnie: w Rosji i Kazachstanie. To wystarczyło, aby można było rozpocząć rozwiązywać zagadkę.

Dzięki dokładnej analizie pliku DLL nasi badacze przeprowadzili inżynierię wsteczną ataku, zrozumieli, w jaki sposób został on przeprowadzony, a nawet odtworzyli atak na bankomacie zawierającym fałszywe pieniądze — znajdującym się w naszym laboratorium testowym. Zobaczcie, jakie są wyniki ich pracy.

ATMitch w pracy

Organizatorzy ataku wykorzystali dobrze znaną, lecz niezałataną podatność, dzięki której przedostali się do serwerów banku. (Czy nie wspominaliśmy, aktualizacja oprogramowania to sprawa krytyczna? Oto dowód.)

Atakujący użyli otwartego kodu źródłowego oraz publicznie dostępnych narzędzi, aby zainfekować komputery w banku, a utworzony przez nich szkodliwy program ukrywał się w pamięci komputerów, a nie na dyskach twardych. W związku z tym, że nie było żadnych plików, atak trudno było zauważyć — był on niemal niewidoczny dla pakietów bezpieczeństwa. Co gorsza, prawie wszystkie ślady po obecności szkodliwego programu znikały po ponownym uruchomieniu systemu.

Następnie atakujący nawiązywali połączenie z serwerem kontroli, który umożliwiał im zdalne zainstalowanie programu w bankomatach.

Wspomniany szkodliwy program, ATMitch, był instalowany i wykonywany w bankomacie bezpośrednio z banku, przy użyciu narzędzi do kontroli zdalnej. Ukrywał się on pod postacią rzekomej oryginalnej aktualizacji, więc nie przyciągał uwagi żadnego produktu odpowiedzialnego za bezpieczeństwo w banku. Następnie szkodliwy program szukał pliku o nazwie command.txt, w którym zapisane były jednoznakowe polecenia sterujące działaniem bankomatu. Na przykład litera „O” oznacza „otwórz kasetę z pieniędzmi”.

W tym miejscu zaczyna się sedno całej akcji. Szkodliwy program wysyła polecenie wypłaty pieniędzy z bankomatu, a w kolejnej instrukcji definiuje liczbę banknotów. W chwili wysłania polecenia do bankomatu podchodziła do niego wytypowana osoba (muł finansowy), która zabierała pieniądze i oddalała się.

Przestępcy starali się nie zostawiać żadnych śladów, dlatego na dysku twardym bankomatu nie istniały żadne pliki wykonywalne. Po wypłaceniu pieniędzy ATMitch zapisywał wszystkie informacje związane z operacją w pliku zawierającym dziennik zdarzeń i wymazywał plik command.txt. Co istotne, ATMitch mógł zostać zainstalowany na większości istniejących bankomatów — jedynym wymaganiem było to, aby bankomat obsługiwał bibliotekę XFS (i spełnia je większość maszyn).

Pozostałe informacje szczegółowe na temat szkodliwego programu ATMitch znajdują się w serwisie Securelist.

Bl@ckb0x_m@g1k — prosty, sprytny trik

Kolejna historia, która także została zainicjowana przez bank, jest krótsza. Tu także dzienniki zdarzeń bankomatu były czyste. Dysk twardy był w nienaruszonym stanie, a atakujący zakleili taśmą klejącą kamery monitorujące, tak aby uniknąć zarejestrowania całego zdarzenia.

Poprosiliśmy bank, aby przywiózł bankomat do naszego biura. Rozmontowaliśmy go i dokonaliśmy zdumiewającego odkrycia — ze złączem USB bankomatu połączono adapter Bluetooth. Z kolei na dysku twardym znaleziono sterowniki dla klawiatury wykorzystującej połączenie Bluetooth.

Odtąd rekonstrukcja kradzieży poszła szybko. Ktoś zainstalował w bankomacie adapter Bluetooth i czekał trzy miesiące na wyczyszczenie dzienników zdarzeń. Następnie przestępca powrócił z klawiaturą wykorzystującą Bluetooth, zakleił kamery bezpieczeństwa, użył tej klawiatury do ponownego uruchomienia bankomatu w trybie serwisowym, a na końcu wykonał operację serwisową polegającą na opróżnieniu dozownika bankomatów.

Wiertarka

Część metod, np. wykorzystanie szkodliwego programu kontrolowanego zdalnie i klawiatury używającej Bluetooth, można uznać za stosunkowo eleganckie. Kolejny trik taki nie jest.

Historia zaczyna się jak każda inna: kontaktuje się z nami bank w celu sprawdzenia kolejnej kradzieży z bankomatu. Tym razem śledczy wykryli czysty dowód interwencji fizycznej: idealnie okrągła dziura o średnicy około 4 cm wywiercona w pobliżu klawiatury PIN. I nic więcej. Chociaż bankomaty wyglądają na solidne, składają się także z plastikowych elementów. A te nietrudno przewiercić.

W krótkim czasie zanotowano kilka innych takich przypadków w Rosji i Europie. Wszystko stało się jasne, gdy policja złapała podejrzanego, przy którym znaleziono laptop i różne kable.

Jak wspomnieliśmy, w naszym laboratorium mamy bankomat, więc rozmontowaliśmy go, aby dowiedzieć się, do czego atakujący mógł mieć dostęp po wywierceniu dziury. Naszym oczom ukazało się 10-stykowe złącze, które było połączone z szyną będącą centralnym elementem niemal wszystkich komponentów bankomatu — od komputera wewnętrznego po dozownik pieniędzy.

Odkryliśmy także, że szyfrowanie było na bardzo niskim poziomie — można było je złamać w krótkim czasie.

Każda część bankomatu mogła kontrolować pozostałe, między nimi nie istniał żaden krok mający na celu uwierzytelnianie, przez co można było dowolnie zastąpić każdą z nich, a polecenia użyte do kontrolowania nietrudno było zrozumieć. Czy to jest bezpieczne?

Wystarczy poświęcić nieco czasu i kupić za około 15 dolarów prostą płytkę drukowaną, która po połączeniu z magistralą szeregową umożliwi sterowanie bankomatem. Użyliśmy jej do zmuszenia dyspensera w naszym bankomacie do wypłacenia (fałszywych) pieniędzy. Wygląda na to, że przestępcy wykonali taki sam trik na bankomatach wypełnionych prawdziwymi pieniędzmi, ale potrzebowali do tego laptopa.

O naszych wnioskach poinformowaliśmy bank, ale jak wskazał Igor Soumenkoe, problemem jest fakt, że bankomatów nie można aktualizować zdalnie. Stosowanie łat wymaga aktualizacji sprzętowej, a ta z kolei wymaga odwiedzenia bankomatu przez technika (a właściwie wiele bankomatów).

A zatem?

Jeśli nie jesteś pracownikiem banku, nie musisz zaprzątać sobie głowy powyższymi zagrożeniami — to problemy banku. Jednak jeśli pracujesz w banku i odpowiadasz za ochronę bankomatów, możemy Ci pomóc w kwestii szkodliwego programu ATMitch: wyrywają go wszystkie produkty zabezpieczające od Kaspersky Lab. Niestety nie posiadamy żadnego protokołu antywłamaniowego, to zadanie dla Ciebie i kamer zabezpieczających.