FortiGuard Labs 脅威リサーチ

Zerobot:複数の脆弱性を狙ったGoベースの新型ボットネットキャンペーン

投稿者 Cara Lin | 2023年2月13日

FortiGuard Labsは11月、Go言語で書かれたユニークなボットネットが、IoTの脆弱性を悪用して拡散されていることを確認しました。Zerobotとして知られるこのボットネットには、自己複製、さまざまなプロトコルへの攻撃、自己増殖など、複数のモジュールが組み込まれています。また、C2(コマンド&コントロール)サーバーとの通信にはWebSocketプロトコルが使用されています。複数のIPSシグネチャのトリガーカウント(図1)によると、このキャンペーンは11月中旬以降に現行バージョンの配信を開始しています。

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

このブログでは、Zerobotマルウェアが脆弱性を悪用する方法を解説し、感染したデバイスでのマルウェアの振る舞いを検証します。

図1:IPSシグネチャの活動
図1:IPSシグネチャの活動
図1:IPSシグネチャの活動

感染

Zerobotは複数の脆弱性を悪用してデバイスにアクセスしたあと、スクリプトをダウンロードしてさらに増殖します。スクリプト全体を図2と図3に示します。ダウンロード用のURLがhttp[:]//zero[.]sudolite[.]ml/binsからhttp[:]//176[.]65.137[.]5/binsに変更されています。Zerobot亜種が標的とするアーキテクチャはi386、amd64、arm、arm64、mips、mips64、mips64le、mipsle、ppc64、ppc64le、riscv64、s390xです。このマルウェアは「zero」というファイル名で保存され、それがキャンペーン名の由来となっています。

図2:2022年11月24日以前に使用されたダウンロードスクリプト
図3:現在のダウンロードスクリプト

Zerobotには2つのバージョンがあります。最初のバージョンは11月24日以前に使用されたもので、基本的な関数のみが含まれています。現在のバージョンは「selfRepo」モジュールが追加されており、さまざまなプロトコルすなわち脆弱性を利用して自己複製し、さらに多くのエンドポイントに感染します。旧バージョンの関数リストを図4に示します。ただし、下記の技術分析は新バージョンに基づいています。

図4:11月24日以前のZerobotバージョンの主な関数

技術分析:初期化

Zerobotはまず、CloudflareのDNSリゾルバサーバーである1.1.1.1との接続を確認します。

図5:1.1.1.1:80とのネットワーク接続の確認

次に、被害者のOSのタイプに応じて、標的のデバイスに自身をコピーします。Windowsの場合は、「Startup」フォルダに「FireWall.exe」というファイル名でコピーします。Linuxの場合は、「%HOME%」、「/etc/init/」、「/lib/systemd/system/」の3通りのファイルパスがあります。

図6:自己複製のコードフロー

続いて、「AntiKill」モジュールを設定し、Zerobotプログラムがユーザーによって停止されないようにします。このモジュールは特定の16進数値を監視し、プロセスを終了または中止するため送信される信号があれば、「signal.Notify」を使ってインターセプトします。

図7:AntiKillのコードの一部

技術分析:コマンド

初期化のあと、ZerobotはWebSocketプロトコルを使用して、C2サーバーws[:]//176[.]65[.]137[.]5/handleとの接続を開始します。

図8:C2サーバーとの接続

被害者から送信されたデータを図9に示します。WebSocketプロトコルに基づいてこのデータのマスクを解除すると、被害者の情報が含まれた次のようなJSONを取得できます。

{"Platform":"linux","GCC":"386","CPU":1,"Payload":"Direct","Version":1}

図9:C2接続のトラフィックキャプチャ

通信チャネルのセットアップ後、クライアントはサーバーからのコマンド(「ping」、「attack」、「stop」、「update」、「kill」、「disable_scan」、「enable_scan」、「command」など)を待機します。次のセクションでは、「enable_scan」でのエクスプロイトについて説明します。

コマンド

詳細

ping

ハートビート、接続の維持

attack

さまざまなプロトコル(TCP、UDP、TLS、HTTP、ICMP)への攻撃開始

stop

攻撃の停止

update

更新をインストールしてZerobotを再起動

enable_scan

開いているポートをスキャンし、エクスプロイトまたはSSH / Telnetクラッカーを介して自己拡散を開始

disable_scan

スキャンの無効化

command

OSコマンド(Windowsではcmd、Linuxではbash)の実行

kill

ボットネットプログラムの強制終了

図10:zero.mipsでのコマンドの受信
図11:zero.386で受信したコマンド

技術分析:エクスプロイト

Zerobotには21個のエクスプロイトが含まれています。エクスプロイトのリストを図12に、影響を受けた製品を図13に示します。IoTの脆弱性以外に、Spring4Shell、phpAdmin、F5 Bigなども攻撃の成功率を上げる要因となっています。

図12:Zerobotのエクスプロイトリスト
図13:脆弱性の標的となった脆弱なデバイスのリスト

図12の一番上にある「ZERO_xxxxx」という名前の2つのエクスプロイトは、Webサイト「0day.today」(図14)から収集されたものです。このサイトには、「教育」を目的とした多数のエクスプロイトが掲載されています。「36290」と「32960」はこのサイトから割り当てられた数値です。

