/
/

Cosa sono le kernel extension di macOS e come Apple le sta facendo evolvere

di Team Ninja
How to Audit and Manage macOS System Extensions Across Managed Macs

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Punti chiave

  • Le kernel extension (KEXT) operano all’interno del kernel dell’OS e, grazie a un’integrazione profonda nel sistema, ampliano le capacità di monitoraggio e gestione del software.
  • Poiché le KEXT operano con tutti i privilegi del kernel, bug, conflitti o codice dannoso possono causare crash di sistema, perdita di dati o l’aggiramento dei controlli di sicurezza.
  • A partire da macOS 10.15.4 Catalina, Apple ha introdotto le system extension come alternativa più sicura alle kernel extension e, con Big Sur, macOS ha smesso di caricare per impostazione predefinita le kext che si basano su API del kernel deprecate.
  • Le system extension utilizzano i framework DriverKit, Network Extension ed Endpoint Security per offrire funzionalità a livello di kernel senza i rischi associati.
  • Eseguire le estensioni nello spazio utente limita l’ambito dei privilegi, migliora la stabilità del sistema e si allinea alle moderne funzioni di sicurezza di macOS.
  • L’uso delle KEXT è sempre più limitato sui dispositivi con Apple silicon e Apple non ha annunciato una data definitiva per la fine del supporto alle kernel extension, anche se le system extension restano l’approccio preferito e a prova di futuro.

Le kernel extension di macOS (KEXT) permettono alle applicazioni di interagire con hardware o servizi di basso livello, offrendo funzionalità più profonde, tra cui il monitoraggio e il controllo del comportamento del sistema a basso livello. Le KEXT, però, vengono eseguite all’interno del kernel dell’OS con privilegi molto ampi, il che può introdurre rischi per la sicurezza e la stabilità.

Apple si sta orientando verso le system extension, che operano al di fuori del kernel e offrono agli utenti modi più sicuri per estendere le funzionalità della piattaforma senza compromettere la sicurezza. Questo cambiamento prosegue anche nell’attuale versione macOS 26 Tahoe, anche se Apple non ha fissato una data pubblica per la fine del supporto alle kernel extension.

Cosa sono le kernel extension di macOS?

Le KEXT sono moduli di codice che consentono ad app e piattaforme di caricarsi direttamente nel kernel di macOS, ampliandone le capacità. Sono utili per attività che richiedono un accesso diretto a livello di sistema, come le seguenti:

  • Comunicazione con i driver: garantisce che l’OS sappia come utilizzare i dispositivi collegati che non gestisce in modo nativo, contribuendo a mantenerne la funzionalità.
  • Interazioni con lo stack di rete: le KEXT ispezionano, filtrano, reindirizzano o modificano i dati di rete, aiutando controlli di rete come client VPN e firewall ad applicare le policy di sicurezza.
  • Funzioni di sistema di basso livello: fornisce alle piattaforme metriche dell’OS a livello profondo, tra cui il comportamento della memoria e l’attività dei processi in tempo reale, utili per strumenti di prestazioni, monitoraggio della sicurezza e utility di gestione del sistema.

In parole semplici, le KEXT offrono visibilità e controllo approfonditi su aree di macOS che le applicazioni standard non riescono a raggiungere. Permettono all’OS di comunicare in modo efficace con hardware non supportato, consentono ai tecnici di osservare e controllare i dati di rete e forniscono informazioni di basso livello sulle metriche chiave dei dispositivi.

Rischi associati all’uso delle KEXT su macOS

Il kernel è responsabile della gestione di hardware, memoria e processi critici dell’OS: per questo operare a questo livello è rischioso. Le kernel extension permettono ad app, piattaforme o servizi di operare con lo stesso livello di fiducia e autorità dell’OS stesso.

Poiché queste estensioni vengono eseguite nel cuore del sistema operativo, non dispongono di molte protezioni, il che può portare a crash imprevisti, protezioni aggirate e procedure di troubleshooting complesse.

Impatto sull’intero sistema

Se una kernel extension contiene un errore, le conseguenze sono più gravi di un bug in un’applicazione standard. Le KEXT consentono l’esecuzione di codice nel kernel, il che significa che un singolo difetto può causare crash di sistema, instabilità e comportamenti imprevedibili del dispositivo.

Nella maggior parte dei casi il sistema non è in grado di isolare un guasto del kernel né di ripristinarsi, il che può imporre un riavvio e provocare perdita di dati o corruzione del file system. In altre parole, quando una kernel extension si blocca, non compromette soltanto un’app: può compromettere l’intero OS.

