Analýza útoku na E Corp z pilotní epizody

Analýza útoku na E Corp z pilotní epizody

22.7.2015 10:00


Filmy a seriály často dělají z hackingu soutěže v rychlosti psaní na klávesnici a vtipnosti vizuálních efektů na obrazovce. Mr. Robot se však od těchto seriálů odlišuje v jeho realistickém pojetí. Přesvědčí vás o tom rozbor útoku na E Corp z pilotní epizody.


Útok na servery E Corpu začíná v sobotu okolo třetí hodiny ranní. Po sledování Michaela Hansena se Elliot vydává zpět domů, ale plány mu zcela změní telefonát Angely.

Elliot: Děje se něco, Angelo?
Angela: Musíš přijít do AllSafe.
Elliot: Co tam děláš ve tři ráno?
Angela: Zase napadli servery Evil Corpu, ale teď je to zlý, je to DDoS útok.
Elliot: Volala jsi Lloydovi? Má službu.
Angela: Jo, už je tady.
Elliot: Mluví s jejich technickým oddělením?
Angela: Ano, ale zatím na nic nepřišli. Podle mě to Lloyd nezvládne. Gideon mi ten účet svěřil teprv nedávno, nemůžu to podělat. Potřebuju tě. Prosím
Elliot: Hned tam budu.

DoS útok

Denial of Service (DoS) útok (česky odmítnutí služby) má donutit server, aby odmítal jakékoliv požadavky jeho uživatelů, kteří po něm vyžadují běžné služby. Představte si, že potřebujete někomu nutně poslat dopis. Pošlete ho, ale v té samé chvíli někdo pošle dalších 50 milionů stejně velkých dopisů. Když pošťák může doručit do schránky maximálně sto takových dopisů, je pravděpodobné, že ve schránce adresáta skončí pouze odpad a váš dopis zůstane nedoručen. Jako poštovní schránky fungují i servery. Pokud server dokáže zvládnout požadavky 10 milionů uživatelů a útočník ho zahltí objemem požadavků odpovídajícímu 100 milionů uživatelů, poté uživatelé serveru skončí s errorem na obrazovce, když se snaží na server připojit.

DDoS útok

Distributed Denial of Service (DDoS) útok je stejný jako DoS útok, ale je iniciovaný přes více zařízení. Útočníci mají obvykle přístup k tisícům počítačů, které v jednu chvíli přetěžují cílený server. Populární typ útoku je například reflection attack, který se vyznačuje tím, že útok probíhá přes několik dalších serverů, které mají mnohem větší potenciál pro útok. Vrátíme se zpátky k příkladům s dopisy. Schránka adresáta má kapacitu na 200 dopisů, ale vy jich máte pouze 100. Co s těmi 100 dopisy uděláte? Rozešlete je 100 adresátům a požádáte je, aby poslali co nejvíce informací na adresu oběti.

Velké společnosti jsou téměř vždy pod DDoS útoky a většina z nich se s nimi vypořádá využitím pomoci ze strany specializovaných firem na DDoS útoky, jako je třeba Prolexic. Její služby v seriálu využívá i AllSafe.

V AllSafe

Angela: No konečně.
Elliot: Klid, byla to jen hodina.
Angela: To je pro Evil Corp ztráta zhruba ve výši 13 milionů. Ne zhruba, ale skutečně, sama jsem to počítala.
Elliot: Neboj se, zvládnu to. Jak to vypadá, Lloyde? Lloyde!
Lloyd: Elliote. Je to fakt zlý.

(Obrazovka s administrativní konzolí. Zdroj: USA Network)

V této chvíli vidíme obrazovku s administrativní konzolí. Vidíme, že se nejprve začalo inicializovat vypnutí serverů („initialize shutdown“). Poté vidíme mnoho podobných zpráv, že se servery restartují. Nakonec se objeví chybová zpráva: „Start failed, access denied: error 43“.

Znamená to, že se Lloyd pokoušel rebootovat servery. Vypnuly se, ale když začalo bootování, něco se stalo špatně a kontakt se servery se ztratil. To je divné. Elliotovi trvalo hodinu, aby se dostal do AllSafe a Lloyd hodinu po začátku útoku inicializuje vypnutí? Tohle by mělo větší smysl hodinu předtím, ale takto to asi lépe zapadá do televizního seriálu.

DNS

Elliot: Překonfiguroval jsi DNS?
Lloyd: Ano.

Domain Name System (DNS) je zodpovědný za překlad adresy jako www.google.com do IP adresy jako je 175.45.176.67­. Pokud jste schopni identifikovat, odkud jsou útočníci připojeni nebo jakým způsobem s DNS komunikují, můžete rekonfigurovat DNS. Útočníci obdrží jednu adresu a všichni ostatní získají odlišné adresy.

