Disassembler

Artificial intelligence is no match for natural stupidity.
08září2015

Windows 10 uživatele nešpehují


Včera byl na root.cz publikován článek bezpečnostního konzultanta Jiřího Bartoše s názvem Windows 10: analýza probíhající komunikace. Článek se zabývá analýzou síťového provozu mezi klientskou stanicí Windows 10 a servery Microsoftu, případně i jiných společností, a je nabitý informacemi, které jsou svým způsobem unikání, protože konečně nechávají nahlédnout i do šifrované komunikace.

Žabomyší války


S příchodem Windows 10 se uživatelstvo výpočetní techniky rozdělilo na dva myšlenkové tábory. Jedni tvrdí, že Windows 10 je systém, který byl vyvíjen se zřetelem na možnost špehování uživatele, sbírání informací o jeho osobě, jeho návycích, vyhledávaných heslech, navštěvovaných stránkách a kdovíčeho ještě. Druzí tvrdí, že Windows 10 uživatele nijak cíleně nešpehují, přičemž připouštějí, že některé informace skutečně mohou být odesílány bez plného vědomí uživatele, ale že to je v době cloudové poměrně běžné i u ostatních systémů. Pak je tu samozřejmě ještě třetí skupina, které jsou nějaké Windows 10 úplně volné, protože pěstovat brambory a dojit ovce ten systém ještě neumí. Možná jsem ještě příliš mladý a naivní, ale rád bych si o sobě myslel, že patřím do skupiny číslo dvě.

Situace mi trochu připomněla loňskou debatu o vzniku Světa, která v našich luzích a hájích zřejmě nebude příliš známá. Proti sobě stáli Bill Nye, propagátor vědecké metody v pořadech pro děti a mládež, a Ken Ham, kreacionista a křesťanský fundamentalista. Oba měli 30 minut na to, aby se pokusili obhájit proč si myslí, že je právě jejich názor ten správný a poté dalších 5 minut na to, aby vyvrátili protivníkovy argumenty. Zlatým hřebem večera však byla otázka „Co by vás přimělo změnit názor?“ Ken Han odpověděl něco ve smyslu, že jej jako křesťana nikdo nepřesvědčí, že slovo Boží není pravdou. Bill Nye naproti tomu řekl, že jeho názor by hravě změnil byť i jediný důkaz, který by jeho domněnky vyvracel. Celá debata byla docela zajímavá, zejména díky tomu, že argumentační schopnosti obou gentlemanů jsou úžasné. Dokonce nepadl jediný argument ad hominem a nikdo nezmínil Hitlera. To by se na internetu nestalo.

Mou pointou tedy je, že si na základě svých dosavadních zkušeností a pozorování myslím, že Windows 10 uživatele cíleně nešmírují a pokud by mě někdo chtěl přesvědčit o opaku, pak bych rád viděl nějaký důkaz. V současné chvíli mi pan Bartoš svou analýzou můj předpoklad pouze potvrdil. Pokud se najde někdo, kdo provede analýzu novou a lepší, jejímž zjištěním bude, že Windows skutečně jsou tak intruzivní, jak si první skupina myslí, uvítám jeho fakta s otevřenou náručí, publikuji článek Windows 10 uživatele špehují a vesmír vinou informačního paradoxu imploduje.

Na číhané


Autor ve svém článku poměrně podrobně popisuje, jak dané údaje nasbíral a jak je následně analyzoval. Bohužel se zdá, že článek je psán příliš technicky, takže laická veřejnost může mít problém s pochopením použitých metod, případě i samotných výstupů. Pokusím se tedy myšlenkové a technické postupy trochu objasnit.

Základem úspěšného lovu síťové komunikace je obsazení síťového uzlu, kterým veškerá komunikace musí projít, ale který leží mimo samotný sledovaný počítač (resp. tablet). Toho bylo dosaženo tím, že byl místo obyčejného domácího routeru použit další počítač, tentokrát s linuxovým systémem, který autor nastavil tak, aby funkci routeru plnil a zároveň na něj nainstaloval několik důležitých nástrojů pro zachytávání a odposlech síťové komunikace. V prvé řadě nastavil logování iptables, aby měl úplný přehled o všech spojeních, které Windows s okolním světem navazují. Není tedy technicky možné, že by bylo navázáno nějaké spojení, o kterém nebude existovat záznam. Jediný takový případ by mohl být, kdyby Windows vytvořily nějaký VPN tunel. Potom by existoval záznam pouze o vytvoření tunelu, ale nikoliv podrobný popis spojení odehrávající se uvnitř něj. Navíc by se muselo jednat o nějaký neznámý, proprietární VPN protokol, protože u těch obvyklých by taková skutečnost oku zkušeného síťového analytika jistě neunikla. Většinu VPN protokolů je také možno oblafnout podobným způsobem jako to autor udělal v případě zabezpečeného spojení HTTPS, tedy podvržením identity.

