プラグインを削除しても不十分
悪意のあるプラグインを削除しても、問題は解決しません。残っていたコピーが感染環境を再構築してしまうためです。
セキュリティ企業のSucuriは、SCバックドアを分析しました。このバックドアは、WordPress内の複数の階層に同時に潜伏します。通常のクリーンアップを行っても、数秒以内に復活します。このマルウェアファミリー全体の感染規模は、今のところ不明です。
8つのコンポーネントによるメッシュ構造
SCは、少なくとも8つのコンポーネントに自身の部品を分散して保存しています。
- .user.ini設定ファイル
- wp-content内の2つのローダー
- db.phpファイルとadvanced-cache.phpファイル
- 有効なテーマのfunctions.phpファイルに挿入されたブロック
- Hyper Engine Kitという名前の偽プラグインの、同一コピー2つ
いずれかのコンポーネントが消えても、残りのコンポーネントがそれを検知し、再び書き戻します。
隠されたペイロード
最大の問題は、ファイルシステムの外に潜んでいる点です。ペイロード全体の圧縮コピーが、WordPressデータベースのoptionsテーブルに保存されています。System Vを採用するサーバーでは、別のコピーが共有メモリセグメントに存在する場合もあります。
そのため、疑わしいPHPファイルをすべて削除しても、サイトが安全になる保証はありません。サイトへの次のリクエストで、感染チェーン全体が復元される可能性があります。
管理者の目を逃れるステルス機能
このバックドアは、発見されないよう入念に動作します。SCは、プラグイン一覧やアップデートチェックから自身を消去します。さらに、完全な権限を持つ隠しアカウントを作成します。そのアカウント用に、有効なログインCookieを偽造することも可能です。
WordPressプラグインを経由した攻撃では、これまでにも同様の隠し管理者アクセスが確認されています。ただしSCは、そこに独自の自己修復機構を加えています。
ブロックチェーンを利用したコマンド&コントロール
このマルウェアは、コマンドの受信に公開のEthereum RPCゲートウェイを利用します。Sucuriは、検体の中にこうしたアクセスポイントを約20件確認しました。コードはこれらを通じて、スマートコントラクトから指示を読み取ります。
1つのアドレスをブロックしても、通信は遮断できません。バックドアは別の正規ゲートウェイに切り替えるだけで、コマンドを受信し続けます。
SCが収集する情報と実行できる動作
SCは起動後、サイトのアドレス、WordPressとプラグインのバージョン、有効なテーマを収集します。管理者のセッショントークンも収集します。
制御インフラからの応答には、ページに挿入するJavaScriptが含まれる場合があります。新たなPHPコードや、無効化または削除すべきセキュリティプラグインの一覧が含まれることもあります。オンラインストアでは、挿入されたJavaScriptによって決済情報が窃取される恐れがあります。
不明な侵入経路と駆除の推奨手順
Sucuriは、分析対象の事例について最初の侵入経路を特定できませんでした。WordPressのエコシステムでは、攻撃者が脆弱なプラグインやテーマを日常的に悪用しています。弱いパスワードやサプライチェーン攻撃も利用されます。9月には別の脆弱性が明らかになり、管理者が開いたリンクがテーマのインストールとコード実行につながり得ることが示されました。
駆除にあたってSucuriは、次の明確な手順を示しています。
- まず、悪意のあるコードの実行を止める。
- 次に、データベース、共有メモリ、cronジョブ、データベーストリガーからコピーを削除する。
- その後で初めて、ファイルをクリーンアップする。
- 最後に、サイトを再スキャンし、元の侵入経路を塞いで、認証情報を更新する。
いずれかのコンポーネントが復活した場合は、永続化の仕組みのどれかが残っていることになります。
翻訳元: https://meterpreter.org/sc-wordpress-backdoor/