Glossary
SIP
System Integrity Protection — le verrou noyau qui, depuis El Capitan, empêche même root de modifier les fichiers système, déboguer les binaires Apple ou charger des kexts non signés.
SIP (« System Integrity Protection », nom interne « rootless ») est la politique appliquée par le noyau qui fait que root n'est plus un compte sans limite sur macOS. Introduit dans macOS 10.11 El Capitan, il couvre maintenant plusieurs restrictions distinctes :
- Protection en écriture du système de fichiers.
/System,/usr(sauf/usr/local),/bin,/sbin, et la plupart de/Librarysont montés en lecture seule et protégés contre toute modification — même par root. Depuis macOS 11 Big Sur, le volume système est scellé (SSV) et vérifié au boot. - Protection des processus. Les binaires Apple-signés avec entitlements restreints (Safari, WindowServer, la plupart des daemons launchd) ne peuvent pas être attachés par des débogueurs, même en root. C'est ce qui bloque DTrace,
lldbetDYLD_INSERT_LIBRARIEScontre eux. - Restrictions de chargement de kext. Seuls les kexts signés par Apple (ou par développeur avec approbation utilisateur explicite) peuvent charger.
- Protection NVRAM et boot-args. La plupart des variables NVRAM et
boot-argsne peuvent pas être modifiées sans désactiver SIP.
SIP ne peut être modifié que depuis le Recovery via csrutil. Les flags granulaires (--without dtrace, --without debug, --without fs, etc.) permettent de relâcher des restrictions individuelles sans désactiver toute la politique — utile pour la recherche sans perdre le reste des protections.
Pour le travail syscall, le flag pertinent est généralement csrutil enable --without dtrace, qui garde tout le reste verrouillé tout en laissant DTrace sonder les binaires Apple-signés.
Avec AMFI et TCC, SIP forme la couche appliquée par le noyau du modèle defense-in-depth de macOS.