Redis servers targeted using critical bug and instance replication feature

脅威アクターは、マルウェア作成者が P2Pinfect と名付けた Windows と Linux の両方のバージョンを備えたピアツーピア自己複製ワームを使用して、SSH および Redis Redis オープンソース データ ストアの公開されたインスタンスを積極的にターゲットにしています。

Rust で書かれたこのマルウェアは、足場を確立するために少なくとも 2 つの方法に依存しています。1 つは昨年公開されパッチが適用された重大な脆弱性、もう 1 つは高可用性を実現しフェイルオーバー シナリオに対抗するためにメイン データベースを複製できる機能です。

Redis レプリケーション機能の活用

P2PInfect は、パロアルトネットワークスの Unit 42 の研究者によって最初に文書化され、CVE-2022-0543 として追跡されている最大重大度の脆弱性を悪用していることが判明しました。

このセキュリティ問題は、パッケージングの問題による Debian 固有の LUA サンドボックス エスケープの脆弱性で、リモートでコードが実行される可能性があり、重大度スコアは 10 点中 10 です。

初期ペイロードで脆弱な Redis インスタンスを侵害した後、P2PInfect は新しい OS 固有のスクリプトと悪意のあるバイナリをダウンロードし、そのサーバーを感染システムのリストに追加します。

その後、マルウェアは感染したサーバーをピアツーピア ネットワークに追加し、今後侵害された Redis サーバーが悪意のあるペイロードのバンドルにアクセスできるようにします。

クラウド フォレンジックおよびインシデント対応会社 Cado Security の研究者も、自社のハニーポットで P2PInfect サンプルを発見しました。これには、Windows と Linux 間のクロスプラットフォーム互換性を示す、Portable Executable (PE) バイナリと ELF バイナリの両方が含まれていました。

彼らが分析したサンプルでは、メイン/リーダー Redis インスタンスの正確なレプリカを作成できるRedis レプリケーション機能を利用して、別の初期アクセス ルートも使用されていました。

「クラウド環境における Redis に対する一般的な攻撃パターンは、悪意のあるインスタンスを使用してこの機能を悪用し、レプリケーションを可能にすることです。」 – Cado Security

脅威アクターは、公開された Redis インスタンスに接続し、文書化された特定のコマンドを発行することでこれを実現できます。この手法は2018 年から存在し、複数のキャンペーンで使用されてきました。

P2PInfect が Redis レプリケーション機能を介して制御を取得
P2PInfect が Redis レプリケーション機能を介して制御を取得
出典: Cado Security

ボットネット同化の準備

Cado Security によると、主要なペイロードは「C と Rust の組み合わせで書かれた」ELF バイナリで、最終的にペイロードの Rust コンポーネントを実行します。

実行後、バイナリはホストの SSH 構成を更新し、OpenSSH サーバー構成を「デフォルトに近い状態」に変更します。これにより、攻撃者はセキュア シェル (SSH) プロトコル経由でサーバーに接続し、パスワード認証を有効にすることができます。

Cado Security によると、攻撃者はその後 SSH サービスを再起動し、現在のユーザーの許可されたキーのリストに SSH キーを追加しました。

次のステップでは、攻撃者は bash スクリプトを使用してwgetおよびcurlバイナリの名前を変更し、特定のユーティリティの存在を確認し、利用できない場合はそれらをインストールします。

