Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Tajemnica Duqu: Część pierwsza

Aleksander Gostiew
Kaspersky Lab Expert
Dodany 21 października 2011, 14:01 CEST

Na początek trzeba wyjaśnić kilka niejasności dotyczących plików i ich nazw. Aby mieć pełny obraz sytuacji, trzeba wiedzieć, że mówimy tu o zaledwie dwóch szkodliwych programach – głównym module i keyloggerze. Wszystko, co zostało wspomniane w ciągu ostatnich 24 godzin o związkach między Duqu a Stuxnetem, odnosi się w większości do tego pierwszego - głównego modułu.

Główny moduł składa się z trzech komponentów:

  • sterownika, który wstrzykuje DLL do procesów systemowych;
  • biblioteki DLL, która posiada dodatkowy moduł i współpracuje z centrum kontroli botnetu (C&C); oraz
  • pliku konfiguracyjnego

Moduł ten jest bardzo podobny do Stuxneta – zarówno pod względem struktury jak i zachowania. Jednak nazwa Duqu nie ma z nim prawie żadnego związku. W rzeczywistości, opiera się na nazwach plików związanych z całkowicie innym szkodliwym programem szpiegującym!

Drugi szkodliwy program, który zasadniczo jest keyloggerem (ale potrafi również zbierać inne rodzaje informacji), został wykryty w systemie jednej z ofiar infekcji wraz z opisanym wyżej głównym modułem. Fakt ten, jak również posiadana przez główny moduł zdolność pobierania innych komponentów, sugerowały, że główny moduł oraz keylogger są w pewien sposób powiązane ze sobą. Działając w systemie, keylogger przechowuje zebrane dane w plikach o nazwach takich jak ~DQx.tmp. Tak więc nazwa głównego modułu – Duqu – wywodzi się od tych plików.

W rzeczywistości, kod trojana szpiegującego częściowo potwierdza związek między nim a głównym modułem i został prawdopodobnie pobrany przez główny moduł wcześniej. Jednak pod względem funkcjonalności stanowi niezależną szkodliwą aplikację, która może działać bez głównego modułu. Z drugiej strony główny moduł potrafi działać bez trojana szpiegującego. Jednak związek między keyloggerem a Stuxnetem nie jest tak oczywisty. Dlatego moglibyśmy nazwać go wnukiem Stuxneta, ale na pewno nie dzieckiem :)

Rok temu podczas analizowania Stuxneta, ustaliliśmy, że szkodnik ten składa się z dwóch części: nośnika oraz oddzielnego modułu odpowiedzialnego za sterownik programowalny (PLC). Można powiedzieć, że Stuxnet jest jak pocisk rakietowy, składający się z silnika rakietowego (samego robaka) oraz głowicy (moduł PLC).

Doszliśmy do wniosku, że Stuxnet został prawdopodobnie stworzony przez dwie oddzielne grupy, które mogły nawet nie wiedzieć o swoim istnieniu czy ostatecznym przeznaczeniu projektu.

Fragment Stuxneta odpowiedzialny za jego rozprzestrzenianie oraz infekowanie systemów mógł zostać ponownie wykorzystany, z tym że już z inną “głowicą”.

Mniej więcej coś podobnego miało miejsce w przypadku Duqu. Z tą jedynie różnicą, że Duqu nie posiadał żadnej “głowicy”, ale mógł zainstalować dowolną “głowicę” w dowolnym momencie i wycelować ją w dowolny cel.

Poniżej przedstawiamy sekwencję zdarzeń związanych z Duqu, które są znane i mogą być ujawnione.

Historia odkrycia pliku Duqu

Trojan szpiegujący

Do pierwszego “spotkania” firm antywirusowych i Duqu doszło 1 września 2011, gdy ktoś z Węgier wysłał plik o nazwie ~DN1.tmp do Virustotal w celu przeskanowania.

Nazwa tego pliku sugeruje, że został prawdopodobnie znaleziony na zainfekowanej maszynie. Nie był to komponent głównego modułu, ale trojan szpiegujący i został prawdopodobnie zainstalowany w systemie, który został już wcześniej zainfekowany przez Duqu.

W momencie dostarczenia go plik został wykryty przez cztery produkty – a ściślej przez tylko dwa silniki antywirusowe: BitDefender (jako Gen:Trojan.Heur.FU.fuW@aGOd0Wpi) oraz AVIRA (jako TR/Crypt.XPACK.Gen3); F-Secure oraz G-DATA wykorzystują silnik BitDefendera.

Jest to dość ciekawe i sugeruje, że autorzy Duqu nie przejmowali zbytnio wykryciem tego modułu przez te cztery programy antywirusowe. Jednak to właśnie te wykrycia pomogły zdemaskować moduł.

