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

Flame: Pytania i odpowiedzi

Aleksander Gostiew
Kaspersky Lab Expert
Dodany 30 maja 2012, 08:12 CEST

Szkodliwe programy Duqu i Stuxnet pokazały niedawno na Bliskim Wschodzie, jak może wyglądać nowe oblicze cyberwojny. W tej chwili odkryliśmy jednak coś, co stanowi chyba najbardziej wyrafinowaną cyberbroń, jaka została wynaleziona do tej pory. Szpiegowski robak, ‘Flame’, przykuł uwagę naszych ekspertów po tym, jak jedna z agencji Organizacji Narodów Zjednoczonych, Międzynarodowy Związek Telekomunikacyjny (ITU), zwróciła się do nas o pomoc w poszukiwaniu nieznanego kodu szkodliwego oprogramowania, które na Bliskim Wschodzie zostało użyte do niszczenia poufnych informacji. Podczas poszukiwania kodu tego szkodnika, któremu nadaliśmy kryptonim Wiper, wykryliśmy nowy egzemplarz szkodliwego oprogramowania - Worm.Win32.Flame.

Chociaż cechy robaka Flame różnią się w wielu punktach od znanych do tej pory zaawansowanych zagrożeń - Duqu i Stuxneta - to geografia ataków i wykorzystanie określonych luk w zabezpieczeniach oprogramowania oraz fakt, że atakowane są tylko wybrane komputery – wszystko to świadczy o tym, że Flame należy do tej samej kategorii cyberbroni’ stosowanych obecnie na Bliskim Wschodzie przez nieznanych sprawców. Flame spokojnie może zostać nazwany jednym z najbardziej złożonych zagrożeń, jakie kiedykolwiek zostało odkryte. Robak jest duży i niezwykle wyrafinowany. Flame to definicja wojny cybernetycznej i synonim cyberszpiegostwa.

Jeżeli chcesz dowiedzieć więcej o tym zaawansowanym zagrożeniu, czytaj dalej…

Pytania ogólne

Czym dokładnie jest Flame? Robakiem? Backdoorem? Jak działa?

Flame jest zaawansowanym zestawem narzędzi ataku, dużo bardziej skomplikowanym niż Duqu. Jest backdoorem i trojanem. Posiada cechy robaka, pozwalające mu na replikację w sieci lokalnej oraz na nośnikach wymiennych, jeżeli taka będzie wola jego operatora.

Początkowy punkt wniknięcia Flame'a pozostaje nieznany - podejrzewamy, że jest wdrażany poprzez ataki ukierunkowane; jednak, nie zaobserwowaliśmy głównego wektora jego rozprzestrzeniania. Mamy pewne podejrzenia co do możliwości wykorzystania luki MS10-033, ale nie możemy tego jeszcze potwierdzić.

Po zainfekowaniu systemu, Flame rozpoczyna wiele złożonych operacji, w skład których wchodzi: podsłuchiwanie ruchu sieciowego, wykonywanie zrzutów ekranu, nagrywanie rozmów audio, przechwytywanie znaków wprowadzanych z klawiatury itp. Wszystkie te dane są dostępne dla operatorów poprzez link do serwerów kontroli Flame’a.

W późniejszym czasie operatorzy mogą zadecydować o załadowaniu dodatkowych modułów, które rozszerzą funkcjonalność Flame’a. W sumie jest ponad 20 modułów. Przeznaczenie większości z nich jest wciąż badane.

Jak zaawansowany jest Flame?

Przede wszystkim Flame jest ogromnym pakietem modułów, obejmującym po pełnej instalacji prawie 20 MB danych. Za względu na rozmiar szkodnik jest niezmiernie trudny do analizy. Powodem sporego rozmiaru Flame'a jest to, że zawiera on wiele różnych bibliotek (służących np. do kompresji (zlib, libbz2, ppmd) i manipulacji bazą danych (sqlite3)) wraz z maszyną wirtualną LUA.

LUA jest językiem skryptowym, który może zostać bardzo łatwo rozszerzony i podłączony do kodu C. Wiele części Flame'a posiada składnię logiczną wysokiego poziomu napisaną w LUA - wraz ze skutecznymi procedurami ataku i bibliotekami opracowanymi na bazie C++.

