Microsoftは、インバウンドのリモートプロシージャコール(RPC)アクティビティを監視するようMicrosoft Defenderプラットフォームを拡張し、RPCコールデータ全体にわたる検出・攻撃妨害・アドバンスドハンティングを可能にしました。これにより、攻撃者がラテラルムーブメント、資格情報の窃取、権限昇格を実行するために長年にわたり悪用してきた可視性の盲点が解消されます。
リモートプロシージャコール(RPC)はWindowsの基盤となるプロトコルで、別プロセス、さらにはリモートマシン上の関数をローカルで呼び出すかのように実行できる仕組みです。
サービスコントロールマネージャー、タスクスケジューラ、リモートレジストリ、Active DirectoryレプリケーションといったコアなWindows機能がすべてRPCに依存しているため、攻撃者はこれを信頼性の高い悪用ベクターとして長年にわたり標的にしてきました。
RPCセキュリティ監視において中心的な役割を果たすコンポーネントは2つあります。インターフェイスはUUIDで識別され、RPCサーバーが公開する機能の論理的なグループ(例:リモートレジストリやWMI)を表します。
OpNum(オペレーション番号)は、そのインターフェイス内で呼び出される具体的な関数を特定するもので、BaseRegQueryValue(OpNum 17)やRCreateServiceW(OpNum 12)などが該当します。
実際の攻撃では、RPCを武器として利用するインパクトの大きな手法がいくつか確認されています:
ネットワークセンサーを用いた生のRPCトラフィック監視はコストがかかるうえ、SMB3などのトランスポート暗号化が使用されている場合には機能しなくなるため、Microsoftは別のアプローチを採用しました。
Defenderの研究・エンジニアリングチームは、Windowsフィルタリングプラットフォーム(WFP)との既存の統合を拡張してOpNumレベルの粒度を実現しました。これにより、Defenderはインターフェイスだけでなく、呼び出されている正確なRPC関数まで特定できるようになっています。
テレメトリは監査専用のWFPフィルターを使用して収集されます。このフィルターはサーバーホスト上のインバウンドリモートRPCコールを、正規のトラフィックを妨げることなく受動的に観察するものです。
この設計では送信元デバイスへの可視性が不要なため、大規模環境でも実用的に機能します。なお、ローカルRPCコールおよびアウトバウンドのクライアント呼び出しは、本監視の対象外となっています。
Microsoftによると、ワークステーション向けのRPC監視は現在一般提供を開始しており、サーバー側の監視については段階的なロールアウトが進められているとのことです。
DeviceEventsテーブルに追加された新しいアクションタイプInboundRemoteRpcCallにより、監視データがMicrosoft DefenderのAdvanced Huntingインターフェイスに直接表示されます。
セキュリティチームは、資格情報ダンプを示すリモートレジストリ保存イベント(インターフェイス338cd001-2244-31f1-aaaa-900038001003上のOpNum 20および31)や、ラテラルムーブメントを示す可能性のあるリモートサービス作成イベント(インターフェイス367abb81-9844-35f1-ad32-98f038001003上のOpNum 12、24、44、45、60)をクエリで検索できます。
NetrSessionEnum(srvsvcインターフェイス上のOpNum 12)によるセッション探索は、アカウント別に集計することでSharpHoundのような偵察ツールの検出が可能になります。
発表と併せて公開されたスクリーンショットでは、これらのKQLクエリがAdvanced Huntingコンソールで実際に動作している様子と、DomainAdminアカウントがBaseRegQueryValueを呼び出したことで発生したアラートストーリーを確認できます。これはリモートLSAシークレット窃取の典型的なサインです。
Microsoftは、セキュリティチームに対し、Advanced HuntingタブでそれぞれのEnvironmentにおけるRPCアクティビティを確認し、サーバー側のロールアウトが進む中でDefenderの追加アップデートにも注目するよう推奨しています。
翻訳元: https://cyberpress.org/microsoft-defender-adds-detection/