Hlavním zachytávačem provozu, který je v článku zmíněn, je WireShark. Ten umožňuje odposlouchávat veškerou síťovou komunikaci na síťovém zařízení (tedy na všech portech a protokolech zároveň) a ukládat ji do souboru, takže je možno analyzovat výstup i zpětně. Zmíněné soubory s páně Bartošovými dumpy je od něj možno na vyžádání získat. WireShark kromě samotného zachytávání umí také některé známé protokoly přímo analyzovat a data v paketech překládat přímo do lidsky čitelné podoby. Obecně se jedná o velmi schopný a často používaný nástroj pro analýzu síťové komunikace. Obzvlášť fajn pak je, že je licencován pod GPL a funguje na všech možných operačních systémech, včetně Windows a OS X.

Šifrovaná komunikace


Asi nejdůležitějším nástrojem z celé té parády je pak Burp Proxy. Jedná se o HTTP a HTTPS proxy server, což jednoduše znamená, že veškerá komunikace odehrávající se na portech 80 (HTTP) a 443 (HTTPS), případně i dalších, jde přes tento program, který ji zachytává a umožňuje zpětně analyzovat. Ve spoustě podnikových sítí a u některých paranoidních ISP jsou blokovány neznámé odchozí porty, ale 80 a 443 patří mezi well-known a fungují na nich téměř všechny webové služby a WWW stránky na celém světě, takže bývají otevřené vždy. Ohromně důležitá věc, která je v článku evidentně málo vypíchnuta, je způsob jakým autor dokázal dešifrovat komunikaci na zabezpečeném HTTPS. Zabezpečení webového provozu nespočívá v tom, že počítač má nějaké pevně zadané tajné heslo, které serveru sdělí, jak by si někteří mohli myslet. Do hry nám tu vstupují takzvané SSL/TLS certifikáty. Celé divadýlko kolem digitálních certifikátů je poměrně náročné na vysvětlení a mám v plánu nějaké SSL/TLS osvětě v budoucnu věnovat celý článek, takže pro účely tohoto článku to vezmu jen zkrátka.

První důležitý detail je, že certifikát v sobě obsahuje informaci o identitě, o vystaviteli a dále veřejný klíč. K tomuto veřejnému klíči pak ještě existuje soukromý klíč, který je uložen pouze na serveru a nesmí být s nikým sdílen. Naproti tomu veřejný klíč (a celý certifikát) sdílen být může. Tyto dva klíče jsou propojeny matematickými závislostmi, takže do sebe „pasují“. Zároveň jsou ale natolik složité, že uhádnout nebo vypočítat soukromý klíč je prakticky nemožné. Druhý důležitý detail pak je, že vaše instalace Windows implicitně důvěřuje některým vystavitelům a ke službám používajícím certifikáty vystavené těmito autoritami se bez odmlouvání povolí připojit. Když tedy Windows (klient) navážou zabezpečené spojení s Microsoftem (server), server nabídne klientovi certifikát, klient si ověří, zda je vystaven autoritou, které důvěřuje, a pokud je vše v pořádku, vygenerují a vymění si mezi sebou heslo, které platí jen po určitou dobu, a tím pak vzájemnou komunikaci šifrují. Tady tomuhle se taky říká handshake. Ve skutečnosti je to o trochu složitější, nicméně pro ilustraci to stačí. No a pan Bartoš neudělal nic jiného než to, že si vytvořil certifikační autoritu svoji vlastní a přikázal Windowsům, ať jí důvěřují. Burp Proxy pak udělala druhý kus špinavé práce a při pokusu o navázání zabezpečeného spojení dynamicky vygenerovala certifikát s odpovídající identitou, čímž efektivně začalo docházet k Man-in-the-middle útokům. Windows tedy komunikovaly zabezpečeně s Burp Proxy, domnívaje se, že mluví s Microsoftem. Burp Proxy komunikaci rozšifrovala, přečetla, navázala skutečné spojení s Microsoftem, komunikaci znovu zašifrovala a poslala dál. A po cestě zpátky se dělo to samé, akorát v opačném pořadí.