Efektywny kod LUA stanowi raczej małą część w porównaniu z całością kodu. W naszej ocenie rozwój kodu LUA (ponad 3000 linii), czyli stworzenie kodu i debugowanie, średnio zaawansowanemu deweloperowi zająłby około miesiąca.

208193530.png

Dodatkowo, istnieje kilka wewnętrznie używanych, lokalnych baz danych z zagnieżdżonymi zapytaniami SQL, wiele metod szyfrowania, różne algorytmy kompresji, oskryptowana instrumentacja zarządzania Windows (WMI) itp.

Uruchamianie i debugowanie tego złośliwego oprogramowania również nie jest proste, ponieważ nie jest to konwencjonalna aplikacja wykonywalna, ale kilka plików DLL, które są ładowane przy uruchomieniu systemu.

Ogólnie możemy powiedzieć, że Flame jest jednym z najbardziej złożonych cyberzagrożeń, jakie kiedykolwiek zostały wykryte.

Czym Flame różni się od innych trojanów i dlaczego jest bardziej wyrafinowany niż jakikolwiek inny backdoor? Czy robi jakieś rzeczy, które są zupełnie nowe? Przede wszystkim nietypowe jest użycie języka LUA w szkodliwym oprogramowaniu. To samo tyczy się dużego rozmiaru tego zestawu do ataku. Ogólnie rzecz ujmując, nowoczesne szkodliwe oprogramowanie ma niewielkie rozmiary i pisane jest w kompaktowych językach programowania, które sprawiają, że taki program można łatwo ukryć. Praktyka ukrycia szkodliwych funkcji przez zastosowanie dużej ilości kodu jest jedną z osobliwości Flame'a.

Dość nietypową funkcją jest zapisywanie danych audio z wewnętrznego mikrofonu komputera. Oczywiście istnieje inne złośliwe oprogramowanie, które jest w stanie nagrywać dźwięk, ale kluczową cechą Flame’a jest jego kompletność - zdolność do kradzieży danych na wiele różnych sposobów.

Kolejną ciekawą cechą Flame'a jest możliwość korzystania z urządzeń Bluetooth. Kiedy protokół Bluetooth jest dostępny i odpowiednia opcja zostanie uaktywniona w bloku konfiguracyjnym, Flame zaczyna gromadzić informacje na temat urządzeń wykrywanych w pobliżu zainfekowanej maszyny. W zależności od konfiguracji, może również zamienić zainfekowany komputer w przynętę czyniąc go dostępnym przez Bluetooth i dostarczyć ogólne informacje na temat stanu szkodliwego oprogramowania, zakodowane w informacji o urządzeniu.

Jakie są funkcje kradzieży informacji?

Chociaż wciąż analizujemy różne moduły programu, wiemy, że Flame jest w stanie nagrywać dźwięk za pomocą mikrofonu, jeśli takowy jest obecny. Przechowuje nagrany dźwięk w formacie skompresowanym, a robi to używając ogólnie dostępnej biblioteki.

Zapisane dane są regularnie wysyłane do centrum kontroli poprzez utajniony kanał SSL. Jesteśmy nadal na etapie analizy tej procedury, więcej informacji udostępnimy wkrótce na naszej stronie internetowej.

Szkodnik ma możliwość regularnego wykonywania zrzutów ekranu; co więcej, zdejmuje zrzuty ekranu kiedy uruchomione są “interesujące” aplikacje, np. komunikatory internetowe. Zrzuty ekranu zapisywane są w formacie skompresowanym i regularnie wysyłane do serwera kontroli - podobnie jak nagrania audio.

Wciąż analizujemy ten składnik. Podamy więcej informacji, kiedy tylko będą dostępne.

Kiedy stworzono Flame'a?

Twórcy Flame'a specjalnie zmienili daty utworzenia plików, aby badający to oprogramowanie nie byli w stanie podać prawdziwej daty ani czasu utworzenia szkodnika. Pliki są datowane na rok 1992, 1994, 1995 itp., ale jasne jest, że te daty są fałszywe.

Uważamy, że szkielet Flame'a powstał nie wcześniej niż w roku 2010 i nadal trwa jego aktywny rozwój. Jego twórcy stale wprowadzają zmiany w różnych modułach, ale jednocześnie nadal korzystają z tej samej architektury i nazw plików. Pewna liczba modułów została albo stworzona, albo zmodyfikowana w latach 2011 - 2012.

