「Mirai」を起源とするボットネットは、IoT 情勢を支配し続けていますが、より重要な変化は、新たな亜種がどれほど迅速に開発・展開されるようになったかという点です。Go言語、再利用可能なオープンソースコンポーネント、汎用インフラ、そして自動化により、機能的なDDoSマルウェアを構築するために必要な労力が大幅に削減され、脅威アクターはボットネットをますます迅速に構築・改良できるようになっています。
このブログでは、今年の春に実環境で確認された2つのGo言語ベースのマルウェアサンプル、「Apex2」と「c2c/meow」を取り上げ、この傾向を異なる角度から解説します。Apex2は、WindowsおよびLinuxマシンを標的とする既存のボットネットが、より体系的に進化したものですが、c2cは、比較的単純なコンポーネントを組み合わせて実稼働中の攻撃キャンペーンを構築できることを示しています。いずれの場合も、その重点は高度な技術ではなく、スピード、再利用性、そして拡張性にあります。
防御側にとって、その意味するところは明らかです。すなわち、検知および対応の手法は、マルウェアの開発やエクスプロイトの兵器化サイクルが加速するペースに遅れを取らないようにしなければなりません。 組織は、特に脆弱な認証情報、インターネットに公開されたサービス、および外部への可視性が限られている環境において、露出しているIoT 標的とした、単純だが効果的なボットネットが絶え間なく出現することを想定すべきです。自動化、機械学習、大規模言語モデルなどのスケーラブルな分析技術は、大量のサンプルをトリアージし、既知のファミリーからの逸脱を特定し、分析結果を迅速に実用的な検知へと変換するために不可欠になりつつあります。
背景と範囲
以前のブログ記事で、新たなOT 積極的に発見する方法について述べたように、IoT においても同様の手法を用いて、異常なサンプルを特定することができます。
この春、セキュリティ対策が不十分なデバイスを標的とし、それらをDDoS攻撃に悪用する新たなIoT の波が見られました。 当社のAIを活用したモニタリングは、ハニーポットの活動を分析し、すでに追跡している大量の既知の「Mirai」系亜種とは異なるサンプルを特定するのに役立ちます。このブログ記事では、この広範な傾向を示す2つのGolangファミリーに焦点を当てます。攻撃者は機能的なボットネットをより迅速に構築している一方で、防御側は、異常なサンプルを発見し、何が変化したかを把握し、その知見を再現可能な検知・対応ワークフローへと反映させるためのスケーラブルな手法を必要としています。
Apex2――進化をIoT
毎日受け取るサンプルのうち、当社のAI支援システムが、検出時点で既に追跡していた系統とは十分に異なるものを1つ特定しました。そのサンプルを入手すると、それが「Apex2」であることはすぐに判明しました。名称だけでなく、Apexとこのサンプルの構造的な類似性からも、Apex2がその前身から直接進化したものであることが示唆されています。

感染の連鎖は、当社のハニーポットへの複数のTelnet接続から始まり、その後、認証情報の総当たり攻撃が行われ、以下のコマンドが実行されました:

実行後、このサンプルはC2との通信を開始して自身を登録し、単純な平文プロトコルを用いてホストのOSとアーキテクチャを送信する。

