Wickedファミリーのボット

最新のIoTボットネットを追い続けるなかで、FortiGuard LabsチームはMiraiの亜種の増加を観測してきました。このマルウェアのソースコードは2年前に公開されており、それ以来、脅威アクターたちは元のレシピに独自のフレーバーを加えてきたというわけです。

感染したデバイスを、マルウェアのプロキシクリプトマイナーの大群に変える機能を追加するなど、大幅な修正を行った者もいます。現在WICKEDと呼ばれる、FortiGuard Labsが先日発見した新たな亜種のように、既知、未知の脆弱性の両方を標的とする複数のエクスプロイトと、Miraiのコードを統合させた者もいます。

この新亜種には少なくとも3つのエクスプロイトが追加されており、未パッチのIoTデバイスを標的とします。今回の記事では、その仕組み、このボットの主な目的、その他の既知のボットネットとの関係性を見ていきましょう。


ボット内部

Miraiとこの新たな亜種の違いをざっと見ていくためには、コンフィギュレーションテーブルを見る必要があります。これは鍵0x37を持つXORで復号できます。

/bin/busybox WICKEDWICKED: applet not foundなど、いくつか興味深い文字列が含まれています。亜種の名前はここに由来しています。さらに、SoraLOADER という文字列は、このボットがMiraiの亜種であるSoraボットネットのダウンローダーやスプレッダーとして機能していることの手掛かりかもしれません。しかし分析を進めると、そうではないことが判明しました。そして、さらに興味深い仮説にたどり着きました。

Fig 1. Decrypted configuration table

図1. 復号したコンフィギュレーションテーブル

Miraiをベースとしたボットネットには通常、Attack、Killer、Scannerという3つの主なモジュールが含まれています。今回の分析では、ボットネットの拡散メカニズムが含まれるScannerのモジュールのみを取り上げます。元のMirai はIoTデバイスにアクセスするため、従来の総当たり攻撃を使っていました。一方、WICKEDボットは既知かつ現在利用できるエクスプロイトを使用します。その多くはすでにかなり古いものです。

WickedボットはrawソケットSYN接続を開始して、ポート8080、8443、80、81のスキャンを行います。

Fig 2. Socket file descriptor

図2. ソケットファイル記述子

接続が確立されると、デバイスの脆弱性を突き、ペイロードのダウンロードを試みます。その際、システムコールwrite() を使ってソケットにエクスプロイトの文字列を書き込みます。システムコールwrite() は、ゼロに設定されたflags引数(余分な動作は何もなしということ)の入ったシステムコール send() を呼び出すのと同じです。

Fig 3. Sending a request by writing to a socket

図3. ソケットに書き込みを行い、リクエストを送信


Wickedが標的とするデバイス

使用されるエクスプロイトは、ボットが接続に成功したポートによって異なります。エクスプロイトおよびそれが標的とするポートは以下の通りです。

ポート8080: Netgear DGN1000 およびDGN2200 v1 ルーター(Reaperボットネットも使用)

Fig 4. Netgear exploit

図4. Netgearエクスプロイト

ポート81: CCTV-DVR Remote Code Execution(遠隔でのコード実行)

Fig 5. CCTV-DVR RCE exploit

図5. CCTV-DVR RCEエクスプロイト

ポート8443: Netgear R7000およびR6400コマンドインジェクション (CVE-2016-6277)

Fig 6. CVE-2016-6277 exploit

図6. CVE-2016-6277エクスプロイト

ポート80: 侵害したウェブサーバーから呼び出されるシェル

以下は直接デバイスの脆弱性を突くことはしませんが、すでに侵害を受け、悪意のあるウェブシェルがインストールされたウェブサーバーを利用します。

Fig 7. Invoke shell

図7. シェルを呼び出す

このボットは脆弱性の利用に成功すると、悪意のあるウェブサイト、今回のケースではhxxp://185.246.152.173/exploit/owari.{拡張子}からペイロードをダウンロードします。このことから、このボットの目的は先ほど述べたSoraボットではなく、Miraiの別の亜種、Owariボットのダウンロードであることが明らかとなりました。しかし、分析の時点ではすでに、Owariボットのサンプルを、ウェブサイトのディレクトリに見つけることはできませんでした。また、以下のサンプルに差し替えられていることが判明し、これらは後々、Omniボットであることがわかっています。

Fig 8. Exploit repository of Omni botnet

図8. Omniボットネットのエクスプロイトレポジトリ

この悪意のあるウェブサイトの履歴を念のためチェックしてみたところ、過去にOwariボットを配信していたことが確認できました。

このウェブサイトの /binsディレクトリのファジングを実行してみると、ディレクトリに他のOmniサンプルがありました。これはGPON脆弱性(CVE-2018-10561)を使って配信されたことが報告されています。タイムスタンプから、ペイロードが定期的に更新されていることがわかります。

Fig 9. Bins repository of Omni botnet

図9. Ombiボットネットのbinsレポジトリ


点と点を線でつなぐ

Wicked、Sora、Owari、Omniボットネットのつながりを見つけたことで、これらのボットネット亜種の作成者と想定されるセキュリティリサーチャーに対して、4月に行われたインタビューにたどり着きました。「Wicked」というハンドルネームを使用している作成者は、SoraとOwariの作成者であることを認めています。SoraとOwariの今後について尋ねられると、Wicketは「SORAは現在すでに中止したプロジェクトで、今後はOWARIを継続していく。自分は現在のプロジェクトを拡張していくので、第三のプロジェクトは立ち上げない」と答えています。

/binsレポジトリを見る限り、SoraとOwariのボットネットサンプルはすでに廃止され、Omniに差し替えられています。


結論

同じホスト上に複数のボットネットがホストされていることに関しては、先述の作成者がインタビューで答えた内容に基づけば、原則的にWicked、Sora、Owari、Omniの作成者は1人であり、同一人物であるということになります。つまり、WICKEDボットはもともと、Soraボットネットを配信する目的で作られたものが、作成者のその後のプロジェクトに使われるようになった、と結論づけることができます。

FortiGuard Labsでは今後もIoTの脅威ランドスケープの進展を監視し、IoTデバイスを感染させるために新たなエクスプロイトの追加を行うボットネットを追跡していきます。

追加分析を行い、意見を提供してくれた同僚、David Maciejak、Joie Salvio、Jasper Manuel、Tony Loiに感謝します。

-= FortiGuard Lion Team =-


上記の攻撃は以下のIPSシグネチャで対処を行っています。

  • NETGEAR.DGN1000.CGI.Unauthenticated.Remote.Code.Execution NETGEAR.DGN1000B.Setup.CGI.Remote.Command.Execution
  • NETGEAR.WebServer.Module.Command.Injection
  • Multiple.CCTV.DVR.Vendors.Remote.Code.Execution

IOC

Sha256:

  • ELF/Mirai.AT!tr
  • 57477e24a7e30d2863aca017afde50a2e2421ebb794dfe5335d93cfe2b5f7252 (Wicked)

ダウンロードサイト:

  • hxxp://185.246.152.173/bins/
  • hxxp://185.246.152.173/exploit/