Według naszych danych byliśmy świadkami użycia Flame'a w sierpniu 2010 roku. Co więcej, możemy być pewni, że Flame był "na wolności" już w lutym / marcu 2010 roku. Możliwe, że istniała jeszcze wcześniejsza wersja, ale nie mamy konkretnych danych żeby to potwierdzić. Jednakże, prawdopodobieństwo takiego stanu rzeczy jest bardzo wysokie.

Dlaczego ten szkodnik nazywa się Flame? Jakie jest pochodzenie jego nazwy?

Szkodliwe oprogramowanie Flame jest obszernym zestawem narzędzi ataku, składającym się z wielu modułów. Jeden z głównych modułów został nazwany Flame - jest to składnik odpowiedzialny za atakowanie i infekowanie dodatkowych maszyn.

208193531.png

Czy jest to atak sponsorowany przez jakieś państwo? Czy może został zainicjowany przez grupę cyberprzestępczą lub haktywistów?

Obecnie w teatrze cyberwojennym istnieją trzy znane klasy graczy, którzy rozwijają malware i spyware: haktywiści, cyberprzestępcy oraz rządy państw. Flame nie został zaprojektowany do wykradania pieniędzy z kont bankowych. Różni się również od dość prostych narzędzi hakerskich i złośliwego oprogramowania, wykorzystywanego przez haktywistów. Tak więc, wykluczając haktywistów i cyberprzestępców, dochodzimy do wniosku, że Flame powstał z inicjatywy trzeciej klasy graczy. Dodatkowo, rozkład celów szkodnika (państwa znajdujące się na Bliskim Wschodzie), a także złożoność zagrożenia, nie pozostawiają wątpliwości, że jakieś państwo sponsoruje badania owocujące rozwojem Flame'a.

Kto jest za to odpowiedzialny?

Brak jest informacji, które pomogłyby powiązać Flame'a z rządem konkretnego państwa. A więc, tak jak w przypadku Stuxneta i Duqu, autorzy pozostają nieznani.

Dlaczego oni to robią?

Aby systematycznie gromadzić informacje dotyczące działań niektórych państw na Bliskim Wschodzie, takich jak Iran, Liban, Syria, Izrael itd. Oto mapa siedmiu krajów najbardziej dotkniętych infekcją:

208193524.png

Czy broń o nazwie Flame jest wymierzona w określone organizacje z zamiarem gromadzenia specyficznych informacji, które mogłyby zostać użyte w przyszłych atakach? Jakiego rodzaju danych i informacji szukają napastnicy?

Ze wstępnej analizy wynika, że operatorzy Flame'a poszukują dowolnego typu informacji - wiadomości e-mail, dokumentów, notatek, dyskusji w newralgicznych miejscach. Słowem - wszystkiego. Nie zaobserwowaliśmy żadnych konkretnych oznak wskazujących na szczególny cel, na przykład z branży energetycznej - co każe nam wierzyć, że Flame to kompletny zestaw narzędzi przeznaczony do ogólnych aktów cyberszpiegostwa.

Oczywiście, jak obserwowaliśmy w przeszłości, modułowe złośliwe oprogramowanie może być wykorzystane do wdrożenia poszczególnych składników, które mogą atakować urządzenia SCADA, ICS, krytyczne punkty infrastruktury itd.

W jakie branże lub organizacje celuje Flame? Czy są to zakłady kontroli przemysłowej / PLC / SCADA? Jakie są cele i jak dużo ich jest?

Nie wydaje się być określonego rodzaju organizacji, na które ukierunkowany jest Flame. Ofiary to zarówno osoby fizyczne, jak i niektóre organizacje państwowe i instytucje edukacyjne. Oczywiście zbieranie informacji na temat ofiar jest trudne z powodu rygorystycznych zasad gromadzenia danych osobowych, mających na celu ochronę tożsamości użytkowników.

Czy istnieje tylko jeden wariant Flame'a czy jest ich kilka?

