System Integrity Protection (SIP) è una politica di sicurezza globale con l'obiettivo di impedire che file e processi di sistema vengano modificati da terzi. Per raggiungere questo obiettivo, ha i seguenti concetti:
- Protezione del file system
- Protezione dell'estensione del kernel
- Protezione runtime
Protezione del file system
SIP impedisce alle parti diverse da Apple di aggiungere, eliminare o modificare directory e file archiviati in determinate directory:
/bin
/sbin
/usr
/System
Apple ha indicato che le seguenti directory sono disponibili per gli sviluppatori:
/usr/local
/Applications
/Library
~/Library
Tutte le directory in /usr
eccetto per /usr/local
sono protette da SIP.
È possibile aggiungere, rimuovere o modificare file e directory protetti da SIP tramite un pacchetto di installazione firmato dall'autorità di certificazione di Apple. Ciò consente ad Apple di apportare modifiche alle parti del sistema operativo SIP protette senza dover modificare le protezioni SIP esistenti.
L'autorità di certificazione in questione è riservata da Apple per uso proprio; I pacchetti di installazione firmati con ID sviluppatore non sono in grado di modificare file o directory protetti da SIP.
Per definire quali directory sono protette, Apple ha attualmente definito due file di configurazione sul filesystem. Quello principale si trova nella posizione seguente:
/System/Library/Sandbox/rootless.conf
dove rootless.conf
elenca tutte le applicazioni e il livello superiore delle directory che SIP protegge.
applicazioni
SIP protegge le app principali installate da OS X in Applicazioni e Utilità applicazioni. Ciò significa che non sarà più possibile eliminare le applicazioni installate da OS X, anche dalla riga di comando quando si utilizzano i privilegi di root.
Elenchi
SIP protegge anche un numero di directory e collegamenti simbolici al di fuori /Applications
e anche il livello superiore di tali directory è elencato in rootless.conf
.
Oltre alle protezioni, Apple ha anche definito alcune eccezioni alla protezione di SIP nel file rootless.conf e tali eccezioni sono contrassegnate da asterix. Queste esenzioni dalla protezione di SIP significano che è possibile aggiungere, rimuovere o modificare file e directory all'interno di tali posizioni.
Tra queste eccezioni ci sono le seguenti:
/System/Library/User Template
- dove OS X memorizza le directory dei modelli che utilizza durante la creazione di cartelle home per nuovi account.
/usr/libexec/cups
- dove OS X memorizza le informazioni di configurazione della stampante
Apple considera questo file come loro e che eventuali modifiche di terze parti verranno sovrascritte da Apple.
Per vedere quali file sono stati protetti da SIP, utilizzare il ls
comando con trattino O nel Terminale:
ls -O
I file protetti con SIP saranno etichettati come limitati .
Una cosa importante da sapere è che anche se un collegamento simbolico è protetto da SIP, ciò non significa necessariamente che la directory a cui si stanno collegando sia protetta da SIP. A livello di root di un'unità di avvio di El Capitan per OS X, esistono diversi collegamenti simbolici protetti da SIP che puntano a directory memorizzate nella directory di livello principale denominata private
.
Tuttavia, quando private
vengono esaminati i contenuti della directory, le directory a cui fanno riferimento tali collegamenti simbolici non sono protette da SIP e sia loro che i loro contenuti possono essere spostati, modificati o modificati da processi che utilizzano i privilegi di root.
Oltre all'elenco delle eccezioni SIP che Apple ha impostato rootless.conf
, esiste un secondo elenco di eccezioni SIP. Questo elenco include una serie di directory e nomi di applicazioni per prodotti di terze parti. Simile a rootless.conf
questo elenco di esclusione è di Apple e le eventuali modifiche di terze parti verranno sovrascritte da Apple.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
Protezione runtime
Le protezioni di SIP non si limitano a proteggere il sistema dalle modifiche al filesystem. Ci sono anche chiamate di sistema che ora sono limitate nella loro funzionalità.
- task_for_pid () / processor_set_tasks () non riesce con EPERM
- Le porte speciali Mach vengono ripristinate su exec (2)
- le variabili di ambiente dyld vengono ignorate
- Sonde DTrace non disponibili
Tuttavia, SIP non blocca l'ispezione da parte dello sviluppatore delle proprie applicazioni durante lo sviluppo. Gli strumenti di Xcode continueranno a consentire l'ispezione e il debug delle app durante il processo di sviluppo.
Per maggiori dettagli, ti consiglio di dare un'occhiata alla documentazione per sviluppatori Apple per SIP .
Protezione dell'estensione del kernel
SIP blocca l'installazione di estensioni del kernel senza segno. Per installare un'estensione del kernel su OS X El Capitan con SIP abilitato, un'estensione del kernel deve:
- Essere firmato con un ID sviluppatore per la firma del certificato Kexts
- Installa in / Libreria / Estensioni
Se si installa un'estensione del kernel senza segno, SIP dovrà prima essere disabilitato.
Per ulteriori informazioni sulla gestione di SIP, dai un'occhiata al link seguente:
Protezione dell'integrità del sistema: aggiunta di un altro livello al modello di sicurezza di Apple
sudo
e la richiesta della password ha funzionato normalmente / precedentemente / previsto. Quindi, probabilmente la risposta è "la maggior parte delle volte che non te ne accorgerai; quando lo fai, noterai molto."