13. 6. 2017

Industroyer je sofistikovaný malware určený k narušení činností průmyslových řídicích systémů, především systémů používaných v elektrických rozvodnách.

Jedná se o zvláště nebezpečnou hrozbu, malware je schopný přímo ovládat vysokonapěťové přepínače. K tomu používá implementaci průmyslových komunikační protokolů, které se používají po celém světě – v infrastruktuře rozvodu elektrické energie, v systémech řízení dopravy i v jiných systémech kritické infrastruktury (voda, plyn a jiné). Vysokonapěťové přepínače uvedeny výše jsou digitálními ekvivalenty analogových ovládacích zařízení a z technického hlediska mohou být navrženy tak, aby obstarávaly nejrůznější funkce v elektrických rozvodnách. Výsledkem může být vypnutí rozvodu elektrické energie, kaskádové poruchy i vážnější poškození elektrického rozvodného zařízení. Závažnost se může lišit typem elektrické rozvodny. Netřeba dodávat, že narušení těchto systémů může přímo či nepřímo ovlivnit fungování kritické infrastruktury.

Nebezpečnost malwaru spočívá v tom, že používá komunikační protokoly způsobem, kterým byly navrženy. Problém je v tom, že komunikační standardy byly navrženy před desítkami let, kdy byly průmyslové systémy izolovány od okolního světa, a tudíž nebyly navrženy s ohledem na kybernetickou bezpečnost. To znamená, že útočníci nemuseli hledat zranitelnosti v komunikačních protokolech – vše, co potřebovali, bylo naučit malware „mluvit“ těmito standardy.

Potenciálně napadnutelné systémy jsou technologie založené na operačním systému Microsoft Windows využívající komunikační protokoly uvedené v následujících normách: IEC 60870-5-101, IEC 60870-5-104, IEC 61850 a OLE pro Process Control Data Access (OPC DA).

Neexistují žádné zjevné podobnosti kódu mezi BlackEnergy a Industroyer.

 Industroyer scheme 1 1024x774

Obr. 1 Škodlivý kód je modulární a je složen z dílčích komponent [1]

"MAIN BACKDOOR"

Komponenta zajišťuje komunikaci mezi útočníky a ostatními komponentami malwaru. Infikovaná stanice přijímá povely přes vzdálený C&C server prostřednictvím HTTPS protokolu; čas počátku komunikace s C&C serverem je možné nastavit.

Malware předává útočníkům doplňující informace o infikované stanici s unikátním identifikátorem pro její dohledání.

Na základě analýzy společnosti ESET bylo zjištěno, že malware pro komunikaci využívá proxy adresy definované na úrovni zdrojového kódu. Dá se tedy usuzovat, že analyzovaný vzorek byl napsán pro konkrétní podnikovou síť a v jiné společnosti by tímto způsobem nefungoval.

"ADDITIONAL BACKDOOR"

Jedná se o podpůrnou komponentu zajišťující záložní přístup k infikovaným stanicím, pokud by byla komponenta "Main backdoor" odhalena.

Je využívána podvržená aplikace "Poznámkový blok" (Windows Notepad), komunikující s útočníky prostřednictvím odlišného C&C serveru oproti "Main backdoor".

"LAUNCHER COMPONENT"

Komponenta funguje jako manažer spravující spouštění dalších součástí malwaru. Zajišťuje například spuštění kódu pro stahování payloadu v předem definovaném čase a stará se o přidělování systémových prostředků pro procesy malwaru.

"101 PAYLOAD COMPONENT"

Přenášený kód je vázán na soubor "101.dll", pomocí kterého je provedena implementace komunikačních protokolů dle "IEC 60870-5-101".

Malware může pomocí uvedeného standardu komunikovat s integrovanými řídicími zařízeními prostřednictvím COM portů a cyklicky měnit stavové proměnné. Komunikace je záměrně omezena na určitý počet zařízení v určitém časovém intervalu, aby nedošlo ke kolizi s legitimním komunikačním procesem.

