Estensioni del kernel e di sistema su macOS
macOS 10.15 o versione successiva consente agli sviluppatori di espandere le funzionalità di macOS tramite l’installazione e la gestione delle estensioni di sistema che vengono eseguite nello spazio dell’utente invece che a livello di kernel. Grazie all’esecuzione nello spazio utente, le estensioni di sistema aumentano stabilità e sicurezza di macOS. Anche se le kext hanno intrinsecamente accesso completo all’intero sistema operativo, alle estensioni in esecuzione nello spazio utente sono concessi solo i privilegi necessari per eseguire la loro specifica funzione.
Le estensioni di sistema supportano la gestione efficace tramite l’utilizzo della soluzione MDM, incluso la possibilità di consentire tutte le estensioni di uno sviluppatore o tipo specifico (come le estensioni di rete) che possono essere caricate senza interazione da parte dell’utente. Opzionalmente, MDM può non consentire agli utenti di approvare il caricamento delle proprie estensioni di sistema.
In macOS 11.3 fino a macOS 11.6.4, eseguire modifiche a un profilo di estensione di sistema influisce direttamente sullo stato dell’estensione. Per esempio, se un’estensione è in attesa di approvazione e viene inviato un profilo di configurazione che consente l’estensione, quest’ultima può essere caricata. Al contrario, se l’approvazione viene revocata, il caricamento dell’estensione di sistema viene annullato e contrassegnato per la rimozione al riavvio successivo del Mac. Se un’estensione di sistema prova ad annullare il caricamento, viene visualizzato un dialogo di autenticazione interattivo che richiede all’amministratore le credenziali per autorizzare l’annullamento del caricamento.
In macOS 12.0.1 o versione successiva, un dizionario nel payload “Estensioni di sistema”, detto RemovableSystemExtension
, consente a un amministratore MDM di specificare quali app dovrebbero essere capaci di rimuovere le proprie estensioni di sistema. Per rimuovere le estensioni del sistema, non è richiesta l’autenticazione dell’amministratore locale. Questo è specialmente utile per i fornitori che possono fornire programmi di disinstallazione automatizzati per le proprie app.
Estensioni Kernel
A macOS 11 o versione successiva, se le estensioni del kernel (kext) di terze parti sono abilitate, non possono essere caricate nel kernel su richiesta. Richiedono l’approvazione dell’utente e il riavvio di macOS per caricare le modifiche nel kernel, inoltre richiedono che l’avvio sicuro sia configurato su “Sicurezza ridotta” su un Mac con Apple Silicon.
Gli sviluppatori possono usare i framework, come DriverKit e NetworkExtension, per scrivere su unità USB e per l’interfaccia umana, strumenti per la sicurezza degli endpoint (come la prevenzione della perdita di dati o altri agenti per gli endpoint) e strumenti VPN e di rete, il tutto senza necessità di scrivere kext. Gli agenti di sicurezza di terze parti dovrebbero essere utilizzati solo se traggono vantaggio da tali API o se dispongono di un’efficace tabella di marcia per la transizione verso di esse senza ricorrere alle estensioni del kernel.
Importante: le kext non sono più consigliate per macOS. Le kext mettono a rischio l’integrità e l’affidabilità del sistema operativo. Gli utenti dovrebbero preferire soluzioni che non richiedono l’estensione del kernel e utilizzare estensioni di sistema.
Aggiungere kext su un Mac con processore Intel o con chip Apple con macOS 11 o versioni successive
Se devi utilizzare le estensioni del kernel, rivedi i metodi di approvazione basati sul tipo di registrazione.
Tipo di registrazione MDM | Metodo di approvazione | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Non registrato Registrazione dell’utente | Quando viene istallata una nuova kext e si tenta di caricarla, è necessario che l’utente effettui un riavvio dalla finestra di dialogo di avviso in:
Il riavvio comporta l’avvio del processo di ricostruzione di AuxKC prima che il kernel si avvi a sua volta. | ||||||||||
Registrazione dei dispositivi Registrazione automatica dei dispositivi | Ogni volta che viene istallata una nuova kext e si tenta di caricarla, è necessario che l’utente effettui un riavvio, seguendo uno di questi metodi:
Nota: prima è necessario installare il profilo dell’elenco di autorizzazione kext dalla soluzione MDM che specifica la kext. macOS 11.3 o versione successiva consente opzionalmente a MDM di avvisare l’utente di completare il riavvio appena possibile. |
Passaggi extra per aggiungere kext su un Mac con Apple Silicon
Se aggiungi estensioni del kernel su un Mac con chip Apple, devi eseguire dei passaggi aggiuntivi.
Tipo di registrazione MDM | Metodo di approvazione | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Non registrato | La gestione delle kext da parte dell’utente richiede un riavvio di recoveryOS per effettuare il downgrade delle impostazioni di sicurezza. L’utente deve tenere premuto il pulsante di alimentazione per eseguire il riavvio in recoveryOS e autenticarsi come amministratore. Solo dopo aver effettuato l’accesso a recoveryOS premendo il pulsante di alimentazione, Secure Enclave accetterà le modifiche alla politica. Dopodiché, l’utente deve selezionare la casella “Sicurezza ridotta” e l’opzione “Consenti la gestione utente delle estensioni del kernel da sviluppatori identificati” e riavviare il Mac. | ||||||||||
Registrazione dell’utente | L’utente deve eseguire il riavvio di recoveryOS per effettuare il downgrade delle impostazioni di sicurezza. L’utente deve tenere premuto il pulsante di alimentazione per eseguire il riavvio in recoveryOS e autenticarsi come amministratore locale. Solo dopo aver effettuato l’accesso a recoveryOS premendo il pulsante di alimentazione, Secure Enclave accetterà le modifiche alla politica. Dopodiché, l’utente deve selezionare “Sicurezza ridotta”, spuntare la casella “Consenti la gestione utente delle estensioni del kernel da sviluppatori identificati” e riavviare il Mac. | ||||||||||
Registrazione dei dispositivi | La soluzione MDM dovrebbe inviare una notifica all’utente che segnala l’obbligo di riavviare in recoveryOS per effettuare il downgrade delle impostazioni di sicurezza. L’utente deve tenere premuto il pulsante di alimentazione per eseguire il riavvio in recoveryOS e autenticarsi come amministratore. Solo dopo aver effettuato l’accesso a recoveryOS premendo il pulsante di alimentazione, Secure Enclave accetterà le modifiche alla politica. Dopodiché, l’utente deve selezionare “Sicurezza ridotta”, spuntare la casella “Consenti la gestione remota delle estensioni kernel e degli aggiornamenti software automatici” e riavviare il Mac. Per scoprire se questa funzionalità è supportata dai tuoi dispositivi, consulta la documentazione del fornitore della soluzione MDM. | ||||||||||
Registrazione automatica dei dispositivi (Il numero di serie del Mac deve essere visualizzato in Apple School Manager, Apple Business Manager o Apple Business Essentials e il Mac deve essere registrato a una soluzione MDM collegata al servizio.) | Le soluzioni MDM possono gestire automaticamente questa funzionalità. Per scoprire se questa funzionalità è supportata dai tuoi dispositivi, consulta la documentazione del fornitore della soluzione MDM. |
Estensioni del kernel con Protezione dell’integrità del sistema
Se la protezione dell’integrità del sistema (SIP) è abilitata, la firma di ciascuna kext viene verificata prima di essere inclusa in AuxKC.
Se SIP è disabilitato, la firma kext non viene forzata
Questa strategia consente anche flussi di sicurezza permissiva per gli sviluppatori o utenti che non fanno parte del programma per sviluppatori Apple per verificare le kext prima che vengano firmate.