Jak to jest z tym Stuxnetem, Flamem, Duqu?

Jak doszło do tego, że infekcje miały miejsce na komputerze, na którym zainstalowany był program antywirusowy?
Dlaczego nie zadziałał?
Czy ataki na systemy SCADA powinniśmy traktować jak ataki na typowe komputery?
Czy głośna ostatnio operacja Red October faktycznie jest tak groźna, jak ją przedstawiają w sieci, czy może powinniśmy spojrzeć na nią z zupełnie innej strony?

W niniejszym artykule przyjrzymy się tym zagadnieniom i spróbujemy ustalić związek między nimi.

Czym jest SCADA?

Na początek dobrze już znany i zbadany Stuxnet. Żeby lepiej zrozumieć, czym jest i jak atakował, należy najpierw wyjaśnić, czym jest system SCADA.

SCADA (Supervisory Control And Data Acquisition) to system informatyczny służący do zarządzania i nadzorowania pracy systemu przemysłowego, procesu technologicznego lub produkcyjnego. Systemy te to cała infrastruktura monitorowania i kontrolowania pracy sprzętu i aparatury, zbieranie i archiwizowanie wyników, wizualizacja oraz rejestrowanie przebiegu pracy danego systemu. SCADA zbiera dane z czujników, aparatury pomiarowej oraz sterowników PLC (Programowalny Kontroler Logiczny) podłączonych bezpośrednio do systemu produkcyjnego.

W mediach można znaleźć nieco na wyrost używane określenie, że Stuxnet został stworzony do ataku na systemy SCADA. Na wyrost, ponieważ SCADA są systemami zamkniętymi, a Stuxnet atakował komputery i serwery z systemem operacyjnym Windows, które jedynie były połączone ze sterownikami PLC. Szkodnik ten był spreparowany na konkretny sprzęt – wyszukiwał w atakowanym systemie sterownik kontrolera Siemens SIMATIC WinCC/ Step 7. Atakowany komputer nie był więc pełną infrastrukturą SCADA, a tylko komputerem, który kontroluje pracę określonej jednostki PLC. Podstawową metodą ataku Stuxneta był błąd systemów Windows w przetwarzaniu plików skrótów *.lnk na nośnikach wymiennych. Temat i wektor ataku został przeze mnie szeroko opisany na blogu już w 2010 roku: http:// blog.avg.pl/2010/07/pendrive-znow-zagrozone/.

Stuxnet uderza

