WWDC Quick Look 💓 By SwiftGGTeam
What's new in Endpoint Security

What's new in Endpoint Security

元の動画を見る

ハイライト

macOS Ventura は、3 つの新しいタイプのユーザー空間イベント (認証、ログイン/ログアウト、XProtect マルウェア検出)、ターゲット パスに基づく正確なミュート機能、ミューティング ロジックの反転、およびコマンドライン デバッグ ツールのエスロガーを Endpoint Security API に追加するため、セキュリティ製品は廃止された OpenBSM 監査証跡に依存する必要がなくなりました。

主要内容

エンドポイント セキュリティとは何ですか?

00:18

Endpoint Security は、ウイルス対策、EDR (Endpoint Detection and Response)、データ漏洩防止などの macOS セキュリティ製品を構築するために Apple が提供する C API です。

これは macOS Catalina で最初に導入され、次の 3 つの非推奨/サポートされていないメカニズムを置き換えます。

  • KAuth KPI (非推奨)
  • MAC カーネル フレームワーク (サポートされていません)
  • OpenBSM 監査証跡 (非推奨)

macOS Monterey の時点で、Endpoint Security は 100 を超えるイベント タイプをサポートしていますが、主にカーネル内の重要なイベント (プロセス フォーク、ファイル オープンなど) に重点を置いています。

新しいユーザースペースイベント

01:23

macOS Ventura はイベントの範囲を拡張し、3 つの新しいタイプのユーザー スペース セキュリティ イベントを追加します。

認証イベント: ローカル アカウントのログイン、管理者の承認操作など、ユーザーがオペレーティング システムに対して認証を行うシナリオをカバーします。セキュリティ製品は、これを使用して不審なアクセス パターンを監視できます。 OpenBSM の監査記録と比較して、新しいイベント情報はより豊富で、Apple Watch の自動ロック解除の可視性もサポートしています。

ログイン/ログアウト イベント: ローカル コンソール ログインとリモート アクセス (SSH など) ログインをカバーします。この情報は、企業のセキュリティ チームがデバイス間の横方向の動きを監視するのに役立ちます。

XProtect イベント: 既知のマルウェアの検出とブロックにおけるゲートキーパーの動作は、検出イベントやブロック/削除アクションなど、Endpoint Security を通じて監視できるようになりました。

03:42

OpenBSM 監査証跡は macOS Big Sur から非推奨となり、将来のリリースでは削除される予定です。これらの新しいイベントにより、ほとんどの Endpoint Security クライアントは OpenBSM に依存する必要がなくなりました。

ターゲットパスに基づいたミュート

03:52

ミュートは、不要なイベント トラフィックを削減し、デッドロック、ハング、ウォッチドッグ タイムアウトを防ぐための重要なメカニズムです。

macOS Catalina は、監査トークンまたは実行可能イメージ パスによるミュートをサポートしています。 macOS Monterey は、デフォルトでシステム実行可能ファイルの一部の特定のイベント タイプをミュートします。

macOS Ventura は、ターゲット パスに基づいてミュートを追加します。

// Mute 所有目标路径在 /var/log 下的事件
es_mute_path(client, "/private/var/log", ES_MUTE_PATH_TYPE_TARGET_PREFIX);

// 只 Mute 对 /dev/null 的写入事件
var events = [ ES_EVENT_TYPE_NOTIFY_WRITE ];
es_mute_path_events(client, "/dev/null", ES_MUTE_PATH_TYPE_TARGET_LITERAL,
                    &events, events.count);

重要なポイント:

  • ES_MUTE_PATH_TYPE_TARGET_PREFIXパスプレフィックスの一致
  • ES_MUTE_PATH_TYPE_TARGET_LITERAL単一のパスに完全に一致する
  • es_mute_path_events特定のイベントタイプのみをミュートできます

論理反転のミュート

05:09

「指定したコンテンツを除外する」に加えて、「指定したコンテンツのみを受信する」こともできるようになりました。

// 反转目标路径的 muting 逻辑
es_invert_muting(client, ES_MUTE_INVERSION_TYPE_TARGET_PATH);

// 清除之前的目标路径 mute 设置
es_unmute_all_target_paths(client);

// 只接收 /Library/LaunchDaemons 下的事件
es_mute_path(client, "/Library/LaunchDaemons", ES_MUTE_PATH_TYPE_TARGET_PREFIX);

重要なポイント:

  • 反転後、ミュートルールに一致するパスのみがイベントをトリガーします
  • まずは電話してくださいes_unmute_all_target_paths古い設定をクリアし、新しい選択ルールを追加します
  • 特定の永続化場所のみに焦点を当てるシナリオに適しています

エスロガー デバッグ ツール

06:09

