金曜日、 10月30日において、Taniumはインシデント対応モジュールの更新版をリリースいたしました。 今回のポイントアップデートで導入されたいくつかの新機能に期待しています。具体的には、悪意のあるWMIイベントコンシューマーの検出、スケジュールされたタスクの大規模な分析、保存されているファイルの検索を数秒で実行できる機能などが挙げられます。 この記事では、これらの各機能の技術的な基礎と、その活用事例について解説します。
WMIを介して潜伏するマルウェアの検出
Windows Management Instrumentation(WMI)は、Windows XPおよびServer 2000以降のすべてのバージョンに搭載されている、システム管理の中核となる技術です。 WMIには数多くの機能がありますが、その中には、低レベルのシステムイベントを監視し、イベントが発生した際に自動的にアクションを実行できる、強力なイベント処理フレームワークが含まれています。 これらのアクションは、「イベントコンシューマー」という形で実装されており、トリガーされると、任意のコマンドラインまたはWindows Scripting Hostスクリプト(VBScriptまたはJScript)を実行します。 WMIイベント処理の複雑さゆえに、その存在は比較的知られていませんでしたが、最近の研究[1]により、攻撃者がこれをマルウェアの隠蔽された保存・永続化メカニズムとして悪用し得ることが明らかになりました。
幸いなことに、悪意のあるWMIイベントコンシューマーの特定は、Taniumのリアルタイム検索およびスタッキング機能の優れた活用事例となります。 一般的な Windows 環境では、デフォルトのイベントコンシューマーはごくわずかしか存在せず、サードパーティ製のアプリケーションが追加のコンシューマーをインストールすることはほとんどありません。 そこで、お客様がエンドポイント上で不正なイベントコンシューマーを即座に検索できるだけでなく、新たな悪意のあるエントリの侵入を先回りして監視できるよう、ソリューションを構築いたしました。
当社の新しいインシデント対応センサー「WMI Event Consumers」は、システム上のすべてのイベントコンシューマーを調査し、3つの主要なフィールド(コンシューマー名、クラス(タイプを定義するもの)、およびコマンドラインテンプレート(CommandLineEventConsumerの場合はコマンドライン、ActiveScriptEventConsumerの場合は実行されるスクリプトが入力されます))を返します。 デフォルトでは、これは「カウント型」のセンサーです。つまり、Taniumは、クエリ対象のすべてのシステムにおいて、これらのフィールドの固有の組み合わせを1つずつカウントします。 これにより、発生頻度の低い外れ値を簡単に見分けることができます。
以下のスクリーンショットは、約75 台のWindowsシステムで構成される小規模なラボ環境における、WMIセンサーの出力例を示しています。 非常に明らかな悪意のあるコマンドライン・イベント・コンシューマーを設定しましたが、Count 列が他のフィールドと組み合わさることで、いかに見つけやすくなっているかにご注目ください。

スケジュールされたタスクの分析
WMIとは対照的に、「スケジュールされたタスク」は広く知られているWindowsの機能であり、長年にわたり攻撃者によって悪用されてきました。 定期的なタスクは、マルウェアの永続化手段として機能する可能性があり、リモートタスクは、横方向の移動中にコマンドやアプリケーションを実行するための手軽な手段となります。 Taniumには以前から、ユーザーが特定のタスクを検索できるセンサーが搭載されていましたが、私たちは、環境内のすべてのシステムにまたがる既存のタスク「ジョブ」ファイルを迅速にまとめて分析できる機能を追加したいと考えました。 インシデント対応担当者は、オペレーティングシステムやサードパーティ製アプリケーションによって正当にインストールされたタスクの中で、特定のコマンドパターンを実行するもの、特定の命名規則に従っているもの、あるいはその他の点で異常値となるタスクを検索する必要があることがよくあります。
当社の新しい「スケジュールされたタスク」センサーは、まさにこのユースケースに対応しています。 各システム上のすべてのタスクを、「at」コマンドまたは「schtasks」のいずれで作成されたかに関わらず、一覧表示します。 特定された各タスクについて、実行されるジョブ名と完全なコマンドラインを出力します。 基本的な検索に加え、これにより、発生頻度の高いタスクとそうでないタスクを簡単に区別し、実行されたコマンドラインを評価して、異常の可能性があるエントリを特定することが容易になります。
以下のスクリーンショットは、このセンサーの出力例を示しています。 この特定のデモ環境では特に目立った動きはありませんが、1台のシステムにはDropboxのセットアップインストーラーを実行するタスクがあり、その他の複数のシステムにはすべてGoogle Chromeのアップデータコンポーネントがインストールされていることが確認できます。

