Doba se mění. Mac už dávno není exotický stroj pro pár nadšenců a profesionálů. Počet lidí aktivně používající počítač od firmy Apple přesáhl 100 milionů. macOS (dříve Mac OS X) sice vycházel z unixového bezpečnostního modelu, ale s dostatečnými privilegii mohl uživatel, potažmo jím nainstalované aplikace, provést se systémem prakticky cokoliv.

Vedle toho vznikl iOS, který od začátku poskytoval pouze omezené grafické rozhraní bez možnosti  jakkoliv zasahovat “pod kapotou”. Apple sice primárně profituje z iOS zařízení, ale zároveň chce, aby si zákazník pořídil vedle iPhonu a iPadu také Mac. Vlastnil by pak tři zařízení, mezi kterými bude synchronizovat data pomocí iCloudu. Dvě z nich vysoce bezpečná a třetí s obrovským potenciálem, jak se střelit do nohy a svá osobní data ohrozit. Logicky tedy vývojáři jablečné firmy začali každoročně v macOS utahovat šrouby a přidávat další bezpečnosti opatření. Mají však nelehký úkol. Snaží se skloubit flexibilitu Macu s bezpečnostním modelem iOS.

Gatekeeper a notarizace

O nutnosti nechat zkontroloval svůj software před vydáním jsme psali v článku Vše, co jste o notarizaci chtěli vědět, ale báli jste se zeptat. Článek rovněž popisuje novinky v technologii Gatekeeper.

Oddělený systémový oddíl

macOS 10.13 High Sierra a macOS 10.14 Mojave úspěšně zkonvertovaly během své instalace souborový systém primárního disku ze stařičkého HFS+ na nový Apple File System (APFS). Rozebírat všechny nové možnosti APFS značně přesahuje rámec tohoto článku. My se zaměříme pouze na jednu oblast – bezpečnost.

Před příchodem AFPS bylo možné disk rozdělit na několik částí tzv. oddílů (pro rozlišení jim budeme říkat fyzické). Typický systémový disk macOS měl fyzické oddíly tři: Povinný skrytý EFI oddíl, Macintosh HD a Recovery. Uživatel mohl přidat další fyzické oddíly a vyrobit si například extra oddíl pouze na své fotografie. Práce s fyzickými oddíly však často bývá komplikovaná, protože vždy musí zabírat souvislý prostor na disku. Když se rozhodnete později pro rozdělení a na vyznačeném místě pro nový se vyskytuje větší množství dat, operační systém změnu neprovede.

Pro řešení tohoto problému sice Apple implementoval technologii Core Storage, umožňující seskupovat různé nesouvislé části disku do jednoho logického oddílu, ale ta byla využita pouze pro Fusion Drive a Filevault 2 šifrování. APFS kombinuje funkcionalitu souborového systému a správce logických oddílu pod jednu střechu. Disk zformátovaný pro instalaci macOS v současné době obsahuje dva fyzické oddíly: Povinný skrytý EFI oddíl a APFS kontejner. V rámci APFS kontejneru lze velmi snadno vytvářet velké množství logických oddílů. macOS historicky vždy obsahoval jeden oddíl pro systém i data.

To se odlišovalo od konceptu iOS, kde již od začátku existovaly oddíly dva. Jeden pro systém a druhý pro nastavení a data uživatele. Bezpečnost systémových souborů zvýšil macOS 10.11 El Capitan, kde byla zavedna ochrana System Integrity Protection (SIP) znemožňující uživateli snadno systémové soubory měnit.

macOS 10.15 Catalina jde však ještě o krok dál. Během instalace bude systémový oddíl rozdělen na dva, Nově vznikne datový oddíl podobný tomu na iOS. Vzhledem k tomu, že nové rozdělení by pravděpodobně zmátlo velké množství existujího software předpokládající určitou hierarchii adresářů, rozhodli se vývojáři oba oddíly propojit na úrovni souborového systému. Aplikace i uživatelé tedy dvojici oddílů vidí jako jeden. Pro tento účel nešel využít žádný z existujících typů linků souborového systému. Vznikl proto nově tzv. firmlink, což je obousměrná cesta mezi dvěma adresáři na různých logických oddílech. Aplikace přistupující k souborům by neměla vůbec poznat, že se na cestě k souboru firmlink vyskytuje. Rozdělení na systémový a datový oddíl přináší nejen vyšší bezpečnost.

Doufáme, že přibude možnost smazat všechna nastavení a data uživatele, čímž počítač v podstatě rychle resetujeme podobně jako iOS a ušetříme půl hodiny času stráveného instalací macOS. Ostatně Apple již nové rozdělení používá pro oddělení firemních dat, aby je mohl rychle smazat, jak jsme popsali v článku Novinky ve správě Apple zařízení.

Doplňky jádra

Stěžejní komponentou moderního operačního systému je jádro (kernel). To má přístup k veškerému hardware počítače a dělá prostředníka mezi ním a uživatelským rozhraním. Občas nastane nutnost připojit nestandardní zařízení nebo provozovat bezpečnostní software kontrolující např. síťový provoz. Pokud tato funkcionalita nebyla poskytnuta vývojáři Applu pomocí nějaké knihovny, musel autor software naprogramovat doplněk jádra.

Doplněk jádra (kext) běží v prostředí jádra. Má velkou míru možností, co může dělat, ale současně i obrovskou odpovědnost. Za prvé, doplněk pod kontrolou útočníka získá přístup prakticky ke všemu nehledě na většinu bezpečnostní opatření. Za druhé, prostředí jádra neodpouští. Dostane-li se kód do neočekávané a současně neošetřené situace, systém přejde do stavu kernel panic a provede restart.