Teraz pora na odpowiedź: gdzie w momencie ataku były antywirusy? Znane do tej pory metody ataków z wykorzystaniem nośników wymiennych niemal zawsze opierały się na wykorzystaniu pliku autorun. inf. Twórcy Stuxneta sprytnie połączyli w jednym szkodliwym programie kilka technik – exploitowali nieznaną do tej pory (również programom antywirusowym) metodę ataku z nośnika wymiennego. Stworzyli takie zagrożenie, które atakowało tylko po znalezieniu w systemie zainstalowanego sterownika PLC Siemensa. Jeśli tego sterownika nie było, malware nie uaktywniał się, lecz dokonywał samozniszczenia. Sprawę dodatkowo komplikowała zmyślna konstrukcja Stuxneta oparta na aż pięciu expolitach, z których cztery były 0-day`ami. Po dokładniejszej analizie ustalono, że Stuxnet potrafił także przeprowadzić atak, wykorzystując nieznane wtedy (w 2010 roku) luki w obsłudze NFS i WebDAV.

Stuxnet to pierwszy znany exploit na systemy przemysłowe, który w praktyce pokazał, że cyberterroryzm to dziś jedno z najpoważniejszych zagrożeń. Wystarczy wskazać fakt, iż wspomniane sterowniki PLC Siemensa wykorzystywane są w wirówkach gazowych i wirówkach do wzbogacania uranu, których używa np. Iran w swoim przemyśle nuklearnym. Stuxnet atakując, celował w konwertery częstotliwości w tych sterownikach, co prowadziło do zmiany prądu sterującego, a w rezultacie do przyśpieszenia pracy wirówek. Odpowiednio dopracowany atak, odpowiednie przesterowanie pracy tych sterowników mogłoby prawdopodobnie doprowadzić do wypadku i bardzo poważnej awarii.

Młodszy brat Stuxneta

Rozpracowanie Stuxneta nie było trudne, gdyż zdaniem ekspertów jego kod był słabo zabezpieczony – posiadał podstawowe metody unikania detekcji przez skanery heurystyczne i nawet nie posiłkował się zaciemnieniem kodu, zupełnie jakby twórcy chcieli, by został szybko wykryty. Nie trzeba było długo czekać, aby pojawiły się skuteczne metody wykrywania i usuwania Stuxneta, więc temat przycichł. Jednak tylko do momentu, gdy pojawił się Duqu. Po analizie porównawczej kodu pewne już jest, że to malware stworzone przez autorów Stuxneta. Duqu wykorzystywał do ataku nieznaną wcześniej lukę i exploitował kernel systemów Windows. Luka to błąd parsowania czcionek typu TrueType, które z niewiadomego powodu przetwarzane były w ring0 (kernel) MS. Więcej informacji na temat tej luki można znaleźć pod adresem: http://technet.microsoft.com/en-us/security/advisory/2639658. Malware instalował się jako podpisany cyfrowo sterownik jądra – jako sterownik firmy JMicron, a do podpisu używał skradzionych kluczy prywatnych firmy C-Media Electronics.

Duqu nie atakował systemów SCADA, nie poszukiwał sterowników PLC. Było to narzędzie stworzone do przeprowadzenia ataku ukierunkowanego na systemy wykorzystywane w przemyśle. Jego celem nie był sabotaż, lecz wykradanie danych z komputerów, które zbierał w postaci zrzutów ekranu i przesyłał w zaszyfrowanej transmisji na zdalny serwer.

Istnieją dwa warianty Duqu, różnice w ich konstrukcji i działaniu obrazuje diagram 1.

Jak to jest z tym Stuxnetem, Flamem, Duqu ?
Diagram 1- Różnice między wariantami Duqu, Źródło: securelist.com

Podobnie jak w przypadku Stuxneta, atak Duqu był wymierzony w państwa Azji: Iran, Sudan, Indie i inne.

Nadal nie wiadomo, do czego mogły służyć wykradzione dane, bowiem nie do końca jest jasne, jakie informacje wyciekły.

Gdzie zatem były antywirusy?

Duqu atakował przez ring0, a więc na poziomie kernela systemu - poziomie, do którego skanery antywirusowe zwyczajnie nie mają dostępu.

O Flame ’ie słów kilka

Podobnie jak dwa opisane wcześniej przypadki, Flame był wykorzystany w ataku ukierunkowanym na państwa Azji – Liban, Iran, Izrael, Sudan, Egipt, Syria. Został on odkryty pod koniec maja 2012 roku i był jeszcze bardziej złożony niż Stuxnet – zawierał dwadzieścia razy więcej kodu (cały, kompletny Flame zajmuje 20 MB)! Jak pokazała analiza, szkodnik ten działał od 5 lat.

Flame jest obecnie uważany za najbardziej skomplikowane malware, o najszerszym spektrum działania, jakie kiedykolwiek wykryto. Obok podstawowych metod zbierania gromadzenia danych, jakie wykorzystywał np. Duqu (zrzuty ekranu, keylogging), Flame potrafił aktywować mikrofony w komputerach, rejestrować i wysyłać nagrane dźwięki, a nawet namierzać urządzenia bluetooth, jeśli w zaatakowanym komputerze dostępny był wymagany interfejs.

Atak z użyciem Flame’a objął około 5 tysięcy komputerów, niemal wszystkie z nich były maszynami instytucji badawczych lub firm komercyjnych powiązanych z sektorem naukowym. Pierwsze informacje o namierzeniu Flame`a ujawnił irański MAHER (ich odpowiednik CERT) i wykrył go właśnie u siebie, w Iranie.

