Mac OS X sotto il cofano: il system integrity protection
Alzi la mano chi pensa ad un avanzato meccanismo di protezione per Mac OS X se io ora vi dicessi “SIP”.
Io, fino ad un paio di giorni fa, ero nel gruppo folto di quelli che ha tenuto la mano giù.
Ora, se avete un Mac OS X sotto la tastiera, date questo comando:
SIP, è un meccanismo introdotto in Mac OS X El Capitain, per proteggere alcune risorse critiche del sistema, anche da root. Si, a me continua a venire in mente AngeL e molte scelte che feci sbagliate in passato, prima fra tutte non accettare l’invito del prof. Bruschi nel 2001.
Nei sistemi Unix, root è dio. root può fare tutto. Questo lo sanno tutti. Nei sistemi dove si vuole invece introdurre, un ulteriore meccanismo di enforcement della sicurezza, si limita il potere di dio a salvaguardia del sistema stesso.
Ecco in parole povere cos’è SIP. Prima di El Capitain, bisognava usare i securelevel per operare controlli simili, tuttavia era una feature meno ricca di quella apparsa nell’autunno dello scorso anno.
La protezione offerta da SIP, riguarda la protezione dalla scrittura di alcune risorse del sistema, la negazione della possibilità di agganciarsi a processi particolari, tra cui quelli firmati con una chiave privata Apple, per tracing con DTrace. In ultima istanza, e questo è quello con cui mi sono imbattuto qualche giorno fa, all’inizio dei miei esperimenti con Mac OS X, il SIP nega la possibilità di caricare estensioni del kernel che non siano state firmate digitalmente con un certificato particolare rilasciato da Apple e per il quale Apple ti fa il terzo grado.
Insomma, te la vogliono far sudare questa macchina. Anche a scopo didattico. Per disabilitare il SIP, serve infatti, riavviare la macchina in modalità recovery e dalla shell che si apre, lanciare il comando:
Al riavvio successivo, l’anarchia è tornata sovrana e nessuno dirà più di no al nostro root. La domanda è: voi lo fareste?
C’è un bellissimo post di Rich Trouton che da una overview completa di quello che è protetto da SIP e di come interagire in userland.
Io no, sinceramente. Mi tengo il mio SIP e troverò un altro modo per giocare in kernel land. Come ogni sistema informativo, anche il SIP ha delle regole, alcune di esse possono essere eluse.
Nota a margine su Rootfool, il tool che permette di controllare il SIP.
Si basa su una Kernel extension che fa l’hook di una chiamata, csrctl(), che, chiamata da csrutil, permette di controllare il SIP. Ma senza un certificato valido, non puoi installare questa kext.
Enjoy it!
Vuoi aiutarmi a portare avanti il progetto Codice Insicuro con una donazione? Fantastico, allora non ti basta che premere il pulsante qui sotto.
Supporta il progetto