Tímto způsobem dostanou běžní uživatelé adresy, které nejsou pod útokem. Například pokud by jakýkoliv uživatel žádal o službu adresu více než jednou za pár sekund, poté by nezískal ze strany serveru žádnou reakci, jelikož se pravděpodobně snaží přetížit server. Pokud je DDoS útok tak velký, že DNS servery útok nemůžou zvládnout, poté toto nebude fungovat.

Elliotův terminál

Vidíme Elliota, jak něco píše na počítači. Nejprve provádí portscan na portech od 80 do 7655. Většina důležitých portů pro běžnou komunikaci je od 1 do 80. Výsledkem scanu je, že porty mezi 3457 a 6555 jsou otevřené a ostatní zavřené. Porty 3457 až 6555 vykazují podivnou činnost, jelikož tyto porty asi nebývají normálně otevřené.

Potom Elliot do terminálu napíše: „Status -services -s WBUSl12345678WB1­“. Požaduje aktuální status služeb běžících na zařízení WBUSl12345678WB1. Výpis je takový: 

PID
USER
PR
NI VIRT
RES
SHR S %CPU %MEM
TIME+ COMMAND
root 20 0 109m 67m 12m S 1.0 13.5 0:05.21 Xorg
1744 root 20 0 89320 14m 11m S 0.0 3.0 0:00.55 terminal
1820 root 20 0 2836 1152 880 R 0.0 0.2 0:00.07 websrv1FF1
1 root 20 0 3648 2016 1312 S 0.0 0.4 0:00.72 init
2452 root 20 0 0 0 0 S 0.0 100 0:00.0 evilcorpwbthread

První čtyři služby vypadají v pořádku. Všechny běží jako root. Root je uživatel, který může dělat naprosto vše na zařízení. Je docela špatné nechat všechny tyto služby běžet jako root, jelikož některé z nich to nevyžadují. Webserver by neměl běžet jako root a může to být taky celkem jednoduše důvod, proč byli takto fatálně napadeni. Xorg je program odpovědný za zacházení s uživatelským prostředím. Proto je divné, že běží delší dobu než init. Pátá služba je na první pohled velmi podivná. Využívá 100 % paměti, i když ostatní služby také používají paměť a evilcorpwbthread vykazuje 0 použití jiných systémových zdrojů. Mimo jiné běží dobu 0:00.0, což vypadá dost nereálně.

Tato abnormalita pravděpodobně indikuje:

  1. evilcorpwbthread není normální program, ale malware
  2. v zařízení je rootkit

Rootkit

Rootkit je program vytvořený ke skrytí určitého softwaru, obvykle pak malwaru. V tomto případě to vypadá tak, že rootkit mění čtení statusu služeb a vrací zpět vymyšlené výsledky pro evilcorpwbthread. Je to divné, jelikož vše by šlo udělat tak, že by evilcorpwbthread byl skrytý a vůbec by nebyl přečten.

(Gideon, Lloyd, Angela a Elliot. Zdroj: USA Network)

Gideon: Jak to vypadá? Myslel jsem, že ty bezpečnostní protokoly nás měly bránit.
Gideon: Odkud jde ten útok?
Elliot: Očividně odevšad. Ze Států, Finska, Thajska, Kuvajtu.
Gideon: Restartuj služby, spusť sdílení, převeď provoz. Ať nám pomůže Prolexic.
Elliot: Není to prostý DDoS útok. Vypadá to, že v serverech mají rootkit.

Spustit sdílení a převést provoz je v této situaci podivné. Jakýkoliv systém, který zabezpečuje tak velkou společnost, by už měl dávno spuštěné sdílení. Převést provoz dává smysl jedině tehdy, pokud lze identifikovat bod nebezpečného provozu. Prolexic jako velká společnost, která se zabývá DDoS útoky, by jim měl zavolat sám od sebe už před hodinou. Nebo oni sami jim měli už před hodinou zavolat. Elliot informuje ostatní o rootkitu.

Angela: Co je rootkit?
Lloyd: Takový šílený sériový znásilňovač s velkým pérem.
Angela: Bože, Lloyde.
Lloyd: Promiň, je to škodlivý kód, který přebírá celý systém. Maže systémové soubory, instaluje programy, viry…

To není úplně pravdivé. Rootkit je pouze software, který skrývá procesy nebo služby před systémem. Rootkit tedy zakrývá nějaký malware a má roli neviditelného pláště.

Řešení

