Hlavní navigace

Současné hrozby: hromadný sběr dat, problémy v procesorech a prohlížeče

Petr Krčmář

Svět se neustále mění a s ním se mění i bezpečnostní hrozby. Jaké problém nás nejvíce ohrožovaly v uplynulém roce a na co si musíme v tom letošním dávat pozor? Příliš mocné prohlížeče, chyby v CPU nebo těžba dat.

Doba čtení: 7 minut

Sdílet

Poslední lednový den proběhl Seminář o bezpečnosti sítí a služeb pořádaný sdružením CESNET. Hovořilo se o aktuálních bezpečnostních problémech, hrozbách a technologiích k jejich řešení. Jedna z přednášek se věnovala také současné bezpečnostní situaci, přednášejícími byli Radoslav Bodó ze sdružení CESNET a Jakub UrbanecTrend Micro.

Svět se změnil, data ochotně předáváme

Jisté je, že se svět za posledních deset let výrazně proměnil. Co nejde najít Googlem, to na internetu není, začal přednášku Radoslav Bodó. Hledal jsem například pyžamo s čepičkou a našlo mi to obchody v mém okolí. Co tam nebylo, to pro mě neexistuje. Změna proběhla také v e-governmentu, máme kvalifikovaný podpis, datové schránky, Czech Point a další vymoženosti. Je to obrovský posun.

Během uplynulé dekády přišel také cloud, což bylo dříve nepředstavitelné. Chránili jsme si data, nechtěli jsme je nikomu dát. Dnes jsme rádi, že můžeme odsouvat tuny odpadu do cloudu a rádi za to i platíme. Proměnila se i komunikace, všechno se názorově ovlivňuje, dezinformuje, manipuluje. Naše vláda s námi komunikuje přes americkou službu jménem Twitter! To bylo dříve naprosto nepředstavitelné.

Cambridge Analytica ví

Velkým bezpečnostním tématem loňského roku byla kauza Cambridge Analytica. Zneužili API Facebooku, zaplatili asi 270 tisíc lidí a posbírali informace nejen o nich, ale i o jejich kamarádech, vysvětlil v další části přednášky Jakub Urbanec. Ukázalo se, že jejich software je schopen na základě nasbíraných dat sestavit psychometrický profil uživatele. Zjistíte tak, do jakých skupin lidé patří – jestli jsou černí nebo bílí, kdo z nich je gay nebo jestli je republikán nebo demokrat. Pak je možné lidi cíleně ovlivňovat. Vypadá to jako sci-fi, ale ukázalo se, že se to skutečně používá: ovlivňují se tím volby, výsledky referend a podobně. Tenhle problém je obrovský, můžete profilovat konkrétní lidi.

Nejdále je v tomhle ohledu Čína, kde mají kreditový systém známkující každého občana. Posbíráte všechny informace o lidech, které máte k dispozici: co nakupuje, zda je introvert, jestli píše články proti čínskému prezidentovi a tak dál. Zároveň přidáte informace z kamer, finanční situaci a další informace a z toho vypočítáte skóre. Jako v nějaké hře, bohužel to není hra, řekl Urbanec.


CESNET

Radoslav Bodó a Jakub Urbanec

Pokud má občan vysoký kredit, má v běžném životě spoustu výhod. Když ale máte špatné skóre, nekoupíte si jízdenky na rychlovlaky nebo letenku. Výsledek ovlivňuje také váš partner a rodina. Pokud mají lidé kolem vás nízký kredit, budete ho mít i vy. Pokud vám Facebook a Google připadal jako velký bratr, tohle je úplně jiná liga.

Totálním hitem roku 2018 byla směrnice GDPR. Ta říká, že data existují, jsou někde uložena a je s nimi nakládáno. Je potřeba vědět, kdo, kdy, jak a co s daty dělá a je potřeba data je chránit. GDPR děsilo spoustu lidí a stále je možné za něj schovat prakticky cokoliv. Když budete mít nějaký problém, můžete ho vyřešit jakkoliv a vysvětlit to odvoláním na GDPR.

Jak „háknout“ elektrárnu?

Na internetu je spousta snadno dostupných dat a metadat. S jejich znalostí je možné provádět zajímavé kousky, některé až děsivé. Co může udělat útočník, který se rozhodně poškodit dejme tomu elektrárnu?

Když se někdo rozhodne zaútočit na elektrárnu, je potřeba ji nejprve najít. Služba Descartesmap například umožňuje vyhledávat na mapách podobné objekty, pohodlně je tak možné nechat si vyhledat objekty, které vypadají jako elektrárna. Podrobné informace včetně polohy jsou ale také k nalezení na Wikipedii. Stačí si tedy pohodlně vybrat, na co budu útočit.

Jak ale zjistit IP, když znám polohu objektu? Můžete využít služby GeoIP a hledat podle GPS koordinátů nebo podle PSČ. Znáte pak polohu objektu a jeho IP adresu. Dalším krokem je nalezení rozhraní ICS systému a můžete útočit. Můžete takhle složitě hledat, nebo můžete použít hotovou službu. Tou je například Shodan, který umí přímo vyhledat zranitelné řídicí systémy: větrné elektrárny, solární elektrárny a další. Není to problém zabezpečit, ale když se k tomu dostanu za pár sekund já, co s tím dělají velké mocnosti.

Meltdown a Spectre

V minulých letech jsme sledovali zranitelnosti od chyb v operačních systémech, programovacích knihovnách a aplikačních serverech. V minulém roce se ale přišlo na to, že bezpečnostní chyby jsou už na úrovni procesorů. Ty umožňují číst z paměti počítače data, ke kterým by útočník neměl mít přístup.