Flame wykorzystywał tak skomplikowany wektor ataku – kolizję w funkcjach skrótu MD5 – że został nazwany prze niektórych ekspertów za najbardziej zaskakujący atak w historii. Ogólną zasadę działania ataku kolizyjnego obrazuje diagram 2.

Jak to jest z tym Stuxnetem, Flamem, Duqu ?
Zasada działania kolizji w funkcji skrótu MD5,
Grafika: Raport Marca Stevensa, Arjena Lenstra oraz Benne de Wegera o atakach kolizyjnych na MD5
http://marc-stevens.nl/research/papers/IJACT12-StLdW.pdf

W skrócie atak kolizyjny to wygenerowanie dwóch różnych od siebie ciągów znaków, które po przetworzeniu dadzą na wyjściu taką samą sumę kontrolną.

Z pomocą omówionego ataku kolizyjnego Flame podrobił i wykorzystał do podpisania swojego kodu certyfikaty Microsoftu i dzięki temu był w stanie spoofować usługę Windows Update. Po podstawieniu się w miejsce usługi Windows Update Flame pobierał resztę kodu – wspomniane wcześniej prawie 20 MB – dzięki czemu mógł odbierać i wysyłać kolejne dane. W odpowiedzi na podrobienie przez malware certyfikatów Microsoft wydał Advisory i unieważnił je: http://technet.microsoft.com/en-us/security/ advisory/2718704.

Analiza ekspertów zarówno w kwestii metody ataku, nieznanych luk wykorzystanych do infekcji, jak i wybitnie skomplikowanego kodu zakończyła się wnioskami, że za szkodnikiem Flame stoi sztab najwyższej klasy naukowców, programistów oraz matematyków. Stworzenie szkodliwego oprogramowania tej klasy wykracza poza możliwości typowych autorów malware.
Z racji stopnia skomplikowania szkodnika reszta kodu pobieranego po udanym ataku była całkowicie niewykrywalna dla skanerów antywirusowych. Skuteczny atak z podrobionym certyfikatem załatwiał sprawę skanerów – plik był poprawnie podpisany ważnym certyfikatem Microsoftu, więc był uznawany za bezpieczny.

Obecnie Flame już nie istnieje. Robak unicestwił się sam po otrzymaniu z serwerów sterujących dodatkowego komponentu browse32.ocx. Obecnie istnieją podejrzenia, że jeszcze nie wszystkie serwery C&C (command and control) Flame`a zostały wyłączone, a autorzy zacierają po sobie ślady.

Polowanie na Czerwony Październik

Red October to odkryty kilka tygodni temu przez Kaspersky Lab botnet, wokół którego nieco przesadnie zrobiło się duże zamieszanie.

Red October jest botnetem, który atakuje exploitem wykorzystującym do infekcji znane już luki CVE-2009-3129 (MS Excel), CVE-2010- 3333 (MS Word) i CVE-2012-0158 (MS Word). Tym razem atak odbywa się nie przez exploita 0-day, a przez tzw. spear phishing, czyli przy użyciu akcji użytkownika (np. otwarcie załącznika w wiadomości od nadawcy, któremu odbiorca ufa). Wiadomość oczywiście jest spreparowana, a załącznik jest arkuszem Excela lub dokumentem Worda, który zawiera exploita na wymienioną wyżej lukę.

Atak nazwany przez Kaspersky Lab Red October jest wymierzony w komputery naukowców, wojskowych, polityków, finansistów i - w przeciwieństwie do poprzednich przykładów - jego celem jest możliwie największa liczba krajów. Jak wynika z analiz, osoby stojące za tym atakiem nie mają konkretnego celu, lecz zwyczajnie chcą zebrać maksymalną ilość danych. Przygotowana przez Kaspersky Lab grafika świetnie obrazuje skalę tego botnetu.

Jak to jest z tym Stuxnetem, Flamem, Duqu ?
Skala botnetu Red October, Grafika: Kaspersky Lab

Po wstępnych analizach można stwierdzić, że kod botnetu Red October jest w pewnym sensie rozwinięciem architektury rodziny exploitów wchodzących w skład botnetu Zeus, który był dość długo aktywny.

Jak zaznaczyłem na początku, chaos wokół tego botnetu jest na wyrost. Zbierane informacje są dość specyficzne, mają jedynie wartość (teoretycznie) wywiadowczą lub szpiegowską. Trzeba tu także zaznaczyć, że botnet działał przynajmniej od 2007 roku. Ważne jest także to, że prywatne komputery są bezpieczne, bo nie ma na nich nic ciekawego. Nikt nie będzie preparował e-maila ani załącznika, aby nas zainteresować i zainfekować celem zdobycia naszych zdjęć z wakacji albo z urodzin pociechy.

Dlaczego Red October nie został wykryty przez antywirusy? Prawdopodobnie dlatego, że botnety wykorzystują różne wersje malware’u, różne typy ataków, aktualizują swój kod, dostosowują go do możliwości ataku z użyciem innych luk.

Nie da się jednoznacznie określić, jaka ilość malware`u usuwanego przez antywirusy mogła być powiązana z Red October. To, że odkryto sterujący nim botnet, ma się nijak do wykrywania infekcji przez antywirusy. Obecnie trwa analiza i klasyfikacja, które znane lub nowe infekcje są powiązane z RO.

