
Estensione sicura del kernel in macOS
A partire da macOS 11, se le estensioni del kernel di terze parti sono abilitate, non possono essere caricate nel kernel su richiesta. Vengono invece unite in una raccolta del kernel ausiliaria, che viene caricata durante il processo di avvio. Per i Mac dotati di chip Apple, la misurazione della raccolta del kernel ausiliaria viene firmata in LocalPolicy (per i modelli di hardware precedenti la raccolta del kernel ausiliaria risiedeva nel volume dedicato ai dati). La ricostruzione della raccolta del kernel ausiliaria richiede lâapprovazione dellâutente e il riavvio di macOS per caricare le modifiche nel kernel; richiede inoltre che lâavvio protetto sia configurato su âSicurezza ridottaâ.
Importante: le estensioni del kernel non sono piĂš consigliate per macOS. Le estensioni del kernel mettono a repentaglio lâintegritĂ e lâaffidabilitĂ del sistema operativo; Apple consiglia agli utenti di optare per soluzioni che non richiedano lâestensione del kernel.
Estensioni del kernel sui Mac dotati di chip Apple
Nei Mac dotati di chip Apple, le estensioni del kernel devono essere abilitate esplicitamente tenendo premuto il tasto di accensione durante lâavvio per entrare in modalitĂ One True Recovery (1TR), scegliendo lâopzione âSicurezza ridottaâ e selezionando il riquadro per abilitarle. Questa azione richiede anche lâinserimento di una password da amministratore per autorizzare la riduzione del livello di sicurezza. La combinazione di modalitĂ 1TR e richiesta della password rendono difficile a un hacker che effettui un attacco solo al software a partire da macOS applicare estensioni del kernel al sistema operativo per poi sfruttarle per ottenere privilegi kernel.
Una volta che un utente ha autorizzato il caricamento delle estensioni del kernel, per autorizzare lâinstallazione delle stesse viene utilizzata la procedura di caricamento delle estensioni del kernel approvate dallâutente descritta sopra. Lâautorizzazione utilizzata per la procedura descritta viene usata anche per registrare un hash SHA384 dellâelenco delle estensioni del kernel autorizzate dallâutente in LocalPolicy. Successivamente, il deamon di gestione del kernel (kmd
) si occupa di convalidare solo le estensioni del kernel presenti nellâelenco delle estensioni del kernel autorizzate dallâutente per essere incluse nella raccolta del kernel ausiliaria.
Se la protezione dellâintegritĂ del sistema è abilitata, prima dellâinclusione nella raccolta del kernel ausiliaria, viene verificata la firma di ogni estensione del kernel.
Se la protezione dellâintegritĂ del sistema è disabilitata, la firma delle estensioni del kernel non è richiesta.
Questo approccio consente operazioni in modalitĂ âSicurezza assenteâ in cui sviluppatori o clienti che non fanno parte dellâApple Developer Program testano le estensioni del kernel prima che vengano firmate.
Dopo che la raccolta del kernel ausiliaria è stata creata, la relativa misurazione viene inviata a Secure Enclave perchĂŠ venga firmata e inclusa in una struttura di dati Image4 che possa essere valutata da iBoot durante lâavvio. Durante la creazione della raccolta del kernel ausiliaria, viene generata anche una ricevuta per le estensioni del kernel. Essa contiene lâelenco delle estensioni del kernel effettivamente incluse nella raccolta del kernel ausiliaria, perchĂŠ potrebbe essere un sottoinsieme dellâelenco delle estensioni del kernel autorizzate dallâutente se sono state trovate estensioni del kernel non autorizzate. Un hash SHA384 della struttura di dati Image4 della raccolta del kernel ausiliaria e la ricevuta delle estensioni del kernel vengono inclusi in LocalPolicy. Lâhash Image4 della raccolta del kernel ausiliaria viene utilizzato per unâulteriore verifica da parte di iBoot allâavvio, per aiutare a garantire che non sia possibile avviare un file Image4 della raccolta del kernel ausiliaria meno recente firmato da Secure Enclave con un LocalPolicy piĂš recente. La ricevuta delle estensioni del kernel è usata da sottosistemi come Apple Pay per determinare se ci sono estensioni del kernel attualmente caricate che possano interferire con lâattendibilitĂ di macOS. Se sono presenti, le funzionalitĂ di Apple Pay potrebbero venire disabilitate.
Estensioni di sistema
macOS 10.15 consente agli sviluppatori di ampliare le funzionalitĂ di macOS installando e gestendo le estensioni di sistema eseguite sullo spazio utente piuttosto che al livello del kernel. Se eseguite sullo spazio utente, le estensioni di sistema aumentano la stabilitĂ e la sicurezza di macOS. Sebbene le estensioni del kernel abbiano accesso per definizione allâintero sistema operativo, quelle eseguite sullo spazio utente ricevono unicamente i privilegi necessari allâesecuzione della loro funzione specifica.
Gli sviluppatori possono utilizzare i framework, come DriverKit, EndpointSecurity e NetworkExtension, per scrivere su driver UI e USB, strumenti di sicurezza endpoint (come la prevenzione della perdita di dati o altri agenti endpoint) nonchĂŠ strumenti di rete e VPN, il tutto senza dover scrivere delle estensioni del kernel. Gli agenti di sicurezza di terze parti dovrebbero essere utilizzati solo se sfruttano queste API o se hanno una solida roadmap di transizione verso di esse e di allontanamento dalle estensioni del kernel.
Caricamento delle estensioni del kernel approvate dallâutente
Per migliorare la sicurezza, per il caricamento delle estensioni del kernel installate con o dopo aver installato macOS 10.13 è necessario il consenso dellâutente. Questo processo è noto come caricamento delle estensioni del kernel approvate dallâutente. Per lâapprovazione di unâestensione del kernel è necessaria lâautorizzazione di un amministratore. Le estensioni del kernel non richiedono autorizzazione se:
Sono installate su un Mac con macOS 10.12 o versioni precedenti.
Sostituiscono delle estensioni approvate in precedenza.
Possono essere caricate senza il consenso dellâutente usando lo strumento a linea di comando
spctl
disponibile quando il Mac è avviato da recoveryOS.Possono essere caricate tramite una configurazione MDM (Mobile Device Management).
Sui dispositivi con macOS 10.13.2 o versioni successive, gli utenti possono usare la MDM per indicare un elenco di estensioni del kernel che può essere caricato senza il consenso dellâutente. Questa opzione richiede un Mac registrato in una soluzione MDM, tramite Apple School Manager, tramite Apple Business Manager o tramite una registrazione effettuata dallâutente.