"104 PAYLOAD COMPONENT"

Přenášený kód je vázán na soubor "104.dll", pomocí kterého je provedena implementace komunikačních protokolů dle "IEC 60870-5-104" - rozšíření "IEC 101" pro TCP/IP sítě.

Po spuštění komponenty dojde k načtení souboru s operačními instrukcemi pro jednotlivá koncová zařízení. Malware se pokusí následně v rámci operačního systému ukončit legitimní komunikační procesy a vytvořit nová komunikační vlákna pro definovaná koncová zařízení.

"61850 PAYLOAD COMPONENT"

Komponenta se vyskytuje jako samostatný spustitelný nástroj "61850.exe" nebo přenášený soubor "61850.dll".

Kód implementuje vybrané komunikační standardy z rodiny "IEC 61850". Po spuštění se snaží načíst instrukční soubor. V případě jeho nenalezení se pokouší na základě konfigurace připojených síťových adaptérů určit IP rozsahy dle síťových masek. Rozsahy jsou poté prohledávány a probíhají pokusy navazovat spojení na port 102.

V získaných odpovědí od koncových prvků jsou vyhledávány specifické textové řetězce, signalizující přítomnost zařízení pro ovládání výkonových přepínačů. Uvedené informace jsou uloženy do logovacího souboru.

"OPC DA PAYLOAD COMPONENT"

Zajišťuje implementaci datového modelu OPC pomocí samostatně spustitelného nástroje "OPC.exe" nebo přenášeného souboru "OPCClientDemo.dll".

Kód se po spuštění pokouší nalézt OPC servery dostupné přes danou síť, ze kterých následně vyčítá tabulky definovaných datových objektů. Na základě vyčtených názvů jednotlivých položek OPC serveru mohou útočníci určit typ dodávaného řešení pro řízení části rozvodné soustavy. Kód dále umožňuje změnu parametrů v datovém objektu OPC serveru, sesbírané informace jsou ukládány do logovacího souboru.

"DATA WIPER COMPONENT"

Komponenta se vyskytuje v souborech "haslo.dat" nebo "haslo.exe", jejím cílem je zametání stop a ztížení obnovení stanic po útoku.

Po spuštění kódu dojde k přepsání specifických klíčů v registrech operačního systému, které způsobí nefunkčnost OS po dalším spuštění. Dojde k vymazání části obsahu na připojených discích, některá data jsou záměrně přepisována. Speciálně jsou mazány soubory s předem definovanými příponami, které mohou mít souvislost s řídicím systémem. Postupně jsou ukončovány systémové procesy a v závěru dochází k pádu operačního systému.

DOPLŇUJÍCÍ NÁSTROJE:

Modulární malware dále obsahuje pomocný nástroj "port scanner tool", který je využíván výše uvedenými komponentami.

Dále je zastoupen speciální nástroj pro DoS útok, využívající zranitelnosti "CVE-2015-5374". Po jeho spuštění přestanou prvky Siemens SIPROTEC odpovídat na dotazy a pro obnovení komunikace je nutné provést jejich restart manuálně.

ZÁVĚR

Industroyer je moderní, vysoce přizpůsobitelný malware, který může být použit k útoku na jakékoliv systémy průmyslového řízení, využívající uvedené komunikační protokoly. Nicméně některé komponenty v analyzovaných vzorcích byly navrženy tak, aby cílily na konkrétní průmyslovou technologii – příkladem je systém Siemens SIPROTEC používaný v elektrických rozvodnách či systémy rozvodu elektrické energie od společnosti ABB.

Autoři malwaru mají hluboké znalosti v oblastech řídicích systémů a používaných komunikačních protokolů.

LITERATURA

[1] ANTON CHEREPANOV WIN32/INDUSTROYER A new threat for industrial control systems, https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf

[2] ANTON CHEREPANOV Industroyer: Biggest threat to industrial control systems since Stuxnet,  https://www.welivesecurity.com/2017/06/12/industroyer-biggest-threat-industrial-control-systems-since-stuxnet/