MuhstikボットネットがTomatoルータを攻撃 新しいIoTデバイスを「収穫」

By , and

Category: Unit 42

Tags: , , , ,

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

概要

2019年12月5日、Unit 42のリサーチャーは、Muhstikボットネットの新しい亜種を発見しました。同亜種はweb認証のブルートフォースを使う初のTomatoルータ攻撃用スキャナを追加するものでした。

Tomatoはルータ用オープンソース代替ファームウェアです。Linuxベースのプロプライエタリではない安定したファームウェアで、VPNパススルー機能や高度なサービス品質制御(QoS)を持つことから、複数のルータベンダがこのファームウェアを採用してインストールしており、エンドユーザーも手動でインストールすることがあります。Shodanでの調査によると、4,600台以上のTomatoルータがインターネット上に公開されていました。

Muhstikボットネットは2018年3月から稼働しているボットネットで、LinuxサーバーやIoTデバイスに感染するワームに似た自己増殖機能を備えています。Muhstikは、複数の脆弱性エクスプロイトを使用し、Weblogic、WordPress、DrupalといったLinuxサービスに感染します。このほかGPONホームルーターやDD-WRTルータのようなIoTルータも侵害します。今回見つかった亜種は、Tomatoルータに感染することでボットネットを拡大しています。

脆弱なルータの「収穫」後のTomatoルータには、これ以外の悪意のある活動は見つかりませんでした。ただし私たちの理解では、Muhstikボットネットは主にIoTボットで暗号通貨(仮想通貨)のマイニングやDDoS攻撃の開始によって利益を上げているものです。Unit 42 はコマンド&コントロール(C2)用IRCチャネルを監視し続ける予定です。

本稿ではこれ以降、Muhstikボットネットの詳細な分析を行います。

Tomatoルータ用の新しいスキャナ

新しいMuhstikの亜種は、8080/tcp上のTomatoルータをスキャンし、デフォルトの資格情報のブルートフォース攻撃により管理web認証をバイパスします。Tomatoルータの場合、デフォルトの資格情報は「admin: admin」、「root: admin」です。図1はTomatoルータへのweb認証ブルートフォーシンス攻撃トラフィックをキャプチャしたものです。

図1 Tomatoルータのweb認証ブルートフォース攻撃

感染台数を推定するためにShodanでTomatoルータのフィンガープリントを検索したところ、図2に示したように、インターネット上には合計約4,600台の潜在的被害端末があることがわかりました。なおこの合計数は、TomatoUSBデバイスの数も含めて算出しています。TomatoUSBデバイスというのは、TomatoルータとUSBドライブを組み合わせてNASサーバーとして使用するためのデバイスのことです。

図2 インターネット上に公開されているTomatoルータとTomatoUSBルータ

その他のスキャナ

スキャン 1: WordPress

最初のモジュールは、サーバーにインストールされているWordPressを識別するスキャナです。スキャンを実行するため、同モジュールは通常HTTPポートであるポート80/tcpないし8080/tcpへのGETリクエスト送信します。

図3 daymonが使用するWordPressスキャナ

スキャン 2: Webuzo

2番目のモジュールは、サーバーにインストールされているWebuzoソリューションを識別するスキャナです。スキャンを実行するため、同モジュールは GET リクエストをポート2004/tcpに送信します。port 2004/tcpはWebuzoの管理画面のデフォルトポートです。このリクエストには/install.phpというパスを使用します。このパスは、Webuzoのインストーラーファイルで、デフォルトでは、Webuzoを実行しているサーバーは、このリクエストに正常応答します。

スキャン 3: CVE-2019-2725 - WebLogic バージョン 10.3.6.0 および 12.1.3.0

3番目のモジュールは、リモートコード実行につながるOracle WebLogic Server上のデシリアライゼーション脆弱性を悪用します。この脆弱性はリモートから事前認証なしで悪用される可能性があります。このエクスプロイトはWebLogic Serverのデフォルトポートであるポート7001/tcpに送信されます。

URL hxxp://165.227.78[.]159/wl.phpは、レポート目的で使用されているものと考えられます。というのも、IPアドレス165.227.78[.]159は以前、Mushtikボットネットによってレポートサーバーとしてボットの情報を収集するために利用されていたことがあるからです。この件については、別のMuhstik亜種分析レポートで説明しています。

Muhstikボットネットのインフラ

以下の図3は更新されたMuhstik亜種による実行フローを示したものです。また図4は、WordPress、Webuzoを実行するLinuxサーバースキャン用モジュールを組み合わせたMuhstikボットネット亜種を示したものです。同亜種はこれに加えてTomatoファームウェアを実行するWebLogicサーバーとWi-Fiルータの侵害用モジュールも実装しています。

図4 Muhstikのインフラ

図5 スキャン、エクスプロイト時の振る舞いに関する詳細

Muhstik亜種のペイロード

