【温故知新シリーズ】脅威のスポットライト:Philadelphiaランサムウェア

By The Cylance Threat Research Team

温故知新シリーズブログでは、新たな知見を広げるために過去に米国でリリースされたブログを翻訳しています。本ブログ記事は、2017年5月2日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。

はじめに

マルウェア作成者の間で、ランサムウェアを簡単に作成できるさまざまなフレームワークを作成して販売することが人気になっています。2016年に登場した新しいランサムウェアファミリーの数が推定で 752%増加していることを考えれば、SatanなどのRansomware as a Service(RaaS)モデルとPhiladelphiaなどのワンタイムライセンスモデルによって、コーディングの経験はまったくなくても十分な資金さえあれば、ランサムウェアを極めて簡単に、かつ無制限に作成してばらまけるようになっていることは明らかです。Forcepoint Securityは以前に、太平洋岸北西部の病院を標的としたスピアフィッシング攻撃で使用されたPhiladelphiaのサンプルについて検証した ブログ記事を投稿しました。ただし、この時点では、この攻撃が成功したと言えるのかどうかは定かではありませんでした。

現在では、その新たな脅威の詳細が明らかになりつつあります。つまり、プログラミングの知識を持たない犯罪者があらゆる組織や個人を簡単に標的にできるようになったのです。できるだけ大金を支払わせたい攻撃者にとって、人の命を直接左右するネットワーク接続デバイスを人質に取れるような業界を標的にすることができれば、それほど好都合なことはありません。

Philadelphiaランサムウェアは、最近相次いで公開された自作型ランサムウェアフレームワークの中では新しいものの1つです。サイランス脅威解析チームは、ダークウェブ でこの脅威のビルダーのコピーを見つけて、このランサムウェアの際立った特徴について詳しく調べました。

Philadelphiaランサムウェアの出所

本稿の執筆時点では、ランサムウェア Stampado と同じ作成者が、Philadelphiaビルダーを300.00ドルの永久ライセンスで販売していることがわかっています。


図1:Philadelphiaビルダーの広告

このビルダーは、難読化されたAutoItペイロードを生成します。このペイロードは、任意で組み込みのUPXパッカーを使用してパックすることもできます。AutoItは使いやすく、スタンドアロンの実行可能ファイルへのコンパイル機能があることから、正当な管理タスク用ツールを作成するためのスクリプト言語として、システム管理者の間で人気があります。

Philadelphiaの際立った特徴の1つは、感染したマシンを、PHPブリッジを使用して管理することです。作成者のWebサイトには、以下の記述があります。

「これは、単純にそれ自体をデータベースとして使用するPHPスクリプトである(MySQL等は不要。必要なのはPHPのみ)。ブリッジは、クライアントの鍵を保存し、金銭の支払いを確認して、被害者の情報(sic)をヘッドクォーターに安全に提供する。ブリッジはほとんどのサーバーでホスト可能である。ハッキングされたサーバーであっても問題ない…」

この仕組みにより、攻撃者は侵害したサイトにPHPスクリプトを配置するだけでよくなり、犠牲者のマシンを監視するために専用の仮想プライベートサーバー(VPS)を管理・維持する必要はなくなります。

Philadelphiaのビルド

Philadelphiaビルダーは、有償のワンタイムライセンス付きで販売されており、高度な構成が可能です。ユーザーは配布する感染ファイルを簡単な操作でいくつでも作成できるようです。

Philadelphiaは、2つのコンポーネント(1つのエージェントと複数のPHPブリッジ)で動作します。エージェントは標的マシン上で動作するペイロードであり、ブリッジは攻撃者がエージェントと通信できるようにするためのペイロードです。ユーザーがPhiladelphiaをインストールすると、新しいエージェントを作成できるメニューが表示されます (図2) ユーザーは、ペイロードにファイル名を割り当てるように要求されます。エージェントに関連付けられる特定のアイコンを指定して、新しく作成されるペイロードの保存先ディレクトリを入力します。

図2:エージェントの生成、最終的な実行可能ファイルの名前の指定

次に、必要に応じて脅迫状の編集画面に移動します(図3)。 ビルダーには、デフォルトの脅迫メッセージが用意されていますが、テキストは自由に変更することができます(図3の“<<< 「<<< TEST TEST TEST TEST TEST>>>」>>>”は、サイランス脅威解析チームが編集機能の柔軟性を実証するために追加したものです)。