Possibile aggiramento dei controlli di sicurezza

Le KEXT dannose operano a livello di OS e questo consente loro di aggirare i controlli di sicurezza integrati, nascondere la propria attività o manomettere i processi di sistema. Grazie all’accesso a livello di kernel, le KEXT che si comportano in modo anomalo sono difficili da rilevare e correggere e possono operare in silenzio dietro le protezioni per un tempo indefinito.

Complessità del troubleshooting

I dispositivi macOS gestiti eseguono di solito più kernel extension a supporto degli strumenti di gestione e monitoraggio dei dispositivi. Quando queste estensioni entrano in conflitto tra loro o con gli aggiornamenti di macOS, individuare la causa può essere difficile. Ne derivano procedure diagnostiche lunghe e dispendiose in termini di tempo, che richiedono una conoscenza approfondita del sistema per essere portate a termine con efficacia.

RischioRiduzione
Impatto sull’intero sistemaTesta e distribuisci le KEXT per fasi prima di un rilascio su larga scala e monitora l’eventuale ricorrenza di crash dopo gli aggiornamenti di macOS.
Controlli di sicurezza aggiratiLimita l’approvazione delle KEXT ai fornitori verificati e applicala tramite MDM anziché lasciarla alla discrezione dell’utente.
Complessità del troubleshootingUsa i log di approvazione gestiti tramite MDM per risalire a quale estensione è stata caricata, quando e su quali dispositivi.

Le system extension di macOS: un’alternativa moderna alle KEXT

Anche se le kernel extension comportano rischi per i dispositivi e gli ambienti gestiti, il loro utilizzo è innegabilmente essenziale in una strategia di gestione IT proattiva. Per affrontare i rischi potenziali legati alle KEXT, Apple ha introdotto le system extension per Mac, un’alternativa più sicura per l’integrazione profonda del software nell’OS.

Le system extension vengono distribuite tramite framework di sistema dedicati che operano nello spazio utente:

  • DriverKit: supporta i driver hardware senza richiedere l’accesso al kernel.
  • Network extension: componenti nello spazio utente che permettono alle app di estendere le proprie capacità di networking native.
  • Estensioni per la sicurezza degli endpoint: offrono visibilità a livello di sistema agli strumenti di sicurezza moderni, come EDR (Endpoint Detection and Response) e strumenti VPN.
  • FSKit: consente agli sviluppatori di creare file system personalizzati nello spazio utente anziché come kernel extension, estendendo lo stesso allontanamento dal codice a livello di kernel anche ai driver di archiviazione e file system.

Spostare queste integrazioni al di fuori del kernel permette ai team IT e agli MSP di preservare le proprie capacità di gestione e monitoraggio senza i rischi sistemici legati alle KEXT. Apple ottiene questo risultato cambiando il luogo in cui vengono eseguite le estensioni, il livello di accesso concesso e il modo in cui i guasti vengono contenuti.

Esecuzione nello spazio utente

A differenza delle KEXT, le system extension operano al di fuori del kernel di macOS, impedendo l’esecuzione di codice di terze parti al di sotto del livello dell’OS. Se una system extension si guasta o si comporta in modo anomalo, macOS può isolare il problema senza mandare in crash il sistema, migliorando l’affidabilità complessiva.

Ambito di privilegi limitato

Le system extension mantengono un accesso basato sul privilegio minimo, eseguendo solo le azioni approvate. Ad esempio, un’estensione di networking può osservare o gestire il traffico di rete senza ottenere accesso a componenti o metriche di sistema non correlati. Questo accesso circoscritto riduce la superficie di attacco del tuo ambiente e limita la portata dei danni causati da bug o codice dannoso.

Maggiore stabilità e sicurezza

Le system extension si integrano in modo pulito con le funzioni di sicurezza di macOS, tra cui System Integrity Protection, la firma del codice e le approvazioni da parte dell’utente o tramite MDM. Inoltre, è meno probabile che gli aggiornamenti di macOS le compromettano e i guasti sono più facili da diagnosticare e risolvere.

Strategia di gestione delle kernel extension di macOS

Anche se Apple si muove costantemente verso l’adozione delle system extension, macOS supporta ancora le KEXT, soprattutto negli scenari legacy. Nello specifico, questo supporto esiste per i software più datati e per strumenti specializzati che non sono ancora passati alle system extension.

