Pythonを使ったPWOBotが欧州の諸機関を標的に

By

Category: Malware, Threat Prevention, Unit 42

Tags: , ,

This post is also available in: English (英語)

Palo Alto Networksの脅威インテリジェンスチームUnit 42によって「PWOBot」という名前のマルウェア ファミリの最新バージョンが発見されました。

PWOBotは全体がPythonで記述されておりPyInstallerを介してコンパイルされてMicrosoft Windowsの実行形式ファイルを生成する他に例を見ないマルウェアです。このマルウェアが欧州、特にポーランドを拠点とする多数の機関に影響を及ぼしていることが確認されています。また、このマルウェアはポーランドで人気のファイル共有Webサービスを介して配信されています。

このマルウェアは、豊富な機能を備えており、ファイルをダウンロードして実行する、Pythonコードを実行する、キー操作を記録する、HTTPサーバを生成する、被害者のCPUとGPUを介してBitcoinマイニングを行うなどの機能があります。

PWOBotの亜種は少なくとも12個あり、2013年からこのマルウェアによる攻撃が観測されています。また、最近、2015年の中頃から終わりにかけて諸機関に影響を及ぼしていることが観測されています。

標的

この1年間で以下の諸機関がPWOBotの影響を受けていることが観測されています。

  • ポーランドの国立研究機関
  • ポーランドの運送会社
  • ポーランドの大手小売業
  • ポーランドの情報技術機関
  • デンマークの建築会社
  • フランスの光学機器業者

PWOBotのサンプルの大多数は、ポーランドで人気のあるファイル共有Webサービスchomikuj.plからダウンロードされました。以下の一意的なURLからPWOBotのコピーが提供されていることが観測されています。

s6216.chomikuj[.]pl/File.aspx?e=Pdd9AAxFcKmWlkqPtbpUrzfDq5_SUJBOz
s6102.chomikuj[.]pl/File.aspx?e=Hc4mp1AqJcyitgKbZvYM4th0XwQiVsQDW
s8512.chomikuj[.]pl/File.aspx?e=h6v10uIP1Z1mX2szQLTMUIoAmU3RcW5tv
s6429.chomikuj[.]pl/File.aspx?e=LyhX9kLrkmkrrRDIf6vq7Vs8vFNhqHONt
s5983.chomikuj[.]pl/File.aspx?e=b5Xyy93_GHxrgApU8YJXJlOUXWxjXgW2w
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3FdOGBKSSUQhl
s6701.chomikuj[.]pl/File.aspx?e=tx0a8KUhx57K8u_LPZDAH18ib-ehvFlZl
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3ISlGKLuMnr9H
s6539.chomikuj[.]pl/File.aspx?e=EH9Rj5SLl8fFxGU-I0VZ3OFFAuDc0M9m0
s6179.chomikuj[.]pl/File.aspx?e=Want-FTh0vz6www2xalnT1Nk6O_Wc6huR
s6424.chomikuj[.]pl/File.aspx?e=o_4Gk0x3F9FWxSDo4JWYuvGXDCsbytZMY

さらにある事例ではhttp://108.61.167.105/favicon[.]pngからこのマルウェアがダウンロードされました。このIPアドレスはtracking.huijang[.]comドメインと関連しており、このドメインも多くのPWOBotサンプルが利用していました。

以下のファイル名がPWOBotの配信に使われていることが観測されました。

  • favicon.png
  • Quick PDF to Word 3.0.exe
  • XoristDecryptor 2.3.19.0 full ver.exe
  • Easy Barcode Creator 2.2.6.exe
  • Kingston Format Utility 1.0.3.0.exe
  • uCertify 1Z0-146 Oracle Database 8.05.05 Premium.exe
  • Six Sigma Toolbox 1.0.122.exe
  • Fizjologia sportu. Krtkie wykady.exe [Physiology of sports. Short lectures.exe]

使われているファイル名から分かるように、多数のPWOBotサンプルがさまざまなユーティリティ プログラムと称されています。一部の事例では攻撃目標をさらに絞ったものと見られるファイル名にポーランド語が使われています。

このマルウェアが最初どのようにしてエンド ユーザーに配信されたのかは不明です。観測されたファイル名に基づき、別のソフトウェアをダウンロードしているエンド ユーザーに、このマルウェアが配信されたものと推測できます。あるいは、これらのファイルをダウンロードするよう被害者を誘導するためにフィッシング詐欺が使われた可能性があります。

マルウェア分析

はじめに述べたようにPWOBotは全てPythonで書かれています。攻撃者はPyInstallerを利用してPythonコードをMicrosoft Windowsの実行形式ファイルに変換していますが、Pythonが使われているためLinuxやOSXなどの他のオペレーティング システムに容易にPWOBotを移植することができます。

