FritzFrog:P2P ボットネットが再び表舞台に姿を現す

エグゼクティブサマリー
FritzFrog はピアツーピア ボットネット キャンペーン で、Guardicore Labs(現在は Akamai Threat Labs)により、2020 年 8 月に発見されました。
この分散型ボットネットは、クラウドインスタンス、データセンターサーバー、ルーターなど、SSH サーバーを公開するあらゆるデバイスを標的としており、感染したノード上であらゆる悪性のペイロードを実行することが可能です
高い水準のピアツーピアアーキテクチャと独自コードを採用していることが判明しています
最近再登場したボットネットは、感染率が 1 か月で 10 倍に達し、ヘルスケア、教育、政府機関のサーバーを危険にさらしています
ボットネットが再び出現して以降、1,500 台のホストが感染しており、そのほとんどが中国に存在します
増殖中の Golang マルウェアにより、プロキシネットワークの利用や WordPress サーバーの標的化など、ボットネットに新たな機能が加わりました
ここ最近の一連の攻撃によって FritzFrog の素性について証拠が新たに得られており、中国で活動する攻撃者、または中国人を装った攻撃者と何らかの関連がある可能性が示されました
Akamai Threat Labs は、最新バージョンのマルウェアに対応するため、FritzFrog 検出ツールを更新しました

FritzFrog v1 - 概要
FritzFrog はピアツーピアボットネットです。コマンド&コントロールサーバーが一台の集中管理されたマシンに限定されておらず、分散ネットワーク内のすべてのマシンから実行可能であることを意味します。言い換えれば、マルウェアプロセスを実行しているすべてのホストがネットワークの一部となり、ネットワーク内のマシンを制御するコマンドを送受信し、実行できるということです。
FritzFrog は SSH 経由で増殖します。単純(ではあっても攻撃的)な総当たり技術を駆使してサーバーの認証情報を見つけると、新しい被害者との SSH セッションを確立し、マルウェアの実行ファイルをホストにドロップします。その後マルウェアは、コマンドのリスンを開始し、リスン待ちの状態になります。これらのコマンドには、ターゲットの交換、侵害したマシンの詳細の共有、ファイルの転送以外に、スクリプトやバイナリペイロードの実行などがあります。コマンドの詳細なリストは、 以前のブログ記事で説明したバイパスがあります。
当社では、脅威の状況において FritzFrog を特徴づけるいくつかの特性の組み合わせから見て、FritzFrog を「次世代型」ボットネットと見なしています。
継続的な更新:ターゲットにされたマシンと侵入されたマシンのデータベースがシームレスに交換されます
攻撃的:豊富な辞書に基づく総当たり攻撃。これと比較して、最近発見された別の P2P ボットネットである DDG は、ユーザー名「root」のみを使用しています
効率的:ターゲットはノード間で均等に分散されます
独自仕様:P2P プロトコルは完全に独自仕様で、μTP のような既知の P2P プロトコルに依存していません。
FritzFrog v2 - 再登場
2020 年 8 月に FritzFrog に関する詳細を公表した直後、Guardicore Labs チーム(現 Akamai Threat Labs)は攻撃インシデントの数が減少していることに気付きました。しかし、2021 年 12 月初旬、当社のグローバル・センサー・ネットワークに対する攻撃が急増しました。
FritzFrog 攻撃は SSH 総当たり攻撃から始まり、ファイルをドロップして実行します。このファイルは直ちにポート 1234 でリスンを開始し、ポート 22 と 2222 を介して何千ものインターネット IP アドレスをスキャンします。
旧来の FritzFrog 攻撃と新しい FritzFrog 攻撃の違いの 1 つは、悪性のプロセスの名前にあります。最初の一連の攻撃では、悪性のプロセスの名前は ifconfig または nginx でしたが、今回の FritzFrog のオペレーターは apache2 という名前を選んでいます。
この変種を監視したところ、FritzFrog 攻撃の数が驚くほど増加し、ピーク時には 1 日あたり 500 件のインシデントが発生しました。

