標的型攻撃に利用される「PlugX」を徹底解析

トレンドマイクロでは、前回、「PlugX」と呼ばれる新しいタイプの「Remote Access Tool(RAT)」について報告しました(不正プログラム PlugX は、株式会社 地理情報開発から提供されている PlugX ®シリーズとは無関係な不正なプログラムです)。このPlugX は、RAT「PoisonIvy」が利用されている標的型攻撃において使われており、一見リモートアクセスの機能において限られた機能を持つ単純なツールのように見えます。しかし、PlugX の解析を進めるにつれて、隠された機能が明らかになりました。

典型的な攻撃において、PlugX は、以下のような 3つのコンポーネントと共に侵入します。

  1. 正規ファイル
  2. 正規ファイルにより読み込まれる不正なDLLファイル
  3. 2)の不正な DLLファイルが読み込む不正なコードを含むバイナリファイル

図1:「PlugX」を利用する攻撃における感染フロー
図1:「PlugX」を利用する攻撃における感染フローの一例

この攻撃は、不正なファイルが添付された標的型メールが発端となります。添付ファイルは、通常、”Adobe Acrobat Reader” や Microsoft Office(特に脆弱性「CVE-2010-3333」)に存在する脆弱性を利用する、不正な文書ファイルを含む圧縮ファイルとなります。例えば、1つの事例では、特別に細工された文書ファイル(「TROJ_ARTIEF.LWO」として検出)を添付してコンピュータに侵入します。この「TROJ_ARTIEF.LWO」は、「BKDR_PLUGX.SME」を作成および実行します。そして、「BKDR_PLUGX.SME」は、以下のように各ファイルを作成します。

  • All Users’ %User Profile%\Gf\NvSmart.exe – 正規ファイル”NVIDIA”(NVIDIA Smart Maximise Helper Host)
  • All Users’ %User Profile%\Gf\NvSmartMax.dll – 「BKDR_PLUGX.BUT」として検出
  • All Users’ %User Profile%\Gf\boot.ldr – 「TROJ_PLUGX.SME」として検出
  • なお、ここで注視しなければならないのは、「BKDR_PLUGX.SME」が正規ファイルとして知られる ”NvSmart.exe” を作成することです。

    図2:”NvSmart.exe” のインポートテーブル
    図2:”NvSmart.exe” のインポートテーブル

    「TrendLabs(トレンドラボ)」では、”NvSmart.exe” のインポートテーブルの検証過程で、”NvSmart.exe” は、「BKDR_PLUGX.BUT」として検出される ”NvSmartMax.dll” から 3つの関数をインポートすることを確認しました。”NvSmart.exe” は、通常、正規の ”NvSmartMax.dll” を読み込みます。しかし、正規の ”NvSmart.exe” と同じディレクトリ内に不正なファイル ”NvSmartMax.dll” が存在していると、”NvSmart.exe” は、代わりに不正な ”NvSmartMax.dll” を読み込むこととなります。

    図3:”boot.ldr” を読み込む ”NvSmartMax.dll”
    図3:”boot.ldr” を読み込む ”NvSmartMax.dll”

    不正な ”NvSmartMax.dll” は、同ディレクトリ上に確認された ”boot.ldr” を読み込みます。この ”boot.ldr” は、不正な ”NvSmartMax.dll” によって利用される不正なコードが含まれています。

    ”boot.ldr” に含まれるコードがどのような振る舞いをするのか綿密な解析をした結果、トレンドラボでは、このコードがまず自身を実行ファイルのような形式でメモリ上に復号することを確認しました。そして、バックドア活動に関連するモジュールすべてがこの ”実行ファイル” 内で確認することができます。

    ただし、この読み込まれるコードは、実際には、復号された ”実行ファイル” を作成する訳ではありません。代わりに、正規プロセスである ”svchost.exe” にコードを組み込み、システムのプロセスに常駐します。恐らく、システム上のメモリに常駐することで、検出を回避していると考えられます。”svchost.exe” に自身のコードを組み込んだ後、最初に実行された ”NvSmart.exe” を停止します。

    図4:メモリ上に復号された ”実行ファイル”
    図4:メモリ上に復号された ”実行ファイル”

    図5:「PlugX」のモジュールの一部
    図5:「PlugX」のモジュールの一部

    復号された ”実行ファイル” を解析した結果、これは、複数のバックドア型不正プログラムのモジュールで構成されています。これらのモジュールは、モジュール特有のタスクを実行するように構築されています。トレンドラボでは、以下のように、各モジュールのバックドア機能を明らかにしました。

    「PlugX」の
    モジュール
    バックドア機能
    XPlugDisk ファイルのコピー/移動/改称/削除
    ディレクトリの作成
    ファイルの作成
    ファイルの列挙
    ファイルの実行
    ドライブ情報の取得
    ファイル情報の取得
    ファイルの変更
    ファイルの開封
    XPlugKeyLogger キー入力操作情報およびアクティブウィンドウの記録
    XPlugNethood TCPおよびUDP接続の列挙
    ネットワークリソースの列挙
    TCPの接続設定
    XPlugOption メッセージボックスの表示
    ワークステーションのロック
    ユーザのログオフ
    コンピュータの再起動
    XPlugPortMap ポート配置(マッピング)の実行
    XPlugProcess プロセスの列挙
    プロセス情報の取得
    プロセスの終了
    XPlugRegedit レジストリキーの列挙
    レジストリキーの追加
    レジストリキーの削除
    レジストリキーのコピー
    レジストリ値の列挙
    レジストリ値の変更
    レジストリ値の削除
    XPlugScreen スクリーンの取得
    ビデオの取得
    XPlugService サービスの削除
    サービスの列挙
    サービス情報の取得
    サービスの変更
    サービスの起動
    XPlugShell リモートシェルの実行
    XPlugSQL データベースサーバに接続し、SQLステートメントを実行
    XPlugTelnet Telnetサーバのホスト

    図6:PlugXのディスクおよびファイルマネージャのモジュールの逆アセンブルおよび逆コンパイルしたコード
    図6:PlugXのディスクおよびファイルマネージャのモジュールの逆アセンブルおよび逆コンパイルしたコード

    前回のPlugXの方向と類似して、トレンドラボでは、読み込まれるコードは、デバックのログファイル” % All Users Profiel%\SxS\bug.log”を作成します。このファイルには、この不正プログラムの作成者が PlugX を改善するために利用できるエラーコードが記録されています。例えば、不正プログラムがあるファイルやフォルダにアクセスできなかった場合、このログファイルが作成されることとなります。そして、不正プログラムの作成者は、このログファイルを参照して、そのファイルやフォルダにアクセスできるように PlugX の改訂版を作成することができます。また、作成者は、こうしたログファイルを利用して、不正プログラム自身の検出や無効化を回避していることさえ可能です。こうしたことから、このログファイルは、PlugX の効果的なバージョンを作成するのに重要であることが伺えます。

    トレンドマイクロ製品をご利用のユーザは、トレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」によりこの脅威から守られています。特に、「E-mailレピュテーション」技術により、この脅威に関連するEメールを検出、ブロックします。また、「Webレピュテーション」技術により、上述のコマンド&コントロール(C&C)サーバへの接続をブロックします。さらに、「ファイルレピュテーション」技術により、RAT「PlugX」(「BKDR_PLUGX」および「TROJ_PLUGX」として検出)を検出します。

    トレンドマイクロのサーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」をご利用のお客様は、以下のフィルタを適用することにより、本脆弱性を利用した攻撃を検出、回避します。

  • 1004498 – Word RTF File Parsing Stack Buffer Overflow Vulnerability
  • トレンドマイクロでは、引き続きPlugXに関連するキャンペーンを監視し、随時報告します。

    【更新情報】

    2016/09/07 15:25 本文の一部を更新しました。

    参考記事:

  • Unplugging PlugX Capabilities
     by Abraham Camba (Threat Researcher)
  •  翻訳:船越 麻衣子(Core Technology Marketing, TrendLabs)