Nejedna firma vydala kext, který uživatelům způsobil četné pády systému nebo jiné anomálie. Špatný uživatelský zážitek je přesně to, co společnost Apple nevidí na Macích ráda, proto se doplňky jádra dostaly pod drobnohled. macOS se zapnutou ochranou SIP odmítá spustit kext bez digitálního podpisu vývojáře

Aby mohl autor doplněk podepsat, nestačí mu obyčejný vývojářský účet u Apple, nýbrž musí požádat o speciální certifikát. Od macOS 10.13 High Sierra uživatel načtení kextu manuálně schvaluje v předvolbách systému (jediná cesta, jak se tomu vyhnout, je správa Macu pomocí MDM). V macOS 10.15 Catalina bude načtení doplňku navíc vyžadovat restart. Rovněž bylo oznámeno, že Catalina je poslední systém, kde kexty poběží v současné podobě. Apple má totiž náhradu. Nové systémové doplňky (System Extensions) nabízejí rozhraní pro vývojáře, kteří doteď byly nuceni pro své produkty vyvíjet kexty.

Pokrývají nízkoúrovňový přístup k síti, událostem v macOS a připojeným zařízení. Jejich kód běží v prostoru uživatele (userland) vedle jeho aplikací. Případná neočekávaná situace tedy vyústí maximálně k pádu aplikace, nikoliv celého systému. Pro vývojáře by vývoj měl být podstatně jednodušší, protože uživatelský prostor nezná omezení jádra a navíc lze použít vyšší programovací jazyky mezi něž patří preferovaný Swift. Výjimkou je kategorie ovladačů zařízení vyžadující programování v C++. Systémové doplňky navíc bude možné distribuovat v rámci Mac App Store, což v případě kextů nešlo.

Klasické doplňky jádra s námi nejspíš ještě nějakou dobu zůstanou. Stále existující situace, jež Apple nepodchytil a nelze je vyřešit jinak, než kextem. Očekáváme však, že  budoucí verze macOS přinesou další odpovídající rozhraní a programování komerčního software v prostoru kernelu definitivně skončí.

User Privacy

Jestli máte v posledních letech pocit, že jsou Macy značně upovídanější, nemýlíte se.  Mac OS X 10.4 Tiger v roce 2004 dovolil bez ptanístáhnout a spustit jakoukoliv aplikaci. Program pak mohl přečíst všechna data uživatele, aniž by ten o tom věděl. Absolutní nekontrolovaná svoboda však byla aplikacím posledních 15 let postupně ořezána. Gatekeeper (od 10.5 Leopard) začal varovat uživatele při první spuštění aplikace stažené z Internetu a kontroluje digitální podpis.

Sandboxing (od 10.7 Lion) omezuje přístup aplikací k datům bez explicitní akce uživatele, ale povinný je pouze pro aplikace v Mac App Store. Máme tedy nějakou aplikaci staženou z webové stránky, která je digitálně podepsaná a notarizována, ale nepoužívá Sandboxing. Taková aplikace bez ptaní stále přečetla všechna data na disku přístupná uživateli nebo nahrála zvuk z mikrofonu.

V macOS 10.14 Mojave přistála první sada omezení cílená na ochranu soukromí. První přístup programů ke kameře a mikrofonu již vyžadoval souhlas. Rovněž přestalo být možné potají přečíst kontakty, kalendáře, připomínky, fotky, emaily aplikace Mail, zprávy aplikace Messages, historii a cookie prohlížeče Safari, zálohy iOS zařízení v iTunes a Time Machine zálohy. Omezení zasáhlo také přístup k ovládání kurzoru myši pomocí rozhraní pro usnadnění přístupu handicapovaným uživatelům.

macOS 10.15 seznam chráněných oblastí značně rozšiřuje. Aplikace nebudou smět bez explicitního souhlasu nahrávat obrazovku a sledovat stisknuté klávesy mimo svá okna. Program bez předchozí povolení nebo přímé interakce uživatele neotevře soubor v následujících lokacích:

  • iCloud Drive,
  • Dropbox, OneDrive a další podobné služby,
  • adresáře Dokumenty, Plocha a Stažené v domovské složce,
  • koš,
  • síťové disky,
  • připojená  zařízení (např USB/Thunderbolt disky).

Vývojáři aplikací mají do vydání Cataliny opravdu spoustu práce. V nejlepším případě všechny bezpečnostní autorizace podchytí a provedou jejich nastavením při první spuštění, jako to dělá například automatizační nástroj Alfred. Bohužel hrozí, že starší verze software s placeným upgradem nebo programy od méně schopných vývojářů začnou zobrazovat jeden bezpečnostní dialog za druhým.

Pamětníci jistě vzpomenou na jistý systém od společnosti Microsoft, který nechvalně proslul přesně tímto chováním. Na jednu stranu plně chápeme snahu o ochranu zákazníka před firmami stavějící svůj byznys na prodeji obrovských databází informací. V ideálním světě vývojáři rychle přijmou nový bezpečnostní model a aplikace uzpůsobí. Člověk před počítačem informovaně zváží přístup jednotlivých nástrojů ke svým osobní, datům a schopnostem systému. Reálný svět je jiný. Mnoho lidí nebude vůbec tušit, co se po nich chce a dialogy bezhlavně odkliká.

Další část si bude připadat obtěžována a udělá totéž. Bezpečnostní opatření tak paradoxně mohou vést k horší bezpečnosti, kdy systém otupí pozornost nejzranitelnějšího článku celého informačního soukolí - člověka. Uživatelům ve firmách může velmi pomoci aktivní IT oddělení, jenž použije nástroje pro hromadnou správu (MDM), aby často používané aplikace dostaly nutná povolení předem.

Zdroje