Hardening

Možná jste ten výraz již slyšeli, jenom nevíte kam jej zařadit. Nuže "hardening" lze do českého jazyka přeložit jako "zodolnění", "vyztužení" nebo "zesílení".

V podstatě se jedná o sadu vylepšení nebo "zodolnění" buď celého operačního systému, nebo určité aplikace. Vtip je ovšem v tom, že neměníme zdrojový kód, ale parametry konfigurace. Výsledkem může být kýžené "zodolnění" systému nebo aplikace před nenechavci nebo určitými typy útoků. Na druhou stranu si ale také můžeme řádně zkomplikovat život. To když autoři aplikací nerespektují standardy (například administrátoři rozšíření mod security by mohli vyprávět opravdu nehezké příběhy o tom, jak se nemají psát webové aplikace).

Podrobnější seriál o hardeningu vychází na stránkách časopisu Sdělovací technika. Jako ukázky z praxe zde můžeme nabídnout hardening www démona apache, hardening www prohlížeče, nebo BSI doporučení týkající se domácích routerů (SOHO router).

Ke dni 28.11.2018 zveřejnil NÚKIB dokument zvaný Doporučení v oblasti kryptografických prostředků.
Jedná se o doporučení Národního úřadu pro kybernetickou a informační bezpečnost v oblasti kryptografických prostředků. Povinné osoby podle zákona o kybernetické bezpečnosti jsou na základě § 26 písm. d) vyhlášky o kybernetické
bezpečnosti povinny tato doporučení zohlednit za účelem ochrany aktiv informačního a komunikačního systému.

Dokument obsahuje výčet schválených a dosluhujících kryptografických algoritmů (NÚKIB doporučuje preferovat blokové šifry před proudovými), dále jsou zde vymezeny schválené módy šifrování s ochranou integrity, schválené a dosluhující algoritmy pro technologii digitálního podpisu, schválené a dosluhující algoritmy pro procesy dohod na klíči a šifrování klíčů, schválené módy pro šifrování disků, schválené a dosluhující módy pro ochranu integrity, schválené a dosluhující asymetrické algoritmy, schválené a dosluhující algoritmy hešovacích funkcí.



Hardening www prohlížeče

Ptáte se, proč to děláme? Řada webů a aplikací je „velmi zvědavá“ a snaží se z našeho www prohlížeče (a potažmu z celého operačního systému našeho počítače) získávat data, která ke své činnosti ale vůbec nepotřebují. Tímto způsobem může dojít k úniku našich osobních dat (ano, i údaje o naší poloze lze hodnotit jako osobní data) a to rozhodně nechceme. Vrcholem drzosti jsou pak části kódu, který se usídlí ve Vašem www prohlížeči (a to nehovoříme jen o rozšířeních), který pak může útočník přímo ovládat. V zásadě tedy změníme konfiguraci (nastavení) našeho www prohlížeče tak, aby reguloval (nebo odmítl) odesílání dat v těchto oblastech:

  • Cookies, řada webů a aplikací je v tomto směru prakticky nedostižná
  • Vykonání kódu v našem prohlížeči (např. Java Script)
  • Údaje o poloze našeho počítače
  • Rozlišení námi používaného monitoru, typy fontů
  • Verze námi používaného operačního systému
  • Verze námi používaného www prohlížeče
  • Naše interní (privátní) a externí (veřejná) IP adresa
  • Požadavek Do Not Track


Podrobnější pojednání o bezpečnosti www prohlížeče se věnuje např. BSI, dokument naleznete zde.

Volba www prohlížeče

Prvním krokem je samozřejmě volba samotného www prohlížeče jako takového. Budeme požadovat, aby se jednalo o prohlížeč se samostanými knihovnami a spolehlivým (pokud možno) kódem. Nezávislý audit kódu určitě nebude na škodu. Dále nás zajímá možnost externích rozšíření (plugins) a pochopitelně, i kvalita kódu těchto rozšíření. Pokusím se tyto požadavky shrnout:

  • Kód, nezávislý na operačním systému
  • Samostatné knihovny (zejména pak implementace knihoven, které zajišťují šifrovací a dešifrovací funkce)
  • Možnost auditu kódu, kdo tyto audity provádí
  • Možnost externích rozšíření (plugins)
  • Dodržování standardů


Já osobně jsem si vybral prohlížeče Firefox a Chromium.
Ptáte se, jaký význam má používat dva www prohlížeče v jednom počítači? Inu, velký. Z jednoho prohlížeče budeme chodit do banky, případně na poštu nebo do datové schránky. Tento prohlížeč je určen pro „chod domácnosti“ a nic jiného z něj neděláme (rozumějte, nenavštěvujeme žádné jiné stránky). Druhý prohlížeč je pak určen „pro vše ostatní“. Proč to všechno? Vždyť upravíme konfiguraci obou prohlížečů, provedeme jejich hardening. Máte pravdu. Ale součástí onoho hardeningu je právě i volba a následné používání dvou naprosto oddělených prohlížečů. Prostě, poslední obranný val pro případ, že se do prohlížeče „pro vše ostatní“ dostane kód, který tam nepatří. Ujišťuji vás, že tohoto pracovního návyku nebudete litovat. Já osobně používám pro „chod domácnosti“ prohlížeč Firefox a Chromium pak využívám „pro vše ostatní“. Konfigurace obou prohlížečů se tak mírně liší.

Konfigurace prohlížeče – Chromium

Vlastní konfiguraci nám nejlépe osvětlí následující obrázky:


Konfigurace prohlížeče Chromium, ujistěte se, že požadavek Do Not Track je zapnutý



Konfigurace prohlížeče Chromium, nastavení obsahu. Zakažte cookies, Flash a Vyskakovací okna. Cokies budeme povolovat jednolivě pro vybrané weby.