Jak to jest z tym Stuxnetem, Flamem, Duqu ?
Schemat ataku exploita wchodzącego w skład botnetu Red October

Wszystkie drogi prowadzą do… cyberterroryzmu

Co zatem łączy Stuxneta, Duqu, Flame`a i botnet Red October?

Cyberterroryzm. Pierwszy z nich, czyli Stuxnet, był zdolny do skutecznego sabotażu systemów przemysłowych, drugi wykradał dane z systemów informatycznych przemysłu, trzeci był najbardziej zaawansowanym malware zbierającym dane oraz wykorzystującym najbardziej skomplikowany wektor ataku, jaki odkryto.

Ostatni z nich to wielka sieć zbierania przeróżnych danych z komputerów pracowników sektora przemysłu, finansowego oraz politycznego. Nie trzeba wspominać, jak cenne i ważne mogą to być informacje.

Wszystkie wymienione w tym tekście infekcje i botnety to „wyższa półka” - ataki wymierzone przeciw konkretnym państwom lub regionom, ataki celujące w dane szpiegowskie i wywiadowcze. Wyłania się z tego obraz malware’u, które może stać się bronią równie groźną, jak broń konwencjonalna. To, co do niedawna było w sferze teorii, filmów i książek sci-fi czy cyberpunkowych, już się urzeczywistniło.

Gdzie w tym wszystkim są antywirusy?

Antywirusy jednak czuwają. Robią to, co do nich należy – chronią przed infekcjami użytkowników domowych i biznesowych. Dlaczego nie działają w przypadku takich infekcji? Bo, jak już udowodniłem, jest to niesamowicie skomplikowany malware, atakujący w precyzyjny, wręcz chirurgiczny sposób. Szkodliwe programy używają nieznanych wcześniej luk 0-day, atakują na poziomie ring0 - czyli tam, gdzie antywirus nie ma możliwości działania - lub wykorzystują wybitnie skomplikowany atak kolizyjny, z którym po raz pierwszy zetknęliśmy się przy okazji Flame’a.

Autorem tekstu jest Arkadiusz Zakrzewski, specjalista pomocy technicznej AVG

Cookies
DLP expert 1/2013

Tekst pochodzi z magazynu DLP expert 1/2013 (4)- który bezpłatnie można pobrać ze strony: https://www.dlp-expert.pl/magazine

Źródło: Redakcja