eslogger は、macOS Ventura に組み込まれたコマンド ライン ツールで、ネイティブ クライアントを作成せずに Endpoint Security イベントを監視できます。

# 观察 SSH 登录和注销事件
sudo eslogger openssh_login openssh_logout > out.jsonl

重要なポイント:

  • 80 個の NOTIFY イベントすべてをサポート
  • C APIのデータ構造と一致するJSON形式で出力します。
  • スーパーユーザーとして実行する必要があり、 Terminal.app または SSH にはフル ディスク アクセスが必要です
  • 出力形式はソフトウェアの更新により変更される可能性があり、アプリケーションによる直接使用には適していません。

詳細

エスロガーを使用してイベントを分析する

# 1. 启动 eslogger 监听 SSH 事件
sudo eslogger openssh_login openssh_logout > out.jsonl

# 2. 在另一个终端执行 SSH 登录/登出
ssh localhost
exit

# 3. 停止 eslogger(Ctrl+C),分析输出
cat out.jsonl | jq '{
  event: .event,
  process: .process.signing_id,
  pid: .process.audit_token.pid,
  success: .event.openssh_login.success,
  username: .event.openssh_login.username
}'

重要なポイント:

  • 出力は JSON Lines 形式です (1 行に 1 つの JSON オブジェクト)
  • すべてのイベントには、イベントをトリガーしたプロセスに関する情報 (監査トークン、署名 ID など) が含まれています。
  • イベント固有のフィールド.event.{event_type}パスの下
  • 使用jq興味のあるフィールドを簡単に抽出およびフィルタリングできます

完全なミューティング戦略の例

#include <EndpointSecurity/EndpointSecurity.h>

// 初始化客户端
es_client_t *client;
es_new_client(&client, ^(es_client_t *c, const es_message_t *msg) {
    // 处理事件
});

// 策略 1:Mute 所有日志相关事件
es_mute_path(client, "/private/var/log", ES_MUTE_PATH_TYPE_TARGET_PREFIX);
es_mute_path(client, "/private/var/db/diagnostics", ES_MUTE_PATH_TYPE_TARGET_PREFIX);

// 策略 2:只监控 LaunchDaemons 目录(反转模式)
es_invert_muting(client, ES_MUTE_INVERSION_TYPE_TARGET_PATH);
es_unmute_all_target_paths(client);
es_mute_path(client, "/Library/LaunchDaemons", ES_MUTE_PATH_TYPE_TARGET_PREFIX);
es_mute_path(client, "/Library/LaunchAgents", ES_MUTE_PATH_TYPE_TARGET_PREFIX);

// 策略 3:Mute 特定进程
es_mute_process(client, &system_process_audit_token);

重要なポイント:

  • 3 つのミューティング タイプ (プロセス、実行可能パス、ターゲット パス) はすべて個別に反転可能
  • ルールの競合を避けるために、元に戻す前に古いミュート設定をクリアしてください
  • ミュートを適切に使用すると、イベント トラフィックが大幅に削減され、システムの安定性が向上します。

重要ポイント

1. OpenBSM から Endpoint Security への移行

  • やるべきこと: OpenBSM 監査証跡をまだ使用しているセキュリティ監視ロジックを Endpoint Security に移行します。
  • 実行する価値がある理由: OpenBSM は非推奨となり削除される予定です。新しいイベントは監査記録よりも有益であり、Apple Watch の自動ロック解除などのシナリオもサポートしています。
  • 開始方法: まず、エスロガーを使用して、新しいイベントの JSON 構造を観察します。データフィールドが要件を満たしていることを確認した後、OpenBSM への呼び出しを徐々に置き換えます。

2.ターゲット パスのミュートを使用してパフォーマンスを最適化します

  • 対処方法: 特定のディレクトリのみに焦点を当てたセキュリティ製品の場合は、次を使用します。es_mute_path無関係なパスを持つイベントを除外する
  • 実行する価値がある理由: 不要なイベント トラフィックを削減すると、CPU 使用率が削減され、ウォッチドッグ タイムアウトが回避されます。
  • 開始方法: セキュリティ製品が実際に焦点を当てているパスのリストを分析し、無関係なシステム ディレクトリ (/var/log など) にプレフィックス ミュートを追加します。

3.セキュリティ イベント プロトタイプの検証にエスロガーを使用する

  • やるべきこと: エスロガーを使用して、開発段階で検出ロジックを迅速に検証し、イベント データに必要なフィールドが含まれていることを確認します。
  • 実行する価値がある理由: C クライアントを作成するにはコンパイルとデプロイが必要です。 eslogger を使用すると、イベント データを数秒で確認できます。
  • 開始方法:sudo eslogger {event_type} | jq '{field: .path.to.field}'フィールドを迅速に抽出して検証する

関連セッション

コメント

GitHub Issues · utterances