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

概要

4月10日、Unit 42のリサーチャーはIZ1H9と呼ばれるMiraiの亜種を観測しました。この亜種は複数の脆弱性を利用して自身を拡散していました。脅威アクターは以下の脆弱性を使って、Linuxを実行するインターネットに露出したサーバーやネットワーク デバイスをターゲットにします。

侵害を受けたデバイスは完全に攻撃者の制御下に置かれ、ボットネットの一部となります。脅威アクターはこれらのデバイスを利用し、分散型サービス妨害(DDoS)攻撃などのさらなる攻撃を行えます。

パロアルトネットワークスの次世代ファイアウォール製品をお使いのお客様は、IoT SecurityAdvanced Threat PreventionWildFireAdvanced URL Filteringなどのクラウド提供型セキュリティ サービスでエクスプロイト トラフィックやマルウェアを検出・ブロックすることによる保護を受けています。

関連するUnit 42のトピック Mirai variant, IoT

キャンペーンの概要

2021年11月以降、Unit 42のリサーチャーはMiraiの亜種「IZ1H9」を利用する複数のキャンペーンを観測してきました。分析の結果、以下の理由からこれらのキャンペーンは同一脅威アクターによるオペレーションと考えられます。

  • 2つのキャンペーンのマルウェア シェル スクリプトのダウンローダーがほぼ同一
  • ボットネット クライアント サンプルが同一のXOR復号鍵0xBAADF00Dを利用
  • ボットネット クライアント サンプルがほぼ同一の関数を利用
  • 両キャンペーンのボットネット クライアント サンプルが同一インフラを共有

2023年4月10日、Unit 42のリサーチャーは、弊社の脅威ハント用システムからの異常なトラフィックを観測しました。この脅威グループは、IPアドレス163.123.143[.]126からシェル スクリプト ダウンローダーlb.shをダウンロードして実行しようとしていました。

実行されていれば、このシェル スクリプト ダウンローダーはまずログを削除して自身の痕跡を隠していたことでしょう。その後、以下のボット クライアントをダウンロードして実行し、さまざまなLinuxアーキテクチャーに対応できるようにしていたはずです。

  • hxxp://163.123.143[.]126/bins/dark.x86
  • hxxp://163.123.143[.]126/bins/dark.mips
  • hxxp://163.123.143[.]126/bins/dark.mpsl
  • hxxp://163.123.143[.]126/bins/dark.arm4
  • hxxp://163.123.143[.]126/bins/dark.arm5
  • hxxp://163.123.143[.]126/bins/dark.arm6
  • hxxp://163.123.143[.]126/bins/dark.arm7
  • hxxp://163.123.143[.]126/bins/dark.ppc
  • hxxp://163.123.143[.]126/bins/dark.m68k
  • hxxp://163.123.143[.]126/bins/dark.sh4
  • hxxp://163.123.143[.]126/bins/dark.86_64

最後のステップでは複数のポートからのネットワーク接続をブロックすることになっていました。ブロックの対象はSSH、Telnet、HTTPなどで、デバイスのiptablesルール書き換えによって実現するようになっていました。その狙いは、侵害デバイスに対し、被害者がリモートから接続したり、復旧したりできないようにすることにあります(図1)。

図1は書き換えられたiptablesルールのスクリーンショットです。
図1. iptablesを書き換え

脅威グループの分析

Unit 42のリサーチャーがダウンロードしたマルウェア サンプルを分析した結果、さらにシェル スクリプト ダウンローダーをホストしている2つのURLが見つかりました。

  • hxxp://2.56.59[.]215/i.sh
  • hxxp://212.192.241[.]72/lolol.sh

図2にこのキャンペーンの概要を示します。

図2はこのキャンペーンの概要図です。この図は2023年4月10日の最初のIPアドレスから始まって、さまざまなホスト、Miraiのサンプル、べつのホスト、シェル スクリプトをつなぎつつ、べつのダウンローダーまで続いています。
図2. キャンペーン概要図

2.56.59[.]215のシェル スクリプト ダウンローダーはhxxp://2.56.59[.]215/bins/からボットネット クライアントをダウンロードすることになります。これらのボットネット クライアント サンプルは195.133.40[.]141にあるコマンド&コントロール(C2)サーバーにアクセスします。これらのマルウェア サンプル内には複数のURLが含まれており、そこに以下2つのシェル スクリプトがホストされています。

  • hxxp://31.210.20[.]100/lolol[.]sh
  • hxxp://212.192.241[.]72/lolol[.]sh