私たちは、tty0という悪意のあるバイナリを発見しました。tty0はTomatoルータを対象としているため、Tomatoルータのシステム(およびDD-WRTなどの他のシステム)で実行可能なbashコマンドを含んでいます。

最初のコマンドは nvr と呼ばれるバイナリをhttp://y.fd6fq54s6df541q23sdxfg[.]eu/nvrからダウンロードするのに利用されます。

tty0はシステムで実行中のstraceやtcpdumpプロセスを強制終了することで、分析されるのを防止する手法も取っています。

nvr バイナリにはさらに4つのバイナリを追加ダウンロードするコマンドが含まれています。これら4つのバイナリはIRCボットネットの亜種で、ARMおよびMIPSアーキテクチャで動作します。私たちはこの中からPty5というバイナリを中心に分析を行いました。その理由は、このバイナリがdaymonと呼ばれるバイナリをドロップし、そのdaymonがTomatoルータを対象とする新しいモジュールを含むスキャナだからです。

daymon はMiraiに使われている暗号化手法をとっており、 そのテーブルキーは 0xEFBEADDEです。

IRCによるC2

侵害されたデバイスは、IRCサーバーに接続コマンドを送信します。connectコマンドには、デバイスをチャンネルに参加させるためのニックネーム(NICK)がつけられます。このニックネームには、次の図6が示すように、以前に取得した感染デバイスのノードホスト名が含まれます。

図6 ホスト名の収集

また図7では、ユーザー名がconnectコマンドに追加されています。

サーバー側は PINGコマンドに BotnetIDをつけて応答します。侵害されたデバイスは PONG に BotnetIDをつけて応答します。ニックネームが作成され、それが感染したクライアントに割り当てられると、IRCサーバーはボットをクライアントとしてメインチャネルに受け入れます。次に、サーバーはクライアントにMOTD(Message of the Day: 今日のメッセージ)を送信します。続いて侵害されたデバイスはeaと呼ばれるチャネルに参加するためのコマンドを送信します。そしてこのeaチャネルが、ボットネットの参加クライアントにコマンドを送信してきます。ボットネットはデバイスをボットネットに登録するためにパブリックIPアドレスなど感染デバイスの情報を収集します。

図7 IRCチャンネルに参加する

結論

この新しいMuhstikボットネット亜種の存在は、IoTボットネットというものが、新しいスキャナやエクスプロイトを追加し、新たなIoTデバイスを収集することにより、その規模を拡大しつづけている実態を示すものです。ボットネットの開発者によるオープンソースファームウェアをインストールしたIoTデバイスへの侵害は増加しています。その理由は、デバイス保護のために必要なセキュリティアップデートやメンテナンスパッチが、オープンソースファームウェアでは提供されにくいことが多々あるためです。エンドユーザーは、オープンソースファームウェアをインストールする際には注意が必要ですし、その際はファームウェアマニュアルのセキュリティガイドラインに従う必要があります。

Palo Alto Networksのお客様は、以下のセキュリティプラットフォームによってMuhstikボットネットから保護されています。

  1. Zingbox IoT GuardianではC2およびMuhstikボットネットで使用されるエクスプロイトの検出を追加します。
  2. Threat Preventionのシグネチャ55570はWeblogic(CVE-2019-2725)のエクスプロイトを識別します。
  3. PAN-DBとDNS Securityは、攻撃者のC2サーバーのURLとドメインを遮断します。
  4. WildFireとAntivirusは、Muhstikマルウェアを識別して遮断します。

付録

C2 サーバー

IRC サーバー:

  • 46.149.233[.]35
  • 68.66.253[.]100
  • 185.61.149[.]22

ドメインとURL:

  • hxxp://y.fd6fq54s6df541q23sdxfg[.]eu/nvr
  • hxxp://159.89.156[.]190/.y/pty1
  • hxxp://159.89.156[.]190/.y/pty3
  • hxxp://159.89.156[.]190/.y/pty5
  • hxxp://159.89.156[.]190/.y/pty6
  • s.shadow.mods[.]net

サンプル

ファイル名 SHA256値 ファイルタイプ
tty0 492780a9ac9f03305538b360d8a836c038da4920e8c1ae620988b120613c0b1f MIPS-ELF
nvr 2548f5b1613f6ebba2ff589c7b3416ccdd066b73644d4d212232beb1cecd9c31 シェルスクリプト
Pty1 a4ba50129408f9f52ddabe5bfd5bfb46aea0ca48fb616f495f2610b2f1729687 MIPS-ELF
Pty3 7325742dc0d939542d4c04ae2ae8f2792711203de50d3d16de3a9f83baaf5435 MIPS-ELF
Pty5 72123c51bcdf8c1784654d9e2470e69131872407408aa3cf775ea0ace87bb9a0 ARM-ELF
Pty6 cee20e79f20d35b95645f0cbda1897302e6e554c50f3e6754ce9293e3c1ba11c ARM-ELF
daymon dc52a1193ecf6096192f771ae663de6e0389840cb5ceb7b979091333ce6f7f02 ARM-ELF