Le KEXT richiedono un controllo e un’approvazione espliciti tramite:

  • Approvazione dell’utente: macOS richiede che gli utenti approvino manualmente l’uso di una KEXT prima che diventi effettiva, creando un punto di attrito intenzionale. Sui Mac con macOS Sequoia o con l’attuale versione macOS Tahoe, questa approvazione si trova in Impostazioni di Sistema> Generali> Elementi login ed estensioni; le versioni precedenti di macOS utilizzano invece il pannello Privacy e sicurezza.
  • Approvazione tramite MDM: alcuni MDM per macOS permettono l’approvazione centralizzata delle KEXT e l’inserimento in whitelist per accelerare i tempi di caricamento senza richiedere azioni da parte dell’utente.
  • Approvazione basata sulla fiducia: consente agli amministratori di approvare le KEXT di una famiglia di fornitori nota per semplificare la gestione delle kernel extension; richiede però una verifica attenta dei fornitori.

Inoltre, gli amministratori possono sfruttare gli MDM per impedire agli utenti di approvare autonomamente le kernel extension. Questo controllo fa sì che la governance delle KEXT resti nelle mani degli amministratori tramite policy, evitando che gli utenti autorizzino inconsapevolmente estensioni non sicure.

L’impatto di Apple silicon e dell’architettura moderna di macOS

Al WWDC 2019 Apple ha annunciato formalmente la deprecazione delle KEXT e ha introdotto le system extension in macOS 10.15.4 Catalina come loro sostituto. L’anno successivo Apple ha annunciato anche Apple silicon, che ha cambiato il modo in cui macOS gestisce fiducia, sicurezza e accesso al sistema di basso livello.

Sui dispositivi moderni con Apple silicon e macOS, le kernel extension non vengono caricate a meno che non siano esplicitamente autorizzate, in netto contrasto con il moderno approccio di macOS alla sicurezza. Negli ambienti gestiti, questo aumenta l’attrito e il rischio quando si utilizzano le KEXT su larga scala.

Queste restrizioni severe sulle KEXT sono intenzionali, perché le estensioni a livello di kernel possono danneggiare i dispositivi introducendo nell’OS codice esterno, a volte non approvato. Per i team IT e gli MSP che gestiscono ambienti legacy, la dipendenza dalle KEXT richiederà sempre più spesso eccezioni di sicurezza, interventi manuali o compromessi architetturali.

Al 2026 Apple non ha confermato una versione di macOS in cui le kernel extension smetteranno del tutto di funzionare e le indicazioni attuali lasciano prevedere che il supporto continui anche in macOS 27, anche se la tendenza a restrizioni sempre più stringenti proseguirà probabilmente a ogni rilascio.

Gestisci le system extension o le kernel extension di macOS con NinjaOne

NinjaOne MDM offre diverse funzionalità che aiutano gli amministratori a gestire le kernel extension e le estensioni di sicurezza in modo centralizzato e su larga scala negli ambienti macOS.

  • Gestione delle system extension: aggiungi o blocca system extension specifiche tramite la policy dell’agente NinjaOne e usa i bundle identifier per semplificare l’approvazione delle system extension dei fornitori attendibili.
  • Gestione delle preferenze sulla privacy: preconfigura le autorizzazioni sulla privacy per applicazioni gestite specifiche, concedendo l’accesso necessario alle fonti di dati senza richiedere l’interazione dell’utente.
  • Assegnazione e applicazione delle policy: configura le impostazioni MDM, incluse le system extension, all’interno delle policy dell’agente macOS. Visualizza e gestisci le sezioni sovrascritte delle policy assegnate dalla dashboard del dispositivo.
  • Azioni sui dispositivi: velocizza i flussi di lavoro amministrativi con le azioni sui dispositivi, come lo spegnimento, l’installazione dell’agente NinjaOne o l’eliminazione dei dispositivi macOS registrati in MDM, direttamente dalla console NinjaOne.

Guida rapida

NinjaOne può aiutarti a gestire le kernel extension di macOS (KEXT) e le system extension grazie alle sue funzionalità MDM. Ecco come NinjaOne supporta la gestione delle estensioni su macOS:

Gestione delle system extension

  • Aggiunta o blocco delle system extension: gli amministratori possono aggiungere o bloccare system extension specifiche usando i bundle identifier, semplificando le approvazioni per i fornitori attendibili.
  • Gestione delle preferenze sulla privacy: preconfigura le autorizzazioni sulla privacy per le applicazioni gestite, così da concedere l’accesso necessario senza richiedere l’interazione dell’utente.

