Controllo delle politiche di sicurezza per il disco di avvio per i Mac dotati di chip Apple
Panoramica
A differenza delle politiche di sicurezza per i Mac dotati di processore Intel, quelle per i Mac dotati di chip Apple sono specifiche per ciascun sistema operativo installato. Ciò significa che su uno stesso Mac è supportata l’installazione di più istanze di macOS con diverse versioni e politiche di sicurezza. Per questo motivo in Utility Sicurezza Avvio è stato aggiunto un selettore del sistema operativo.
Sui Mac dotati di chip Apple, Utility Sicurezza Avvio indica lo stato di sicurezza globale di macOS configurato dall’utente, come l’avvio di un’estensione del kernel o la configurazione della protezione dell’integrità del sistema. Se la modifica di un’impostazione di sicurezza dovesse andare a ridurre considerevolmente la sicurezza o dovesse rendere più facile la compromissione del sistema, l’utente dovrà entrare in recoveryOS tenendo premuto il tasto di alimentazione (in modo tale che il segnale non possa essere attivato da un software dannoso, ma solo da un umano tramite un accesso fisico) per effettuare la modifica. Per questo motivo, un Mac dotato di chip Apple non richiederà (o supporterà) una password del firmware, perché tutte le modifiche importanti sono già protette tramite l’autorizzazione da parte dell’utente. Per ulteriori informazioni sulla protezione dell’integrità del sistema, consulta Protezione dell’integrità del sistema.
La sicurezza totale e ridotta possono essere impostate utilizzando Utility Sicurezza Avvio da recoveryOS. Invece è possibile accedere alla sicurezza assente solo tramite strumenti a riga di comando, da utenti che accettano il rischio di rendere il proprio Mac molto meno sicuro.
Politica “Sicurezza totale”
L’opzione “Sicurezza totale” è quella impostata di default e si comporta come iOS e iPadOS. Nel momento in cui il software viene scaricato e preparato per l’installazione, invece di utilizzare la firma globale fornita con il software, macOS contatta lo stesso server di firma Apple utilizzato per iOS e iPadOS e richiede una nuova firma “personalizzata”. Una firma viene definita “personalizzata” quando include l’ECID (Exclusive Chip Identification) come parte della richiesta di firma, ossia un ID unico in questo caso specifico per la CPU Apple. La firma restituita dal server di firma è quindi unica e utilizzabile solo da quella CPU Apple in concreto. Quando è in vigore la politica “Sicurezza totale”, la ROM di avvio e il bootloader di livello inferiore aiutano a garantire che una determinata firma non sia solo di Apple, ma anche creata appositamente per quel Mac, vincolando quella versione di macOS a quel Mac in concreto.
L’uso di un server di firma in linea fornisce inoltre una protezione migliore contro gli attacchi rollback rispetto alla firma globale tipica. In un sistema di firma globale, il periodo di sicurezza poteva essere riutilizzato molte volte, ma un sistema che non ha mai conosciuto il firmware più recente non lo saprà. Per esempio, un computer che attualmente crede di essere nel periodo di sicurezza 1 accetta software dal periodo di sicurezza 2 persino se il periodo di sicurezza attuale è 5. Con un sistema di firma in linea come quello usato con il chip Apple, il server di firma può rifiutare la creazione di firme per il software che non si trova nel periodo di sicurezza più recente.
Inoltre, se un hacker scopre una falla dopo la modifica di un periodo di sicurezza, non potrà semplicemente prendere il software vulnerabile di un periodo precedente dal sistema A e trasferirlo nel sistema B al fine di attaccarlo. Il fatto che il software vulnerabile di un periodo precedente sia stato personalizzato per il sistema A aiuta a impedirne il trasferimento e quindi l’uso per gli attacchi sul sistema B. Tutti questi meccanismi lavorano insieme per fornire fortissime garanzie che gli hacker non possano inserire deliberatamente del software vulnerabile su un Mac per eludere le protezioni fornite dal software più recente. Tuttavia, se un utente è in possesso di nome utente e password di amministratore di un Mac può comunque scegliere di impostare la politica di sicurezza che più si adatta alle sue esigenze.
Politica “Sicurezza ridotta”
L’opzione “Sicurezza ridotta” è simile all’impostazione “Sicurezza media” dei Mac dotati di processore Intel con chip T2, in cui un fornitore (in questo caso Apple) genera una firma digitale per il codice per dichiarare che questo proviene dal fornitore stesso. Questo meccanismo aiuta a impedire agli hacker di inserire del codice non firmato. Apple definisce tale firma come “globale”, perché può essere utilizzata su qualsiasi Mac e per qualunque durata di tempo per i Mac su cui è impostata la politica “Sicurezza ridotta”. Di per sé, l’opzione “Sicurezza ridotta” non fornisce protezione contro gli attacchi rollback. Tuttavia, le modifiche non autorizzate al sistema operativo possono far sì che i dati dell’utente vengano resi inaccessibili. Per ulteriori informazioni, consulta Estensioni del kernel sui Mac dotati di chip Apple.
Oltre a consentire agli utenti l’esecuzione di versioni meno recenti di macOS, la sicurezza ridotta è richiesta anche per altre azioni che possono mettere a rischio la sicurezza del sistema dell’utente, come l’introduzione di estensioni del kernel di terze parti. Le estensioni del kernel hanno gli stessi privilegi del kernel, quindi eventuali vulnerabilità nelle estensioni di terze parti possono causare una compromissione dell’intero sistema operativo. Questo è il motivo per cui gli sviluppatori sono fortemente incoraggiati ad adottare le estensioni di sistema, prima che il supporto per le estensioni del kernel venga rimosso da macOS per i Mac futuri dotati di chip Apple. Anche quando le estensioni del kernel sono abilitate, non possono essere caricate nel kernel su richiesta. Esse vengono invece incluse in una raccolta del kernel ausiliaria, il cui hash viene archiviato in LocalPolicy, rendendo quindi necessario un riavvio. Per ulteriori informazioni sulla generazione della raccolta del kernel ausiliaria, consulta Estensione sicura del kernel in macOS.
Politica “Sicurezza assente”
L’opzione “Sicurezza assente” è riservata agli utenti che accettano il rischio di impostare il proprio Mac in uno stato molto meno sicuro. Questa modalità è uguale all’opzione “Nessuna sicurezza” sui Mac dotati di processore Intel con chip T2. Con l’opzione “Sicurezza assente”, la verifica della firma viene comunque effettuata sull’intera catena di avvio protetto, ma impostando tale politica si indica ad iBoot di accettare oggetti di avvio firmati localmente da Secure Enclave, come una raccolta del kernel di avvio generata dall’utente, creata da un kernel XNU personalizzato. In questo modo, la politica “Sicurezza assente” fornisce anche la possibilità a livello strutturale di eseguire un kernel di un sistema operativo totalmente non autorizzato. Quando una raccolta del kernel di avvio personalizzata o un sistema operativo non attendibile vengono caricati sul sistema, alcune chiavi di decrittografia diventano non disponibili. Questo meccanismo è progettato per impedire a un sistema operativo non attendibile di accedere ai dati di sistemi operativi attendibili.
Importante: Apple non fornisce né supporta i kernel XNU personalizzati.
È presente un’ulteriore differenza tra “Sicurezza assente” e l’opzione “Nessuna sicurezza” dei Mac dotati di processore Intel con chip T2: si tratta di un prerequisito per alcune riduzioni della sicurezza che in passato sono state controllabili in modo indipendente. In particolare, per disabilitare la protezione dell’integrità del sistema sui Mac dotati di chip Apple, l’utente deve riconoscere che sta impostando il sistema su “Sicurezza assente”. Ciò è richiesto perché la disabilitazione della protezione dell’integrità del sistema ha sempre comportato l’impostazione del sistema in uno stato che rende molto più facile la compromissione del kernel. In particolare, se si disabilita la protezione dell’integrità del sistema sui Mac dotati di chip Apple, viene disabilitata la richiesta di firma per le estensioni del kernel durante la generazione della raccolta del kernel ausiliaria, consentendo quindi a qualsiasi estensione arbitraria di essere caricata nella memoria del kernel. Un altro miglioramento riguardante la protezione dell’integrità del sistema sui Mac dotati di chip Apple è che l’archiviazione della politica è stata spostata fuori dalla memoria NVRAM e all’interno di LocalPolicy. Quindi adesso la disabilitazione della protezione dell’integrità del sistema richiede l’autenticazione da parte di un utente che abbia accesso alla chiave per la firma di LocalPolicy, operazione effettuata da recoveryOS (accessibile tenendo premuto il tasto di alimentazione). Ciò rende significativamente più difficile per un hacker che esegue un attacco solo tramite software o persino per un hacker fisicamente presente, di disabilitare la protezione dell’integrità del sistema.
Non è consentito ridurre la sicurezza a “Sicurezza assente” dall’app Utility Sicurezza Avvio. Gli utenti possono ridurre il livello di sicurezza solo eseguendo strumenti a riga di comando da Terminale in recoveryOS, come csrutil
(per disabilitare la protezione dell’integrità del sistema). Una volta eseguita la riduzione della sicurezza, ciò è visibile in Utility Sicurezza Avvio, quindi l’utente può impostare la sicurezza su un livello più alto.
Nota: i Mac dotati di chip Apple non richiedono né supportano una politica di avvio da supporto specifica perché tecnicamente tutti gli avvii vengono eseguiti localmente. Se un utente sceglie di eseguire l’avvio da un supporto esterno, tale versione del sistema operativo deve essere prima personalizzata tramite un riavvio autenticato da recoveryOS. Tale riavvio crea un file LocalPolicy sull’unità interna che viene usato per eseguire un avvio attendibile dal sistema operativo archiviato sul supporto esterno. Questo significa che la configurazione di un avvio dal supporto esterno è sempre abilitata esplicitamente per ciascun sistema operativo e richiede già l’autorizzazione dell’utente, quindi non è necessaria nessuna configurazione di sicurezza aggiuntiva.