被害者の分析
FritzFrog の最初のキャンペーンの調査の一環として、当社は Frogger というツールを開発しました。Frogger を使用することで、クリプトマイナーが実行されている場合、感染したホストの稼働時間、ハッシュレート、ピアなどの情報を収集することができます。このプログラムは、感染したノードの IP アドレスを取得し、暗号化された通信チャネルを介してホストに問い合わせ、そのノードのステータスに関する情報を受け取ります。これにより、そのノードや、そのノードが接続している他のノードについての詳細を知ることができます。このプロセスは、ボットネットのインフラを活用して行われます。
被害者の分析は、センサーを攻撃したマシンの IP アドレスと、Frogger によって得られた情報の 2 つのソースに基づいて実施しました。具体的には、センサーが検知した攻撃者 IP のリストから始め、次にそのリストを、Frogger を使用して再帰的にそれぞれのピアを問い合わせることで拡大しました。
次のグラフは、当社のセンサーを攻撃した IP アドレスの日毎の件数と、連続する複数日間における攻撃者数の違いを示しています。攻撃ノード(マルウェアを実行する被害者マシン)の数が増加していることが懸念されます。


2 回目のキャンペーン期間中、FritzFrog は 1,500 台以上のホストに感染しました。これらのホストは、ヘルスケア、高等教育、政府機関など、さまざまな規模や業種の組織に属するサーバーマシンでした。ヨーロッパのテレビ局ネットワーク、ロシアの医療機器メーカー、東アジアの複数の大学で、感染したマシンを発見しました。地図が示すように、被害マシンは中国に集中しています。

新しいマルウェア機能
FritzFrog のバイナリは Golang で書かれており、さまざまなアーキテクチャで動作するようにコンパイル可能です。UPX を使用してパックされ、通常、ifconfig、nginx、apache2、php-fpm の 4 つのプロセス名のいずれかで実行されます。このマルウェアの徹底的な分析については、 前回の記事で紹介しましたので、今回は新しいサンプルとその追加に焦点を当てます。
FritzFrog は毎日、時には 1 日に何度も更新されています。新しいリリースのほとんどはバグ修正ですが、マルウェアに新しい機能を追加するバージョンもあります。
WordPress ターゲティングの準備
FritzFrog は、WordPress サーバーを追跡するためのインフラを実装した新バージョンをリリースしました。このバージョンには、Wordpress と WordpressTargetsTTL とタイトルが付けられたリストへのエントリの追加と削除を行う関数が含まれています。以下の、逆アセンブルされたコードのスニペットには、WordPress のターゲットリストに新しいエントリを追加する新しい P2P コマンド、put wordpress の実装が見て取れます。本レポートを書いた時点では、感染したすべてのノードに保存されているこれらのリストはまだ空です。