212.192.241[.]72のシェルスクリプト ダウンローダーはhxxp://212.192.241[.]87/bins/からボットネット クライアントをダウンロードし、これらのボットネット クライアント サンプルが、C2ドメインのdotheneedfull[.]clubにアクセスすることになります。

マルウェアの分析

ダウンロードしたボットネット クライアント サンプルの分析中にUnit 42のリサーチャーが観測した挙動やパターンから、これらは「IZ1H9」と呼ばれるMiraiボットネットの亜種と考えられます。

2018年8月に発見されたIZ1H9は、もっとも活発なMiraiの亜種の1つです。オリジナルのMiraiと同様に、IZ1H9ボットネット クライアントは、まず感染デバイスのIPアドレスのネットワーク部をチェックします。このクライアントは特定IPブロックのリストへの実行は回避します。対象となるIPブロックは政府系ネットワーク、インターネット プロバイダー、大手ハイテク企業などです。

このボットネット クライアントは、コンソールに「Darknet」という単語を出力することでその存在を可視化させます。またこのマルウェアには、対象デバイス上で単一のマルウェア インスタンスだけを実行させる機能が含まれています。ボットネット プロセスがすでに存在している場合、ボットネット クライアントはそのプロセスを終了させ、新たなプロセスを開始します(図3)。

図3は、ボットネット クライアントが今あるプロセスを終了させて新しいプロセスを開始するようすを示したスクリーンショットです。このコードには「instance already exists, overriding current process. (インスタンスがすでに存在するので今あるプロセスを上書きする)」と書かれています。
図3. IZ1H9は単一のインスタンスだけが実行されるようにする

このボットネット クライアントは、ほかのMirai亜種やほかのボットネット マルウェア ファミリーに属するプロセス名のリストも持っていて、感染ホスト上で実行中のプロセス名をチェックし、それらを終了させます。

このIZ1H9の亜種はハードコードされたC2アドレス193.47.61[.]75に接続しようとします(図4)。

図4はマルウェア亜種がハードコードされたコマンド&コントロール(C2) IPアドレスへの接続を試みているスクリーンショットです。
図4. 亜種IZ1H9のC2アドレス

ボットネット クライアントの構成文字列の復号

ボットネットクライアントの構成文字列について見ると、IZ1H9の亜種はまず暗号化された文字列テーブルを初期化します。その後、暗号化された文字列をインデックス経由で取得します(図5、図6)。

図5は暗号化された文字列テーブルのスクリーンショットです。table_init()を赤でハイライトしています。
図5. 暗号化された文字列テーブルの初期化
図6はこのマルウェアの亜種が文字列を取得しているようすを示すスクリーンショットです。val = table retrieve val (84, 0)というコードを赤い四角で囲ってハイライト表示しています。このスクリーンショットはMiraiがインデックスを使って文字列を取得しているようすを示しています。
図6. IZ1H9が文字列を取得しているところ

IZ1H9の亜種は文字列の復号処理で0xBAADF00Dというテーブル鍵を使います。暗号化された各文字に対し、このマルウェアは以下のバイト単位演算でXOR復号を行います。

cipher_char ^ 0xBA ^ 0xAD ^ 0xF0 ^ 0x0D = plain_char

XOR演算の論理によれば構成文字列の鍵は以下に等しくなります。

0xBA ^ 0xAD ^ 0xF0 ^ 0x0D = 0xEA

HTTP、SSH、Telnetプロトコル経由で拡散するIZ1H9のサンプル

SSH、Telnetのチャンネルについて見ると、IZ1H9はオリジナルのMiraiのソース コードから、そのもっとも大きな特徴であるスキャナー用・ブルート フォース用のデフォルトのログイン クレデンシャルを埋め込んだデータ セクションを継承しています。

オリジナルのMiraiとIZ1H9はどちらもログイン クレデンシャルを1バイトのXOR鍵で暗号化しています。鍵はバージョンによって異なりますが、この亜種は0x54を使っています(図7)。

図6 IZ1H9が文字列を取得しているところ
図7 IZ1H9亜種によるクレデンシャルのXOR復号

このIZ1H9の亜種はスキャナー関数の部分で100組近いTelnet/SSH用ログイン クレデンシャル テーブルを初期化しています。その後、ネットワーク デバイスに対し、弱いユーザー名とパスワードの組み合わせでブルート フォース(総当たり)攻撃をしかけることで感染を拡大します。

HTTPチャンネルについて見ると、IZ1H9は4つのリモート コード実行の脆弱性を利用して脆弱なデバイスにアクセスし、図8に示すシェルコード スクリプト ダウンローダーを実行します。