Na podstawie informacji otrzymanych z Kaspersky Security Network obserwujemy "na wolności" różne wersje szkodnika - o różnych rozmiarach i zawartości. Oczywiście - przy założeniu, że szkodnik jest w fazie rozwoju od kilku lat - oczekuje się, że "na wolności" zostanie zaobserwowanych jeszcze więcej różnych wersji robaka Flame.

Dodatkowo, Flame składa się z różnych modułów, w sumie dwudziestu, które pełnią różne role. Konkretna infekcja Flamem może wykorzystywać 7 modułów, a inna np. 15. Wszystko zależy od rodzaju informacji, które mają zostać "wyrwane" ofierze oraz jak długo dany system pozostaje zainfekowany Flamem.

Czy główny serwer kontroli jest nadal aktywny? Czy istnieje kilka nadrzędnych serwerów kontroli? Co się dzieje gdy zainfekowana maszyna nawiązuje połączenie z serwerem kontroli?

Istnieje kilka serwerów kontroli, rozproszonych po świecie. Doliczyliśmy się około tuzina różnych domen kontroli, uruchomionych na kilku różnych serwerach. Mogą również istnieć inne pokrewne domeny, co może dać około 80 różnych domen, które są wykorzystywane przez Flame'a do kontaktu z centrami kontroli. Ze względu na ten fakt, bardzo trudnym zadaniem jest wyśledzenie miejsc rozmieszczenia poszczególnych serwerów.

Czy Flame został stworzony przez grupę odpowiedzialną za Duqu / Stuxneta? Czy istnieje podobieństwo kodu źródłowego lub inne cechy wspólne?

Jeżeli chodzi o rozmiar, Flame jest około 20 razy większy niż Stuxnet. Flame nie posiada żadnych większych podobieństw do Stuxneta / Duqu.

Dla przykładu, kiedy Duqu został wykryty, dla każdego kompetentnego badacza było jasne, że stoją za nim ci sami ludzie, którzy stworzyli Stuxneta na platformie określanej mianem “Tilded”.

Flame wydaje się być projektem uruchomionym równolegle ze Stuxnetem / Duqu, ale nie używającym platformy "Tilded". Istnieje jednak kilka przesłanek, które wskazują, że twórcy Flame'a mieli dostęp do technologii wykorzystanych w projekcie Stuxnet - takich jak użycie metody infekcji “autorun.inf”, wraz z jednoczesną eksploatacją luki bufora wydruku - co mogłoby wskazywać, że autorzy Flame'a mieli dostęp do tych samych exploitów, co twórcy Stuxneta.

Z drugiej strony, nie możemy wykluczyć, że obecne warianty Flame'a zostały rozwinięte po wykryciu Stuxneta. Możliwe jest, że twórcy Flame'a użyli publicznych informacji na temat metod dystrybucji Stuxneta i zaimplementowali je w robaku Flame.

Podsumowując, najprawdopodobniej szkodliwe oprogramowanie Flame i Stuxnet / Duqu zostało stworzone przez dwie odrębne grupy. Optujemy za tym, że Flame był projektem rozwijanym równolegle ze Stuxnetem i Duqu.

Mówiłeś, że Flame był aktywny od marca 2010 roku. Niemalże zbiega się to z czasem, w którym został wykryty Stuxnet. Czy Flame został użyty w tandemie ze Stuxnetem? Interesujący jest fakt, że oba szkodniki eksploatują luki bufora wydruku...

Jedna z najlepszych rad w każdym rodzaju operacji brzmi: "nigdy nie wkładaj wszystkich jajek do jednego koszyka". Wiedząc, że wcześniej czy później Stuxnet i Duqu zostaną wykryte, sensownie jest tworzyć podobne projekty - lecz oparte na kompletnie innej filozofii. W ten sposób, jeżeli jeden projekt zostanie odkryty, inny może być kontynuowany w ukryciu.

Dlatego wierzymy, że Flame to równoległy projekt, stworzony jako rozwiązanie awaryjne w przypadku, gdy inne zostaną wykryte.

W swojej analizie Duqu wspominałeś o “kuzynach” Duqu lub innych, pokrewnych formach złośliwego oprogramowania, które mogłyby istnieć. Czy Flame to jest konkretny przykład?

Zdecydowanie nie. “Kuzyni” Duqu bazowali na platformie "Tilded", użytej również w Stuxnecie. Flame nie używa platformy "Tilded".

