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: 保護パスの設計意図をご参照ください。

最終更新