図3:エージェントの生成、脅迫状の編集

次に、標的マシン上で実行する不正なプロセスの名前(デフォルト設定はlsass.exe)とペイロードの抽出先ディレクトリ(ここにもデフォルト設定が表示されます)を指定します。テストの目的で、ここではプロセス名を「legitproc.exe」と指定しました。


図4:エージェントの生成、プロセス名と抽出先ディレクトリの指定

図5では、ユーザーがビルダーで身代金の額を簡単にカスタマイズできることがわかります。


図5:エージェントの生成、身代金の額の指定

最後に、簡単なメニューからブリッジを作成する必要があります。他人に乗っ取られないように、ブリッジごとに一意のユーザー名とパスワードを割り当てることができます。図6では、PHPブリッジスクリプトを簡単に生成できることがわかります。

図6:ブリッジの生成、ブリッジ名の指定とパスワードの設定

すべての構成を設定し、ブリッジスクリプトを作成したら、「Build」をクリックします。ペイロードが生成およびコンパイルされて、事前に指定されたディレクトリ(この場合は「Desktop」、図7を参照)にドロップされます。

図7:エージェントとブリッジのスクリプトの生成が完了

標的マシンまでの橋を架ける(ブリッジの展開)

生成された、ブリッジのPHPスクリプトは、任意のWebサーバーにドロップできるので、専用の仮想プライベートサーバーを保持する必要がありません。作成者が提案しているように、こうしたスクリプトの導入には、侵害したサイトのディレクトリが理想的です。ブリッジのスクリプトを詳しく調べたところ、このブリッジのスクリプトを通じて実行可能な管理タスクの種類が明らかになりました。図8は、スクリプト内のハードコードされたブリッジのユーザー名とパスワード、および身代金の額に関する情報を示します。

図8:PHPブリッジスクリプト、ユーザー名とパスワード、身代金の額

図9は、問い合わせ可能な被害者情報の種類を示しています。地理的な位置とオペレーティングシステム、さらにハードコードされたBTCウォレットアドレスの詳細情報を問い合わせることができます。

図9:PHPブリッジスクリプト、標的システムとBTCウォレットの情報

最後に、図10は、攻撃者が被害者の支払い状況を問い合わせることもできることを示します。


図10:PHPブリッジスクリプト、被害者の支払い状況

分析

サイランス脅威解析チームは、テスト用にPhiladelphiaの最新のサンプル(539KB、コンパイル済みAutoItスクリプト、UPXによりパッキング済み)を入手しました。この実行可能ファイルを逆コンパイルすると、次の5つのファイルが生成されました。

[4262].au3

delphi.au3.509

pd4ta.dat

ph1la.bin

stub.au3.509

最初に目にする、逆コンパイルされたAutoItスクリプトは、厳重に難読化されていることがわかります。これは、スクリプトベースのマルウェアではよくあることです(図11). また、通常のファイルにおいてみられるようなペイロードの機能の痕跡が、このファイルには存在しませんでした。多少の作業は必要ですが、難読化を解除することは可能です。なぜなら、スクリプト自体が、難読化を解除して正当なAutoIt表現に戻す必要があるからです。難読化されたスクリプトでは、最終結果を評価するためにExecute 関数を活用しています (図12)。

図11:逆コンパイルされたエージェント、難読化されたAutoItスクリプト


図12:逆コンパイルされたエージェント、デコードされた関数

リサーチャーのCalle ‘Zeta Two’ Svensson氏が、このスクリプトで使用されている暗号化と難読化の手法について詳しく説明した素晴らしい記事を ブログに投稿しています。簡単に言うと、delphi.au3.509には[4262].au3で使用するエンコードされた定数が格納され、他のファイルにはRC4で暗号化された構成情報が格納されています。この記事は非常に詳しく書かれているので、復号作業の詳細について、ここでは繰り返しません。

実行時に、UPXのアンパッキングとスクリプトのデコーディングが行われた後、生成されたエージェントが、事前に定義した「legitproc.exe」という名前でC:\Users\[user]\AppData\Roaming\legitproc.exeから実行されます。


図13:攻撃者が指定した名前の不正なプロセスの実行

エージェントは、実行されると、暗号化鍵を生成してブリッジに送信し、身代金の額、一意のID、およびBTCウォレットの情報を受信します(図14)


図14:ネットワークトラフィック