Flame wygląda jak narzędzie do kradzieży danych, podobne do Duqu. Czy postrzegasz ten fakt jako część operacji wywiadowczej, prowadzącej do "uzbrojenia broni większego kalibru" podobnej do Stuxneta?

Operacja zbierania informacji, za którą stał Duqu, przeprowadzana była raczej na małą skalę i była ukierunkowana. Wierzymy, że na całym świecie było mniej niż 50 celów atakowanych przez Duqu - wszystkie z nich były wysoce wyspecjalizowane.

Flame jest o wiele bardziej rozprzestrzeniony niż Duqu, zaatakował tysiące ofiar na świecie.

Zakres celów również jest o wiele większy, obejmuje centra akademickie, prywatne firmy, konkretne osoby itd.

Według naszych obserwacji operatorzy Flame'a sztucznie utrzymują ilość zainfekowanych systemów na pewnym stałym poziomie. Można to porównać z sekwencyjnym przetwarzaniem - operatorzy infekują kilkadziesiąt ofiar, następnie analizują zebrane informacje, dezinstalują Flame'a z systemów, które nie są interesujące, a w jednym miejscu gromadzą systemy najcenniejsze z ich punktu widzenia. Po tym procesie rozpoczynają nową serię infekcji.

Co to jest Wiper i czy posiada jakieś powiązania z Flame'm? Jak bardzo jest destrukcyjny i czy operuje w tych samych krajach?

Szkodliwy program Wiper, który został zaraportowany przez kilka źródeł, pozostaje nieznany. Kiedy Flame został wykryty podczas domniemanych ataków Wipera, nie pojawiła się żadna informacja, która doprowadziłaby do powiązania Flame'a z atakami Wipera. Oczywiście, ze względu na złożoność Flame'a, w dowolnym czasie mogłaby zostać wdrożona w nim wtyczka do niszczenia danych; jednak, do tej pory nie zaobserwowaliśmy takiego działania.

Dodatkowo, systemy, które zostały poszkodowane w wyniku ataku Wipera są całkowicie nie do odzyskania - zakres szkód jest tak szeroki, że nie pozostaje absolutnie nic, co mogłoby zostać użyte do wyśledzenia ataku.

Jedynym krajem, w którym zaobserwowano działanie Wipera jest Iran. Flame został wykryty w wielu krajach regionu, nie tylko w Iranie.

Pytania na temat funkcji szkodliwego oprogramowania Flame

W jaki sposób Flame infekuje komputery i nośniki USB? Czy eksploatuje inne luki niż luka bufora wydruku, aby zapobiec wykryciu? Czy były jakiekolwiek ataki 0-Day?

Flame posiada dwa moduły przeznaczone do infekowania modułów USB nazwane “Autorun Infector” i “Euphoria”. Nie prześledziliśmy jeszcze ich działania, być może dlatego, że są wyłączone w danych konfiguracyjnych. Niemniej jednak w kodzie Flame'a istnieje możliwość infekowania nośników USB. Infekcja realizowana jest z użyciem dwóch metod:

  1. Infekcja autostartu: metoda “Autorun.inf” z wczesnych wersji Stuxneta, wykorzystująca “oszustwo” “shell32.dll”. Kluczowym motywem tutaj jest to, że metoda ta była wcześniej wykorzystana w Stuxnecie i nie stwierdzono jej obecności w żadnym innym złośliwym oprogramowaniu.
  2. Euphoria: rozprzestrzenia się na nośnikach używając katalogu “skrzyżowanego”, który zawiera moduły szkodnika i plik LNK, który uruchamia infekcję kiedy tylko katalog zostanie otwarty. Nasze próbki zawierały nazwy plików, ale nie zawierały samego pliku LNK.
W dodatku do powyższych funkcji Flame posiada zdolność replikacji poprzez sieć lokalną. W tym celu wykorzystuje:
  1. Lukę bufora wydruku MS10-061 eksploatowaną przez Stuxneta - przy użyciu specjalnego pliku MOF, wykonywanego na atakowanym systemie przy pomocy WMI.
  2. Zdalne zadania.
  3. Kiedy zostanie uruchomiony przez użytkownika posiadającego prawa administracyjne kontrolera domeny, Flame jest w stanie atakować inne maszyny w sieci: szkodnik tworzy konta użytkownika ze wstępnie zdefiniowanym hasłem, których następnie używa do pozyskania możliwości skopiowania swoich modułów na atakowane komputery.