Chrome extensions

Nyní se přesuneme k jednotlivým rozšířením (extensions), jejich výčet vidíme níže. Nejzajímavější (a nejpodstatnější) je Privacy Badger, ke kterému si něco řekneme dále.



Konfigurace prohlížeče – Firefox

Nastavení cookies bude poněkud jiné než u Chromia


Nastavení prohlížeče Firefox – starší verze prohlížeče




Nastavení prohlížeče Firefox – počínaje verzí 63.0 můžete blokovat sledovací prvky a vysílat požadavek Do Not Track




Poněkud odlišný je i výčet nainstalovaných rozšíření. Nechybí Privacy Badger, ale přibylo rozšíření Policy Control



Rozšíření Policy Control

Domovskou stránku naleznete zde.

Jedná se o velmi praktický kousek kódu, který umožňuje nastavit buď globální politiky pro všechny navštívené stránky, nebo tyto politiky pro vybrané stránky změnit (viz. Apply only to na obrázku)




Rozšíření Privacy Badger

Domovská stránka se nachází zde.
Privacy badger posílá signál DNT (žádost o nesledování) sledovacím doménám, aby Vás přestaly sledovat. Pokud ignorují Vaše přání, Privacy Badger je sám zablokuje. A nezáleží, zda to jsou reklamy nebo jiné sledovací prvky. Nové sledovací prvky si Privacy Badger automaticky detekuje sám, zatímco brouzdáte internetem. A aby nedošlo k záměně, či omylu, Privacy Badger začne blokovat prvek teprve ve chvíli, kdy jej najde na třech různých webových stránkách. Rozšíření Privaci Badger je dílem neziskové organizace Electronic Frontier Foundation.





Blokování polohy

Váš www prohlížeč by měl na takovéto dotazy sám (při procházení konkrétních www stránek) sám upozornit. Odpověď na dotaz pak jednoduše povolte nebo zamítněte. Vlastní přednastavení (např. trvalé odmítání dotazu lze nastavit v sekci „Nastavení soukromí a zabezpečení“ www prohlížeče.

Skrývání rozlišení obrazovky

Zkuste jednoduchý trik. Zmenšete okno prohlížeče tak, aby nepokrávalo celou obrazovku (plochu).

Skrývání IP adresy – systém TOR

Správně tušíte, že opatření skrývání IP adresy již tak jednoduché nebude. Změna konfigurace www prohlížeče nepostačí, bude třeba se poohlédnout jinde. Buď do vašeho operačního systému doinstalujte tzv. TOR Proxy, nebo doinstalujte tzv. TOR Browser. Vlastnímu systému TOR se budeme věnovat v jiném díle seriálu, návod pro instalaci TOR Browser do Ubuntu Linux 18.04 najdete například zde:
https://linuxconfig.org/how-to-install-tor-browser-in-ubuntu-18-04-bioni...

Poznámka

V podstatě nejde ani tak o skrývání IP adresy, jako spíše o záměnu. Váš počítač (v případě TOR Proxy) nebo www prohlížeč (v případě TOR Browseru) zkrátka naváže spojení s náhodně vybraným (lze ale vybrat i cílený uzel nebo množinu uzlů) TOR uzlem, ten předá spojení dalšímu TOR uzlu a tak dále. Koncový TOR uzel pak předá spojení cíli, se kterým chcete komunikovat. Spojení od cíle k vám probíhá na stejném principu, jen v opačném pořadí. Cíl pak „vidí“ místo vaší IP adresy IP adresu posledního TOR uzlu. Seznam TOR uzlů je veřejně známý a dohledatelný. Může se tedy stát, že cíl bude schopen porovnat „vaši novou“ IP adresu s tímto seznamet a spojení odmítnout nebo modifikovat. Do TOR Browseru můžete samozřejmě instalovat rozšíření, přimlouvám se minimálně za Privacy Badger.

Ještě nejsme hotovi

Kdepak, ještě neodcházejte. Přečtete si pozorně tento článek a pak zavítejte na tuto adresu.
Pokud ve svém www prohlížeči vidíte svou interní IP adresu, pak právě došlo k úniku této vnitřní IP adresy směrem k provozovateli stránky, kterou jste právě navštívili. Někteří uživatelé místo své vnitřní IP adresy uvidí "jen" kombinaci příkazů, která se ve vašem www prohlížeči prostě neprovedla. Ani tento stav není v pořádku, útočník prostě potřebuje jen jinou sadu útočných skriptů. Správným výsledkem je prázdný řádek nebo znaménko - (minus).
Překvapeni? Ale jděte. Fakt, že JavaScript může přistoupit do vnitřní sítě a obejít same-origin policy je dobře znám, chyběly jen hmatatelné důkazy. A ano, máte pravdu, útočník může (za pomoci podvržených www stránek, java scriptů a dalších příprav) získat z vašeho www prohlížeče pravděpodobně VEŠKERÁ data.

Hezká představa, co teď?

Jedno "záplatové" řešení (v branži se takováto dočasná řešení nazývají workaround) tu máme. Vejděte u obou vašich www prohlížečů do nastavení Privacy Badgeru a zakažte funkci WebRTC.
Asi takto:


Nastavení Privacy Badger - zablokování funkce WebRTC ve www prohlížeči


Pravda, budete se muset rozloučit s funkčností některých sociálních sítí, ale to snad přežijete.
Vaše soukromí je opět jen Vaše.

A ještě kontrola - znovu klikněte sem. Neměla by se zobrazit žádná IP adresa, ani sada příkazů.


Zablokování funkce WebRTC ve www prohlížeči.

Správný výstup při dotazu na výše uvedenou testovací stránku.