SIP: System Integrity Protection su macOS Sierra

ovvero: come impedire all’amministratore del computer di far danno su un Mac.

SIP, acronimo di System Integrity Protection, è una misura introdotta da Apple per incrementare la sicurezza del sistema contro malware e simili, ma ben si sposa con la teoria che meno autorizzazioni ha l’utente, meno rischi corre la stabilità del computer. Ma andiamo con ordine.

In ambiente UNIX, l’utente root ha pieni poteri sul computer: può modificare permessi e cancellare e copiare file a suo piacimento, questo controllo completo gli permette anche di eliminare file fondamentali per il sistema o creare pericolose falle di sicurezza. Il Mac poggia le sue solide fondamenta su UNIX e l’utente root è presente nel sistema, anche se non abilitato. Nella gerarchia di utenti, subito sotto c’è l’utente Amministratore, che è quello che creiamo al primo avvio del nostro Mac e che spesso è l’unico utente presente ma che, è bene ricordarlo, ha un potere inferiore a root.

Con il rilascio di El Capitan, e ancora di più in Sierra, Apple ha modificato questa situazione inserendo un ulteriore livello al  di sopra di root: il System Integrity Protection (SIP). E’ grazie a SIP, per esempio, che non è più possibile cancellare nessuna delle applicazioni incluse nel sistema. Ogni volta che ci proviamo, riceviamo l’errore che quell’applicazione è necessaria al funzionamento di macOS, anche se proviamo a cancellare gli Scacchi!

Scacchi protetti da SIP

E’ grazie a SIP che non possiamo interferire con i file presenti in /System/Library, ad esempio. Ed è grazie a questa funzionalità che la procedura di riparazione dei permessi in Disk Utility è stata (finalmente) rimossa. Impedendo a chiunque di modificare quei file, non è più necessaria un’utility che vada a controllare che tutto sia a posto.

Cosa protegge SIP

Il sistema operativo ci fornisce la risposta a questa domanda, le informazioni sono memorizzate in tre file all’interno di /System/Library/Sandbox:

  • com.apple.xpc.launchd.rootless.plist che contiene la lista dei servizi protetti
  • rootless.conf che contiene la lista di cartelle e file protetti
  • Compatibility.bundle/Contents/Resources/paths che contiene la lista delle eccezioni al SIP

Oltre ad andare a spulciare in questi file, possiamo indagare se un file è protetto da SIP o meno semplicemente lanciando da terminale il comando

ls -laO

In questo modo avremo, accanto ai file protetti, la scritta “restricted” che indica, appunto, un elemento protetto dal SIP

terminale restricted

Quindi se in generale, quasi tutti gli elementi presenti all’interno della /System/Library sono protetti (fa eccezione, ad esempio, il contenuto di /System/Library/Caches) anche alcuni elementi al di fuori sono ugualmente protetti, come ad esempio le applicazioni incluse nel sistema operativo o anche altri file come /Library/Preferences/SystemConfiguration/com.apple.Boot.plist che veniva utilizzato in passato per far funzionare il Superdrive esterno di Apple su computer che ufficialmente non lo supportavano.

Gestire SIP

Esistono tre modi per aggirare il controllo di SIP: essere Apple, avviare il computer in Target Disk Mode e accedervi, riavviare il computer in Recovery Mode e aprire il terminale per utilizzare il comando csrutil disable. Per abilitarlo nuovamente è sufficiente lanciare csrutil enable.

Da macOS Sierra 10.2.2 è possibile anche interagire parzialmente da terminale nel sistema operativo, senza bisogno di avviare la Recovery Mode: i comandi possibili sono

csrutil clear

che riabilita SIP senza farci perder ulteriore tempo in ravvii vari

csrutil status

che ci dice se SIP è attivo o meno

 

SIP è realmente sicuro?

Risposta breve, si. Però come qualsiasi altro software al mondo presenta dei bug più o meno gravi, che potrebbero portare a esporre il nostro sistema ad alcune vulneribilità. Quel che è certo è che sicuramente il sistema è più sicuro, adesso, rispetto alle precedenti versioni del sistema operativo quando un qualsiasi Installer, con i semplici privilegi di amministratore, poteva scrivere all’interno di directory particolarmente sensibili come, appunto, /System/Library.

 

Lascia un commento