Assegnazione e applicazione delle policy

  • Impostazioni MDM nelle policy dell’agente: configura le impostazioni MDM, incluse le system extension, all’interno delle policy dell’agente macOS.
  • Visualizzazione delle sovrascritture delle policy: gestisci le sezioni sovrascritte delle policy assegnate dalla dashboard del dispositivo, per un controllo e una visibilità migliori.

Azioni sui dispositivi

  • Flussi di lavoro amministrativi: usa le azioni sui dispositivi, come lo spegnimento, l’installazione dell’agente NinjaOne o l’eliminazione dei dispositivi macOS registrati in MDM, direttamente dalla console NinjaOne per velocizzare le attività amministrative.

Controllo centralizzato

  • Gestione dell’approvazione da parte dell’utente: richiedi l’approvazione dell’utente per le KEXT oppure usa l’approvazione tramite MDM per gestire centralmente le estensioni e inserirle in whitelist.
  • Approvazione basata sulla fiducia: consenti agli amministratori di approvare le KEXT dei fornitori noti, semplificando la gestione senza rinunciare alla sicurezza.

Compatibilità con Apple silicon: NinjaOne aiuta a gestire le restrizioni più rigide sulle KEXT per i dispositivi Apple silicon, garantendo la compatibilità e riducendo il rischio negli ambienti macOS moderni.

Mettere in sicurezza l’uso delle kernel extension e delle system extension di macOS

Le kernel extension svolgono un ruolo chiave nell’ampliare le capacità di software e piattaforme; tuttavia, un accesso profondo al kernel pone sfide di sicurezza e stabilità per gli ambienti. L’orientamento di Apple verso l’uso delle system extension contribuisce a ridurre i rischi legati all’impiego delle KEXT, migliorando al contempo l’affidabilità dei dispositivi.

Comprendere con chiarezza il passaggio dalle kernel extension alle system extension ti aiuta a gestire i dispositivi macOS in modo più sicuro. Inoltre, ti permette di pianificare gli aggiornamenti futuri, garantendo la compatibilità e semplificando i flussi di lavoro negli ambienti macOS legacy gestiti.

Argomenti correlati:

FAQs

Quando una kernel extension viene bloccata, macOS ne impedisce il caricamento nel kernel e il software che dipende da essa perde funzionalità. Le KEXT bloccate richiedono di norma un’approvazione esplicita dell’utente o tramite MDM per essere caricate, mentre i dispositivi con Apple silicon possono richiedere un’autorizzazione aggiuntiva per superare restrizioni più rigide.

Abilitare una kernel extension richiede di solito un’approvazione nelle impostazioni di sicurezza di macOS oppure tramite una policy MDM che inserisce l’estensione in whitelist. Sui dispositivi con Apple silicon possono essere necessari passaggi aggiuntivi in modalità di recupero, che però possono indebolire la postura di sicurezza complessiva del dispositivo.

Le kernel extension vengono eseguite all’interno del kernel di macOS con tutti i privilegi di sistema. Le system extension, invece, vengono eseguite nello spazio utente offrendo comunque le stesse funzionalità, senza esporre l’OS ai rischi a livello di kernel.

Le system extension possono restare bloccate finché non vengono approvate esplicitamente da un utente o da un amministratore, così da impedire a software non attendibile di ottenere capacità elevate. macOS richiede il consenso dell’utente o l’approvazione tramite MDM per garantire che le estensioni provengano da fornitori verificati e siano in linea con le policy dell’organizzazione.

Le kernel extension sono ancora supportate negli ambienti macOS legacy; tuttavia, Apple continua a limitarne l’uso a ogni rilascio. Le organizzazioni devono aspettarsi un supporto ridotto e un attrito crescente: la migrazione verso software basato sulle system extension diventa quindi essenziale per garantire la compatibilità nel lungo periodo.

Su macOS Sequoia e sull’attuale versione macOS Tahoe, le estensioni si gestiscono in Impostazioni di Sistema > Generali > Elementi login ed estensioni. Le versioni precedenti di macOS utilizzano invece il pannello Privacy e sicurezza. Sui Mac con Apple silicon potresti dover anche impostare il criterio di sicurezza su Sicurezza ridotta in Utility Sicurezza Avvio prima che una kernel extension possa essere caricata.

FSKit è un framework Apple più recente che consente agli sviluppatori di creare file system personalizzati nello spazio utente anziché come kernel extension. Estende lo stesso allontanamento dal codice a livello di kernel che ha portato a DriverKit, Network Extension ed Endpoint Security, questa volta ai driver di archiviazione e file system.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?