Dziennik prowadzony jest przez analityków laboratorium antywirusowego firmy Kaspersky Lab,
na którego czele stoi Eugene Kaspersky. Dowiedz się więcej o autorach dziennika.
Jakiś czas temu znaleźliśmy dowód potencjalnego związku między backdoorem dla systemu Mac OS X a atakiem APT (złożonym, długotrwałym zagrożeniem skierowanym przeciwko konkretnym użytkownikom) znanym jako LuckyCat. Adres IP serwera kontroli (C&C), z którym łączy się bot (199.192.152.*), został wykorzystany również w innych próbkach szkodliwego oprogramowania dla systemu Windows w 2011 roku, co pozwoliło nam założyć, że za tymi atakami stoi ten sam sprawca.
Przez dwa dni monitorowaliśmy „podstawiony” zainfekowany system – co jest typową procedurą stosowaną w przypadku botów APT. Byliśmy bardzo zaskoczeni, gdy w weekend kontrolery APT przejęły kontrolę nad naszą zainfekowaną maszyną i zaczęły ją analizować.
W piątek 13 kwietnia zamknięto port 80 na serwerze C&C zlokalizowanym pod adresem rt*****.onedumb.com i hostowanym na VPS (virtual private server) w Fremont, w Stanach Zjednoczonych. W sobotę port ten został otwarty i bot zaczął komunikować się z serwerem C&C. Przez cały dzień ruch składał się z podstawowych potwierdzeń (handshakes) i wymian.
15 kwietnia, w niedzielę rano, ruch generowany przez centrum C&C, zmienił się. Osoby atakujące przejęły połączenie i zaczęły analizować naszą podstawioną zainfekowaną maszynę. Wyszczególniły zawartość foldera root i foldera głównego, a nawet ukradły kilka dokumentów, które tam umieściliśmy!
Zaszyfrowana komunikacja między C&C a naszą podstawioną maszyną ofiarą
Powyższy pakiet po odszyfrowaniu – osoba atakująca wymienia zawartość folderów
Mamy dużą pewność, że działanie bota było wykonywane ręcznie, co oznacza rzeczywistą osobę atakującą, która ręcznie sprawdza zainfekowane maszyny i wydobywa z nich dane.
W związku z tym możemy potwierdzić, że SabPub to aktywne zagrożenie APT
W sobotę domena C&C została zamknięta, a bot stracił z nią połączenie; wygląda to na inicjatywę ze strony darmowego serwisu DSN onedumb.com wywołaną prawdopodobnie zainteresowaniem mediów tą sprawą. Co ciekawe, VPS wykorzystywany jako C&C nadal jest aktywny.
Podczas analizowania SabPuba odkryliśmy kolejną wersję backdoora, która wygląda na stworzoną wcześniej. Wersja ta różni się od oryginalnej tylko nieznacznie – inny jest zakodowany na sztywno adres C&C – zamiast subdomeny onedumb.com wykorzystywanej przez oryginalną próbkę (zakodowanej w bocie jako “e3SCNUA2Om97ZXJ1fGI+Y4Bt”) wersja ta zawiera po prostu adres IP VPS-a (zakodowany na sztywno jako „OjlDLjw5Pi4+NUAuQDBA”), co oznacza, że nadal powinna działać. Jej rozmiar wynosi 42556 bajtów (rozmiar oryginału to 42580 bajtów).
Jedną z największych tajemnic stanowi wektor infekcji takich ataków. Zważywszy że ataki te są wysoce ukierunkowane, istnieje bardzo mało śladów. Mimo to znaleźliśmy istotny szczegół, który stanowi brakujące ogniwo: sześć dokumentów Microsoft Word, które wykrywamy jako Exploit.MSWord.CVE-2009-0563.a. W sumie mamy sześć dokumentów .docs z tym werdyktem, z czego cztery dostarczają bota MaControl. Pozostałe dwa dostarczają szkodnika SabPub.
Najbardziej interesująca jest tu historia drugiego warianta SabPuba. W naszej kolekcji wirusów nosi on nazwę “8958.doc”. To sugeruje, że został wydobyty z dokumentu Word lub był rozprzestrzeniany jako plik Doc.
Przeanalizowaliśmy go i prześledziliśmy jego pochodzenie za pomocą MD5 (40C8786A4887A763D8F3E5243724D1C9). Wyniki okazały się fascynujące:
próbka została przesłana do VirusTotal 25 lutego 2012 r. – z dwóch źródeł w Stanach Zjednoczonych
w obu przypadkach oryginalna nazwa pliku brzmiała “10th March Statemnet” (tak, z literówką i bez rozszerzenia)
w tym czasie na VirusTotal nie odnotowano żadnych wykryć (0/40)
W celu rozwiania wątpliwości, warto wyjaśnić, że nazwa pliku („10th March Statemnet”) jest bezpośrednio związana z Dalajlamą i społecznością tybetańską. 10 marca 2011 r. Dalajlama wydał specjalne oświadczenie w związku z rocznicą dnia narodowego powstania Tybetańczyków – stąd ta nazwa.
Pole właściwości dokumentu wykorzystanego do rozprzestrzeniania SabPuba
Niestety, pliki doc zawierają niewiele informacji, ale pole Autor i data utworzenia są interesujące. Jeżeli uznamy datę utworzenia za wiarygodną, będzie to oznaczało, że pojemnik DOC został utworzony w sierpniu 2010 r. oraz uaktualniony w 2012 r. przy użyciu próbki SabPub. Jest to zupełnie normalne w przypadku takich ataków, przykładem może być Duqu.
Uważamy, że powyższe fakty wskazują na bezpośredni związek między SabPubem a atakami APT Luckycat. Jesteśmy prawie pewni, że backdoor SabPub został stworzony już w lutym 2012 r. i był rozprzestrzeniany za pośrednictwem wiadomości typu “spear-phishing”
Warto również zaznaczyć, że SabPub nie jest backdoorem MaControl, chociaż wykorzystuje te same tematy w celu nakłonienia ofiar do otworzenia go. SabPub był skuteczniejszym atakiem, ponieważ przez prawie dwa miesiące pozostawał niewykryty!
Drugi wariant SabPuba został stworzony w marcu, a osoby atakujące wykorzystują exploity Javy w celu zainfekowania atakowanych maszyn działających pod kontrolą Mac OS X.
SabPub nadal stanowi aktywny atak i spodziewamy się, że osoby atakujące opublikują nowe warianty bota z nowymi C2 w ciągu kolejnych dni/tygodni.
Podsumowując:
obecnie istnieją przynajmniej dwa warianty bota SabPub.
najwcześniejsza wersja botu najprawdopodobniej została stworzona i wykorzystywana w lutym 2012 r.
szkodnik rozprzestrzenia się za pośrednictwem dokumentów Worda, które wykorzystują lukę CVE-2009-0563.
SabPub różni się od MaControl, innego bota wykorzystywanego w atakach APT w lutym 2012 r.; SabPub był bardziej skuteczny, ponieważ pozostał niewykryty przez ponad 1,5 miesięcy.
w momencie pisanie tego tekstu atak APT wykorzystujący SabPuba był aktywny.
* Podziękowania dla Aleksa Gostewa i Igora Soumenkowa za analizę.
Po przechwyceniu jednej z nazw domen wykorzystywanych przez trojana Flashback/Flashfake przeznaczonego dla systemu Mac oraz ustanowieniu specjalnego serwera leja (sinkhole) w zeszły piątek zdołaliśmy zgromadzić dane statystyczne dotyczące skali i rozkładu geograficznego związanego z tym szkodnikiem botnetu. Informacje o tym opublikowaliśmy na naszym blogu.
Po ustanowieniu serwera leja kontynuowaliśmy przechwytywanie nazw domen i nadal monitorujemy rozmiar botnetu. Do tej pory zarejestrowaliśmy łącznie 670 000 unikatowych botów. Przez weekend (7-8 kwietnia) zaobserwowaliśmy znaczny spadek liczby przyłączonych botów:
Nie znaczy to jednak, że botnet kurczy się w szybki tempie – liczby te dotyczą jedynie weekendu.
Przez ostatnie kilka dni nasz serwer rejestrował wszystkie dane wysłane przez boty z zainfekowanych komputerów i wpisywał ich identyfikatory UUID do specjalnej bazy danych. Na podstawie tych informacji stworzyliśmy serwis online, w którym wszyscy użytkownicy systemów Mac OS X mogą sprawdzić, czy ich komputer został zainfekowany trojanem Flashback.
Aby sprawdzić, czy twój komputer został zainfekowany i co robić w razie pozytywnego wyniku, odwiedź stronę: flashbackcheck.com
Obecnie na całym świecie istnieje ponad 100 milionów użytkowników systemu Mac OS X. W ciągu minionych lat liczba ta rosła w szybkim tempie i z całą pewnością nadal będzie się zwiększać. Do niedawna szkodliwe oprogramowanie dla systemu Mac OS X stanowiło w pewnym sensie ograniczoną kategorię, która obejmowała takie trojany jak DNSChanger czy, z nowszych przykładów, ataki fałszywego oprogramowania antywirusowego dla systemu Mac OS X, których rozkwit przypadł na 2011 r. We wrześniu 2011 roku pojawiły się pierwsze wersje trojana Flashback dla systemu Mac OS X, jednak dopiero w marcu 2012 stały się rozpowszechnione. Według danych zgromadzonych przez Kaspersky Lab, na początku kwietnia istniało prawie 700 000 zainfekowanych użytkowników, jednak ich rzeczywista liczba mogła być większa. Chociaż Mac OS X jako taki może być bardzo bezpiecznym systemem operacyjnym, podjęcie pewnych działań pomoże użytkownikowi uniknąć stania się ofiarą coraz większej liczby ataków.
Poniżej przedstawiamy 10 prostych wskazówek umożliwiających zwiększenie bezpieczeństwa Maka:
1. Do codziennych czynności wykonywanych na komputerze stwórz konto inne niż konto administratora
Domyślnym kontem w systemie Mac OS X jest konto administratora. Twórcy szkodliwego oprogramowania mogą wykorzystać ten fakt, aby zainfekować komputer.
Do codziennych czynności zalecamy stworzenie użytkownika bez praw administratora oraz logowanie się z prawami administratora tylko wtedy, gdy konieczne jest wykonanie zadań takich jak instalacja nowych aplikacji lub modyfikacja ustawień. W tym celu przejdź do panelu „Użytkownicy i grupy” w „Preferencjach systemowych”, a następnie utwórz użytkownika bez praw administratora. Używaj tego nowego konta do wykonywania codziennych zadań, takich jak korzystanie z poczty e-mail czy surfowanie po internecie. W dużym stopniu pomoże to ograniczyć szkody spowodowane zagrożeniami zero-day czy atakami szkodliwego oprogramowania drive-by (infekującego komputery podczas przeglądania stron WWW).
2. Korzystaj z przeglądarki internetowej, która posiada sandbox oraz zapewnia szybkie eliminowanie problemów dot. bezpieczeństwa.
Zalecamy Google Chrome. Przede wszystkim przeglądarka ta jest uaktualniana znacznie częściej niż Safari wbudowane w Mac OS X. Oprócz własnego sandboxa Chrome wykorzystuje wersję Flash Playera wyposażoną w system bezpiecznego uruchamiania, która stanowi dużą przeszkodę dla szkodliwych programów. Google Chrome posiada również cichy, automatyczny mechanizm, który uwalnia użytkownika od obowiązku łatania luk w zabezpieczeniach. Upewnij się również, że nowa przeglądarka została ustawiona jako Twoja przeglądarka domyślna.
3. Odinstaluj Flash Playera firmy Adobe.
Flash Player firmy Adobe stanowi popularny cel cyberprzestępców chcących przejąć całkowitą kontrolę nad komputerem użytkownika. Użytkownik, który surfuje po internecie posiadając starą wersję Flash Playera, niewątpliwie naraża się na niebezpieczeństwo. W celu odinstalowania Flasha można skorzystać z dwóch narzędzi dostarczanych przez Adobe, dla 10.4-10.5, 10.6 oraz nowszych wersji Mac OS X. Szczegóły można znaleźć tutaj: http://helpx.adobe.com/flash-player/kb/uninstall-flash-player-mac-os.html
4. Rozwiąż problem z Javą.
Podobnie jak Flash Player, Java jest ulubionym celem twórców szkodliwych programów, którzy chcą zainstalować szkodliwe oprogramowanie na Twoim komputerze z wykorzystaniem luk w zabezpieczeniach.
Zalecamy całkowite odinstalowanie tego oprogramowania z komputera. Niestety Apple nie pozwala firmie Oracle aktualizować Javy dla Maka w sposób bezpośredni. Apple robi to samodzielnie, niestety zwykle z kilkumiesięcznym opóźnieniem! To oznacza, że okres, w którym użytkownicy Maków pozostają bez ochrony, jest znacznie dłuższy niż w przypadku użytkowników komputerów PC.
W tym celu otwórz narzędzie „Preferencje Java” znajdujące się w sekcji /Programy/Narzędzia i usuń zaznaczenia z pól obok wersji wymienionych na zakładce Ogólne.
Jeżeli potrzebujesz Javy, niezwykle istotne jest to, aby wyłączyć ją przynajmniej w Safari oraz innych przeglądarkach internetowych. W Safari idź otwórz Preferencje -> Ochrona -> i w sekcji „Zawartość witryny” usuń zaznaczenie z opcji “Włącz Javę”.
5. Uruchom systemową funkcję „Uaktualnienia programów” i zainstaluj wszystkie dostępne aktualizacje.
Wiele spośród ostatnich ataków na system Mac OS X wykorzystuje fakt, że na komputerze znajduje się przestarzałe oprogramowanie. Do powszechnie wykorzystywanych pakietów należy Microsoft Office, Adobe Reader/Acrobat oraz Java, istnieją jednak inne aplikacje, które również mogą zostać wykorzystane przez cyberprzestępców. Z punktu widzenia bezpieczeństwa Office for Mac 2011 jest znacznie lepszy niż Office for Mac 2008. Jeżeli nadal używasz wersji 2008, zalecamy jak najszybsze uaktualnienie do wersji 2011. Za każdym razem gdy widzisz podpowiedź “Uaktualnienia programów” Apple’a, zastosuj poprawki i w razie konieczności uruchom ponownie komputer.
6. Korzystaj z menedżera haseł w celu ochrony przed atakami phisingowymi.
Dobra wiadomość jest taka, że w przeciwieństwie do systemu Windows, Mac OS X zawiera wbudowany menedżer haseł “Pęk kluczy”.
O ile to możliwe, staraj się tworzyć unikatowe, mocne hasła dla swoich zasobów. Nie musisz korzystać z prostych haseł, które łatwo zapamiętać. Zamiast tego korzystaj z maksymalnie skomplikowanych haseł i przechowuj je w pęku kluczy. Jeśli cyberprzestępcy zdołają złamać jedno z haseł, od razu spróbują zastosować je do innych kont: GMail, Facebook, eBay, PayPal itd. Dlatego posiadanie unikatowego mocnego hasła dla każdego zasobu znacznie zwiększa bezpieczeństwo online.
Kolejnym, nieco bardziej skomplikowanym posunięciem, jest stosowanie oddzielnego pęku kluczy, z 3-5 minutowym czasem ważności pamięci podręcznej haseł, przeznaczonego jedynie na ważne hasła. Co można zaliczyć do ważnych haseł? Są to hasła zabezpieczające zasoby, które w przypadku uzyskania do nich dostępu przez niepowołane osoby, mogą spowodować bezpośrednie straty finansowe: Allegro, PayPal, bankowość online itd. Dzięki temu zabiegowi, jeżeli ktoś w jakiś sposób złamie zabezpieczenia twojego pęku kluczy, nie stracisz wszystkich swoich haseł.
7. Wyłącz IPv6, AirPort oraz Bluetooth, jeżeli ich nie używasz.
Wyłącz usługi łączności, jeżeli ich nie używasz lub jeżeli nie są wymagane. Są to IPv6, AirPort oraz Bluetooth – trzy usługi, które mogą być wykorzystane jako punkty wejścia dla ataków cyberprzestępców.
IPv6 to stosunkowo nowy protokół komunikacyjny, który może być wykorzystywany przez Maka. W praktyce jest on używany sporadycznie, dlatego bezpieczniej jest zapobiegawczo wyłączyć IPv6.
8. Włącz pełne szyfrowanie dysku (Mac OS X 10.7+) lub FileVault.
W wersji Lion systemu Mac OS X Apple uaktualnił swoje rozwiązanie do szyfrowania (FileVault), dodając pełne szyfrowanie dysku. Teraz nosi ono nazwę “FileVault 2”. Jego przewaga polega na zabezpieczaniu całego dysku, a nie tylko foldera domowego danego użytkownika i może okazać się bardzo przydatne w przypadku zgubienia lub kradzieży laptopa.
9. Uaktualnij Adobe Readera do wersji “10” lub nowszej.
Adobe Reader stanowi jeden z ulubionych celów cyberprzestępców na platformie Windows i nadal zajmuje wysoką pozycję wśród najczęściej wykorzystywanego oprogramowania na świecie. Wersja 10 zawiera wiele rozszerzeń bezpieczeństwa, które czynią ją znacznie bezpieczniejszą w porównaniu ze starszymi wydaniami najpopularniejszego czytnika plików PDF. Upewnij się, że pobrałeś najnowszą wersję ze strony Adobe – niestety, wiele starszych wersji nadal jest dostępnych do pobrania i użytkownik może się pomylić.
10. Zainstaluj dobre rozwiązanie bezpieczeństwa.
„Na Maki nie ma wirusów” – od czasu sławnej reklamy z 2006 roku z chorym komputerem PC i zdrowym Makiem jest to bardzo powszechny pogląd. Po sześciu latach sytuacja zmieniła się diametralnie. W 2011 roku cyberprzestępcy zaczęli bardzo agresywnie rozprzestrzeniać wśród użytkowników Maków szkodniki o nazwie DNSChanger oraz fałszywe programy antywirusowe. Trojan Flashback, który pojawił się we wrześniu 2011 r., spowodował ogromną epidemię w marcu 2012 r., w wyniku której na całym świecie zainfekowanych zostało ponad pół miliona użytkowników komputerów firmy Apple.
Obecnie rozwiązanie bezpieczeństwa jest absolutną koniecznością dla każdego użytkownika Maka. Wersję testową oprogramowania Kaspersky Anti-Virus for Mac można pobrać w tym miejscu: http://www.kaspersky.pl/download.html?s=trial.
Zaawansowani użytkownicy Mac OS X mogą skorzystać z narzędzia Little Snitch (http://www.obdev.at/products/littlesnitch/index.html), które pozwala stwierdzić, czy jakiś program próbuje nawiązać wychodzące połączenie internetowe, i daje możliwość zezwolenia na takie połączenie lub odrzucenia go.
Wnioski
Na początku 2012 r. przewidywaliśmy wzrost liczby ataków na system Mac OS X wykorzystujących luki zero-day lub niezałatane w wyniku opieszałości użytkowników.
Jest to normalna sytuacja obserwowana również w przypadku innych platform, które posiadają wystarczający udział na rynku, aby zapewnić zwrot z inwestycji dla twórców wirusów, dlatego fani systemu Mac OS X nie powinni czuć się z tego powodu rozczarowani. W ciągu kolejnych kilku miesięcy prawdopodobnie będzie miało miejsce więcej takich ataków, wykorzystujących przestarzałe oprogramowanie na komputerach użytkowników oraz ich nieświadomość. Jeżeli przestrzegasz powyższych zaleceń, stosujesz wszystkie aktualizacje i jesteś świadomy tego rodzaju ataków, szanse na to, że staniesz się kolejną losową ofiarą cyberprzestępców, znacznie zmniejszą się.
4 kwietnia Dr.Web poinformował o wykryciu botnetu Flashback (Flashfake) dla systemu Mac OS X. Według informacji tej firmy, szacowany rozmiar botnetu wynosi ponad 500 000 zainfekowanych Maków.
Przeprowadziliśmy analizę najnowszego warianta tego bota, którym jest Trojan-Downloader.OSX.Flashfake.ab.
Trojan ten jest rozprzestrzeniany za pośrednictwem zainfekowanych stron internetowych jako applet Java, który podszywa się pod aktualizację dla Adobe Flash Playera. Następnie Aplet Java wykonuje downloadera pierwszego etapu, który następnie pobiera i instaluje główny komponent trojana. Głównym komponentem jest trojan downloader, który nieustannie łączy się z jednym z swoich serwerów command-and-control (C&C) i czeka na pobranie i wykonanie nowych komponentów.
Bot lokalizuje swoje serwery C&C według nazw domen generowanych przy użyciu dwóch algorytmów. Pierwszy algorytm opiera się na bieżącej dacie, drugi natomiast wykorzystuje kilka zmiennych, które są przechowywane w ciele trojana i szyfrowane przy użyciu szyfru RC4 (z wykorzystaniem UUID zainfekowanego komputera).
Dokonaliśmy inżynierii wstecznej pierwszego algorytmu generowania domen i zastosowaliśmy bieżącą datę, tj. 06.04.2012, w celu wygenerowania i zarejestrowania nazwy domeny - „krymbrjasnof.com". Po zarejestrowaniu domeny mogliśmy logować żądania od botów. Ponieważ każde żądanie od botu zawiera unikatowy identyfikator sprzętu UUID, mogliśmy obliczyć liczbę aktywnych botów. Z naszych logów wynika, że w ciągu niecałych 24 godzin do naszego serwera przyłączyło się ponad 600 000 unikatowych botów. Łącznie, boty te wykorzystywały ponad 620 000 zewnętrznych adresów IP. Ponad 50% botów zostało podłączonych ze Stanów Zjednoczonych.
Rozkład geograficzny aktywnych botów Flashfake
Nie możemy ani potwierdzić, ani zaprzeczyć, że wszystkie boty, które połączyły się z naszymi serwerami, działały pod kontrolą Mac OS X. Boty mogą być zidentyfikowane tylko przy pomocy unikatowej zmiennej w ich nagłówku HTTP klienta użytkownika o nazwie „id”, reszta klienta użytkownika jest statycznie kontrolowana przez trojana. Zobacz przykład poniżej:
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1; sv:2; id:9D66B9CD-0000-5BCF-0000-000004BD266A) Gecko/20100101 Firefox/9.0.1"
Aby uzyskać przybliżone dane szacunkowe, zastosowaliśmy pasywne techniki OS fingerprinting. Ponad 98% przychodzących pakietów sieciowych zostało najprawdopodobniej wysłanych z hostów działających pod kontrolą Mac OS X. Chociaż technika ta opiera się na heurystyce i nie jest całkowicie wiarygodna, można ją wykorzystać do szacunków typu rząd wielkości. A zatem jest bardzo prawdopodobne, że większość z maszyn, na których zainstalowano bota Flashfake, to Maki.
Przybliżony rozkład systemów operacyjnych, przy użyciu których połączono się z naszym serwerem
20 marca wykryliśmy kampanię spamową, której celem byli pasażerowie US Airways. Prawie przez cały tydzień cyberprzestępcy wysyłali użytkownikom następujący e-mail, rzekomo pochodzący od US Airways:
Wiadomość zawiera krótki opis procedury odprawy oraz numer potwierdzenia rezerwacji online.
Cyberprzestępcy najwyraźniej liczą na to, że odbiorcy wiadomości, którzy rzeczywiście lecą wspomnianym lotem, klikną odsyłacz „Online reservation details” (szczegóły dotyczące rezerwacji online).
Różne e-maile zawierały różne odsyłacze – przykładowe domeny obejmowały: sulichat.hu, prakash.clanteam.com, panvelkarrealtors.com.
Po kliknięciu odsyłacza, w wyniku serii przekierowań, użytkownik ostatecznie trafia na domenę hostującą BlackHole Exploit Kit.
BlackHole Exploit Kit: przekierowania i infekcja
W celu zainfekowania komputerów użytkownika stosowana jest typowa procedura infekcji BlackHole:
Po kliknięciu odsyłacza w e-mailu użytkownik trafia najpierw na stronę o następującym kodzie html:
W efekcie, do przeglądarki użytkownika ładowane są skrypty Java z różnych domen.
Zawierają one jedno polecenie takie jak:
document.location='http://indigocellular.com/'. Polecenie to przekierowuje użytkownika na stronę zawierającą kolejny zaciemniony skrypt Java.
Zadaniem tego skryptu jest umieszczanie odsyłaczy w kodzie html strony, które następnie prowadzą do obiektu z exploietm. Jak dotąd wykryliśmy trzy typy obiektów: plik JAR, plik SWF oraz dokument PDF. Każdy obiekt wykorzystuje lukę w odpowiedniej aplikacji - Java, Flash Player lub Adobe Reader – w celu wykonania szkodliwego kodu w atakowanym systemie. Wystarczy, że wykorzystywana jest dziurawa wersja tylko jednej z tych aplikacji, aby atak skończył się infekcją - szkodliwy kod wykonywalny zostaje załadowany i uruchomiony w systemie użytkownika.
Szkodliwe dokumenty JAR, SWF oraz PDF są ładowane z różnych domen – np. indigocellular.com, browncellular.com, bronzecellular.com (domains info) – pod nazwami Qai.jar, field.swf, dea86.pdf, 11591.pdf.
Wykrywamy te exploity jako:
Exploit.Java.CVE-2011-3544.mz
Exploit.SWF.Agent.gd
Exploit.JS.Pdfka.fof
Po skutecznym wykorzystaniu luk w zabezpieczeniach plik wykonywalny jest pobierany z tych samych domen, na których zlokalizowane są exploity. Może być pobierany pod różnymi nazwami - about.exe, contacts.exe oraz innymi – i zasadniczo stanowi downloadera.
Po uruchomieniu downloader łączy się ze swoim serwerem C&C pod adresem “176.28.18.135/pony/gate.php”, a następnie pobiera i uruchamia w systemie użytkownika kolejny szkodliwy program – ZeuS/ZBot, a dokładnie modyfikację jednej z gałęzi rozwoju tego trojana znanej jako „GameOver”.
ZeuS jest pobierany ze zhakowanych stron, takich jak:
cinecolor.com.ar
bizsizanayasaolmaz.org
cyrpainting.cl
hellenic-antiaging-academy.gr
elektro-pfeffer.at
grupozear.es
sjasset.com
Polimorfizm
Na wszystkich etapach tego ataku każdy obiekt – domeny, odsyłacze do skryptów Java, pliki z exploitami, downloader oraz ZeuS – był często zastępowany nowym. Domeny pozostawały aktywne przez prawie 12 godzin, ale próbki ZeuSa były wymieniane częściej.
W ciągu krótkiego czasu (kilka godzin przez kilka dni), w którym monitorowałem, jakie pliki były pobierane, udało mi się wykryć 6 modyfikacji tego downloadera oraz 3 modyfikacje ZeuSa.
Podsumowując, modyfikacja obejmuje wszystkie próbki wykrywane z tym samym werdyktem, dlatego liczba wykrytych programów jest zazwyczaj większa niż liczba werdyktów.
Łączna liczba próbek wykrytych z tymi werdyktami: 127.
Jak już wspominałem, są to jedynie werdykty, które zdołałem zarejestrować. W ciągu całej omawianej kampanii spamowej z pewnością pojawiło się więcej modyfikacji.
Identyfikatory botnetu
Zmieniało się nie tylko opakowanie ZeuSa (paker, obejście emulacji) - również sam szkodnik był ponownie kompilowany. ZeuS zawiera zakodowany na sztywno ciąg ID botnetu oraz niektóre adresy IP, z którymi szkodliwy program próbuje połączyć się po infekcji. Również te dane były z czasem modyfikowane. Na podstawie liczby wykrytych i przeanalizowanych próbek możemy założyć, że ZeuS był ponownie kompilowany przy co drugim przepakowywaniu.
Po przeanalizowaniu 48 wersji różnych modyfikacji ZeuSa wykorzystanych przez cyberprzestępców w tym ataku odkryłem 19 unikatowych identyfikatorów botnetu:
chinz22
chinz24
blk25
mmz22
mmz24
mmz25
molotz25
NR22
NR23
NR24
NR25
ppcz22
ppcz23
ppcz24
rnato25
rubz22
rubz23
rubz24
zuu
W przeciwieństwie do konwencjonalnego programu ZeuS, który zwykle zawiera jeden adres URL w celu pobierania pliku konfiguracyjnego, każda próbka GameOver posiada 20 zakodowanych na sztywno adresów IP z portami. Po zainfekowaniu komputera ofiary GameOver próbuje ustanowić połączenie z tymi adresami, aby poinformować botnet o swoim istnieniu, uzyskiwać informacje oraz wysyłać dane skradzione ofierze.
Spośród 960 adresów IP zawartych w 48 analizowanych próbkach jedynie 157 jest unikatowych:
+Otwórz listę adresów IP
109.86.20.192:25071
111.252.183.142:22376
114.149.70.68:11807
114.41.42.83:23061
114.47.174.132:25602
116.68.106.249:17051
116.74.63.215:28397
117.197.130.195:17253
117.200.28.128:26895
121.96.154.99:18978
122.120.6.124:22322
122.26.48.225:25178
123.231.81.178:20129
124.13.56.101:15582
125.25.55.156:20834
140.130.36.32:13590
143.90.182.68:15121
151.40.222.25:19197
161.24.7.83:28740
165.228.237.204:17223
173.11.33.57:28198
175.141.221.126:24400
177.17.3.94:14470
177.41.72.204:19922
177.42.233.93:13577
177.42.26.217:14084
178.121.5.147:22245
178.156.170.215:14697
180.234.242.6:12692
186.122.42.176:21468
186.146.109.235:28038
186.169.207.31:25267
186.206.85.241:29592
186.212.252.139:26376
186.61.97.233:18271
187.21.121.179:29597
187.52.165.241:25003
187.59.156.215:23810
187.78.48.90:28054
188.24.177.174:20670
188.24.183.30:20670
188.24.42.247:29919
188.24.91.76:18603
188.24.94.127:18603
188.25.32.93:18509
188.26.246.185:21181
188.27.192.140:10991
188.27.77.6:14351
189.103.58.227:15863
189.106.203.3:22619
189.113.210.69:16075
189.58.63.42:23810
190.11.42.132:16838
190.183.196.38:27445
190.200.120.150:17663
190.201.27.240:12618
190.231.254.101:11271
190.26.120.90:22952
2.40.249.44:23266
200.109.42.212:25890
200.126.164.122:25565
200.84.130.185:29346
201.145.184.97:25585
201.173.212.122:25493
201.21.14.224:19004
201.58.108.117:19986
201.58.79.254:19986
202.149.67.164:26124
206.219.64.130:21401
208.180.223.27:12046
213.163.112.183:22254
213.164.225.186:25619
216.187.184.34:28333
218.170.36.242:13286
218.170.42.95:13286
221.133.18.131:12492
222.124.55.128:29563
24.154.22.50:13524
27.119.46.174:22985
27.4.113.69:27664
41.102.165.37:29870
41.252.115.102:25734
46.197.66.43:29879
49.128.175.94:24566
50.129.124.49:28454
60.246.131.173:23424
61.78.79.8:16362
66.193.204.141:26171
68.127.16.166:22762
68.150.204.237:16150
71.11.205.72:23114
72.185.157.254:29727
72.199.188.132:25142
72.64.43.86:21316
75.108.18.26:21332
75.127.204.90:10945
75.35.88.121:26277
76.185.32.7:18942
77.254.230.170:15741
78.166.182.155:12114
78.61.173.28:22352
78.62.246.91:16094
78.87.143.67:21277
79.112.219.78:13525
79.112.231.138:13644
79.113.104.28:29098
79.113.104.97:29098
79.115.143.244:16824
79.115.226.238:14247
79.116.121.163:14751
79.116.28.147:27683
79.117.177.174:12523
79.118.247.63:14481
79.38.117.69:18242
79.39.241.147:29216
79.47.239.67:28246
81.0.94.178:27735
81.214.253.235:13820
81.64.159.213:22322
81.65.125.102:24715
82.131.113.220:15271
82.131.141.80:27735
82.211.174.146:25219
82.88.65.111:17345
83.228.43.66:11167
83.4.30.245:21628
84.232.253.30:19202
84.32.66.38:25067
85.110.206.175:22346
85.250.176.250:15494
86.121.16.63:27337
86.124.108.93:20225
87.126.224.174:11314
87.207.108.163:14491
87.24.128.66:14935
88.235.4.104:22459
88.250.42.18:14086
89.120.100.121:19228
89.136.130.155:22321
89.137.18.224:21326
91.127.173.36:10734
91.179.41.185:15941
91.179.41.185:24693
92.241.134.103:26870
94.122.71.97:11842
94.203.147.11:20599
94.39.240.218:14338
94.53.198.35:24596
94.66.81.228:15663
95.104.111.141:11838
95.226.45.198:18846
95.56.143.17:23352
95.9.163.52:24483
97.78.7.0:10159
99.169.224.231:22266
99.190.137.80:12109
99.7.203.52:18700
Geografia ataku
Przypuszczam, że w omawianym czasie wiadomości spamowe z odsyłaczami umożliwiającymi potwierdzenie rezerwacji lotu liniami US Airways nie stanowiły jedynej metody rozprzestrzeniania ZeuSa. Chociaż nie jest to pierwszy raz, gdy cyberprzestępcy wykorzystali do swoich oszustw linie lotnicze, ten konkretny rodzaj spamu został wykryty po raz pierwszy. Jeżeli odbiorcy omawianej wiadomości spamowej rzeczywiście zarezerwowali bilety linii Airways, prawdopodobieństwo kliknięcia przez nich zawartego w wiadomości odsyłacza wzrastało. Jednak większość użytkowników, którzy otrzymali takie e-maile, nigdzie nie leciało tego dnia, dlatego bardzo mało osób dało się nabrać na to oszustwo.
Naturalnie, w analizowanym okresie wysyłane były również inne wiadomości spamowe, które zawierały odsyłacze prowadzące do wspomnianych wyżej stron, wspomniane exploity oraz szkodliwe pliki. Zbadałem, gdzie nasi użytkownicy wykrywali zagrożenia, które w ten czy inny sposób były związane z atakiem. Poniżej znajduje się rozkład geograficzny wykrytych exploitów, downloaderów oraz modyfikacji ZeuSa wykorzystywanych przez cyberprzestępców w ataku:
Rosja
32,8%
Stany Zjednoczone
10,3%
Włochy
9,2%
Niemcy
8,6%
Indie
6,9%
Francja
3,8%
Ukraina
3,6%
Polska
3,2%
Brazylia
3,1%
Malezja
3%
Hiszpania
2,9%
Chiny
2,7%
P.S. Poniżej informacje dotyczące domen wykorzystywanych w opisanej wyżej kampanii spamowej
(nie jest to pierwszy raz, gdy te dane zostały wykorzystane do zarejestrowania innych domen uczestniczących w rozprzestrzenianiu szkodliwego oprogramowania za pośrednictwem spamu):
We wrześniu zeszłego roku Kaspersky Lab rozbił we współpracy z Digital Crimes Unit (DCU) Microsoftu, SurfNET oraz Kyrus Tech, Inc. niebezpieczny botnet Hlux/Kelihos poprzez zasysanie zainfekowanych maszyn do kontrolowanego przez nas hosta.
Kilka miesięcy później nasi analitycy natknęli się na nową wersję szkodliwego oprogramowania odpowiedzialnego za przyłączanie komputerów do botnetu ze znacznymi zmianami w protokole komunikacji oraz nowymi „funkcjami”, takimi jak infekowanie dysków flash czy kradzież portfela bitcoinów.
Z przyjemnością informujemy, że we współpracy z CrowdStrike Intelligence Team, Honeynet Project oraz Dell SecureWorks zdołaliśmy rozbić ten nowy botnet.
W zeszłym tygodniu ustawiliśmy rozproszone na całym świecie maszyny w celu przeprowadzenia operacji zasysania (sinkholing) i w środę 21 marca rozpoczęliśmy zsynchronizowane rozprzestrzenianie adresu IP naszego leja (sinkhole) do sieci peer-to-peer.
Po krótkim czasie nasza maszyna lej zwiększyła swoją „popularność” w sieci – co oznacza, że spora część botnetu komunikuje się tylko z maszyną znajdującą się pod naszą kontrolą:
Liczba unikatowych botów po 24 godzinach
Rozprzestrzeniliśmy również specjalnie stworzoną listę serwerów zadań. Dzięki temu boty nie mogą żądać nowych poleceń od szkodliwych właścicieli botnetu i co za tym idzie nie mogą być już kontrolowane przez cyberprzestępców.
Jednak kilka godzin po rozpoczęciu naszej operacji właściciele botnetu zareagowali wypuszczeniem nowej wersji swojego bota. Zauważyliśmy również, że właściciele botnetu zaniechali rozsyłania spamu oraz przeprowadzania ataków DDoS za pośrednictwem swojej sieci.
Po sześciu dniach mamy teraz 116 000 botów łączących się z naszym lejem.
Liczba unikatowych botów po 6 dniach
Poniżej przedstawiamy podział według wersji systemu operacyjnego:
Wersje systemu operacyjnego
Większość botów jest zlokalizowanych w Polsce i w Stanach Zjednoczonych:
Państwa, w których wykryto infekcje, w wyniku których komputery zostały przyłączone do botnetu Hlux/Kelihos
Tło
Najważniejsze zmiany w stosunku do starego botnetu Hlux miały miejsce w protokole komunikacyjnym. W najniższej warstwie szkodliwi twórcy zmienili kolejność szyfrowania oraz metody pakowania.
Naturalnie autorzy tego szkodliwego oprogramowania zmienili klucze szyfrowania, jak również klucze RSA wykorzystywane do podpisywania części wiadomości wysyłanych poprzez sieć p2p.
P: Czym jest botnet Hlux/Kelihos?
O: Kelihos to stosowana przez Microsoft nazwa botentu określanego przez Kaspersky Lab jako Hlux. Hlux jest botnetem peer-to-peer o architekturze podobnej do tej stosowanej dla botnetu Waledac. Składa się z warstw różnych rodzajów węzłów: kontrolerów, ruterów i pracowników.
P: Co to jest botnet peer-to-peer?
O: W przeciwieństwie do klasycznego botnetu, botnet peer-to-peer nie wykorzystuje scentralizowanego serwera kontroli (C&C). Każdy członek sieci może działać jako serwer oraz/lub klient. Z punktu widzenia szkodliwego użytkownika zaletami takiej struktury jest pominięcie centralnego C&C jako pojedynczego punktu awarii. Z naszego punktu widzenia tego rodzaju botnet jest znacznie trudniejszy do zniszczenia.
Architektura tradycyjnego botnetu oraz botnetu P2P:
Tradycyjny botnet ze scentralizowanym C&C
Architektura botnetu P2P
P: Kiedy Hlux/Kelihos został po raz pierwszy wykryty na wolności?
O: Pierwsza wersja została dostrzeżona na wolności już w grudniu 2010 r. Nasz pierwszy post na blogu dotyczący botnetu Hlux pochodzi ze stycznia 2011 r. Pierwszy znany wpis na blogu został opublikowany przez ShadowServer w grudniu 2010 r. Nowa wersja pojawiła się tuż po naszej pierwszej operacji leja we wrześniu 2011 r.
P: Czym różni się stare i nowe szkodliwe oprogramowanie botnetu Hlux/Kelihos?
O: Starsza wersja była wykorzystywana do rozprzestrzeniania spamu i potrafiła przeprowadzać ataki DDoS (distributed denial-of-service). W nowej wersji odkryliśmy, że:
Bot potrafi infekować dyski flash, tworząc na nich plik o nazwie „Copy a Shortcut to google.Ink” w ten sam sposób co Stuxnet.
Bot potrafi wyszukiwać pliki konfiguracji dla wielu klientów FTP i przenosić je do serwerów kontroli.
Bot posiada wbudowaną funkcję kradzieży portfela Bitcoin.
Bot zawiera również funkcję kopalni Bitcoin.
Bot może działać w trybie serwera poxy.
Bot przeszukuje dyski twarde w celu znalezienia plików zawierających adresy e-mail.
Bot posiada sniffera przechwytującego hasła do poczty e-mail, sesji FTP oraz HTTP.
Twórca nowej wersji botnetu Hlux zmienił również protokół komunikacji:
Zmienił kolejność szyfrowania i metody kompresji
Dodał nowe klucze szyfrowania (wiadomości sieci p2p) oraz klucze RSA (do podpisywania części szkodliwej funkcji wiadomości)
Nazwy pól w szkodliwej funkcji składają się teraz z 1-2 znaków, bez hashów.
P: Czy „nowy botnet Hlux/Kelihos” został odbudowany na „starym” botnecie, który został rozbity we wrześniu zeszłego roku?
O: Tak, szkodliwe oprogramowanie zostało stworzone przy użyciu tego samego kodowania co w przypadku pierwotnego botnetu Hlux/Kelihos. Nowy szkodnik pokazał, że drugi botnet został nieco zaktualizowany: dodano metody infekcji, funkcję kopalni Bitcoin oraz funkcję kradzieży portfela. Podobnie jak w pierwszej wersji, botnet wykorzystywał również swoją sieć zainfekowanych komputerów do wysyłania spamu, kradzieży danych osobistych oraz przeprowadzania ataków DDoS na konkretne cele.
Warto zauważyć, że botnet Hlux, który został rozbity przez nas wcześniej, nadal znajduje się pod naszą kontrolą, a zainfekowane maszyny nie otrzymują poleceń.
W jaki sposób twórcy szkodliwego oprogramowania zdołali stworzyć nowy botnet w tak krótkim czasie – tego dokładnie nie wiadomo. Właściciele botów zwykle odbudowują botnety przy użyciu szkodliwych usług „pay-per-install”.
P: Co oznacza „sinkholing” (zasysanie)?
O: W tym przypadku oznacza to działania, które prowadzą do dużej popularności specjalnego peera w sieci peer-to-peer. Ten specjalny peer znajduje się pod naszą kontrolą i dostarcza łączącym botom specjalnie stworzone listy zadań uniemożliwiające kontrolowanie botów przez pierwotnego szkodliwego właściciela botnetu.
P: Ile botów znajduje się w starym i nowym botnecie Hlux/Kelihos?
O: Rozmiar botnetu peer-to-peer można jedynie oszacować. Dla starego botnetu Hlux, który rozbiliśmy we wrześniu 2010 r., oszacowaliśmy około 40000 różnych adresów IP. Dla nowego botnetu, szacujemy około 110 000 adresów IP.
P: W których państwach znajduje się najwięcej infekcji Hlux/Kelihos?
O: W przypadku starej wersji botnetu Hlux, najwięcej połączeń trafiło do naszego leja z Tajlandii, Wietnamu, Indii oraz Korei.
Dla nowej wersji rozkład infekcji wygląda następująco:
Państwa, w których wykryto infekcje nowego botnetu Hlux/Kelihos
P: Kto uczestniczył w niedawnym rozbiciu omawianego botnetu (marzec 2012)?
O: W operacji tej Kaspersky Lab współpracował z zespołami badawczymi z CrowdStrike, HoneyNet Project oraz Dell SecureWorks.
P: Co mogą zrobić użytkownicy, w przypadku gdy ich system jest zainfekowany szkodliwym oprogramowaniem z tego botnetu?
O: Mimo że pierwsze dwa botnety Kelihos/Hlux zostały rozbite, wiele komputerów nadal jest zainfekowanych szkodliwym oprogramowaniem. Zalecamy odwiedzenie strony http://support.kaspersky.com/viruses/utility w celu pobrania darmowych narzędzi oferowanych przez Kaspersky Lab, przy pomocy których można wyczyścić komputer z tego szkodnika.
Więcej informacji, łącznie z tym, jak chronić komputer, można znaleźć na stronie http://support.kaspersky.com/viruses.
Dopóki gangi botnetowe nie zostaną całkowicie rozbite, nieustannie będą pojawiały się nowe botnety z uaktualnionym szkodliwym oprogramowaniem, infekując komputery.
P: Boty obu botnetów są obecnie zasysane do maszyn znajdujących się pod waszą kontrolą. Co teraz?
O: Jest to główne pytanie, jakie zadaliśmy sobie podczas pierwszego rozbijania botnetu jeszcze we wrześniu 2011 r. Z pewnością nie możemy zasysać Hluxa bez końca. Stosowane obecnie metody stanowią rozwiązanie tymczasowe, nie eliminują jednak całkowicie problemu, ponieważ jedyne rzeczywiste rozwiązanie polega na wyczyszczeniu zainfekowanych maszyn. Spodziewamy się, że z czasem liczba maszyn zasysanych przez nasz lej będzie powoli spadać w miarę usuwania infekcji z komputerów oraz przeinstalowywania systemów.
Jest jeszcze jeden teoretyczny sposób ostatecznego pozbycia się botnetu Hlux. Ponieważ wiemy, jak działa proces aktualizacji bota, moglibyśmy wykorzystać tę wiedzę, aby wydać własną aktualizację, która usuwa infekcje i dokonuje samozniszczenia. Jednak w większości państw byłoby to niezgodne z prawem.
Jedynym rozwiązaniem, które może mieć trwałe skutki, jest apelowanie do polityków, aby uchwalali więcej międzynarodowych ustaw zapewniających większą współpracę między specjalistami ds. cyberbezpieczeństwa oraz federalnymi organami ścigania. Sinkholing jest rozwiązaniem tymczasowym. Problem botnetów można rozwiązać permanentnie jedynie poprzez zidentyfikowanie odpowiedzialnych za nie grup oraz umożliwienie aresztowania ich przez organy ścigania. Nowe przepisy zapewnią większą jurysdykcję stosowania następujących środków:
przeprowadzanie masowej naprawy za pośrednictwem botnetu
wykorzystywanie doświadczenia i badań firm prywatnych, zapewniając im immunitet przed ustawami o cyberprzestępczości w konkretnym dochodzeniu
Wykorzystywanie zasobów dowolnego zainfekowanego systemu podczas dochodzenia
uzyskanie nakazu zdalnego wykorzystania systemu w przypadku braku innej alternatywy
Po rozbiciu starego botnetu Hlux zapytaliśmy czytelników na stronie securelist.com, w jaki sposób Kaspersky Lab powinien postąpić z tym botnetem: odpowiedź była dość jednoznaczna. Tylko 4% głosowało za rozwiązaniem „Zostawcie botnet w spokoju”, 9% wybrało opcję „Kontynuujcie zasysanie i przekażcie logi adresów IP odpowiednim kontaktom, tak aby mogli podjąć działania”, a 85% głosowało za opcją „Zastosujcie rozwiązanie, które usunie infekcje”. W sondażu oddano 8539 głosów.
Niedawno w Szwecji dokonano dużego oszustwa bankowego, w wyniku którego na skutek zainfekowania komputerów skradziono ponad 1,2 miliona koron szwedzkich (około 177 800 dolarów). Osoby atakujące wykorzystały trojana, który został wysłany ofiarom i – po zainstalowaniu – umożliwił im uzyskanie dostępu do zainfekowanych komputerów. Na szczęście osoby odpowiedzialne za ten atak zostały złapane i otrzymały wyrok pozbawienia wolności, jednak minęło trochę czasu, zanim śledztwo zostało doprowadzone do końca, ponieważ w oszustwie tym brało udział ponad 10 osób.
Możliwe, że ataki te nie są już tak skuteczne, jak życzyliby sobie tego cyberprzestępcy, ponieważ obecnie stosują inne metody wyszukiwania i wykorzystywania nowych ofiar. Od jakiegoś czasu możemy zaobserwować, że cyberprzestępcy wykorzystują „porwane” konta na Facebooku, aby podstępnie nakłaniać znajomych tych, których konta zostały porwane, do wykonywania różnych działań, od klikania szkodliwych odsyłaczy po przelewanie pieniędzy na konta bankowe cyberprzestępców.
Należy zaznaczyć, że nie jest to nowe oszustwo – takie incydenty obserwujemy już od długiego czasu. Teraz jednak wykorzystywanie skradzionych/porwanych, lub fałszywych, kont staje się bardzo powszechne na Facebooku. Tak powszechne, że istnieją nawet firmy tworzące fałszywe konta, które następnie sprzedają dostęp do nich innym cyberprzestępcom. Jak można się spodziewać, im więcej znajomych mają właściciele kont, tym są droższe są takie konta, ponieważ za ich pośrednictwem można złowić więcej osób.
W tym przypadku problem nie jest jedynie techniczny – przede wszystkim jest to problem społeczny. Facebooka używamy po to, żeby rozszerzyć nasze grono znajomych. Na tym portalu można mieć bez trudu kilkaset znajomych, podczas gdy w życiu realnym – zaledwie 50. Może to stanowić problem, ponieważ niektóre z ustawień bezpieczeństwa i prywatności na Facebooku mają zastosowanie tylko do interakcji z osobami, które nie są naszymi znajomymi. Z kolei nasi znajomi posiadają pełny dostęp do wszystkich informacji o nas.
Ostrzegamy użytkowników przed tym nowym scamem. Oszuści wykorzystują skradzione lub porwane konta, aby wysyłać swoim ofiarom osobiste wiadomości. Udają, że mają problem, twierdząc na przykład, że utknęli na lotnisku i potrzebują kilkuset koron na nowy bilet powrotny. Mogą też wmawiać swojej ofierze, że zepsuł się ich token umożliwiający transakcje bankowości online, i poprosić ją, aby pożyczyła swój własny. Wydaje się to dość trywialne, ale zauważyliśmy, że wiele osób nie jest świadomych tego, że token bankowy jest urządzeniem prywatnym i nie może być wykorzystywany z innym kontem.
Koncepcja, na jakiej opiera się to oszustwo, jest dość prosta. Wykorzystuje ona to, że na Facebooku publikowana jest ogromna ilość informacji osobistych. Cyberprzestępcy mogą z łatwością wywnioskować wiele informacji o danej osobie. Jeżeli wykorzystują skradzione konto, mogą również z łatwością przyjrzeć się naturze relacji między jedną ofiarą a drugą.
Chcielibyśmy uświadomić użytkownikom to zagrożenie, tak aby zastanowili się, zanim ujawnią jakiekolwiek informacje dotyczące kont bankowych lub pożyczą komuś pieniądze. Oto kilka prostych wskazówek:
Upewnij się, że osoba, z którą rozmawiasz, naprawdę jest tym, kim sądzisz, że jest. Możesz zadzwonić do niej na numer jej telefonu komórkowego lub skontaktować się z jej krewnymi, aby sprawdzić, czy rzeczywiście jest za granicą.
Nigdy nie podawaj przez Internet żadnych poufnych danych dotyczących bankowości.
Nie dodawaj ani nie akceptuj żadnych zaproszeń do grona znajomych od osób, których nie znasz.
Upewnij się, że posiadasz ochronę przed szkodliwym oprogramowaniem zainstalowaną na komputerze.
Pamiętaj o częstej zmianie haseł i postaraj się, aby były złożone i trudne do odgadnięcia – stosuj kombinację liter, liczb i symboli. Nie stosuj na Facebooku tego samego hasła, jakie masz na innych stronach: jeżeli hasło zostanie złamane na jednej z tych stron, będzie mogło zostać wykorzystane do uzyskania dostępu do twojego konta na Facebooku.
W ostatnich dniach został wykryty szkodliwy program z ważną sygnaturą. Szkodnik ten jest 32- lub 64-bitowym dropperem, wykrywanym przez Kaspersky Lab odpowiednio jako Trojan-Dropper.Win32.Mediyes lub Trojan-Dropper.Win64.Mediyes.
Zidentyfikowano liczne pliki droppera z podpisami o różnych datach od grudnia 2011 do 7 marca 2012 r. We wszystkich tych przypadkach został użyty certyfikat wydany dla szwajcarskiej firmy Conpavi AG. Firma ta współpracuje ze szwajcarskimi organami rządowymi, takimi jak samorządy miejskie czy kantony.
Informacje o sygnaturze cyfrowej programu Trojan-Dropper.Win32.Mediyes
Nie znamy jeszcze dokładnego źródła szkodnika Trojan-Dropper.Win32/Win64.Mediyes, mamy jednak przesłanki, aby przypuszczać, że jest on instalowany na komputerach przy pomocy exploitów.
32-bitowy dropper przechowuje swój własny 32-bitowy sterownik – którego nazwa zaczyna się od ‘HID’ – w folderze sterowników systemowych. Następnie dropper usuwa się z systemu. Sam sterownik nie jest podpisany, to jednak nie przeszkadza mu działać poprawnie w 32-bitowym systemie Windows. Sterownik zawiera bibliotekę DLL, która jest kopiowana do foldera systemowego rozpoczynającego się od liter ‘PNG’. Główną funkcją sterownika jest wstrzykiwanie biblioteki DLL do procesu przeglądarki internetowej. Sterownik ukrywa również na dysku komponenty Mediyes.
64-bitowy dropper nie zawiera sterownika i wstrzykuje bibliotekę DLL bezpośrednio do przeglądarki.
Szkodliwa biblioteka DLL jest wykrywana przez Kaspersky Lab jako Trojan.Win32.Mediyes, a sterownik jako Rootkit.Win32.Mediyes.
Po uruchomieniu biblioteka DLL sprawdza, w jakiej przeglądarce działa, a następnie zaczyna przechwytywać żądania przeglądarki wysyłane do wyszukiwarek Google, Yahoo! oraz Bing. Duplikuje wszystkie żądania na zlokalizowanym w Niemczech serwerze szkodliwych użytkowników. Zapytania są wykorzystywane przez cyberprzestępców do zarabiania pieniędzy w ramach programu partnerskiego „Search 123” działającego na zasadzie PPC (pay-per-click). Serwer odpowiada na żądania użytkowników z odsyłaczami z systemu Search123, które są klikane bez wiedzy użytkownika. W ten sposób szkodliwi użytkownicy zarabiają na fałszywych kliknięciach.
Opis programu partnerskiego Search123
Według danych KSN, Trojan.Win32.Mediyes został wykryty na komputerach około 5 000 unikatowych użytkowników, głównie w Europie Zachodniej – w Niemczech, Szwajcarii, Szwecji, Francji i we Włoszech.
Celem tego szkodnika są bez wątpienia użytkownicy w Europie Zachodniej. Świadczą o tym inne dowody – certyfikat wydany przez szwajcarską firmę, serwer zlokalizowany w Niemczech oraz przechwytywanie jedynie żądań dokonywanych na najpopularniejszych wyszukiwarkach.
Poinformowaliśmy VeriSign o zagrożeniu i poprosiliśmy o unieważnienie zhakowanych certyfikatów.
Podczas analizy komponentów Duqu odkryliśmy interesującą anomalię w głównym komponencie odpowiedzialnym za jego logikę biznesową – szkodliwą funkcję (Payload DLL). Chcielibyśmy podzielić się naszymi odkryciami i poprosić o pomoc w zidentyfikowaniu kodu.
Struktura kodu
Na pierwszy rzut oka Payload DLL wygląda jak zwykły plik Windows PE DLL skompilowany przy użyciu Microsoft Visual Studio 2008 (wersja linkera 9.0). Kod punktu wejścia jest całkowicie standardowy, jest też jedna funkcja eksportowana przez liczebnik porządkowy 1, która również wygląda jak MSVC++. Funkcja ta jest wywoływana z PNF DLL i w rzeczywistości stanowi „główną” funkcję, która implementuje całą logikę kontaktowania się z serwerami C&C, otrzymując dodatkowe moduły funkcji szkodliwej oraz wykonując je. Najciekawsze jest to, w jaki sposób logika ta została zaprogramowana i jakie wykorzystano narzędzia.
Sekcja kodu Payload DLL jest typowa dla kodu binarnego, który został stworzony z kilku kawałków kodu. Składa się z „plastrów” kodu, które początkowo mogły zostać skompilowane w osobne pliki obiektowe, które następnie zostały połączone w jedną bibliotekę DLL. Większość z nich można znaleźć w dowolnym programie C++, jak funkcje STL (Standard Template Library), funkcje biblioteki dynamicznej oraz kod napisany przez użytkownika, z wyjątkiem największego plastra, który zawiera większość kodu odpowiedzialnego za interakcję z serwerem C&C.
Struktura sekcji kodu pliku Payload DLL
Plaster ten różni się od innych, ponieważ nie został skompilowany ze źródeł C++. Nie zawiera żadnych odnośników do standardowych ani napisanych przez użytkownika funkcji C++, jednak bez wątpienia jest to kod obiektowy. Nazwaliśmy go Szkieletem Duqu.
Szkielet
Funkcje
Kod implementujący Szkielet Duqu posiada kilka wyróżniających go cech:
Wszystko ma postać obiektów
Tablica funkcji jest umieszczona bezpośrednio w instancji klasy i może zostać zmodyfikowana po skonstruowaniu
Nie ma rozróżnienia pomiędzy klasami narzędzi (powiązane listy, hashe) a kodem napisanym przez użytkownika
Obiekty komunikują się przy użyciu wywołań metod, kolejek opóźnionego wykonania, a nawet wywołań zwrotnych spowodowanych wydarzeniem
Nie ma odwołań do funkcji biblioteki dynamicznej, zamiast tego wykorzystywane jest natywne API Windows
Obiekty
Wszystkie obiekty są instancjami pewnej klasy. Zidentyfikowaliśmy 60 klas. Każdy obiekt jest tworzony przy użyciu funkcji konstruktora, która przydziela pamięć, wypełnia tablicę funkcji i inicjuje składniki.
Funkcja konstruktora dla klasy listy powiązanej.
Struktura każdego obiektu zależy od jego klasy. Niektóre klasy wydają się mieć binarne kompatybilne tablice funkcji, nic jednak nie wskazuje na to, że posiadają wspólne klasy macierzyste (jak w innych językach obiektowych). Ponadto, lokalizacja tablicy funkcji nie jest stała: niektóre klasy mają ją na pozycji 0 instancji, inne nie.
Struktura obiektu listy powiązanej. Pierwsze 10 pól to wskazania na funkcje składowe.
Obiekty są niszczone przez odpowiednie funkcje destruktora. Funkcje te zwykle niszczą wszystkie obiekty, do których odwołują się pola składowe, i zwalniają wykorzystaną pamięć.
Odwoływanie do funkcji składowych może następować poprzez tablicę funkcji obiektu (tak jak funkcji „wirtualnych” w C++) lub mogą one być wywoływane bezpośrednio. W większości języków obiektowych funkcje składowe otrzymują parametr „this”, który odwołuje się do instancji obiektu i istnieje konwencja, która określa lokalizację parametru – w rejestrze lub w stosie. W przypadku klas Szkieletu Duqu jest inaczej – mogą one otrzymać parametr „this” w dowolnym rejestrze lub stosie.
Funkcja składowa listy powiązanej otrzymuje parametr “this” na stosie
Szkielet oparty na zdarzeniach
Struktura i implementacja obiektów w Szkielecie Duqu zdecydowanie nie jest natywna względem C++, który został wykorzystany do zaprogramowania reszty trojana. Można wyróżnić jeszcze bardziej interesującą cechę tego szkieletu występującą w całym kodzie: jest on oparty na zdarzeniach.
Istnieją specjalne obiekty, które implementują model oparty na zdarzeniach:
obiekty zdarzeń oparte na natywnych uchwytach API Windows
obiekty kontekstu wątków, które prowadzą listy zdarzeń i kolejki opóźnionego wykonania
obiekty odwołania zwrotnego, które są powiązane ze zdarzeniami
monitory zdarzeń stworzone przez każdy kontekst wątków w celu monitorowania zdarzeń oraz wykonywania obiektów odwołania zwrotnego
zbiornik kontekstu wątków zarządza listą aktywnych wątków i zapewnia dostęp do obiektów według kontekstu wątku
Ten model oparty na zdarzeniach przypomina Objective C oraz jego funkcje przekazywania wiadomości, jednak kod nie posiada żadnych bezpośrednich odniesień do tego języka, ani nie wygląda jakby został skompilowany przy pomocy znanych kompilatorów Objective C.
Model oparty na zdarzeniach Szkieletu Duqu
Każdy obiekt kontekstu wątków może rozpocząć „główną pętlę”, która szuka i przetwarza nowe pozycje na listach. Większość kodu Duqu opiera się na tej samej zasadzie: tworzy obiekt, wiąże kilka odwołań zwrotnych z wewnętrznymi lub zewnętrznymi zdarzeniami i wraca. Następnie uchwyty odwołań zwrotnych są wykonywane przez obiekt monitorowania zdarzeń, który jest tworzony w każdym kontekście wątków.
Poniżej przykład pseudokodu dla obiektu portu:
SocketObjectConstructor {
NativeSocket = socket();
SocketEvent = new MonitoredEvent(NativeSocket);
SocketObjectCallback = new ObjectCallback(this, SocketEvent, OnCallbackFunc);
connect(NativeSocket, ...);
}
OnCallbackFunc {
switch(GetType(Event)) {
case Connected: ...
case ReadData: ...
...}
}
Wnioski
Szkielet Duqu wydaje się być napisany w nieznanym języku programistycznym.
W przeciwieństwie do pozostałej części ciała Duqu, nie jest to język C++ i nie został skompilowany przy pomocy Visual C++ 2008 Microsoftu.
Architektura oparta w wysokim stopniu na zdarzeniach wskazuje na kod stworzony z myślą o wykorzystywaniu w niemal każdym rodzaju warunków, łącznie z komutacjami asynchronicznymi.
Biorąc pod uwagę rozmiar projektu Duqu, nie można wykluczyć, że za szkielet odpowiadał inny zespół niż ten, który stworzył sterowniki i napisał infekcję systemu oraz exploity.
Tajemniczym językiem programowania z pewnością nie jest C++, Objective C, Java, Python, Ada, Lua i wiele innych języków, które sprawdziliśmy.
W porównaniu ze Stuxnetem (który cały został napisany w MSVC++), jest to jedna z cech charakterystycznych szkieletu Duqu.
Szkielet Duqu: Co to było?
Po długiej analizie jesteśmy w 100% pewni, że Szkielet Duqu nie został zaprogramowany przy użyciu języka Visual C++. Możliwe, że jego autorzy wykorzystali stworzony przez siebie szkielet w celu wygenerowania pośredniego kodu c lub użyli całkowicie innego języka programowania.
Apelujemy do społeczności programistów i prosimy każdego, kto rozpoznaje ten szkielet, zestaw narzędzi lub język programowania, który może wygenerować podobne konstrukcje kodu, o skontaktowanie się z nami lub napisanie komentarza na blogu. Wierzymy, że z waszą pomocą możemy rozwikłać tajemnicę historii Duqu.