分析したサンプルによると、Apex2はLinuxおよびWindowsホストの両方をサポートしています。Windows版は386およびamd64アーキテクチャをサポートしており、Linux版はさらにarm、arm64、mipsle、ppc64もサポートしています。
このボットは、C2サーバーから特定のフラッド攻撃を開始または停止するよう指示するコマンドを受信します。コマンドの中には、わかりやすい識別子が使われているものもあれば、直感的に理解しにくいものもあります。コマンドを受信すると、ボットは実行中の操作や完了時刻を説明するステータスメッセージを出力します。こうしたデバッグ形式のメッセージは開発時には有用ですが、マルウェアの分析も容易にしてくれます。
C2からは、攻撃を開始または停止するために以下のコマンドを送信することができます:
- 参照:Cloudflareで保護されているサイトを標的としたHTTP(S)フラッド攻撃。この攻撃では、ハードコードされた大規模なUser-Agent文字列リストを用いてリクエストをランダム化し、「Connection: keep-alive」ヘッダーを設定し、長いタイムアウト値を使用する。
- UDPと PPS:さまざまな種類のUDPフラッド攻撃。
- Discordと ゲーム:Discordおよびゲームサーバーを標的としたUDPフラッド攻撃。
- tls、tlsplus、 tlsplusbypass:大きなKeepAlive値やTimeout値のさまざまな組み合わせ、Connection: keep-alive HTTPヘッダー、およびlocal proxy/tlsplusbypass.txtリストにあるプロキシを使用したTLSフラッド攻撃。
- stop:感染したマシンに対し、特定の攻撃を停止するよう要求します。
Apex2は既存のボットネットのより体系的な進化形であるとはいえ、我々が確認したすべてのサンプルが同じ開発パターンに従っているわけではない。
c2c/meow:汎用Go言語フラッダー
当社の機械学習システムが、別のGo言語ベースのマルウェアが当社のSSHハニーポットの1つに到達したことを検知しました。当時、そのサンプルについてはVirusTotal上で悪意のあるものとして検出されていなかったため、さらに調査を行うことにしました。

Apex2と比較すると、このマルウェアはより単純なスタンドアロン型のボットネットである。高度な検知回避技術や複雑なインフラストラクチャの代わりに、その運営者はスキャナー、基本的なC2ロジック、永続化機能、および設定可能なフラッドモジュールを組み合わせて、実用的なキャンペーンを構築した。
サンプルの動作を確認する前に、名称に関するいくつかの点について明確にしておく価値があります。一部の研究者は、分析対象のサンプルに「qwiklabs/c2c」というパスが含まれていることから、このファミリーを「c2c」と呼んでいます。これは、一見正当に見えるトレーニングやクラウドラボの用語に紛れ込ませようとする試みである可能性もあれば、単に開発環境からの名残である可能性もあります。
拡散の過程で、攻撃者は脆弱なシステムにダウンロードしたサンプルのファイル名として「meow」を使用しました。こうした文字列はキャンペーンの指標として有用ですが、波ごとに頻繁に変更されるため、長期的なファミリー名としては信頼性が低くなります。
全体として、このキャンペーンは実用的ではあるものの、比較的単純な設計となっている。配布インフラや感染のワークフローには調整が必要だが、マルウェア自体には、コマンドの署名、動的なC2検出、プロトコルの難読化、あるいは組み込みの拡散ロジックなど、より成熟したボットネットに一般的に見られる機能がいくつか欠けている。
分析対象のバイナリには、自己拡散モジュールは含まれていません。その代わりに、当社のハニーポットのログによると、インターネットに公開されているホストのうち、認証情報が脆弱なものを特定するために、別のGo言語ベースのSSHスキャナーが使用されていることが示唆されています。スキャンとペイロードの実行を分離することで、マルウェア自体をシンプルに保ちつつ、十分な数の脆弱なデバイスが利用可能になれば、キャンペーンを大規模に展開することが可能になります。

実行されると、このサンプルはハードコードされたC2サーバーに接続し、平文のTCP経由でJSONメッセージをやり取りするため、受動的な監視が可能となる。接続時には、ハードコードされた文字列「ChangeMe123!」を用いて認証を行い、感染したシステムのホスト名とユーザーを特定する。

このサンプルには、単純な権限昇格および永続化ルーチンも含まれています。 このサンプルは、`sudo -n true` を実行して戻り値を評価することで、パスワード不要の sudo が利用可能かどうかを確認します。成功した場合、権限を昇格させて自身を再起動し、`/usr/local/bin/cpufreqd` にコピーした後、`/etc/systemd/system/cpufreqd.service` に「CPU Frequency Daemon」という名前の偽の systemd サービスを作成し、`ExecStart` をコピーしたバイナリを指すように設定します。

このマルウェアは比較的単純なものだが、複数のフラッド攻撃手法に対応している。フラッド攻撃の手法は設定可能だが、比較的単純である。各攻撃には秒単位で継続時間を指定でき、ポートは固定、範囲から選択、あるいは0に設定してランダム化を要求することができる。これらの機能は、ボットネットが十分な規模に達した場合にのみ意味を持つことになる。

