FortiGuard Labs 脅威リサーチ

新型RapperBotキャンペーン:新たに加わった機能

投稿者 Joie Salvio および Roy Tay | 2023年1月31日

2022年8月にFortiGuard Labsが「RapperBotの脅威とは」というブログでRapperBotを取り上げてから、実際の攻撃で収集されるサンプルの数は大幅に減少しました。しかし2022年10月初旬、RapperBotと同じ特徴を持つC2プロトコルを使った新しいサンプルが検知されました。

目的が不透明だった前回のキャンペーンと異なり、今回のサンプルがゲームサーバーにDDoS(分散型サービス拒否)攻撃を仕掛けるための独立したキャンペーンの一部であることは明白です。FortiGuard Labsはこれを、今年すでに確認された同種のキャンペーンの再来であると考えています。

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

このブログでは、今回のキャンペーンと前回のRapperBotおよび過去の同種のキャンペーンとの違い、およびそれらの関連性について検証します。

再始動したRapperBot

FortiGuard Labsが今回のキャンペーンを発見したのは、RapperBotで使用された固有のボットIDを使ってサンプルを追跡していたときでした。以前の記事でも報告したとおり、RapperBotはこのIDを使用してC2(コマンド&コントロール)サーバーと通信していました。

しかし、これらの新しいサンプルを分析したところ、以前のキャンペーンと大きく異なる点が確認されました。今回のキャンペーンは、前回のキャンペーンに比べてRapperBotとしての特徴が少なく、2月に出現したあと、なぜか4月中旬に姿を消してしまいました。今回の調査で判明したその他の関連するキャンペーンについては、この記事の後半で取り上げます。

ネットワークプロトコルとDoS(サービス拒否)攻撃

C2ネットワークプロトコルは以前のキャンペーンで使用されたものとほとんど変わっていませんが、Telnetブルートフォースを支援するコマンドが追加されていました。コマンドとIDのリストを以下に示します。

  • 0x00:登録(クライアントが使用)
  • 0x01:キープアライブ / 何もしない
  • 0x02:すべてのDoS攻撃を中止し、クライアントを停止
  • 0x03:DoS攻撃を実行
  • 0x04:すべてのDoS攻撃を中止
  • 0x06:Telnetブルートフォースを再開
  • 0x07:Telnetブルートフォースを中止

前回報告したRapperBotのキャンペーンは限定的で、TCPおよびUDPサービスに対して少数の一般的なDoS攻撃を行っていました。今回のキャンペーンでは、GREプロトコルへのDoS攻撃(おそらくMiraiソースコードを再利用)と、Grand Theft Auto: San Andreas Multi Player (SA:MP) modで使用されるUDPプロトコルへの攻撃が追加されています。

このボットネットがサポートするDoS攻撃コマンドは次のとおりです。

  • 0x00:一般的なUDPフラッド攻撃
  • 0x01:TCP SYNフラッド攻撃
  • 0x02:TCP ACKフラッド攻撃
  • 0x03:TCP STOMPフラッド攻撃
  • 0x04:UDP SA:MPフラッド攻撃(標的はGTA San Andreas: Multi Player(SA:MP)が動作するゲームサーバー)
  • 0x05:GRE Ethernetフラッド攻撃
  • 0x06:GRE IPフラッド攻撃
  • 0x07:一般的なTCPフラッド攻撃

こうした特有のコマンドを使用していること、さらにはHTTP関連のDDoS攻撃が行われていないことから、このキャンペーンの主な目的はゲームサーバーへのDDoSであると考えられます。

Telnet自己増殖

新型キャンペーンが最も大きく異なる点は、SSHブルートフォースのコードが、より一般的なTelnetブルートフォースのコードに完全に置き換えられていることです。このような大幅な変更はRapperBotのサンプルでも確認されており、前回のレポートで解説したとおり、DoS攻撃のコードまでが気まぐれのように追加されたり削除されたりしていました。

Telnetブルートフォースコードは自己増殖を主目的として設計されており、過去のMirai Satoriボットネットに似ています。以前のSSHブルートフォースキャンペーンと異なり、平文の認証情報はC2からダウンロードされるのではなく、マルウェアに埋め込まれています。

図1:認証情報リストを初期化する関数