この場合、PHPブリッジスクリプトは、hxxp://foolonthehill(dot)comというWebサイト(198.54.114[dot]228)でホストされています。これは、複数のブラックリストに掲載されている既知の不正なサイトです。

攻撃者は、図15の画像を、初回実行時または暗号化完了後のどちらのタイミングで表示するかを構成できます。また、任意でテキストファイルもデスクトップにドロップできます。

図15:脅迫状

*脅迫状の本文の日本語訳:

あなたは攻撃されました!

あなたのファイルはすべて暗号化されています!

あなたのドキュメント(データベース、テキスト、画像、動画、音楽など)はすべて暗号化されました。暗号化は、現在我々のサーバーに保存されている秘密鍵を使用して実行されました。

ファイルを復号するには、我々から秘密鍵を買い取る必要があります。

この秘密鍵をあなたに提供できるのは世界中で我々だけです。

さて、どうすればよいでしょうか?

身代金をビットコインで払ってください。つまり、この下に表示されている金額をその下のウォレットに送金してください。

LocalBitcoins.comを使えば、ビットコインを購入できます。

Philadelphiaの欠点とその被害者にもたらされる結果

Philadelphiaは、PHPブリッジスクリプトを使用して標的マシンの管理とフラットファイルへのデータ保存を行うことで、攻撃者が専用ホストを保持しなくても済むようにしています。作成者はこうした特長があることを盛んに宣伝していますが、このマルウェアを配布する人物が犠牲者を罠にかけるにはブリッジを常に有効にしておく必要があるのです。

その一方で、サイトの所有者が侵害を検出して修正することにより、被害者がブリッジから切断されることも、現実に起こり得ます。あるいはさらに悪いことに、その気になった犠牲者が身代金を支払っても、ブリッジが無効になっているために鍵を受信できなくなる可能性もあります。ブリッジには暗号化鍵の情報も保存されているので、エージェントが変更されたりブリッジが削除されたりすると、被害に遭ったファイルの復号は不可能になります。

ビルダーのドキュメントに次の記述があります。

「…暗号化パスワードはマシンではなくブリッジに保存されているので、正しい鍵を提供できるのはブリッジのみである(その被害者用に設定されているウォレットのトランザクションIDが有効であり、かつそのウォレットが、定義されている許容範囲内の最低金額を超えている場合)。これらの条件が満たされない場合、すべてのファイルがパスワードを使用して正常に復号されず、すべてのデータが失われる」

被害者にとっては幸いなことに、暗号化されたファイルは、マルウェアが残存していれば完全に回復可能です。Svensson氏が自身のブログで詳しく説明しているように、鍵生成アルゴリズムでは組み込みのRandom 関数が使用されており、常にシード値としてシステム時間が使用されています。暗号化されたファイルの回復手順の詳細については、No More RansomのWebサイトを参照してください。

まとめ

Philadelphiaランサムウェアビルダーによって、サイバー犯罪者になろうとしている人たちが非常に簡単に攻撃用ペイロードを大量生産して配布できるようになっています。簡単に導入できる一方で、侵害されたサイトを常に有効にしておくのには手間がかかるために、ランサムウェアの配布者が必ず身代金の受け取りに成功するようになるのはまだまだ先のことかもしれません。ランサムウェアの作成者はブラックマーケットで安くて簡単に手に入るランサムウェアに対する需要があることに目を付けて一儲けしようとしている可能性が高く、犯罪者になろうとしている人たちこそが、こうした欠点のあるランサムウェアの本当の被害者でもあるのです。

ランサムウェアの配信手段をざっと調べるだけで、ほとんどの被害者は、感染した電子メールの添付ファイルを操作した後に感染していることがわかります。つまり、見慣れない、勝手に送られてきた電子メールの添付ファイルを操作しないだけで対策を講じられるということです。

サイランスのエンドポイント防御製品CylancePROTECT®をご利用中のお客様は、この攻撃からすでに防御されています。CylancePROTECTをご利用でない場合、AI駆動ソリューションがいかにして未知の新しい脅威を予測・防御できるかについてぜひ サイランスまでお問い合わせください

侵入の痕跡(IOC):

SHA-256ハッシュ:

4262B1C6EA0D11FBAABAEF6412B0B520317B26CB40688ADE6619CAC647EC35B0

MD5ハッシュ:

70c032329cc7bd1c6d27e1a5f0da6333

Tags: