WMI攻撃とは

従来のマルウェア攻撃とは異なり、 ファイルレスマルウェアの攻撃では、標的とするマシンにソフトウェアを仕込む必要が全くありません。

代わりにこのマルウェアでは、Windows Management Infrastructure(WMI)のようなWindowsに組み込まれたツールを攻撃に使用します。これらの攻撃は正規のツールやアクションを悪用しているため、特に検知が困難です。

WMIの機能は非常に有用です。この機能があれば、管理者はさまざまなタスクをきわめて容易に実行できるからです。しかし一方で、悪意のある目的に使用されてしまったら、この機能はいとも簡単に災いの種に変わります。

管理者がメトリック(metric)の問い合わせやコードの実行にWMIを利用するように、ハッカーもWMIを悪用してすばやく密かに、マシンネットワーク全体で悪意のあるコードを実行できるのです。また、WMIではPCの起動時や特定のイベントの発生時に、相手に気付かれないよう自動でプログラムを実行できるため、継続的な攻撃が可能です。

WMIをアンインストールすることはできませんが、機能を無効にすることは可能です。ただし、WMIを無効にすると管理者の利用できる機能が制限されてしまい、たとえば、複数のマシンを一度にアップデートするといったことができなくなります。

WMIの概要

Windows Management Infrastructure(WMI)は、Windows OSにおけるWBEM標準と CIM標準の実装環境です。このインフラストラクチャでは、ユーザー、管理者、開発者、そして攻撃者は、OS内のさまざまな管理対象コンポーネントについて、列挙、操作、対話の処理が可能です。

実際のところ、WMIは、抽象化されたオブジェクト指向の統合モデルを提供します。このモデルには、個々のマシンに関する独立した多くの要素を表すクラスが含まれています。また、このモデルでは、関連のない多くのAPIと直接やり取りをしたり、これらAPIのドキュメントを確認したりする必要はありません。

WMIでは、SQLに類似した言語のWQLでWMIクエリを記述して発行するか、PowerShell CIM/WMIコマンドレットのような抽象化機能を利用すれば、クラスごとにコンポーネントのインスタンスを列挙できます。また、クラスやインスタンスに関するメソッドを呼び出すことも可能であるため、基盤となる管理対象コンポーネントをWMIインターフェースから操作することができます。

さらに、WMIの重要な機能の1つに、DCOMまたはWinRMのプロトコルを通じてリモートマシンのWMIモデルとやり取りができる機能があります。攻撃者はこの機能を利用して、リモートマシン上のWMIクラスを遠隔で操作できます。任意のコードをリモートマシン上で事前に実行する必要はありません。

WMIのメインコンポーネント

WMIは以下に示す3つの主要なコンポーネントから構成されています。

  1. WMIサービス(winmgmt)はクライアントとWMIモデル自体のあいだでメディエーターとして機能し、クライアントプロセスからのあらゆるリクエスト(例:メソッドコールやクエリなど)を処理します。ほとんどのリクエストの場合、このサービスは、自身では実際の処理ができません。リクエストをほかのコンポーネントに渡して処理させ、その結果を受け取ってクライアントに返します。
  2. WMIプロバイダーは、クラス、インスタンス、メソッドを実装した実際のコードが導入される場所です。このプロバイダーはほとんどの場合、インプロセスCOMオブジェクトとして実装されます。
  3. WMIリポジトリはWMIモデル用の一元化されたストレージエリアです。プロバイダーによって動的に生成されるインスタンスとは異なり永続性を必要とする要素(クラスの定義やオブジェクトのインスタンスなど)を格納します。

ホワイトペーパー「PowerShell攻撃(ファイルレスマルウェア)を確実に防御」

侵入後に展開するPowerShellを使用したファイルレス型マルウェア攻撃は、ここ数年、攻撃者が好んで選択する攻撃となっており、ダウンロード/実行ペイロード、APT攻撃、さらにはランサムウェアなどの攻撃に悪用されています。PowerShell攻撃(ファイルレスマルウェア)の課題とCybereasonによるPowerShell攻撃の確実な防御について詳しく解説します。
https://www.cybereason.co.jp/product-documents/white-paper/2121/

ホワイトペーパー「PowerShell攻撃(ファイルレスマルウェア)を確実に防御」