以下のリストは、スクリプトの実行によって生じるアクションの一部を示しています。

  • wget バイナリとcurl バイナリの名前をそれぞれ wgbtx と clbtx に変更します。これは、インシデント対応担当者がフォレンジック ツールを使用することを妨げ、また EDR ソリューションがコマンドの使用を検出できないようにする試みである可能性があります。これは、クラウドの脅威アクターにとって一般的な TTP です。
  • iptables コマンドを確認し、見つからない場合はインストールします。個々のパッケージ マネージャーに固有のコマンドがいくつかあるため、使用している Linux ディストリビューションに関係なくインストールできます。
  • awk コマンドを確認し、見つからない場合はインストールします。前のコマンドと同様に、いくつかのパッケージ マネージャーの使用を試みます。
  • netstat コマンドを確認し、見つからない場合はインストールします。前のコマンドと同様に、いくつかのパッケージ マネージャーの使用を試みます。
  • netstat と awk を使用して、ターゲット ホストで実行されている Redis サーバーに現在接続されているすべての IP のリストを収集します。
  • これらの各 IP から Redis サーバーへのトラフィックを許可する iptables ルールを追加します。
  • Redis サーバーへの他のすべてのトラフィックを拒否する iptables ルールを追加します。
  • プライマリ ペイロードがボットネット通信をリッスンするランダムに選択されたポートへのすべてのトラフィックを許可する iptables ルールを追加します。

研究者らは、iptablesの使用は、他の攻撃者による脆弱な Redis サーバーの侵害を防ぐためである可能性があると説明しています。彼らは、このマルウェアは侵害されたホスト上での永続性も確立すると付け加えています。

この手順に続いて、感染したサーバーは/procをスキャンできる少なくとも 1 つのバイナリを受け取り、そこにある各プロセスの統計情報を開きます。 /procディレクトリの変更を監視することもできます。

さらに、バイナリはマルウェアのメイン バイナリをアップグレードし、その署名がボットネットから取得したものと一致しない場合に実行する可能性があります。

研究者らによると、P2PInfectは侵害された各Redisサーバーをノードとして扱い、ネットワークをピアツーピアボットネットに変え、集中管理されたコマンド&コントロール(C2)サーバーを必要とせずに指示を受信できるようにするという。

「コマンドは、署名されたメッセージをネットワーク全体に伝播することによって発行されると想定されています」と Cado Security の研究者は述べています。

シンプルな HTTP サーバーを使用すると、60100 と 60150 の間のランダムなポートを介したピア間の通信が可能になり、特定のペイロードを受信できます。ただし、ボットネットの調整は、ハードコードされた証明書を使用して HTTPS 経由で行われます。

この証明書に基づいて、Cado Security はキャンペーンが「6 月 29 日以降」に開始されたと評価しています。

脆弱なサーバーを見つける

より多くのホストへの感染は、bash 履歴をチェックして、検索から除外する利用可能な IP、ユーザー、SSH キーを取得した後に行われます。

マルウェアは、ランダムな /16 ネットワーク プレフィックスを選択し、公開された SSH サーバーと Redis サーバーのスキャンを開始します。ブルートフォース試行用のパスワードのリストを使用して、保護が弱いホストにアクセスします。

Redis サーバーの場合、P2PInfect は CVE-2022-0543 またはレプリケーション機能を悪用して、ホストに悪意のあるモジュールをロードしようとします。

パロアルトネットワークスの研究者らは、調査時点で、公共のインターネット経由でアクセス可能な Redis インスタンスが 307,000 を超えていたと述べました。それらのすべてが脆弱であるわけではありませんが、P2PInfect はそれらの弱点や脆弱性をテストし、侵害する可能性があります。

現時点では、P2PInfect の目的は不明のままです。 Palo Alto Networks も Cado Security の研究者も、Redis サーバーに感染する原因を特定できませんでした。

P2PInfect の目的を知る手掛かりの 1 つは、仮想通貨のマイニング活動を示す可能性がある「マイナー」と呼ばれるバイナリの存在です。

しかし、Cado Security は、ファイルが実行されて削除されたことを観察しましたが、クリプトマイニングの証拠はありませんでした。代わりに、スリープ システムコールを実行し続けるだけで、何も行われません。

これはキャンペーンの初期段階にすぎない可能性があり、十分な量の Redis インスタンスが侵害された後に追加機能 (おそらくクリプトマイニング) が追加される予定です。