狡猾なバックドアを利用するサイバー犯罪者集団「テレボット」

この記事をシェア

ランサムウェアの攻撃が多様化し始めている。データやシステムを使えなくしてしまい身代金を要求するのが基本だが、ここで紹介するのは、サイバー犯罪者集団「テレボット」と相関性が高いということと、とある会計ソフトの正規版のアップデートにバックドアを仕掛けている点に特徴がある。

この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト「Welivesecurity」の記事を翻訳したものである。

狡猾なバックドアを利用するサイバー犯罪者集団「テレボット」

2017年6月27日、新たなサイバー攻撃が多くの国々で起こったが、とりわけウクライナ国内の多数のコンピューターシステムが襲われた。その攻撃は、ESETの製品が「Diskcoder.C」(エクスペトロ(ExPetr)、ペトロラップ(PetrWrap)、ペトヤ(Petya)またはノットペトヤ(NotPetya)とも呼ばれる)として検出したもので、よく知られているランサムウェア「ペトヤ」(Petya)との類似性から「ペトヤ亜種」と以下では呼称しておく。ペトヤ亜種は、コンピューター上のデータを暗号化してしまい、復旧するのと引き換えに約3万円(300ドル)相当のビットコインを要求する。しかし、実際のところマルウェアの作成者は損害を与えること自体を狙っており、暗号化されたデータが復旧することはまずない。

他の記事ではこの攻撃をテレボットグループに分類し、ウクライナに対する類似のサプライチェーン攻撃の詳細を明らかにしているが、当記事ではこのマルウェアの初期拡散の状況について詳細を説明する。

悪意のあるアップデート物語

ウクライナ国家警察のサイバー警察は、会計ソフト「M.E.Doc」(正規版)がペトヤ亜種を送り込む攻撃の初期段階で使われたことを、Facebook上で明らかにした。しかし、現在までに、そのソフトウェアがどのように活用されたのかについての詳細は明らかにされていない。

調査を進める間に、攻撃者らによってM.E.Docに埋め込まれた、非常に見つけにくい狡猾なバックドアが正規版で見つかった。ソースコードにアクセスできなければ、攻撃者たちも実行が難しいものである。

このバックドアのモジュールはファイル名を「ZvitPublishedObjects.dll」としており、「.NETフレームワーク」で書かれている。さらに、5MBの大きさを持ち、M.E.Docの主要な実行ファイルである「ezvit.exe」から呼び出される、多くの正規版のコードを含んでいる。

2017年にリリースされたM.E.Docの全てのアップデートを調査したところ、3回のアップデートが、今回の攻撃に使われたバックドアモジュールを含んでいた。

  • 10.01.175-10.01.176 2017年4月14日リリース
  • 10.01.180-10.01.181 2017年5月15日リリース
  • 10.01.188-10.01.189 2017年6月5日リリース

「エックスデータ」(XData、ESETではWin32/Filecoder.AESNI.Cとして検出される)による攻撃が、10.01.180-10.01.181のアップデートの3日後に起こり、ペトヤ亜種の流行が、10.01.188-10.01.189のアップデートの5日後に起こった。興味深いことに、2017年4月24日以降で、2017年5月10日までの4つのアップデートと、2017年5月17日から、2017年6月21日までの7つのアップデートには、バックドアモジュールは見つからなかった。

5月15日のアップデートにはバックドアモジュールがあり、5月17日にはバックドアモジュールがなかった。これによって、エックスデータへの感染が少なかった理由について、次のような仮説を立てることができる。5月17日のアップデートは、攻撃者たちにとって想定外の出来事だったのであり、5月18日にランサムウェアを送り込もうとしたが、M.E.Docのユーザーはもはやソフトウェアをアップデートしてしまっていたため、バックドアを埋め込まれていなかったと推測される。

分析されたファイルのPEコンパイルスタンプは、同じ日かそれ以前にコンパイルされたことを示唆している。

図15月15日にアップデートで送り込まれたバックドアモジュールのコンパイルのタイムスタンプ

図1 5月15日にアップデートで送り込まれたバックドアモジュールのコンパイルのタイムスタンプ

図2を見ると、逆コンパイラのILSpy.NETを使って分かる、バックドアの参照型リストと、バックドアのないバージョンのモジュールの違いを示している。

図2 バックドアモジュール(赤い枠線)のあるクラスのリスト(左)とバックドアのないリスト(右)

図2 バックドアモジュール(赤い枠線)のあるクラスのリスト(左)とバックドアのないリスト(右)

主なバックドアのクラスはMeComと名付けられており、図3に示されているように、ZvitPublishedObjects.Serverのネームスペース(名前空間)に置かれている。

図3 逆コンパイラのILSpy.NETに示された不正コードとMeComクラス

図3 逆コンパイラのILSpy.NETに示された不正コードとMeComクラス

MeComクラスのメソッドは、ZvitPublishedObjects.ServerネームスペースのIsNewUpdateによって呼び出される。IsNewUpdateメソッドは、定期的に使えるアップデートがないかどうかを確認するために呼び出される。5月15日以降のバックドアは、微妙に異なる方法で実装されており、6月22日に送り込まれたものよりも機能が少ない。

ウクライナ国内で活動している組織はEDRPOUという番号を保有しており、これにより単一の法的存在として特定できるようになっている。攻撃者たちにとってこの番号は極めて重要であり、EDRPOU番号により、バックドアを仕掛けたM.E.Docを使っている企業を正確に特定できる。そして、いったんマルウェアに感染した組織を見つけてしまえば、サイバー攻撃者は1つあるいは複数の目的のためにさまざまな攻撃方法をその企業のネットワークに対して繰り出していけるのである。

