Stuxnet dużo starszy, niż początkowo myślano

dodał 26 lutego 2013 o 21:00 w kategorii Włamania, Złośniki  z tagami:
Stuxnet dużo starszy, niż początkowo myślano

Do tej pory uważano, że odkryty w czerwcu 2010 Stuxnet, wyrafinowany wirus atakujący irańskie wirówki jądrowe, powstał w roku 2009. Symantec opublikował właśnie informacje o odkryciu innej, starszej wersji wirusa, pochodzącej z roku 2007.

Minęło ponad 2,5 roku od odkrycia wirusa, który, wykorzystując kilka błędów typu 0-day, infekował i modyfikował systemy sterowania przemysłowego irańskich instalacji wzbogacania uranu. Mogło by się wydawać, ze przez ten czas wirus został zbadany i przeanalizowany na wszystkie możliwe sposoby i nie da się o nim powiedzieć nic nowego (nie licząc prób zidentyfikowania autorów oprogramowania). Okazuje się jednak, że uwadze badaczy, zajmujących się analizą tego zagrożenia, umknęła wcześniej pierwotna wersja wirusa, która powstała co najmniej dwa lata przed swoim młodszym, słynniejszym bratem.

Chwilę temu Symantec opublikował bardzo ciekawy raport, w którym opisuje Stuxneta w wersji 0.5. Do tej pory znane były wersje 1.001, 1.100 oraz 1.101, stworzone w latach 2009 – 2010. Wersja odkryta przez Symanteca może być znacznie starsza – pierwszy raz została wysłana do serwisu VirusTotal w październiku 2007, a domeny serwerów C&C, z którymi się kontaktowała, zostały zarejestrowane w październiku 2005. Co ciekawe, cztery domeny, pod którymi ukrywały się serwery sterujące, udawały stronę agencji reklamowej. Sam wirus został tak zaprogramowany, by przestał się rozmnażać w lipcu 2009 oraz zerwał komunikację z serwerami sterującymi w styczniu tego samego roku.

Wersje Stuxnetu (źródło: Symantec)

Wersje Stuxnetu (źródło: Symantec)

Wersja 0.5 nie korzystała z błędów typu 0-day w systemie Windows. Jedynym mechanizmem służącym rozmnażaniu się wirusa było zarażanie plików projektów Step 7, służących do programowania wirówek wzbogacających uran. Mimo, iż wirus przestał się rozmnażać już ponad 3 lata temu, Symantec nadal wykrywał jego obecność na komputerach użytkowników na całym świecie. Jak można się łatwo spodziewać, prawie połowa odkrytych infekcji została zlokalizowana w Iranie.

Rozmieszczenie wykrytych egzemplarzy wersji 0.5 (źrodło: Symantec)

Rozmieszczenie wykrytych egzemplarzy wersji 0.5 (źródło: Symantec)

Oprócz ilości wykorzystywanych błędów typu 0-day, najistotniejszą różnicą między wersją 0.5 a późniejszymi jest rodzaj przeprowadzanego ataku. O ile wersje późniejsze miały za zadanie zmieniać prędkość obrotów wirówek, o tyle celem wersji 0.5 była zmiana ciśnienia gazu, zasilającego wirówki. Sam atak przeprowadzany był wielostopniowo – zaczynając od zidentyfikowania parametrów atakowanej instalacji (by potwierdzić, że na pewno jest to farma wirówek w zakładzie Natanz, służących do wzbogacania uranu), poprzez nagrywanie prawidłowych sekwencji sygnałów, wyczekiwanie na odpowiedni moment do ataku oraz precyzyjne podwyższanie ciśnienia gazu ponad bezpieczny poziom, przy jednoczesnym wysyłaniu do centrum sterowania komunikatów o niezmienionym przebiegu procesu. Szczegółowy opis poszczególnych etapów znajdziecie w raporcie Symanteca (jeśli nie lubicie czytać, to dostępna jest też wersja filmowa).

Schemat ataku (źródło: Symantec)

Schemat ataku (źródło: Symantec)

Czy wersja 0.5 spełniła swoje zadanie? Jedną z przesłanek, sugerujących częściowy sukces, jest spadek produkcji wzbogaconego uranu zaobserwowany w momencie, gdy wirus mógł rozpoczynać swoje działanie. Najwyraźniej jednak sukces nie był wystarczający, ponieważ wprowadzono kolejne wersje programu. Nie tylko zmieniały one sposób wpływania na przebieg procesu (przez podnoszenie i obniżanie prędkości wirowania), ale także dużo bardziej agresywnie się rozmnażały, wykorzystując liczne luki w systemie Windows. Doprowadziło to w końcu do ich wykrycia oraz – pośrednio – do namierzenia również starszej wersji. Prawdopodobnie istniały także inne wersje wirusa, jednak ich zlokalizowanie wydaje się mało prawdopodobne.

PS. Przez zbieg okoliczności ciekawy artykuł o Stuxnecie pojawił się dzisiaj w serwisie IEEE. Polecamy,