Alla Worldwide Developers Conference WWDC 2019 dello scorso anno, Apple aveva annunciato l’intenzione di deprecare – sconsigliare una caratteristica in passato documentata e ufficiale – le KEXT (estensioni del kernel) e sostituirle con un nuovo meccanismo denominato “estensioni di sistema”.
Il primo passo verso tale direzione è iniziato con l’arrivo di macOS 10.15 Catalina a settembre 2019, con l’arrivo appunto delle estensioni di sistema, supportate insieme alle estensioni del kernel.
Il piano di Apple ora prosegue e con macOS 10.15.4 uso di varie estensioni di terze parti nel kernel attiverà una notifica agli utenti per spiegare che il software usa API deprecate, non sarà compatibile con versioni future di macOS”, invitando a mettersi in contatto con lo sviluppatore per aggiornamenti o alternative. DriverKit è la strada del futuro e gli sviluppatori, con l’avviso mostrato sullo schermo, hanno ora un incentivo più forte per passare al quests nuovs tecnologia.
Come funzionano le KEXT e le estensioni di sistema
Le estensioni per il kernel e le estensioni di sistema hanno lo stesso scopo: permettere all’utente di installare app che estendono le funzionalità native del sistema operativo. Le app installano kext/estensioni di sistema per offrire funzionalità o consentire l’esecuzione di operazioni che il sistema operativo non offre nativamente.
Tra i software che installano estensioni del kernel ci sono: firewall, client VPN, proxy DNS, driver USB e altri ancora. La differenza tra estensioni di sistema e le vecchie estensioni per il kernel è che queste ultime sono eseguite a livello del kernel di macOS, mentre le nuove estensioni di sistema sono eseguite nell’ambiente più isolato e controllato dello spazio utente (isolato nel proprio spazio di memoria).
“Dal punto di vista di Apple, si tratta di un importante passo avanti nel miglioramento della sicurezza di macOS”, ha riferito Patrick Wardle, Principal Security Researcher di Jamf al sito ZDNet. “Le estensioni di terze parti per il kernel rappresentano un succulento vettore di attacco per gli attacker che hanno come target macOS”.
Il ricercatore ha spiegato che se un cybercriminale riesce in qualche modo a installare una KEXT pericolosa, non c’è meccanismo di difesa che tenga; molto meno pericoloso consentire l’esecuzione nello spazio-utente: lo spazio utente è una sorta di sandboxing (tecnologia che limita i tipi di operazioni che un’applicazione può eseguire), in cui i programmi utente possono accedere solo alla memoria che è stata loro assegnata e non possono rovinare altri programmi e il kernel.
Tra gli aspetti negativi dall’impossibilità di installare le KEXT, il maggiore controllo da parte di Apple su tutto il sistema, alla stregua di quanto già l’azenda fa con iOS.
Finora era possibile sviluppare estensioni per il kernel permettendo agli sviluppatori di estendere le funzionalità messe a disposizione dal sistema operativo; questa possibilità era sfruttata anche da vari software di sicurezza. Wardle riferisce ad ogni modo che Apple mette a disposizione “grandiosi framework per lo spazio-utente” con tutte le funzionalità utili per gli sviluppatori di tool di sicurezza. Vedremo se saranno tutte rose e fiori o se sviluppatori di determinati software si lamenteranno…