図8はエクスプロイトのスキャナー関数を示したスクリーンショットです。この図にはZyxlel、LBlink、Netlog、Tendaの各RCE (リモートコード実行脆弱性のエクスプロイト)が表示されています。
図8. エクスプロイト用のスキャナー関数

Tendaの脆弱性をエクスプロイトしている関数について見ると、このペイロードはマルウェアをホストしているサーバーからtenda.shをダウンロードしていますが、実行されているのがnetlog.shである点に注意してください(図9)。この場合、エクスプロイトは機能しません。

図9は、Miraiのソース コードのスクリーンショットです。tenda.shをダウンロードしてnetlog.shを実行している部分を赤枠で囲ってハイライト表示しています。
図9: 誤ったダウンローダーを実行するマルウェア

DDoS攻撃用関数をすべて初期化した後、ボットネット クライアントはC2サーバーとの接続を確立します。Miraiのソースコードによると、マルウェア開発者は攻撃メソッドを定義してその攻撃メソッドを表すコマンド コードを割り当てることになっています(図10)。

図10は、Miraiのソース コードのスクリーンショットで、すべての攻撃メソッドの定義が記載されています。
図10. Miraiの攻撃メソッドの定義

このIZ1H9のサンプルでは、脅威アクターが表1に示した一連の攻撃メソッドを定義しています。

コマンド  攻撃メソッド 説明
0 attack_method_tcpsyn TCP SYNフラッド攻撃
1 attack_method_tcpack TCP ACKフラッド攻撃
2 attack_method_tcpusyn TCP URG-SYNフラッド攻撃
3 attack_method_tcpall すべてのオプションをセットしたTCP DDoS
4 attack_method_tcpfrag TCPフラグメンテーション攻撃
5 attack_method_asyn TCP SYN-ACKフラッド攻撃
6 attack_method_udpgame オンラインのゲーミング サーバーを狙ったUDP攻撃
7 attack_method_udpplain 少ないオプションをセットしたUDPフラッド攻撃
8 attack_method_greip GRE IPフラッド攻撃
9 attack_method_std STDフラッド攻撃
10 attack_method_udpdns DNSフラッド攻撃
11 attack_method_udpgeneric UDPフラッド攻撃
12 attack_app_http HTTPフラッド攻撃
13 attack_method_dnsamp DNSリフレクター攻撃

表1. IZ1H9の攻撃メソッド

結論

IoTデバイスはこれまでずっと脅威アクターにとって旨みの多いターゲットでした。リモートコード実行攻撃はこれまでと変わらずIoTデバイスやLinuxサーバーに影響を与える、もっともありふれ、もっとも憂うべき脅威となっています。インターネットに露出した脆弱なデバイスは深刻な脅威を招きかねません。

この脅威の使う脆弱性はさほど複雑なものではありませんし、リモートコード実行につながる可能性がある以上その影響は小さくありません。攻撃者は脆弱なデバイスを1つ制御下に置けば、新たに侵害したデバイスをボットネットに加えることができます。これによりDDoSなどさらなる攻撃を行えます。

この脅威に対抗するには、可能なかぎりパッチやアップデートを適用することが強く推奨されます。

パロアルトネットワークスのお客様は、以下の製品とサービスによって本稿で解説した脆弱性やマルウェアからの保護を受けています。

  • 次世代ファイアウォールでThreat Preventionのセキュリティ サブスクリプションを有効にしている場合、脅威防御シグネチャ93386937189372193722を通じたベストプラクティスが攻撃防止に役立ちます。
  • Advanced Threat Preventionはインライン機械学習ベース検出機能を備えており、脆弱性のエクスプロイトをリアルタイムに検出できます。
  • WildFireは静的シグネチャ検出により同マルウェアの阻止に役立ちます。
  • Advanced URL FilteringとDNS SecurityはC2ドメインやマルウェアをホストしているURLをブロックできます。
  • 弊社のIoT Securityプラットフォームは、ネットワーク トラフィック情報を使ってデバイス ベンダー、モデル、ファームウェアのバージョンを特定し、対象CVEに対して脆弱な特定のデバイスを識別できます。
  • このほかIoT Securityは機械学習ベースの異常(アノマリー)検出機能を内蔵しており、平時と異なるデバイスの挙動が見られた場合にお客様へのアラートを発報可能です。たとえば、突然新しい接続元からのトラフィックが出現したり、接続数が異常に増えたり、IoTアプリケーションのペイロードでよく見られる特定の属性が理由なく急増した場合などにアラートが送られます。

IoC

アーティファクト(侵害の痕跡)