Po tym pierwszym wykryciu plik został dodany do baz zagrożeń wielu firm antywirusowych – w większości w okresie od 9 do 19 września. W przypadku Kaspersky Lab miało to miejsce 14 września (plik był wykrywany jako Trojan.Win32.Inject.bjyg). Tego samego dnia dodał go do swoich baz Microsoft (Trojan:Win32/Hideproc.G).

Mogłoby się wydawać, że wykrycie tego pliku na podstawie sygnatury przez wiele firm antywirusowych oznaczało, że główny moduł Duqu również powinien zostać wykryty. Jednak sytuacja była zupełnie inna.

Sterownik

Pierwszy “prawdziwy” plik Duqu również został wysłany do przeskanowania do Virustotal, prawdopodobnie również z Węgier. Miało to miejsce 9 września.

Plik został wysłany z jego oryginalną nazwą cmi4432.sys wskazującą wariant sterownika, który posiada podpis cyfrowy C-Media.

1 Wydawca C-Media Electronics Incorporation
2 Produkt C-Media Electronics Incorporation
3 Wewnętrzna nazwa cmi4432.sys
4 Wersja pliku 4.2.0.15
5 Oryginalna nazwa cmi4432.sys
6 Sygnatariusz C-Media Electronics Incorporation VeriSign Class 3 Code Signing 2009-2 CA Class 3 Public Primary Certification Authority
7 Opis Onboard Sound Driver
8 Rozmiar 29568 bajtów

Pliku nie wykrył żaden z 43 programów antywirusowych wykorzystywanych przez Virustotal – ani 9 września (pierwsze dostarczenie głównego modułu do Virustotal), ani 17 października (gdy opublikowane zostały informacje o Duqu).

Świadczy to o tym, że autorzy Duqu zachowali dużą ostrożność podczas jego tworzenia. Mimo podobieństwa ich szkodnika do Stuxneta zdołali zmienić jego kod i obejść mechanizmy wykrywania stosowane przez wszystkie popularne programy antywirusowe.

Interesująca jest korelacja między dokładnym czasem dostarczenia pliku do Virustotal na Węgrzech a pojawieniem się publicznych informacji dotyczących plików, które zostały udostępnione wcześniej. Mowa tu o postach napisanych przez węgierskiego bloggera, w szczególności tych pochodzących z 8 września, w których wskazał MD5 pliku: głównego modułu oraz trojana szpiegującego!

Looking for friends of foes of 9749d38ae9b9ddd81b50aad679ee87ec to speak about. You know what I mean. You know why. 0eecd17c6c215b358b7b872b74bfd800 is also interesting. b4ac366e24204d821376653279cbad86 ?

Zbadaliśmy sprawę i stwierdziliśmy, że węgierski blogger prawdopodobnie pracuje dla Data Contact (www.dc.hu), dostawcy usług internetowych/hostingowych oraz instytucji certyfikującej w Budapeszcie. Prawdopodobnie ta firma lub jej klienci znaleźli te pliki na swoich komputerach.

Nawiasem mówiąc, nasza firma, jak również kilku innych producentów rozwiązań antywirusowych, wie o co najmniej jeszcze jednej firmie na Węgrzech, która padła ofiarą Duqu. Na razie jednak informacje te są tajne.

Drugi wariant sterownika również został wysłany do Virustotal i też prawdopodobnie pochodził z Węgier. Miało to miejsce 18 września, a oryginalna nazwa pliku brzmiała jminet7.sys.

Wariant ten nie posiada podpisu cyfrowego i podszywa się pod plik z JMicron.

1 Wydawca JMicron Technology Corporation
2 Produkt JMicron Volume Snapshot
3 Opis JMicron Volume Snapshot Driver
4 Wersja pliku 2.1.0.14
5 Oryginalna nazwa jminet7.sys
6 Nazwa wewnętrzna jminet7.sys
7 Rozmiar 24960 bajtów

Podobnie jak w przypadku pierwszego sterownika, do 18 października Virustotal nic nie wykrył.

Do czasu publikacji oficjalnych informacji o Duqu na Virustotal nie wykryto żadnych plików PNF stanowiących zaszyfrowane biblioteki DLL ani plików konfiguracyjnych dla sterowników i żadna firma antywirusowa nie znalazła się w posiadaniu tych plików.

Historii ciąg dalszy...

Jednak po publikacji wszystkich dostępnych informacji o Duqu znaleziono nowe pliki tego szkodnika. To oznacza, że autorzy Duqu monitorują sytuację, reagują na wydarzenia i nie zamierzają się poddać.

Trzeci sterownik

Nowy sterownik został wykryty 18 października – i posiadał nową datę utworzenia oraz nowe informacje o pliku. 19 października plik ten został niemal jednocześnie (z 18 minutowym odstępie czasu) wysłany do Virustotal z dwóch różnych źródeł – w Austrii i w Indonezji!

