「SC」と呼ばれるステルス性の高いWordPressマルウェアファミリーが、目に見えるファイルを削除されても数秒で復活することが分かりました。このマルウェアはペイロードをウェブサイトのファイル、データベース、スケジュールタスク、共有メモリに分散させており、どれか1つでも残っていれば、残りの感染を丸ごと復元できます。
セキュリティ研究者は、SCのコンポーネントをdb.php、advanced-cache.php、テーマファイル、隠しPHPローダー、Must-Useプラグインで確認しています。
さらにこのマルウェアは、WordPressのデータベースに復旧用のコピーを保存します。共有メモリを使えば、ファイルシステムの外にもペイロードを残せます。
SCの感染は通常、auto_prepend_fileディレクティブを含む.user.iniファイルから始まります。このディレクティブにより、WordPressの通常処理が始まる前に、PHPが悪意あるファイルを強制的に読み込みます。続いて、目に見えるPHPのシムが隠しファイルを読み込み、メインのペイロードを再構築します。
感染は、db.phpやadvanced-cache.phpといったWordPressのドロップインも改ざんします。これらのファイルはWordPressの起動時に早い段階で読み込まれるため、プラグインファイルが削除されてもマルウェアを復元できます。有効なテーマのfunctions.phpに挿入されたコードブロックも、もう1つの復旧手段です。
メインのバックドアは、多くの場合mu-pluginsディレクトリと通常のプラグインディレクトリの2カ所に置かれます。同じコピーを複数置くことで冗長性を確保し、互いを復元できるようにしています。
研究者は、ランダムな名前のZIPアーカイブ、wp_optionsテーブル内のエンコードされたペイロード、悪意あるスケジュールタスク、PHPコードを含むSystem V共有メモリセグメントも確認しています。
この設計により、永続化の仕組みは循環構造になっています。1つのファイルを削除しても、次のリクエスト時に別のコンポーネントが再作成できるため、感染は止まりません。
研究者は、SCの関連亜種を、WordPress内の複数の場所に身を隠せるポリモーフィック型ローダーだと説明しています。
このマルウェアは、難読化した文字列と小型のデコーダルーチンで関数名を隠し、基本的なスキャンを回避します。設定ページや有効化フックまで備え、正規のキャッシュプラグインや最適化プラグインに偽装することもあります。
SCは有効化されると、自身のプラグインエントリをWordPressの管理画面、更新チェック、プラグイン一覧から隠します。usersテーブルとusermetaテーブルに直接書き込むことで、隠し管理者アカウントも作成できます。このアカウントを、ユーザー数やロールの表示から隠すこともあります。
SCは、固定された1つのコマンド&コントロール(C2)ドメインには依存しません。代わりに、公開されているイーサリアムのRPCゲートウェイに接続し、ブロックチェーンへのリクエストを通じてスマートコントラクトに問い合わせます。
コントラクトの応答からは、サーバー情報や、以降の通信に関する指示を取得できます。この手法は「EtherHiding」と呼ばれ、従来のドメインブロックやテイクダウン対応を難しくすると、Sucuriは指摘しています。
バックドアは、侵害したウェブサイトのフィンガープリントを収集します。対象は、サイトのアドレス、WordPressのバージョン、インストール済みプラグイン、有効なテーマ、管理者のセッション情報、ファイルパスのデータなどです。これらの情報を攻撃者に送信し、見返りに新たなPHPコードやJavaScriptを受け取ることもできます。
1万6,000以上のSOCチームがANY.RUNを導入し、脅威調査を効率化して手作業を減らしています。チームでの導入を検討する
翻訳元: https://cyberpress.org/wordpress-malware-defies-removal/