このマルウェアには、WordPress のターゲットをクラッキングまたは識別するモジュールは含まれていません。このことから、このコードは新バージョンのための準備であり、これらのターゲットを侵害し、情報漏えいやランサムウェアなど、マイニング以外の目的に使用することができると考えられます。
Tor プロキシチェーン
FritzFrog は、SSH 接続のプロキシをローカルポート 9050 に設定することで、Tor プロキシチェーンを使った発信 SSH 接続を代行できます。Tor プロキシチェーンはノードのネットワークで、送信元から宛先までカプセル化ベースのパスを作成することで、ユーザーのプライバシーとマスキングを改善します。各ノードは、直接隣接するノードを認識するだけです。
ローカルポート 9050 へのリクエストを代行することで、FritzFrog は Tor プロキシチェーンを利用して所有する SSH デバイスに接続します。所有するデバイスは、受信したリクエストをプロキシチェーンの最後のノードから来たものと見なします。このようにすることで、現在感染しているノードのアドレスを隠すことができます。現在のところ、この機能は存在するものの、マルウェアがこの機能を使用しているところはまだ確認されていません。
SCP
現在の FritzFrog は、SCP を使用して自身をリモートの侵害されたサーバーにコピーします。最初のバージョンでは、確立された SSH セッション上で cat コマンドを使用してマルウェアの実行ファイルを新しい被害者にドロップしていましたが、これとは異なります。新しい実装では 、 Golang で書かれたパブリック SCP ライブラリを使用しています。これは、GitHub にあります。 当社では一方の方法が他方の方法よりも有利であると判断することはできませんでした。しかし、SCP ライブラリの作者が中国にいることは注目に値します。
ブロックリスト
FritzFrog の初期バージョンは、クラッカー(総当たり)モジュールによる侵入から特定のマシンを除外するためのブロックリストを実装していました。putblentry という特殊な P2P コマンドでは、このリストにエントリを動的に挿入できますが、新しいバージョンでは、複数のエントリを事前にハードコードしています。
これらのエントリの中には Unix 名を指定するものもあれば、IP アドレスを指定するものもありますが、両方を指定するものはありません。
新しい FritzFrog サンプルにハードコードされたブロックリストエントリ
[ {"Address": "",
"Uname_match": "[redacted]dddz.me 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017"},
{"Address": "",
"Uname_match": "[redacted]-1 4.4.0-151-generic #178-Ubuntu SMP Tue Jun 11 08: 30: 22 UTC 2019"},
{"Address": "",
"Uname_match": "[redacted].amzn2.x86_64 #1 SMP Mon Jun 18 22: 33: 07 UTC 2018 x86_64 GNU/Linux"},
{"Address": "",
"Uname_match": "[redacted]-generic #113-Ubuntu SMP Thu Jul 9 23: 41: 39 UTC 2020"},
{"Address": "",
"Uname_match": "[redacted] raspberrypi 4.4.32-v7+ #924 SMP Tue Nov 15 18: 11: 28 GMT 2016 armv7l GNU/Linux"},
{"Address": "",
"Uname_match": [redacted] 3.10.0-123.4.4.el7.x86_64 #1 SMP Fri Jul 25 05: 07: 12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux"},
{"Address": "",
"Uname_match": [redacted] 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00: 20: 22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux"},
{"Address": "[redacted].24: 22",
"Uname_match": ""},
{"Address": "[redacted].88: 22",
"Uname_match": ""},
{"Address": "[redacted].26: 22",
"Uname_match": ""}]
このエントリは、Raspberry Pi デバイスや AWS 上の低リソース EC2 イメージなど、リソースが少ないローエンドシステムへの感染をオペレーターが避けようとしていることを示唆しています。
ブロックリストに含まれる IP の 1 つはロシアのものです。複数のオープンポートと、パッチが適用されていない脆弱性の長いリストがあるため、ハニーポットである可能性があります。さらに、2 つ目のエントリは、オープンソースのボットネットのシンクホールを指しています。これら 2 つのエントリは、検出と分析をオペレーターが回避しようとしていることを示唆しています。
IP アドレスのうち 2 つは、地理的に米国をベースにしています。1 つはメリーランド大学をブロックするものですが、その理由は明らかではありません。もう 1 つは、閲覧するとジョークや警告が表示されるもので、マルウェアの潜在的な調査を意識しているようです。

発生源と帰属
昨今このキャンペーンに対して変更と追加が行われたことにより、このマルウェアの発生源として考えられるものを調査することができました。本当の発生源を確かめることはできませんが、この情報を共有することは有益であると考えています。
最初の証拠となったのは、FritzFrog マルウェアに新たに追加されたライブラリの 1 つで、SSH 経由のファイル転送のための Secure Copy Protocol を実装する scp という名前のライブラリです。このライブラリは Go で書かれており、そのコードは GitHub の、上海にいるユーザーの リポジトリ で共有されています。このリポジトリにはフォークが 1 つ存在し、これは 上海にいる 2 人目の個人が作成したものです。
中国と繋がりがあるというもう 1 つの証拠は、FritzFrog のクリプトマイニング活動です。当社の調査チームは、新しいウォレットアドレスと、クリプトマイニングプロセスで使用されている新しいマイニングプールを見つけることに成功しました。新たに観測されたウォレットアドレス(下記)の 1 つは、 Mozi ボットネットキャンペーンの一部としても使用されており、その作者は最近中国で逮捕されました。
Mozi に接続された FritzFrog Monero ウォレットのアドレス
47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV
こうした証拠から、中国国内で活動する攻撃者、あるいは中国人になりすました攻撃者の関与が疑われます。最後に、攻撃データの監視によって、キャンペーン期間中、中国とその周辺で高いレベルの活動が行われていることが実証されています。現時点では、感染ノードの約 37% が中国にあるようです。
予防と緩和
FritzFrog 検知ツール
Akamai は、 FritzFrog 検知スクリプト を提供しており、SSH サーバー上で実行します。このスクリプトは、以下の FritzFrog インジケーターを検出します。
nginx、ifconfig、php-fpm、apache2、または libexecという名前のプロセスの実行。その実行可能ファイルはファイルシステム上に存在しなくなっています(以下を参照)
リスニングポート 1234

さらに、ポート 5555 を介した TCP トラフィックは、Monero プールへのネットワークトラフィックを示す場合もあります。
推奨事項
システムを常に更新し、パッチを適用する
強力なキー管理とローテーションシステムを使用して、パスワードレスログインを実装する
アラートによるシステムログイン監査を有効にする
Linux の authorized_hosts ファイルを監視する
SSH ログインの明示的許可リストを設定する
ルート SSH アクセスを無効にしておく
Akamai のクラウドベース DNS 保護を有効化し、仮想通貨マイニングなどの脅威や無関係なビジネスアプリケーションをブロックする