システム整合性保護 (System Integrity Protection, SIP[1], rootlessとも呼ばれる[2][3])は、 OS X El Capitanから導入されたAppleのmacOSのセキュリティ機能である。この機能は、カーネルによって強制される多くのメカニズムで構成されている。中心となるのは、root権限を持つユーザーまたはroot権限(sudo)を持つユーザーによって実行された場合でも、システム所有のファイルとディレクトリを特定の"資格"を持たないプロセスによる変更から保護することである。
Appleによれば、システム整合性保護は高いレベルのセキュリティを実現する必要な手段を確保している。2015年のWWDCのSession 706[6]で、Appleの技術者Pierre-Olivier Martelは、システムの残りの弱点の1つとして、無制限のルートアクセスを次のように説明した。「マルウェアが1つのパスワードでデバイスを完全に制御することが出来る、という脆弱性がある。」つまり、ほとんどのユーザーはそれを求めているプログラムにrootアクセスできる。そのようなシステム上のユーザーがプロンプトを表示された時に、しばしば弱い、または存在しないアカウントパスワードを入力するたびに、システム全体のセキュリティが損なわれる可能性があることを示した。root権限を制限することは、macOSでは前例のないことである。たとえば、Mac OS X Leopard以前のmacOSでは、レベル1のsecurelevelが使用されている。これは、macOSのベースの1つであるBSDとそのバリエーションに由来するセキュリティ機能である[7]。
OS X Yosemite以降、ドライバなどのカーネル機能拡張には、Appleが承認した特定のコード署名をする必要がある。 その為、開発者は、Appleへ開発者IDを要求する必要がある[11] 。コード署名されていない機能拡張が存在する場合、カーネルはシステムの起動を拒否し、代わりに禁止記号を表示する。このメカニズムは、 "kext署名"と呼ばれ、システム整合性保護に統合された[12]。macOS High Sierraからは、カーネル機能拡張に署名がある場合でも、初回起動時にユーザによる許可を必要とするSecure Kernel Extension Loading(SKEL)が導入された[13]。
^“What's New In OS X - OS X El Capitan v10.11”. Mac Developer Library. Apple. March 4, 2016時点のオリジナルよりアーカイブ。September 30, 2016閲覧。 “Code injection and runtime attachments to system binaries are no longer permitted.”
^“Kernel Extensions”. Mac Developer Library. Apple (September 16, 2015). August 17, 2016時点のオリジナルよりアーカイブ。September 29, 2016閲覧。