サポートされている攻撃の種類は以下の通りです:
- icmp:送信元IPアドレスをランダム化しながら、対象のIPアドレスにICMPエコーリクエストを送信します。
- dnsudp:指定されたドメインに対して、設定された期間、UDPトラフィックを送信します。ポートは固定、ランダム、または指定された範囲から選択できます。
- udp:dnsudpと同様ですが、ドメインの代わりにIPアドレスを指定します。
- http:指定されたURLに対してHTTP GETまたはPOSTリクエストを実行します。ボディコンテンツはオプションで指定可能で、HTTP/1.1またはHTTP/2に対応しています。Goの標準ライブラリであるnet/httpを使用します。
- directhttp:HTTPライブラリを使用せず、ソケットを介して直接HTTPリクエストを送信します。httpモジュールとは異なり、Cache-Control: no-cache や Connection: keep-alive といったヘッダーは設定されません。
- fasthttp:高性能な fasthttp ライブラリを使用して、ターゲットに対して HTTP GET または POST リクエストを送信します。この際、利用可能な 4 つのオプションからユーザーエージェントをランダムに選択します。
- betterhttp:http コマンドと同様の動作をする、もう1つのHTTPベースのフラッドモジュールを提供します。
- tcp:設定可能なフラグ、TTL、およびウィンドウ値を用いて、指定されたIPアドレスにTCPトラフィックを送信します。
- tcphandshake:tcp コマンドで利用可能な追加の設定オプションを使用せずに、ターゲットに対して TCP ハンドシェイクを実行します。
- dnstcp:対象ドメインを解決し、その対象へTCPトラフィックを送信します。

