Obrázek: Na loňské konferenci WWDC Apple oznámil plány na zrušení “rozšíření jádra” (KEXT) macOS a jejich nahrazení novým mechanismem zvaným “systémová rozšíření”.
První krok k tomuto oznámení byl učiněn s vydáním macOS Catalina (10.15.0) v září 2019, kdy byla vedle rozšíření jádra zavedena i systémová rozšíření.
Závěrečný krok plánu společnosti Apple vstoupí v platnost v příštích týdnech s nadcházejícím vydáním systému macOS Catalina 10.15.4.
Podle společnosti Apple bude počínaje systémem macOS 10.15.4 používání rozšíření jádra vyvolá oznámení uživateli, že software obsahuje zastaralé API, a vyzve ho, aby se obrátil na vývojáře s žádostí o alternativu.
Jaký je mezi nimi rozdíl?
Obě rozšíření jádra a systémová rozšíření slouží stejnému účelu. Umožňují uživatelům instalovat aplikace, které rozšiřují nativní možnosti operačního systému macOS.
Aplikace instalují rozšíření jádra/systému, která jim umožňují provádět operace, pro které macOS nemá nativní vlastnosti nebo funkce.
Antivirový software pro Mac, firewally, klienti VPN, DNS proxy, ovladače USB a další využívají rozšíření jádra.
Rozdíl mezi těmito dvěma novými systémy rozšíření je v tom, že starší rozšíření jádra vykonávají svůj kód na úrovni jádra systému macOS, zatímco novější systémová rozšíření běží v přísněji kontrolovaném uživatelském prostoru.
Velký krok pro bezpečnost
“Z pohledu společnosti Apple je to významný krok ke zlepšení zabezpečení systému macOS,” řekl tento týden v rozhovoru pro ZDNet Patrick Wardle, hlavní bezpečnostní výzkumník společnosti Jamf a známý odborník na zabezpečení systému macOS.
“Rozšíření jádra třetích stran skutečně představují šťavnatý vektor útoku pro útočníky zaměřené na systém macOS,” dodal. “Zejména pokud můžete jako útočník zneužít rozšíření jádra nebo nahrát vlastní (za předpokladu, že je podepsané).”
A k útokům zahrnujícím KEXT došlo již v minulosti .
“Pro macOS je to opravdu konec hry,” řekl Wardle. “Mnoho mnoha bezpečnostních mechanismů je implementováno/vynuceno v jádře.”
Wardle říká, že útok jako tento by nefungoval se systémovými rozšířeními, protože ta běží v uživatelském režimu.
“Protože neběží v jádře, exploit vám už nezajistí přístup do režimu jádra, jako tomu bylo u exploitu KEXT,” řekl Wardle.
“Takže Apple chce v podstatě všechny vykopnout , hlavně z bezpečnostních důvodů.”
Potenciální nevýhody
Podle Wardla má však tento krok i stinné stránky.
První je, že vykopnutím vývojářů aplikací z jádra získá Apple také mnohem větší kontrolu nad macOS, podobně jako má kontrolu nad iOS.
Dosud byl macOS rájem pro vývojáře a jeho uživatele. Pokud macOS neměl konkrétní funkci, mohli vývojáři jednoduše vytvořit aplikaci a využít rozšíření jádra k přidání potřebných funkcí.
Druhou nevýhodou je, že mnoho samotných bezpečnostních nástrojů se do značné míry spoléhalo a bylo postaveno na plném přístupu rozšíření jádra k uživatelskému Macu. Někdo by mohl namítnout, že přechod společnosti Apple k systémovým rozšířením může skončit nevykastrovaností bezpečnostních produktů, které cestou ztratí část své schopnosti detekovat a zastavit malware.
Wardle, který je autorem mnoha bezplatných bezpečnostních nástrojů pro macOS, však říká, že Apple poskytl “některé skvělé rámce pro uživatelský režim, které poskytují bezpečnostním nástrojům třetích stran potřebné možnosti”, takže se zdá, že si Apple zatím nepodřezává větev pod nohama.
Prozatím však není jasné, zda by systémová rozšíření poskytovala stejnou všestrannost a svobodu kódování jako rozšíření jádra. To se teprve uvidí – a je to téma na další článek – protože budeme potřebovat více času, aby vývojáři macOS mohli pomalu přecházet na systémová rozšíření i nadále.
Wardle však upozorňuje, že tento krok je pro bezpečnost macOS celkově dobrý, bez ohledu na další možné důvody kroku společnosti Apple.