Problematiky znalí čtenáři pak v diskusi u článku začali zmiňovat možnost protiopatření proti podobným analýzám formou certificate pinning. Jedná se o mechanismus, kdy je přímo v aplikaci řečeno, jak má očekávaný certifikát vypadat. Buď aplikace dopředu zná otisk (hash) certifikátu nebo přímo veřejný klíč samotný a pokud je jí nabídnut jiný klíč, handshake se neprovede a spojení skončí. Jelikož ale handshake přichází na řadu až po samotném otevření spojení, zkušený síťový analytik by měl poznat, kdy došlo k zahození spojení v důsledku neúplného nebo neúspěšného SSL/TLS handshake, takže i v případě, že by některé šmírovací komponenty techniku certificate pinningu využívaly, zanechají po sobě v logu identifikovatelné stopy.

Dobrý den, data ven


Analýzou tedy bylo možno zjistit, že po instalaci a čtyřdenním používání tabletu s Windows 10 odchází ven následující informace

Na zjištění nastavení sítě a aktualizaci certifikačních listin nevidím vůbec nic špatného. Zjištění stavu sítě takhle fungovalo už ve Win 7. Nad aktualizací dat Metro aplikací a přihlašování do Store se mi obočí taky nepozdvihne, protože jsou to prostě aplikace pracující s online daty jako každé jiné. Navíc se živé dlaždice dají deaktivovat. OneDrive se prezentuje jako cloudové úložiště, takže tam je snad nad slunce jasné, že bude komunikovat po síti. Že by se uploadovaly soubory, jejichž synchronizace nebyla vyžádána, autor nezmiňuje, takže vypadá, že OneDrive je taky neškodný. Jediná věc, která stojí za zmínku je tedy Cortana, která si i přesto, že je vypnutá nebo zašedlá, stále povídá se servery Microsoftu a posílá data o tom, co zrovna v nabídce Start vyhledáváte a do hlaviček přidává několik údajů o zařízení. Nikoliv však o vašich fotkách z dovolené nebo o tom, co jste měli k obědu. Na druhou stranu mi v článku chybí alespoň nějaká souhrnná informace o Windows Update, Telemetry a Customer Experience Improvement Programu, ze kterých bych čekal, že něco málo zajímavého taky vyleze. Jsem si ale skoro jistý, že se ještě dočkáme pokračování, klidně i od jiného autora, ve kterých bude přihlédnuto i k těmto záležitostem.

Zadarmo ani kuřeti nehrabe


Proč je tedy upgrade na Windows 10 zdarma? No určitě ne proto, aby uživatelům protlačili spyware, protože to se stejně snadno dá pomocí Windows Update udělat i starších verzí OS, jak ostatně naznačují nedávné updaty přidávající Telemetry a CEIP do Win 7 a 8. Mimo to se upgrade zdarma nevztahuje na Enterprise edice ani na Servery, na kterých by se sladkých tajemství hodných špionáže našlo daleko více. Microsoft má dnes hromadu zisků ze serverového segmentu díky MSSQL, SharePointu a Exchange, nabízí dalším společnostem technologie jako Bing engine a Azure cloud, na desktopech prodává Office, Visual Studio, Dynamics CRM a podílí se na vývoji počítačových her. Z hmotných statků prodává herní konzole, přehrávače, telefony a tablety. A v neposlední řadě vlastní mraky patentů a chytrých hlav pracujících ve výzkumu a vývoji. Nějaký operační systém je pro ně v současné situaci tedy jen třešnička na dortu. Více než kdy předtím je dnes Microsoft také ohrožován společnostmi stojícími za jednotlivými linuxovými distribucemi, protože ty také poskytují použitelné desktopové operační systémy zcela zdarma a zisk generují jen ze serverových divizí a technické podpory. Microsoft si navíc užil spoustu zábavy s přechodem z Win XP na Vista (resp. Win 7). Uživatelé samozřejmě nechtěli zbytečně platit a sahat do zaběhnutých věcí, protože se domnívali, že fungují bez problémů. Bohužel pokrok se nedá zastavit. Naopak se zdá, že stále zrychluje a s ním jdou kupředu metody vývoje software, bezpečnostní algoritmy, protokoly, ale i metody útoků. Co bylo před pár lety považováno za perfektně bezpečné, je dnes prolomitelné v řádu minut. Taková rizika si samozřejmě Microsoft nemůže dovolit, protože zastaralá a děravá platforma nepřitahuje vývojáře a negeneruje zájem o další produkty a služby, takže Microsoftu nezbývá nic jiného, než spolknout pýchu, spočítat ztráty a upgrade pustit zdarma.