保存中のファイルの検索機能の強化
インシデント対応担当者は、ファイル名の一部や全文、パス、ハッシュ値といった基本的な条件を用いて、ディスク上のどこにでも存在する可能性のあるファイルや、すべてのシステムにまたがるファイルを検索する必要に迫られることがよくあります。 多くの製品では、検索を行うたびにドライブ内の全コンテンツを順に処理し、ファイルを解析してハッシュ値を計算することで、このユースケースに対応しています。 これは、処理に時間がかかり、リソースを多く消費する傾向があります。
Taniumでは、スピードとスケールという当社の基本理念を堅持しつつ、この問題を解決したいと考えていました。 当社のソリューションは、単に「Tanium Index」と呼ばれており、インシデント対応モジュールおよびIOC検出モジュールの一部として含まれています。 インストールされると、Indexは軽量な仕組みを用いて、ディスク上のすべてのファイルとその関連メタデータを含む初期カタログを作成します。 その後、低レベルの監視機能を用いて、新しいファイルが作成、変更、名前変更、または削除された際に、インデックスを効率的に更新します。 平均して、このインデックスが消費するディスク容量は数十メガバイト程度です。
調査担当者にとってのメリットは何でしょうか? つまり、Tanium を使用すれば、以下の条件を任意に組み合わせてすべてのエンドポイントを検索し、数秒で結果を得ることができます:
- ファイル名、拡張子、およびパス
- ファイルのハッシュ値(MD5、SHA-1、またはSHA-256)
- ファイルの「マジックナンバー」(最初の4バイト)
- 作成日時および変更日時
一例として、以下のスクリーンショットは、環境全体を対象に悪意のある「 MD5 」ハッシュを検索した際の結果を示しています(表示スペースの都合上、ファイル作成日時が表示から省略されています)。

今後、インシデント対応やIOC検索、その他のユースケースにおいてIndexを活用する、Taniumの機能をさらに多数追加していく予定です。どうぞご期待ください!
Taniumプラットフォームを基盤として構築する
当社のインシデント対応機能に新たに追加されたこれらの機能は、Taniumの他の機能と同様、単一のTaniumサーバーから、あらゆる規模の環境を対象に検索、検知、および対応を行うことができます。 これらの検索は、 1,000 システムでも400,000 システムでも、完了までに数秒しかかかりません。 ユーザーは、ドリルダウンを行ったり、統合クエリを作成したりすることで、システムからより多くのデータを即座に収集し、興味深い結果を得ることができます。 センサーに関するクエリも自動化して定期的に実行し、Taniumのダッシュボード上で経時的な集計結果を表示することができます。 最後に、保存されたクエリの結果は、Tanium Connect を通じて SIEM やチケット管理システムへ簡単にパイプアウトすることができ、当社の「学習」機能を活用することで、必要に応じて新しい結果や変更点のみを表示させることができます。
当社は、最新の攻撃手法や脅威に対して、Taniumの検知、調査、および是正措置の機能を継続的に拡充していくことに尽力してまいります。 今後の更新情報やリリースについては、引き続きこちらのページをご注目ください。
Taniumの実際の動作をご覧になりませんか? の個別デモをご予約いただくか、毎週開催されているウェビナーにご参加ください。 「 」の今後のイベント()にて、当社のTaniumエキスパートにご相談ください。
