macOS: 二層バイパスアーキテクチャ
macOSエージェントのファイルアクセスポリシー評価の仕組み
macOSでは、ファイルアクセスポリシーの評価には2つの独立したバイパス層があります。ポリシーを設計し、エージェントログを解釈する際は、両方を理解しておくことが重要です。
レイヤー1 — システム拡張の許可パス (カーネルレベル、ポリシー評価前)
macOSシステム拡張では、カーネルレベルのexecフィルターが動作します。リクエストがKeeperPolicy評価エンジンに到達する前に、実行ファイルのパスが SystemExtension.json 内の fileAccess.allowPaths リストと照合されます。パスが一致した場合、KeeperPolicyへの往復なしで即座にALLOWレスポンスが返されます。
このフィルターはパフォーマンス最適化のために存在します。これがない場合、macOSのログインセッションでは750件以上のポリシー評価リクエストが生成され、1件あたり平均300〜400msかかるため、ログイン時間が約10分に及ぶことがあります。フィルターがある場合、大半のシステムフレームワークおよびサービスリクエストは1ms未満でカーネルレベルで解決されます。
デフォルトの fileAccess.allowPaths リストには以下が含まれます。
/System/Library/PrivateFrameworks
プライベートシステムフレームワーク
/System/Library/Frameworks
パブリックシステムフレームワーク
/System/Library/CoreServices
コアシステムサービス
/System/Applications
macOS組み込みアプリケーション
/usr/libexec
システムデーモンとユーティリティ
/usr/sbin
システム管理バイナリ
/Library/Keeper
Keeperエージェントユーティリティ
これらのパス内の実行ファイルは即座に許可され、実行ファイルが変更されるかマシンが再起動されるまで、すべてのユーザー向けにシステム全体で認可決定がキャッシュされます。このリストへのパス追加は、すべてのユーザーに均一に適用すべき決定の場合に限ってください。
レイヤー2 — KeeperPolicy エンジンの保護パス (ポリシーレベル)
リクエストがレイヤー1を通過してKeeperPolicy評価エンジンに到達した場合、独自の保護パスロジックが適用されます。実行ファイルのパスが保護ディレクトリ内にあり、一致したポリシーがワイルドカードベースの場合、すべてのワイルドカードポリシーコントロールがバイパスされ、実行が許可されます。ただし、同じ実行ファイル向けの明示的な完全一致パスポリシーが存在する場合は除きます。
これはエージェントログに以下のように記録されます。
[POLICY <ID>] フィールドは、ポリシーが一致したことを示します。バイパスはポリシーが見つからなかったことではなく、パスが保護されているため、ワイルドカード一致が意図的に上書きされた結果です。同じ実行ファイル向けの完全一致パスポリシーは尊重されます。
macOSでKeeperPolicyエンジンレベルの保護パス
/System
macOSシステムルートとすべてのサブディレクトリ
/bin
必須システムバイナリ
/sbin
システム管理バイナリ
/usr/bin
ユーザー向けシステムユーティリティ
/usr/sbin
システム管理ユーティリティ
/private/etc
システム構成ファイル
/Library/Security
セキュリティフレームワーク
/Applications/Utilities
組み込みユーティリティアプリケーション
/Applications
メインApplicationsディレクトリ内のすべてのアプリケーション
/System/Applications
macOS組み込みアプリケーション
/Applications と /System/Applications が保護される設計上の理由については、macOS: 保護パスの設計意図をご参照ください。
最終更新