Angela: Jak to zastavíme?
Lloyd: O to právě jde. Je to v podstatě neviditelné, nedá se to zastavit. Jejich serverům vyprchává limit, žádný se nechce nahodit.
Elliot: To protože s každým pokusem o reset se virus zase replikuje a vypne hosta.
Lloyd: Jak je ale máme nahodit, když je nemůže restartovat?
Elliot: Nejde to. Přesně tohle chtěli. Když se budeme bránit, virus se rozšíří všude. Jediným východiskem je vypnutí všech serverů, vymazání infikovaných serverů a pak teprve jejich nahození.

Servery tedy mají nějaký aktualizační mechanismus, který updatuje software, a právě je ovládaný virem. Když se server restartuje, zaznamená nový update a vrátí ho do bodu, kde byl infikován. Často jsou tyto update úkony kryptograficky zabezpečeny, ale pokud jsou útočníci velmi dobří, můžeme předpokládat, že se s tímto nějak vypořádali.

V normálních podmínkách by se rebootovalo pouze několik serverů v jednu chvíli, tak, aby se virus mohl rozšířit do dalších zařízení. Vše by bylo zaznamenáno a zařízení by byla vymazána. Důvod DDoS útoku byl donutit AllSafe předejít běžné protokoly a rebootovat všechny servery najednou. Všechny ve stejnou chvíli ztratily kontrolu.

Normálně by měla velká společnost s takovou možnou ztrátou nějaké offline zálohy. Pokud by se něco takového stalo, všechna zařízení by byla odpojena a nahrála by se záloha.

Gideon: Pojedeš se mnou.
Gideon: Lloyde. Pověz všem, aby začali vypínat servery.
Lloyd: Dobře.
Gideon (do telefonu): Serverová farma v Dullesu. Potřebujeme tryskáč.

V reálném datovém centru byste měli mít možnost kontaktovat technika, který pro vás sám vykoná vymazání a nahraje vše z úložiště. Pokud byste chtěli mít nad vším více kontroly, mohli byste požádat o vzdálený přístup. Když nemáte čas, rozhodně se nevyplatí plýtvat časem k cestování letadlem do datového centra.

V datovém centru

Gideon: Zase nahazují síť. Stahuješ logy, protože…
Elliot: Dost. Ať toho nechají.
Gideon: Cože?
Elliot: Ještě je nesmí nahodit, jeden vynechali. Jeden nakažený server ještě stále běží. Za jak dlouho se virus dostane k serveru?

Měli automaticky vymazat vše, takže toto je trochu podivné. Z důvodu většího oživení a vytvoření napínavé atmosféry můžeme říct, že zapomenout na jeden server je ještě odůvodnitelné. Pokud potřebujete znovu nastartovat všechny servery, nestartují se všechny najednou, ale postupně. Servery potřebují velké množství energie při bootování a servery, které byly nahozené o chvíli dříve, můžou říct nově bootovaným serverům, jaké úkony vykonat. Pokud se bootují všechny servery v jednu chvíli, mohla by se stát chyba v komunikaci mezi servery. Infikovaný server je naštěstí na posledních místech serverů, které se mají bootavat. Elliot má díky tomu čas nastavit server tak, aby infikovaný server byl v bootování přeskočen.

Elliot: Záložní server funguje?
technik: Ano, ale nemá nakonfigurovaný auto-switch.

Záložní server tedy nemá nakonfigurovaný auto-switch, aby mohl přeskočit server. Elliot toto musí udělat manuálně a zajistit, aby se server CS30 nebootoval.

Elliot: Musíme přesměrovat provoz a přepnout DNS server.

(Elliot v datovém centru. Zdroj: USA Network)

Nyní se Elliot připojí k tomuto serveru, lokalizuje ho a updatuje síťové informace, aby byl infikovaný server přeskočen. Další boot se provede na serveru CS51.

Je tedy útok reálný?

I přesto, že jde tomuto řešení útoku vytknout pár věcí, nemůžeme říct, že by seriál nebyl v řešení problému nereálný. Otázkou je vždy, kolik lidí si některé chyby uvědomí a jak velké tyto chyby jsou. Pokud si pár drobných nedostatků všimne člověk v oboru, který se s ostatními podělí o jeho pohled na věc komentářem na Redditu, můžeme všem, kteří se na seriálu podílí, pogratulovat. Televize a filmy asi nikdy přesně nebudou kopírovat reálnou praxi tohoto oboru, a to zvláště tehdy, pokud na jeden díl mají pouze zhruba 45 minut.

V první epizodě se vyskytuje chyba na listu papíru. Víte, o jakou chybu se jedná? Do seriálu však musela být vložena, aby se předešlo určitým problémům.

Zdroj: Reddit.com (autor původního článku: phulbarg)


Jít na Mr. Robot | Jít na Edna


Chceš taky něco napsat? Registruj se nebo se přihlaš!