全体として、このマルウェアファミリーは、より長く運営され、定着しているボットネットプロジェクトに比べて、完成度が低いように見受けられる。したがって、「c2c」や「meow」という名称は、確定的なファミリー名というよりは、キャンペーンの識別子として扱うべきである。サンプルで確認された「Qwiklabs/c2c」という文字列は、開発上の痕跡、コピーされたパス、あるいは正当に見えるクラウドラボの用語を使用しようとした試みである可能性もあるが、その意図を判断するには、現時点で入手可能な証拠は不十分である。
緩和策
- 可能な限り、インターネットに公開されている管理サービスの露出を最小限に抑えてください。特に、IoT、組み込みLinux、エッジデバイスにおけるTelnetやSSHについては注意が必要です。リモートアクセスが必要な場合は、サービスをインターネットに直接公開するのではなく、VPN、許可リスト、ジャンプホスト、またはその他の管理されたアクセス経路を通じてアクセスを制限してください。
- デフォルトの認証情報、脆弱な認証情報、および再利用された認証情報を排除します。管理者アクセスには強力な認証を義務付け、導入済みのデバイスでは認証情報を定期的に更新します。
- SSH および Telnet サービスに対するブルートフォース攻撃や異常なログインパターンを監視します。これには、繰り返される認証失敗、予期しない地域やクラウドホスト型インフラからのログイン成功、および直後に続くダウンロードコマンドなどが含まれます。
- IoT 資産からの送信トラフィックを検査し、不審なC2のような動作(通常とは異なるポートへの平文TCPセッション、見知らぬホストへの繰り返しのビーコン送信、予期しないJSONベースのコマンド交換など)がないか確認します。
- IoT、OT、および信頼性の低いLinuxシステムを、重要な業務システムや機密性の高いネットワークから分離してください。外部への接続を運用上必要な範囲に限定し、侵害されたデバイスが攻撃者が制御するインフラに自由にアクセスできないようにしてください。
- ネットワーク、エンドポイント、threat intelligence 組み合わせて活用してください。本記事で紹介した指標は短期的なハンティングに役立ちますが、防御担当者は、ダウンローダーの活動、不審なサービスの作成、トラフィックの集中、異常なアウトバウンド接続などに対して、行動ベースの検知ルールを構築することも必要です。
こうした対策を実践する一つの方法は、Networks 専用プラットフォームを活用することです。このプラットフォームは、OT、IoT、IT環境全体にわたる可視性を提供し、ネットワークやエンドポイントのアクティビティを継続的に監視するとともに、行動threat intelligence 露出している資産、不審なアクセス試行、異常な通信、および潜在的な侵害のthreat intelligence 。インタラクティブなデモを通じてNozomiNetworks を体験し、これらの機能が貴社のセキュリティプログラムをどのように支援できるかをご確認ください。
結論
Apex2とc2c/meowは、同じ傾向の2つの側面を示しています。すなわち、IoT の開発は、より迅速になり、モジュール化が進み、運用が容易になりつつあるということです。Apex2は、既存のボットネットがより体系的に進化していることを反映しているのに対し、c2c/meowは、公開されているサービスや脆弱な認証情報があれば、より単純なコンポーネントであっても、それらを組み合わせて効果的な攻撃キャンペーンを展開できることを示しています。
防御側の教訓として言えるのは、リスクの尺度となるのは高度さだけではないということです。比較的単純なマルウェアであっても、大規模に展開されれば重大な影響を及ぼす可能性があります。したがって、組織は、自動化された分析、行動検知、認証情報の適切な管理、および露出の低減を組み合わせて、IoT 量と拡散速度に対応していく必要があります。
侵害の兆候
Apex2
- 82.223.44.153
- 176.65.139.177
- 31.56.209.85
- hxxp://31.56.209.85/x86
- hxxp://31.56.209.85/mips
- hxxp://31.56.209.85/mipsle
- ae55505870f4e4783eddf4e043a3e0de236c8fd81b63ea65f7b133c4f0a0a452
- c65a68fa814525ef7ef8b7ff300c2e002ede6098f835ebd4db6672ba8939d757
- e50060dfc0a905f3f459f04396ce3a4dfb506c94c8ab2caa56f22e334e7caa3f
- 85fa54c230195e2e5492ec0d2c1503d2710ad383cae3236179b388bff8d02787
- 28184f309a2f0021ab1d56e6d71e1f21345efbeb5d515064a2080c494dcb505c
- 1ae9560a4a762f03ef8f650f85fdd15a1a3e6f5d5ce6112bd1837e3edfebf8a5
- 0c14ea75940a7cd55796468f402ad2f6157284ac1e078fee4cf1774e8ecaeec3
- 07223a7e19345719db2d81a0ca14e986421ffdda577c281ca4f69a99f78af44b
- 2dbfcce95e5a6f6ab7c5b885d8cfee1332b7b194c767b6f7ea6ac65d7bf9aa21
- 310f38b8666d3f68fdf2ba0840ec048828566f92616cd452f2d0da8a332eeca2
- 7aebb4fbdcc9eb6474323ad00aa2e75f21907126bf18972288b62082bd216c25
- e29e70e167ff009b8a33f50dcb6b1a4d3264c2d59e41dc30ad78016ffd68dea7
c2c
- ff2aeae29f6b08146ec13515635d21df3c84d6d4a01145790d006955cf067332
- fbbd29bd9f03cf95b832bf87f46b69096548cb9a6cbd1d01c530435bec49c7e3
- b3999579550107ab792edbf54958ce5b56fecdf7b1e934589d7571b0fb4fcc6d
- 55cfdee201055744c001626cb028c84c50e9021211d692cf6cbb38a899d895a8
- 5bf67d64e94a8ed6b81a0855fee52626eb0f4caf1772518fc2404883030451c2
- 86d162d2e4ae90daad260faa7df25be2e28bc70a97d0d0548d80a670177a2739
- 27a3a5a4c65732e788b025cc2566ebae655359408eda61ff1ce6f4d6a823441
- 35.227.3.70 (SSH ブルートフォース攻撃)
- 34.138.181.9 (SSH ブルートフォース攻撃)
- 51.83.6.7:20086 (C2)
- 51.75.118.169:20037 (C2)
- hxxp://35.237.91.38/meow
- hxxp://35.237.91.38/meowarm64




.webp)