使用された認証情報は、IoTデバイスのデフォルトの認証情報と思われます。ブルートフォース攻撃を最適化するために、マルウェアは接続時にサーバープロンプトとハードコードされた文字列リストを照合して、候補のデバイスを特定し、そのデバイスに対してのみ既知の認証情報を試します。これにより、単純なIoTマルウェアのように認証情報のリストを隈なく調べる必要はなくなります。これは、斬新とまではいかないまでも、他のIoTボットネットと比べると珍しい手法です。

マルウェアにハードコードされたプロンプトメッセージに基づくと、標的にされたデバイスの大半はルーターやDVRなどのIoTデバイスです。今回のキャンペーンは、LTEモデムなどQualcomm MDM9625チップセットを搭載した旧式のデバイスに特に関心があるようです。このキャンペーンは、バイナリに埋め込まれたリストに同じ認証情報があるにもかかわらず、デフォルトパスワードを介してデバイスへの確実なルートアクセスを取得しようとします。

図2:デフォルトパスワードを使用したデバイスのルートアクセスの取得

これまでのSSHブルートフォースキャンペーンと同様に、アクセス権を取得したマルウェアは、使用された認証情報、侵害されたデバイスのIPアドレス、およびデバイスのアーキテクチャを、別のポート(5123)を使ってC2サーバーに送信します。そして送信後、侵害されたデバイスで主要ペイロードバイナリのインストールを試みます。

まず、/bin/busyboxファイルのELF(Executable and Linkable Format)ヘッダーを解析してe_machineフィールドを調べ、侵害されたデバイスのアーキテクチャを確認します。これにより、正しいアーキテクチャのRapperBotペイロードをダウンロードして展開し、正常に実行することが可能になります。このように対象を絞り込んだ方が、大半のIoTマルウェアファミリーに見られる総当たり方式、すなわちサポートされるアーキテクチャのバイナリをすべて被害者のシステムにダウンロードして実行するよりも効率的です。

FortiGuard Labsが収集したペイロードバイナリに基づくと、このボットネットは現在のところ、ARM、MIPS、PowerPC、SH4、およびSPARCアーキテクチャ上で動作するデバイスのみを標的にしていると思われます。さらに、デバイスがIntelプロセッサで動作しているかどうかを厳密にチェックし、該当する場合は自己増殖を中止します。

このあと、ボットネットは侵害されたデバイスにインストールされたソフトウェア(ftpgetwgetcurltftpなど)を使ってペイロードをダウンロードし、それを実行します。

図3:wgetツールを使用したペイロードバイナリのダウンロード

上記のソフトウェアがインストールされていない場合は、埋め込みのバイナリダウンローダーを解凍して、侵害されたデバイスに送信し、そのダウンローダーが主要ペイロードを実行 / ダウンロードします。

Satoriとは異なり、これらの埋め込みダウンローダーはエスケープされたバイト文字列として格納されています。これはおそらく、コード内での解析や処理を簡素化するためです。

図4:埋め込みバイナリダウンローダーのリスト

バイナリダウンローダーは、被害者のシステムでバイトをエコーし、ファイルにコンテンツを渡すことで書き込まれます。図4に示すように、各バイナリにはURLがハードコードされており、正しいアーキテクチャのペイロードバイナリをダウンロードするために使用されます。

図5:ダウンローダーバイナリの書き込みと実行

今回のキャンペーンでは、感染またはブルートフォースの対象となったデバイスで永続化の処理は確認されませんでした。

関連するキャンペーン

FortiGuard Labsは、以前報告したRapperBotキャンペーンとの関連性を調べるために、今回のキャンペーンと過去の関連するキャンペーンとを比較しました。

その結果、今回のキャンペーンの最も初期のサンプルは2021年12月に出現し、SA:MP攻撃は2022年2月になって初めて追加されたことが判明しました。不可解なことに、このキャンペーンは2022年4月中旬に姿を消し、自己増殖機能を追加して2022年10月に再び現れました。

FortiGuard Labsは、別のキャンペーンの古いサンプルも発見しました。このキャンペーンは2021年8月から9月にかけて活動し、ほぼ同じ認証情報のリストを使用していました。これらのサンプルは、格納されている認証情報が若干少なく自己増殖コードも単純で、ペイロードのダウンロードにはwgetか、サンプルに直接埋め込まれたバイナリダウンローダーのみが使用されています。このキャンペーンは、Telnet増殖の中止 / 再開には対応していませんでした。また、サンプルがサポートするコマンドは同じですが、関連するIDは違っていました。

図6:関連するキャンペーンのタイムライン

認証情報のリストが似ているということは、今回のキャンペーンの脅威アクターが、前回のキャンペーンのソースコードにアクセスできることを示唆しています。なぜならこのコードは、それ以外のIoTマルウェアサンプルからは見つかっていないからです。

