システム整合性保護
![]() macOSのセキュリティ階層 | |
開発元 | Apple |
---|---|
対応OS | OS X El Capitan以降のmacOS |
サポート状況 | 継続中 |
公式サイト |
developer![]() |
システム整合性保護 (System Integrity Protection, SIP[1], rootlessとも呼ばれる[2][3])は、 OS X El Capitanから導入されたAppleのmacOSのセキュリティ機能である。この機能は、カーネルによって強制される多くのメカニズムで構成されている。中心となるのは、root権限を持つユーザーまたはroot権限(sudo)を持つユーザーによって実行された場合でも、システム所有のファイルとディレクトリを特定の"資格"を持たないプロセスによる変更から保護することである。
アップルによれば、rootユーザーはシステムのセキュリティ、特に利用しているユーザーが管理者である単一のユーザーアカウントを持つシステムで重大なリスク要因になる。システム整合性保護は、デフォルトで有効となっており、この機能を無効にすることもできる[4][5]。
導入理由[編集]
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]。
機能[編集]

システム整合性保護のメカニズム
- システムファイルとディレクトリの内容とファイルシステムパーミッションの保護;
- コードインジェクション、ランタイムアタッチ(デバッグのような)およびDTraceに対するプロセスの保護;
- 署名されていないカーネル拡張( "kexts")に対する保護
システム整合性保護は、システムファイルやシステムディレクトリを保護するフラグを立てる。これらの追加、 拡張ファイル属性 は、/System/Library/rootless.conf
に、ファイルまたはディレクトリを加えることにより設定される。 中には、保護されたディレクトリ: システム
では、 /bin
、/sbin
、/usr
、/usr/local
がある[9] 。シンボリックリンクから /etc
、/tmp
、/var
、/private/etc
、/private/tmp
、 /private/var
も保護されるが、ターゲットのディレクトリ自体は保護されていない。/Applications
にインストールされているほとんどのアップル製ソフトも保護されている 。カーネルは、特権なしで全てのプロセスを停止し、フラグ付きのファイルとディレクトリのパーミッションと内容を変更する。また、保護された実行可能ファイルに関してコードインジェクション、ランタイムアタッチメント、およびDTraceも防止する[10]。
OS X Yosemite以降、ドライバなどのカーネル機能拡張には、Appleが承認した特定のコード署名をする必要がある。 その為、開発者は、Appleへ開発者IDを要求する必要がある[11] 。コード署名されていない機能拡張が存在する場合、カーネルはシステムの起動を拒否し、代わりに禁止記号を表示する。このメカニズムは、 "kext署名"と呼ばれ、システム整合性保護に統合された[12]。macOS High Sierraからは、カーネル機能拡張に署名がある場合でも、初回起動時にユーザによる許可を必要とするSecure Kernel Extension Loading(SKEL)が導入された[13]。
設定[編集]
デフォルトでSIPによって保護されるディレクトリは次の通り[14]。
/System
/sbin
/bin
/usr
/Applications
/usr
は /usr/local
サブディレクトリを除いて保護される。/Applications
は、カレンダー、写真、Safari、ターミナル、コンソール、App Store、Notesなど、macOSがプリインストールされているアプリに対して保護されている[14]。
システム整合性保護は、システムパーティション外からのみ(全部または一部)無効にすることができる。 そのために、Appleは、“macOS 復元”システム内のターミナル.app、またはブート可能なmacOSインストールディスクから実行できるコマンドcsrutilを提供する。このユーティリティは、ブート引数をデバイスのNVRAMに追加する。 そうして、デバイス上のEl Capitan以降のmacOSのすべてのインストールされたシステムに設定が適用できる 。macOSをインストールすると、インストーラはフラグが付けられたシステムディレクトリ内の未知のコンポーネントを/Library/SystemMigration/History/Migration-[some UUID]/QuarantineRoot/
へ移動する。システムディレクトリへの書き込みを禁止することにより、システムファイルとディレクトリのアクセス許可は、Appleソフトウェアの更新中にのみ自動的に維持される。 その結果、ディスクユーティリティと対応するコマンドdiskutilでアクセス許可の修復は利用できない[15] 。
セキュリティホール[編集]
2023年5月30日、移行アシスタントを使ってSIPをバイパスできるMigraineと呼ばれる脆弱性CVE-2023-32369が見つかったことが発見したマイクロソフトにより報告されている[16]。この脆弱性は、2023年5月18日からAppleによりサポート中のOSに対して配布されたセキュリティアップデートで解消された[17][18][19]。
関連項目[編集]
参考文献[編集]
- ^ Cunningham, Andrew (2015年9月29日). “OS X 10.11 El Capitan: The Ars Technica Review”. Ars Technica. 2015年9月29日閲覧。
- ^ Cunningham, Andrew (2015年6月17日). “First look: OS X El Capitan brings a little Snow Leopard to Yosemite”. Ars Technica. 2015年6月18日閲覧。
- ^ Slivka, Eric (2015年6月12日). “OS X El Capitan Opens Door to TRIM Support on Third-Party SSDs for Improved Performance”. MacRumors. 2015年6月18日閲覧。
- ^ Martel, Pierre-Olivier (2015年6月). “Security and Your Apps” (PDF). Apple Developer. pp. 8–54. 2016年4月23日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
- ^ “Configuring System Integrity Protection”. Mac Developer Library. Apple (2015年9月16日). 2016年8月17日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
- ^ Inc., Apple. “Security and Your Apps - WWDC 2015 - Videos - Apple Developer” (英語). Apple Developer. 2018年9月5日閲覧。
- ^ Garfinkel, Simon; Spafford, Gene; Schwartz, Alan (2003). Practical UNIX and Internet Security. O'Reilly Media. pp. 118–9. ISBN 9780596003234
- ^ “About the screens you see when your Mac starts up”. Apple Support (2015年8月13日). 2016年4月21日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
- ^ “About System Integrity Protection on your Mac”. Apple Support (2016年5月30日). 2016年3月20日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
- ^ “What's New In OS X - OS X El Capitan v10.11”. Mac Developer Library. Apple. 2016年3月4日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。 “Code injection and runtime attachments to system binaries are no longer permitted.”
- ^ “Kernel Extensions”. Mac Developer Library. Apple (2015年9月16日). 2016年8月17日時点のオリジナルよりアーカイブ。2016年9月29日閲覧。
- ^ “Trim in Yosemite”. Cindori. 2015年6月18日閲覧。
- ^ “Technical Note TN2459: User-Approved Kernel Extension Loading” (英語). developer.apple.com. 2018年9月5日閲覧。
- ^ a b “How to Check if System Integrity Protection (SIP) is Enabled on Mac”. OS X Daily (2018年8月1日). 2021年3月6日閲覧。
- ^ “OS X El Capitan Developer Beta 2 Release Notes”. Mac Developer Library. Apple (2015年6月22日). 2016年6月26日時点のオリジナルよりアーカイブ。2015年6月29日閲覧。
- ^ Intelligence, Microsoft Threat (2023年5月30日). “New macOS vulnerability, Migraine, could bypass System Integrity Protection” (英語). Microsoft Security Blog. 2023年5月31日閲覧。
- ^ “macOS Big Sur 11.7.7 のセキュリティコンテンツについて”. Apple Support (2023年5月22日). 2023年5月31日閲覧。
- ^ “macOS Monterey 12.6.6 のセキュリティコンテンツについて”. Apple Support (2023年5月22日). 2023年5月31日閲覧。
- ^ “macOS Ventura 13.4 のセキュリティコンテンツについて”. Apple Support (2023年5月23日). 2023年5月31日閲覧。