最初の実行に際に、PWOBotは旧バージョンが見つかった場合、まず旧バージョンをアンインストールします。PWOBotはRunレジストリー キーを照会して旧バージョンのインスタンスを検索します。多くのバージョンで、Runレジストリー キー用に「pwo[VERSION]」の書式が使われますが、[VERSION]はPWOBotのバージョン番号を表します。

 

図1 旧バージョンをアンインストールするPWOBot
図1 旧バージョンをアンインストールするPWOBot

旧バージョンがアンインストールされるとPWOBotは自分自身をインストールし下記の場所に実行形式ファイルのコピーを作成します。

%HOMEPATH%/pwo[VERSION]

その後、新たにコピーされたこの実行形式ファイルを指し示すよう下記のレジストリー キーを設定します。

HKCU/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/pwo[VERSION]

マルウェアが初めて起動される場合、PWOBotは新たにコピーされたファイルを新しいプロセスの中で実行します。

インストールの完了後、PWOBotは、後続のキーロギング アクティビティで使用されるさまざまなキーボード イベントとマウス イベントをフックします。PWOBotはモジュラー形式で記述されているため、攻撃者は実行時にさまざまなモジュールを含めることができます。現在識別されている多数のサンプルに基づくと、PWOBotとともに、次のサービスとそれに付随する説明が含まれるパターンが観察されています。

  • PWOLauncher :ファイルのダウンロード/実行、またはローカル ファイルの実行
  • PWOHTTPD :被害者のマシン上でのHTTPサーバの生成
  • PWOKeyLogger :被害者のマシン上でのキーストロークのロギング
  • PWOMiner :被害者のCPU/GPUを使用したビットコインのマイニング
  • PWOPyExec :Pythonコードの実行
  • PWOQuery :リモートURLをクエリし、結果を返す

また、PWOBotは2つの設定ファイルを備えており、一方はマルウェアが使用する必要のある各種設定を指定し、もう一方はPWOBotが実行時に接続する必要のあるリモート サーバを指定しています。

図2 PWOBot設定値の設定
図2 PWOBot設定値の設定
図3 PWOBotリモート サーバの設定
図3 PWOBotリモート サーバの設定

設定値の設定(図2)からわかるとおり、PWOBotには、攻撃者がPyInstallerを使用してコードをコンパイルしたときにインクルードされる、さまざまなWindows実行ファイルが含まれています。これらの実行ファイルは、ビットコイン マイニングとTorを介したプロキシ宛てのリクエストを実行するために使用されます。ビットコイン マイナーは、minerdとcgminerのコンパイル版です。これらのファイルは、それぞれCPUとGPUのビットコイン マイニングに使用されます。

また、PWOBotは、Torを使用して、すべてのトラフィックを攻撃者のリモート サーバへトンネルさせます。これは暗号化と匿名性の両方を提供しますが、組織のポリシーに違反する可能性のあるトラフィックのようなものとして認識された場合には、その組織のネットワーク管理者へのアラートを発生させます。

PWOBotは、それがネットワーク プロトコルであるかのようにPythonディクショナリを使用します。指定された期間ごとに、PWOBotはリモート サーバに通知メッセージを送信します。この通知の例を以下に示します。

前の例で見つかったさまざまな数値を表すように列挙されています。対応する列挙で置き換えると、どのデータを送信しているのかをより明確に把握できます。

通知が送信された後、攻撃者が、PWOBotに事前定義されたサービスのいずれかを実行するようにコマンドを送る場合があります。その後、そのアクションの結果が同じ形式を使用して攻撃者にアップロードされます。

Palo Alto Networks Unit 42によって識別された最新のバージョンに基づくと、PWOBotには合計12の亜種が存在すると思われます。12バージョンのうち、ネット上で私たちが目撃したのは、5、6、7、9、10および12です。バージョン間の変更は極わずかで、パフォーマンスが改善されているようです。

結論

PWOBotは、完全にPythonで記述されている、マルウェア ファミリとして興味深い存在です。歴史的にはMicrosoft Windowsプラットフォームに影響すると見られてきましたが、基盤となるコードがクロスプラットフォームになって以来、LinuxやOSXオペレーティング システムへも容易に移植できます。その事実とモジュラー設計が相まって、PWOBotは潜在的に深刻な脅威となっています。

このマルウェア ファミリは、これまで公表されていませんでした。現在、ヨーロッパにおいて多数の組織が影響を受けています。

Palo Alto Networksのお客様は、次の方法で脅威から保護されています。

  • すべてのPWOBotサンプルは、WildFireサービスによって、悪意あるものとして厳密に分類されます。
  • PWOBot脅威に関連するドメインは、悪意あるものとして適切に分類されます。
  • AutoFocusのお客様は、PWOBotタグを使用して、この脅威を監視できます。

PWOBotのSHA256ハッシュのリストについては、こちらのファイルを参照してください。