RapperBotとの関係性

新旧のキャンペーンのサンプルが同じC2プロトコルを使用していることや、RapperBotキャンペーンが活動していた2022年6月から8月の間は今回のキャンペーンが休止し、最近になって再登場したことは、単なる偶然とは思えません。

FortiGuard Labsは、以下に示した2つのキャンペーンの類似点に基づき、両方のキャンペーンの背後に同じ脅威アクターが存在するか、各キャンペーンは私的に共有された同一のソースコードから派生していると考えています。

  1. C2コマンドとそれに対応するIDは、両方のキャンペーンで一致しています(Telnet関連のコマンドはRapperBotに適用されていないため除きます)。
  2. どちらのキャンペーンも、ブルートフォース攻撃の最適化に一定の労力を割いています。ブルートフォース攻撃のコードには、ほとんど変更を加えずにコードをコピーアンドペーストする標準的なIoTマルウェアよりも、はるかに高度な構造化が施されています。
  3. RapperBotは、Miraiによって広まったTCP STOMP攻撃もサポートしていました。前述した以前のキャンペーンでは、この攻撃は観測されていません。ただし、MiraiとSatoriのソースコードは一般に入手可能であるため、これはキャンペーン同士の非常に緩やかなつながりと考えられます。

両方のキャンペーンが関連していたとしても、以前のキャンペーンが再開された理由は謎のままです。

結論

今回の新型キャンペーンと、以前報告したRapperBotキャンペーンには明らかな類似性があることから、両方のキャンペーンを操作しているのは単一の脅威アクターか、私的に共有された基本ソースコードにアクセスできる複数の脅威アクターである可能性が高いと思われます。

以前のRapperBotキャンペーンと違い、新型キャンペーンは動機が明白で、DDoSボットネットを構築するためにできる限り多くのIoTデバイスを侵害しようとします。

この新型キャンペーンは前回のキャンペーンよりも大幅に高度化しているとはいえ、攻撃への対策は変わりません。つまり、インターネットに接続されたすべてのデバイスに強力なパスワードを設定することです。

FortiGuard Labsは、今後もRapperBotの進捗を監視していきます。

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

FortiGuardアンチウイルスサービスは、この脅威をELF / MiraiLinux / Mirai、およびELF / Gafgytとして検知し、ブロックします。

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

FortiGuard Labsは、RapperBot C2の活動に対するRapper.Botnet IPSシグネチャを提供しています。

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

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

IOC(Indicators of Compromise:侵害指標)

ファイル:

3d5c5d9e792e0a5f3648438b7510b284f924ab433f08d558b6e082e1d5414a03
7afcac5f71e9205879e0e476d3388898a62e7aa4a3e4a059884f40ea36cfd57f
8ec79a35700f6691f0d88d53647e9f2b75648710ecd119e55815331fc3bdd0b5
a12ad4bc394d60bc037271e1c2df1bd2b87bdaaba85f6c1b7d046341f027cc2d
f000bf482040b48595badee1fc56afb95449ac48b5dc35fe3a05542cbf18f658
4aa9175c1846557107ec197ea73d4cc8dbe6d575a8fd86ae214ff9b3a00e438b
f98261eb7dc122449c158118cc9c660683206983a9e90ff73eb88c4705e0c48e

ダウンロードURL:

hxxp://185[.]216[.]71[.]149/armv4l

hxxp://185[.]216[.]71[.]149/armv5l

hxxp://185[.]216[.]71[.]149/armv6l

hxxp://185[.]216[.]71[.]149/armv7l

hxxp://185[.]216[.]71[.]149/mips

hxxp://185[.]216[.]71[.]149/mipsel

hxxp://185[.]216[.]71[.]149/powerpc

hxxp://185[.]216[.]71[.]149/sparc

hxxp://185[.]216[.]71[.]149/sh4

hxxp://185[.]216[.]71[.]149/bot_arm4_el

hxxp://185[.]216[.]71[.]149/bot_arm5_el

hxxp://185[.]216[.]71[.]149/bot_arm6_el

hxxp://185[.]216[.]71[.]149/bot_arm7_el

hxxp://185[.]216[.]71[.]149/bot_mips_eb

hxxp://185[.]216[.]71[.]149/bot_mips_el

hxxp://185[.]216[.]71[.]149/bot_sh_el

C2

185[.]216[.]71[.]149