M.E.Docがウクライナ国内で広く使われている会計ソフトであったことから、EDRPOUのバリューは、このソフトウェアを使っている機械のアプリケーションデータの中で見つかる。ゆえに、IsNewUpdateに挿入されたコードは全てのEDRPOUの値をアプリケーションデータから収集する。あるM.E.Docのインスタンスが経理の実務を行うために複数の組織で使われており、バックドアコードは、全てのあり得るEDRPOU番号を集められるのだ。

図4 EDRPOU番号を収集するコード

図4 EDRPOU番号を収集するコード

EDRPOU番号と併せて、バックドアはプロキシやメールのセッティングも収集し、ユーザーネームやパスワードを、M.E.Docのアプリケーションから盗み出しているのだ。

警告 M.E.Docは自社ソフトウェアのユーザー全てに、プロキシやメールのパスワードの変更を推奨している。

不正コードは、WindowsのHKEY_CURRENT_USER\SOFTWARE\WCキーの下にあるレジストリーに、収集した情報を書き込む。

そしてこちらが、よく考えられているところだが、バックドアモジュールは、いかなる外部のサーバーもC&Cサーバーとしては用いられない。M.E.Docソフトウェアの常時アップデートチェックの、正式なM.E.Docサーバーのupd.me-doc.com[.]uaへのリクエストを使っているのだ。正規版のリクエストとの唯一の違いは、バックドアのコードが、収集した情報をクッキーの中に入れて送信するところである。

図5 EDRPOU番号をクッキーに挿入したバックドアモジュールのHTTPリクエスト

図5 EDRPOU番号をクッキーに挿入したバックドアモジュールのHTTPリクエスト

M.E.Docのサーバーにフォレンジック分析を掛けたわけではない。しかし、他の記事に書かれている通り、サーバーが侵害された兆候が見て取れる。そこで、攻撃者がサーバーに、侵害したソフトからのリクエストと侵害していないソフトからのリクエストを分類するような、サーバーソフトウェアを埋め込んだのではないかと、推測している。

図6 リクエストにクッキーを加えるバックドアのコード

図6 リクエストにクッキーを加えるバックドアのコード

そしてもちろん、攻撃者は、感染させたデバイスを制御する機能を付け加えている。コードは怪しいデータ(=バイナリブロブ)を、正式なM.E.Docサーバーから受け取り、暗号の一つである「トリプルデス」のアルゴリズムを使って復号化し、最終的に、GZipを使って展開する。結果は、作られるのはXMLファイルで、幾つかのコマンドを含んでいる。この遠隔操作機能は、作り出し、諜報活動や破壊活動のプラットフォームとなるバックドアを同時に作り出す。

図7 マルウェアを運用するコマンドを復号するバックドアコード

図7 マルウェアを運用するコマンドを復号するバックドアコード

以下が、使われた可能性のあるコマンドである。

コマンド 目的
0 – RunCmd 送り込んだシェルコマンドを実行する
1 – DumpData 送り込んだBase64データをデコードし、ファイルに保存する
2 – MinInfo 収集した情報、OSのバージョンやbit数、32bitか64bitか現在のプリヴィレッジ、UACの設定、プロキシの設定、ログインやパスワードを含むメールの設定
3 – GetFile 感染したコンピューターからファイルを収集する
4 – Payload Base64データをデコードし、実行可能ファイルに保存し、実行する
5 – AutoPayload 上記と同様に、提供されたファイルはDLLでなければならず、rundll32.exeを使用してWindowsフォルダから削除され実行される。さらに、削除されたDLLを上書きして削除しようとする。

このうち「AutoPayload」とマルウェアの作成者に名付けられた5つ目のコマンドに注目しなければならず、ペトヤ亜種が実際に、「最初の感染者」で実行された方法と完全に一致していた。

図8 ペトヤ亜種の実行に使われた「AutoPayload」メソッド

図8 ペトヤ亜種の実行に使われた「AutoPayload」メソッド

結論

以上の分析が示している通り、ペトヤ亜種は極めて精巧に作られ、しっかりと思惑通りに実行されるように仕上がっている。そのため攻撃者は、M.E.Docアプリケーションのソースコードにアクセスできたのではないかと想定される。非常に見つけにくく、高度なバックドアを仕掛けておき、じっとコードを分析する時間を待っていた。M.E.Docのインストールファイルはオリジナルでは1.5GBのサイズで、ほかにバックドアが仕込まれていないことを証明するものは今のところない。

ほかにもまだ、幾つか答えるべき問いがある。このバックドアはどれだけの間、使われてきたのか、いかなるコマンドが、そしてペトヤ亜種やエックスデータ以外のマルウェアが、この経路から送り込まれたのか、ほかのいかなるソフトウェアのサプライチェーンが、犯罪者によって攻撃に活用するために侵害され、いまだに武器化されているのか……、これらの問いに対する解答はまだ見つかっていない。

感染の疑いを確認するための指標 (= 危殆化指標、IoC)

ESET の検知名
MSIL/TeleDoor.A

マルウェア作成者によって悪用されたサーバー
upd.me-doc.com[.]ua

SHA-1 ハッシュ値
7B051E7E7A82F07873FA360958ACC6492E4385DD
7F3B1C56C180369AE7891483675BEC61F3182F27
3567434E2E49358E8210674641A20B147E0BD23C

この記事をシェア

ランサムウェアのセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!