macOSに存在するセキュリティレイヤー | |
| 開発者 | アップル社 |
|---|---|
| 初回リリース | 2015年9月16日 |
| オペレーティング·システム | macOS |
| 含まれるもの | OS X El Capitan (OS X 10.11) 以降 |
| タイプ | コンピュータセキュリティソフトウェア |
| Webサイト | developer.apple.com/library/archive/documentation/Security/Conceptual/System_Integrity_Protection_Guide/ Introduction/ Introduction.html |
システム整合性保護(SIP、[1]ルートレス[2] [3]と呼ばれることもある)は、OS X El Capitan(2015)(OS X 10.11)で導入されたAppleのmacOS オペレーティングシステムのセキュリティ機能です。カーネルによって強制されるいくつかのメカニズムで構成されています。中心となるのは、ルートユーザーまたはルート権限を持つユーザー(sudo )によって実行された場合でも、特定の「権限」を持たないプロセスによる変更からシステム所有のファイルとディレクトリを保護することです。
Apple によれば、ルート ユーザーは、特にそのユーザーが管理者でもある単一のユーザー アカウントを持つシステムでは、システムのセキュリティに重大なリスクをもたらす可能性があるとのことです。SIP はデフォルトで有効になっていますが、無効にすることもできます。[4] [5]
正当化
Apple は、システム整合性保護は高いレベルのセキュリティを確保するために必要なステップであると述べている。WWDC 開発者セッションの 1 つで、 Apple エンジニアの Pierre-Olivier Martel 氏は、無制限のルート アクセスはシステムに残る弱点の 1 つであると述べ、「マルウェアはパスワード 1 つまたは脆弱性1 つでデバイスを完全に制御できます」と述べた。同氏は、macOS のほとんどのインストールには、管理者の資格情報を持つユーザー アカウントが 1 つしかないため、ほとんどのユーザーは、要求するプログラムにルート アクセスを許可できると述べた。このようなシステムのユーザーがプロンプトが表示され、アカウント パスワードを入力すると (Martel 氏によると、パスワードは弱いか存在しないことが多い)、システム全体のセキュリティが危険にさらされる可能性がある。[4] macOS でルート権限を制限することは前例のないことではありません。たとえば、Mac OS X Leopardより前のバージョンの macOS では、 BSDとその派生バージョンに由来するセキュリティ機能であるsecurelevelのレベル 1が強制されます。このセキュリティ機能は、macOS の一部のベースになっています。[6]
機能

システム整合性保護は、次のメカニズムで構成されます。
- システム ファイルとディレクトリの内容とファイル システム権限の保護。
- コード インジェクション、ランタイム アタッチメント (デバッグなど)、およびDTraceに対するプロセスの保護。
- 署名されていないカーネル拡張(「kext」)に対する保護。
システム整合性保護は、保護フラグが設定されたシステムファイルとディレクトリを保護します。これは、ファイルまたはディレクトリに拡張ファイル属性を追加するか、ファイルまたはディレクトリを に追加することによって行われます。またはその/System/Library/Sandbox/rootless.conf両方によって行われます。保護されているディレクトリには/System、、、、( は含まれません)があります。[8]、、およびから、およびへのシンボリックリンクも保護されていますが、ターゲットディレクトリ自体は保護されていません。 にプリインストールされているほとんどの Apple アプリケーションも保護されています。[1]カーネルであるXNUは、特定の権限を持たないプロセスがフラグの設定されたファイルとディレクトリの権限と内容を変更することを防ぎ、保護された実行可能ファイルに関するコードインジェクション、ランタイムアタッチメント、および DTrace も防止します。[9]/bin/sbin/usr/usr/local/etc/tmp/var/private/etc/private/tmp/private/var/Applications
OS X Yosemite以降、ドライバなどのカーネル拡張機能は、特定の Apple 権限でコード署名される必要がある。開発者は、Apple にそのような権限を持つ開発者 ID を要求する必要がある。 [10]署名されていない拡張機能が存在する場合、カーネルは起動を拒否し、代わりにユーザーに禁止記号を表示する。このメカニズムは「kext 署名」と呼ばれ、システム整合性保護に統合された。[4] [11]
システム整合性保護は、SIPが有効な場合にシステムプログラムを呼び出すときに特定の環境変数をサニタイズします。たとえば、SIPは、/bin/bashなどのシステムプログラムを呼び出す前にLD_LIBRARY_PATHとDYLD_LIBRARY_PATHをサニタイズして、Bashプロセスへのコードインジェクションを回避します。[12]
構成
SIPによってデフォルトで保護されるディレクトリには以下が含まれます: [13]
/System/sbin/bin/usr/Applications
/usrサブディレクトリを除いて保護されています/usr/local。/Applicationsカレンダー、写真、Safari、ターミナル、コンソール、App Store、メモなど、macOSにプリインストールされているアプリは保護されています。[13]
システム整合性保護は、システムパーティションの外部からのみ(全体的または部分的に)無効にすることができます。そのために、Appleは、リカバリシステム内のターミナルウィンドウまたは起動可能なmacOSインストールディスクから実行できるcsrutil コマンドラインユーティリティを提供しており、デバイスのNVRAMにブート引数を追加します。これにより、デバイス上のEl CapitanまたはmacOS Sierraのすべてのインストールに設定が適用されます。 [4] macOSのインストール時に、インストーラはフラグの付いたシステムディレクトリ内の不明なコンポーネントをに移動します。[1] [4]システムディレクトリへの書き込みアクセスを防止することにより、Appleソフトウェアのアップデート中にシステムファイルとディレクトリの権限が自動的に維持されます。その結果、ディスクユーティリティ[14]および対応する操作では権限の修復は利用できません。
/Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/diskutil
受付
システム整合性保護に対する評価はまちまちだ。Macworldは、Appleが将来のリリースでユーザーや開発者から完全な制御権を奪い、macOSのセキュリティポリシーをAppleのモバイルオペレーティングシステム iOSのセキュリティポリシーに徐々に移行し、多くのユーティリティや変更のインストールに脱獄が必要になる可能性があるという懸念を表明した。[2] [15]一部のアプリケーションとドライバーは、この機能を一時的または永続的に無効にしないと、完全に機能しないか、まったく操作できない。Ars Technicaは、大規模な開発者はAppleと直接協力できる可能性があるため、これは小規模な開発者に不釣り合いな影響を与える可能性があると示唆した。しかし、彼らはまた、パワーユーザーを含むほとんどのユーザーには、この機能を無効にする理由がなく、「欠点はほとんどない」と述べた。[1]
参照
参考文献
- ^ abcd Cunningham, Andrew; Hutchinson, Lee (2015 年 9 月 29 日). 「OS X 10.11 El Capitan: The Ars Technica Review—System Integrity Protection」. Ars Technica . 2015 年9 月 29 日閲覧。
- ^ ab Cunningham, Andrew (2015 年 6 月 17 日)。「First look: OS X El Capitan が Yosemite に小さな Snow Leopard をもたらす」Ars Technica。2015年6 月 18 日閲覧。
- ^ Slivka, Eric (2015 年 6 月 12 日)。「OS X El Capitan がサードパーティ製 SSD の TRIM サポートを開始し、パフォーマンスを向上」。MacRumors。2015年6月 18 日閲覧。
- ^ abcde Martel, Pierre-Olivier (2015 年 6 月). 「Security and Your Apps」(PDF) . Apple Developer . pp. 8–54. 2016 年 4 月 23 日時点のオリジナルよりアーカイブ(PDF) . 2016 年9 月 30 日閲覧。
- ^ 「システム整合性保護の構成」。Mac Developer Library。Apple。2015年9月16日。2016年8月17日時点のオリジナルよりアーカイブ。2016年9月30日閲覧。
- ^ ガーフィンケル、サイモン、スパフォード、ジーン、シュワルツ、アラン (2003)。実践的 UNIX とインターネット セキュリティ。オライリー メディア。pp . 118–9。ISBN 9780596003234。
- ^ 「Mac の起動時に表示される画面について」 。Appleサポート。2015 年 8 月 13 日。2016 年 4 月 21 日時点のオリジナルよりアーカイブ。2016年9 月 30 日閲覧。
- ^ 「Mac のシステム整合性保護について」。Appleサポート。2016 年 5 月 30 日。2016 年 3 月 20 日時点のオリジナルよりアーカイブ。2016年9 月 30 日閲覧。
- ^ 「OS X の新機能 - OS X El Capitan v10.11」。Mac Developer Library。Apple。2016年 3 月 4 日時点のオリジナルよりアーカイブ。2016年9 月 30 日閲覧。コード
インジェクションおよびシステム バイナリへのランタイム アタッチメントは許可されなくなりました。
- ^ 「カーネル拡張機能」。Mac Developer Library。Apple。2015年9月16日。2016年8月17日時点のオリジナルよりアーカイブ。 2016年9月29日閲覧。
- ^ 「ヨセミテでのトリム」Cindori . 2015年6月18日閲覧。
- ^ Walton, Jeffrey (2020年3月28日). “Nettle 3.5.1 and OS X 10.12 patch”. nettle-bugs (メーリングリスト). 2020年7月14日時点のオリジナルよりアーカイブ。 2020年7月13日閲覧。
- ^ ab 「Macでシステム整合性保護(SIP)が有効になっているかどうかを確認する方法」。OS X Daily。2018年8月1日。 2021年3月6日閲覧。
- ^ 「OS X El Capitan Developer Beta 2 リリースノート」。Mac Developer Library。Apple。2015年 6 月 22 日。「Notes and Known Issues」セクション。2015 年 6 月 26 日時点のオリジナルよりアーカイブ。2015 年6 月 29 日閲覧。
- ^ Fleishman, Glenn (2015 年 7 月 15 日)。「Private I: El Capitan のシステム整合性保護によりユーティリティの機能が変化する」。Macworld。2015年7 月 22 日閲覧。
外部リンク
- Apple の Mac Developer Library のシステム整合性保護ガイド