208193529.png

Na dzień dzisiejszy nie zaobserwowaliśmy żadnych oznak 0-day; jednak, robak jest znany z zainfekowania przez sieć w pełni zaktualizowanych systemów operacyjnych Windows 7, co może wskazywać na obecność 0-day.

Czy szkodnik jest zdolny do samopowielania jak Stuxnet? Czy może rozprzestrzenia się w bardziej kontrolowany sposób jak Duqu?

Część replikacyjna jest kontrolowana przez operatora, tak jak to miało miejsce w przypadku Duqu. Replikacja jest również nadzorowana z poziomu pliku konfiguracyjnego bota. Większość procedur infekcji posiada liczniki wykonanych ataków, które ograniczają liczbę ataków możliwych do wykonania.

Dlaczego program zawiera kilka megabajtów kodu? Jaka funkcjonalność Flame'a sprawia, że jest on większy od Stuxneta? Jak to się stało, że taki duży plik nie był wykrywany?

Główną przyczyną tego, że szkodnik nie był wykrywany przez długi czas jest właśnie jego duży rozmiar. Ogólnie rzecz ujmując, dzisiejsze szkodliwe oprogramowanie posiada niewielkie rozmiary i jest ukierunkowane. Łatwiej jest ukryć mały plik niż duży moduł. Dodatkowo, pobranie 100 kilobajtów przez niepewną sieć ma dużo większą szansę powodzenia niż pobranie 6 MB.

Moduły Flame’a "ważą" około 20 MB. Wiele z nich to biblioteki przeznaczone do obsługi ruchu SSL, połączeń SSH, podsłuchiwania, ataku, przechwytywania komunikacji itp. Należy zwrócić uwagę na to, że analiza 500 kilobajtów kodu Stuxneta zajęła nam kilka miesięcy. Pełne zrozumienie 20 MB kodu Flame'a zajmie pewnie około roku.

Czy Flame posiada wbudowany licznik samounicestwienia ("Time-of-Death"), taki jaki posiadał Duqu czy Stuxnet?

Flame posiada wiele wbudowanych liczników. Monitorują one pomyślne połączenia z centrami kontroli, częstotliwość poszczególnych operacji kradzieży danych, liczbę udanych ataków itd. Chociaż w oprogramowaniu nie ma licznika samounicestwienia, operatorzy mają możliwość przesłania specjalnego modułu usuwającego Flame'a (zwanego “browse32”), który kompletnie odinstaluje szkodnika z systemu, usuwając nawet najdrobniejsze ślady jego obecności.

Co z plikami JPEG i zrzutami ekranu? Czy je też kradnie?

Szkodnik ma możliwość regularnego wykonywania zrzutów ekranu; co więcej, zdejmuje zrzuty ekranu kiedy uruchomione są “interesujące” aplikacje, np. komunikatory internetowe. Zrzuty ekranu zapisywane są w formacie skompresowanym i regularnie wysyłane do serwera kontroli - podobnie jak nagrania audio.

Komponent odpowiedzialny za wykonywanie zrzutów ekranu jest wciąż analizowany. Więcej informacji podamy, kiedy tylko będą one dostępne.

W ciągu najbliższych tygodni opublikujemy pełną listę plików Flame'a.

Co powinienem zrobić, jeśli wykryję infekcję i jestem gotów przyczynić się do rozwoju badań, przesyłając próbki złośliwego oprogramowania?

Będziemy niezmiernie wdzięczni za wszelkie informacje przesłane na adres mailowy utworzony wcześniej na potrzeby śledztwa w sprawie Stuxneta / Duqu: stopduqu@kaspersky.com.

Aktualizacja 1 (28 maja 2012):

Zgodnie z naszą analizą, szkodliwe oprogramowanie Flame jest tym samym zagrożeniem, które badane jest pod nazwą “SkyWiper” przez laboratorium CrySyS Lab oraz pod nazwą "Flamer" przez grupę Iran Maher CERT.