Nowy wariant podszywał się pod sterownik IBM:

1 Wydawca IBM Corporation (c)
2 Produkt IBM ServeRAID Contoller
3 Opis IBM ServeRAID Controller Driver
4 Wersja pliku 4.33.0.12
5 Oryginalna nazwa nfrd965.sys
6 Nazwa wewnętrzna nfrd965.sys
7 Rozmiar 24960 bajtów

Nie posiada podpisu cyfrowego i został skompilowany 17 października.

Czwarty sterownik

20 października otrzymaliśmy nowy sterownik za pośrednictwem Virustotal. Wariant ten różni się od poprzednich i został wysłany z Wielkiej Brytanii.

Również nie posiada podpisu cyfrowego i również został skompilowany 17 października (tego samego dnia, co sterownik IMB).

1 Wydawca Adaptec Inc (c)
2 Produkt Adaptec Windows 321 Family Driver
3 Opis Adaptec StorPort Ultra321 SCSI Driver
4 Wersja pliku 2.1.0.14
5 Oryginalna nazwa adpu321.sys
6 Wewnętrzna nazwa adpu321.sys
7 Rozmiar 24960 bajtów

Przyjrzyjcie się nazwie pliku: adpu321.sys. Okaże się to istotne i interesujące w dalszej części tej historii...

Cel: Cały świat?

Pamiętacie historię Stuxneta? Zarówno nasza, jak i inne firmy antywirusowe zidentyfikowała dziesiątki tysięcy infekcji (szczególni w Iranie) od razu po wykryciu tego szkodnika. To dość jednoznacznie wskazywało na prawdopodobny cel szkodnika, a dalsze dochodzenie potwierdziło tę teorię.

A jak wyglądała mapa infekcji Duqu? Aby ją odtworzyć, wykorzystaliśmy naszą opartą na chmurze sieć Kaspersky Security Network, która pozwala nam śledzić wszystkie szkodliwe działania w systemach naszych klientów.

Wyniki są zaskakujące! W ciągu 24 godzin od dodania sygnatury wykrywania wszystkich modułów zidentyfikowaliśmy tylko jedną prawdziwą infekcję!

Co więcej, państwo, w którym jest zlokalizowany zainfekowany użytkownik, jest bardzo specyficzne i ma niewiele wspólnego z krajami, o których była mowa wcześniej w tym raporcie (czyli Węgry, Austria, Indonezja oraz Wielka Brytania).

Obecnie próbujemy skontaktować się z użytkownikiem, aby przeprowadzić dokładniejsze dochodzenie i poszukać brakujących komponentów Duqu, które prawdopodobnie znajdują się w zainfekowanym systemie. Na razie możemy powiedzieć jedynie to, że szkodliwy sterownik, który został tam znaleziony, ma całkowicie inną nazwę - adp95xx.sys (podobną do adpu321.sys). To oznacza, że w przeciągu ostatnich 48 godzin zostały znalezione trzy różne sterowniki Duqu. Niewykluczone, że jest ich więcej.

Warto zaznaczyć, że możemy obserwować tylko jedną infekcję głównego modułu Duqu; nie widzimy żadnych infekcji trojana szpiegującego. To oznacza, że:

  • klient jest zainfekowany nieznanym szkodliwym modułem; lub
  • w tym przypadku nie istnieje żadna “głowica”.

To oznacza, że Duqu może istnieć w różnych wariantach, np. jeden z nich może nie występować z keyloggerem, który jest jedynym znanym szkodliwym modułem.

W przeciwieństwie do Stuxneta, który zainfekował wiele systemów, jednak był skierowany na konkretny cel, Duqu atakuje niewiele systemów na świecie, a do tego są one specyficzne. Niewykluczone jest jednak, że Duqu może wykorzystywać różne moduły do poszczególnych infekcji.

Co więcej, na chwilę obecną nikomu nie udało się wykryć pliku instalacyjnego, który musi być pierwszym ogniwem w łańcuchu infekcji i jest odpowiedzialny za instalację sterownika oraz biblioteki DLL.

Plik ten może być robakiem, który korzysta z różnych exploitów. Jest to klucz do rozwiązania zagadki Duqu.

Nasze poszukiwania nie ustają...

Uaktualnienie Natrafiliśmy na link do publikacji (http://systemexplorer.net/db/adpu321.sys.html) zawierającej informacje o jeszcze jednym sterowniku Duqu. Posiada on taką samą nazwę pliku jak czwarty plik opisany przez nas powyżej (adpu321.sys). Można jednak zauważyć, że został on wykryty 21 września, a na omówiony plik natrafiliśmy 17 października! To potwierdza naszą teorię, że możemy mieć do czynienia z wieloma sterownikami Duqu, które ciągle pozostają niezauważone, jednak mogą zostać wykryte.