図14:「ZERO_36290」エクスプロイトの0day.today Webページ

このエクスプロイトにインジェクトされたペイロードデータは、図3に示したスクリプトファイルと同じです。

図15:脆弱性を悪用するためインジェクトされたペイロードデータ

結論

Zerobotは、GOプログラミング言語で書かれた新型のボットネットです。Zerobotの通信にはWebSocketプロトコルが使用されます。最初に出現したのは11月18日で、さまざまな脆弱性を標的にするよう設計されています。Zerobotは非常に短期間のうちに更新され、文字列の難読化、コピーファイルモジュール、増殖エクスプロイトモジュールなどが追加されました。これによって検知はより難しく、デバイスへの感染能力はより強くなっています。ユーザーはこの新しい脅威を認識し、図13に示す影響を受けたシステムがネットワーク上で動作している場合は、そのシステムにパッチを適用してください。また、公開されたパッチは積極的に適用してください。

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

このマルウェアは、FortiGuardアンチウイルスによって

ELF / Zerobot.A!trとして検知されブロックされます。

FortiGuardアンチウイルスサービスはFortiGateFortiMailFortiClientFortiEDRによってサポートされます。これらの各ソリューションには、Fortinetアンチウイルスエンジンが含まれています。最新のアンチウイルスアップデートをお使いのお客様は、脅威から保護されています。

フォーティネットは、エクスプロイトリストに含まれる脅威からお客様をプロアクティブに保護するために、IPSシグネチャをリリースしました。

FortiGuard Webフィルタリングサービスは、C2サーバーをブロックします。

FortiGuard IPレピュテーションおよびアンチボットネットセキュリティサービスは、フォーティネット分散ネットワークから不正な送信元のIPデータを集約し、攻撃を事前にブロックします。この分散ネットワークでは、脅威センサー、CERT、MITER、協力関係にある他社、その他のグローバルソースが連携し、悪意ある送信元に関する最新の脅威インテリジェンスを提供しています。

IOC(Indicators of Compromise:侵害指標)

C2:

176[.]65[.]137[.]5

ファイル:

7ae80111746efa1444c6e687ea5608f33ea0e95d75b3c5071e358c4cccc9a6fc

df76ab8411ccca9f44d91301dc2f364217e4a5e4004597a261cf964a0cd09722

cd9bd2a6b3678b61f10bb6415fb37ea6b9934b9ec8bb15c39c543fd32e9be7bb

50d6c5351c6476ea53e3c0d850de47059db3827b9c4a6ab4d083dfffcbde3579

7722abfb3c8d498eb473188c43db8abb812a3b87d786c9e8099774a320eaed39

2955dc2aec431e5db18ce8e20f2de565c6c1fb4779e73d38224437ac6a48a564

191ce97483781a2ea6325f5ffe092a0e975d612b4e1394ead683577f7857592f

447f9ed6698f46d55d4671a30cf42303e0bd63fe8d09d14c730c5627f173174d

e0766dcad977a0d8d0e6f3f58254b98098d6a97766ddac30b97d11c1c341f005

6c284131a2f94659b254ac646050bc9a8104a15c8d5482877d615d874279b822

5af002f187ec661f5d274149975ddc43c9f20edd6af8e42b6626636549d2b203

74f8a26eb324e65d1b71df9d0ed7b7587e99d85713c9d17c74318966f0bead0a

9c16171d65935817afd6ba7ec85cd0931b4a1c3bafb2d96a897735ab8e80fd45

b1d67f1cff723eda506a0a52102b261769da4eaf0551b10926c7c79a658061fd

f0bb312eacde86d533c922b87e47b8536e819d7569baaec82b9a407c68084280

2460434dabafe5a5dde0cce26b67f0230dbcd0d0ab5fabad1a1dbc289dc6432f

2af33e1ff76a30eb83de18758380f113658d298690a436d817bd7e20df52df91

4483c4f07e651ce8218216dd5c655622ff323bf3cdfe405ffeb69eafa75efad5

7c085185f6754aef7824c201d8443300ff2b104521d82f9a8b8feb5d4c8d3191

6ac49092ee1bdd55ddbf57df829f20aac750597d85b5904bb7bafa5b51fbb44d

f9fc370955490bdf38fc63ca0540ce1ea6f7eca5123aa4eef730cb618da8551f

6dd71163b6ab81a35ce373875a688ad9b31e0d1c292f02e8b2bafa7b3d1e3731

d88e9248ff4c983aa9ae2e77cf79cb4efc833c947ec2d274983e45c41bbe47e1

96bbb269fd080fedd01679ea82156005a16724b3cde1eb650a804fa31f18524e

439b2e500e82c96d30e1ef8a7918e1f864e6d706d944aeddffe61b8bf81ef6d3

af48b072d0070fa09bca0868848b62df5228c34ef24d233d8eb75a1fde8ac23f

5824fc51fcfba1a6315fd21422559d63c56f0e2192937085d65f9a0ac770eb3a

c9ea4cda12c14c895e23988229831b8f04ccab315c1cbc76a9efae888be55a3b

e2c2a0cccefc4314c110f3c0b887e5008073e607c61e1adde5000efb8e630d50