Chyby využívají toho, že v procesoru jsou paměťové keše, které přednačítají stránky z pomalé RAM. Předpokládá se, že pokud potřebujete bajt z paměti, budete pravděpodobně brzy potřebovat další okolní data. Proto se jich rovnou do keše uloží víc. Tím se výrazně urychluje přístup k paměti. Zároveň se používá vykonávání mimo pořadí, aby bylo možné optimalizovat využití jednotlivých částí procesorů.

Procesy běží v privilegovaném či neprivilegovaném režimu. V privilegovaném běží obvykle operační systém a má přístup k celé paměti, v tom neprivilegovaném se zpracovávají běžné procesy, u kterých se kontroluje přístup paměti. Problém je, že kontrola přístupu do paměti se při vykonávání mimo pořadí provádí až na konci. Běh těchto těchto instrukcí má vedlejší efekty, které se odrazí v naplnění keše. Tím se daný proces může postranním kanálem dozvědět, jaká data jsou mimo jeho paměť – stačí změřit přístupovou dobu a zjistit, zda je stránka v keši či nikoliv. Může tak postupně vyčíst libovolnou paměť, třeba tu, kde má jádro uložené přístupové údaje.

Čtěte: Jak funguje Meltdown a Spectre

To je princip útoku Meltdown. Představte si to jako restauraci, kde se neuklízí po hostech. Když tam přijdu, uvidím špinavé talíře a uvidím, co hosté přede mnou jedli, ačkoliv jsou dávno pryč, vysvětlil Bodó základní princip tohoto útoku.

Spectre zase využívá toho, že se kód může větvit a je možné odhadovat, kam se dál vydá a zneužije se predikce v procesoru. Na rozdíl od Meltdown nemůžu číst libovolnou paměť, ale jen tu, která patří mému procesu. I přes toto omezení je to stále velmi dobře využitelné: JavaScript může číst z paměti prohlížeče data, PHP by mohlo na sdíleném hostingu číst data jiných uživatelů a podobně. Během roku 2018 byly tyhle koncepty dále rozpracovány a objevila se spousta dalších variant.

Dohromady jde o využití postranních efektů pokročilých funkcí procesorů, které se používají pro zvyšování výkonu. Není to pouze problém Intelu, podobně jsou postiženy i třeba procesory od AMD či ARM. Explotace na desktopu není až tak zásadní problém, jako hrozby na úrovni cloudů a jiných sdílených prostředí. Útok je to obtížný, ale není pouze teoretický.

Oprava vyžaduje záplaty jader operačního systémů a zároveň je potřeba opravit firmware v procesorech. Problém je, že to má výkonnostní dopad, protože se ve správných chvílích vypíná predikce skoků a další funkce, které mají za úkol zvyšovat výkon.

DNS ReBind

Že jsme schovaní za firewallem a NATem, nemusí znamenat, že jsme v bezpečí. Zatím ale stále ještě platí, že přímý útok přes NAT není možný. Nepřímých jsme ale viděli spoustu. Pro útok DNS ReBind potřebujeme být blízko sítě a mít možnost se sítí komunikovat, obvykle stačí mít přístup k uživatelově prohlížeči skrze naši otevřenou webovou stránku.

Princip spočívá v tom, že javascriptový kód na napadené stránce začne ohrožovat počítače a zařízení v místní síti. Teoreticky by tomu měla zabránit same-origin policy, což je klíčová bezpečnostní zásada webových prohlížečů. Bráni tomu, aby skripty z jedné domény mohly komunikovat se skripty z jiné domény.

Toto omezení je ale možné obejít právě pomocí DNS ReBind. Základem je DNS server ovládaný útočníkem, který odpovídá na dotazy v útočníkově doméně. DNS server vrací odpovědi s velmi krátkým TTL a brání tak v jejich efektivnímu kešování na straně klienta. 

První dotaz na danou doménu vrátí IP adresu skutečného hostingu, na kterém je útočný skript. Ten se normálně načte, spustí a poté požádá o kontakt se svou doménou, ale DNS server už vrátí interní IP adresu některého stroje, který budeme chtít napadnout. Protože doménové jméno zůstalo zachováno, prohlížeč komunikaci nezablokuje. Skript pak má přístup dovnitř sítě a může například získat citlivá data. Současné sítě je možné tímto způsobem napadnout.

QUIC aneb HTTP/3

Google začal už poměrně dávno používat na svých službách protokol QUIC, který je nyní standardizovat jako protokol HTTP/3. Ten je postaven na UDP, šetří RTT a umožňuje migraci spojení. Jenže zatímco u TCP musíte při sestavování spojení prokázat, že umíte přijímat a odesílat pakety pro danou adresu, v případě UDP to dělat nemusíte. Můžete si posílat cokoliv.

Je tak možné velmi snadno vytvářet vlastní pakety s cizí IP adresou a komunikace běžně prochází přes NAT. Tím se otevírají nové možnosti útoků. QUIC například umí přenést HTTP hlavičky jen jednou a poté si na ně pro urychlení jen odkazovat. Mohli byste třeba teoreticky zfalšovat paket, který by přečetl cizí hlavičky s cookies. Problém je, že ten protokol neprošel seriózním prověřením za hranicemi Google.

Prohlížeče se staly centrálním bodem v našem počítači a jsou velmi mocné. Máme tu tedy programovatelnou aplikační platformu, která používá proprietární protokoly, proprietární šifrování a má velkou kontrolu nad našimi počítači. Google se tak stal novým Microsoftem. Dává nám věci zadarmo, ale něco si za to bere.