シェル スクリプト ダウンローダー

  • 692a5d099e37cd94923ea2b2014d79e6e613fb061a985069736dd3d55d4330c4
  • e0b1c324298eeccd54ffc2ff48288ec51fbec44f5f82229537508785a9bda6de
  • 931800d4f84bda7c0368c915dfd27721d63ed0ce6a9bc9f13e1417d4c2fe88f3
  • 64a350a33757f6631dc375632de191967ae59c876b4718a087e299bd54f23844

Mirai亜種サンプル

  • 23190d722ba3fe97d859bd9b086ff33a14ae9aecfc8a2c3427623f93de3d3b14
  • 00b151ff78a492b5eae0c8d3c769857f171f8424cf36c3b2505f7d7889109599
  • 212b1af9fd1142d86b61956ac1198623f9017153153cfc20bfeab6a9fd44004a
  • 38406b2effd9fc37ce41ee914fda798de9c9b0e239a0cc94b1464dc2a9984fe9
  • 21185d9b7344edcd8d9c4af174e468c38cb3b061e6bd6bd64a4be9bd3fa27ff5
  • 65a46cd29dad935d067a4289445d2efb2710d44d789bf1bf0efb29f94d20e531
  • 06ef6c76e481d25aa09b3b15959d702be29c22d63bd35524766397e3d36d0d2e
  • 7bfb02c563ae266e81ba94a745ea7017f12010d5491708d748296332f26f04f5
  • 1e29f364f502b313f01f28f1ae85bf27114fae5eede6550809fe5bca58f59174

インフラ

マルウェアのC2

  • 193.47.61[.]75
  • 195.133.40[.]141
  • dotheneedfull[.]club

マルウェア ホスト

  • 163.123.143[.]126
  • 2.56.59[.]215
  • 212.192.241[.]72
  • 212.192.241[.]87
  • 31.210.20[.]100

追加リソース

付録

当該キャンペーンに関連する脆弱性情報を以下にまとめます。

CVE-2023-27076: Tenda G103 command injection vulnerability (Tenda G103のコマンド インジェクションの脆弱性)

この悪意のあるトラフィックは2023年4月10日にIZ1H9キャンペーンの一部として初めて検出されました。Tenda G103のcgi-bin/luciインターフェースにおける言語パラメーターの値は適切にサニタイズされておらず、これが原因でコマンド インジェクションの脆弱性が生じます。

図11はTenda G103のTenda G103のコマンド インジェクションの脆弱性のスクリーンショットです。この図はcgi-binを表示しています。
図11 野生のCVE-2023-27076のエクスプロイト

CVE-2023-26801: LB-Link command injection vulnerability (LB-Linkのコマンド インジェクションの脆弱性)

このエクスプロイトのトラフィックは2023年4月10日に捕捉されました。このエクスプロイトはLB-Linkワイヤレス ルーターの /goform/set_LimitClinet_cfgコンポーネントに存在するコマンド インジェクションの脆弱性を狙ったものです。このコンポーネントは、time1time2macパラメーターのユーザー入力を適切にサニタイズしていません。この結果、任意のコマンドを実行可能になります。

図12はLB-Linkのコマンド インジェクションの脆弱性のスクリーンショットで、エクスプロイトされるコンポーネントを示しています。
図12. 野生のCVE-2023-26801のエクスプロイト

CVE-2023-26802: DCN DCBI-Netlog-LAB Remote Code Execution Vulnerability (DCN DCBI-Netlog-LABのリモート コード実行の脆弱性)

このエクスプロイトは2023年4月10日に検出されました。Digital China Network DCBI-Netlog-LABのnsg_masq.cgiコンポーネントはユーザーからの入力データを適切にサニタイズしておらず、それが原因でリモート コマンド実行につながる可能性があります。

図13はDCN DCBI-Netlog-LABにおけるリモートコード実行の脆弱性を示したスクリーンショットです。このスクリーンショットの1行目にはnsg_masq.cgiコンポーネントが表示されています。
図13. 野生のCVE-2023-26802のエクスプロイト

Zyxel remote code execution vulnerability (Zyxelのリモートコード実行の脆弱性)

このエクスプロイトのトラフィックは2022年12月16日に観測されました。このエクスプロイトはZyxelルーターの/bin/zhttpd/コンポーネントをターゲットにしています。不十分な入力検証が見つかった場合、攻撃者はこの脆弱性のエクスプロイトによりリモート コマンド実行をしかけられます。

図14はZyxelのリモートコード実行の脆弱性のスクリーンショットです。エクスプロイトされるルーター内の/b/zhttpd/の行が表示されています。
図14 野生のZyxelルーターのエクスプロイト

2023-05-29 09:30 JST 英語版更新日 2023-05-26 15:30 PDT の内容を反映

Enlarged Image