WordPressサイトが攻撃された話

というか、いつの間にこのサイトが改竄されていたという話。

事の発端は、2026/8/7。
久しぶりにAIについて不満をたれる記事を書こうと思ったら、サイトが開けない。

ブラウザで開こうとすると、ESETさんが介入して、
JS/Agent.RMT trojan detected
と仰って開けない。
いやいや、ご冗談をファインマンさん、と思ってスマホで開いてみると、下の画像

WordPressの記事が書き換えられるレベルではなく、サイト全体が改竄されている。
2012年から運用しているが、初めて攻撃を受けた。
久しぶりに安心できる我が実家に帰ったら、家族がいなくなって強盗に居座られたような気分だ。

で、半日ほどかけて、事態の把握・原因究明・対策を行った。
その顛末をここに記しておく。

まず、被害が広がらないように緊急処置。
全てDocker containerで運用しているので、コンテナを停止するだけ。
これは楽ちん。
以前あれこれして、楽な環境を構築した甲斐があった。

緊急停止させた後に、原因究明に入る。
SSHのレベルで侵入されたら試合終了だが、さすがにそれはない様子。
コンテナ外は違和感なし。
だが、サイト全体が改竄されていると言うことは、WordPressのコントロールが奪取されているということだ。
極めて危険で、きちんと原因究明・対策をしないと、再起動することはできない。

で、セキュリティに関しては素人のおっさんなので、どこから手を付けていいか分からない。
ChatGPTに聞きながら、原因究明を進める。

まず、最近更新されたファイルを確認する。
ここ1か月は全くサイトをいじっていないが、怪しいphpやプラグインが出るわ出るわ。
ただ、これは攻撃を受けた(任意のphp/プラグインをアップロードされている)というだけで、原因究明にはつながらない。

攻撃の起点として考えられるのは、
1. アカウント管理からの不正ログイン
2. プラグイン脆弱性
3. 本体脆弱性
このサイトはザルだから、1番が可能性が高い。

で、分かるような分からないようなChatGPTと相談しながら、精査を進める。

究明の糸口になったのは、アカウント情報。
MariaDBに接続してアカウントリストを表示すると、

| 3 | wpsvc_71aa102784f2 | wpsvc_71aa102784f2@wordpress-svc.internal | 2026-07-19 04:16:39 |

| 4 | wpsvc_30e13cefe354 | wpsvc_30e13cefe354@wordpress-svc.internal | 2026-07-19 05:52:17 |

| 5 | bob_bda95b13aba2 | bob_bda95b13aba2@bobresearchlabs.com | 2026-07-19 20:45:09 |

と、知らないアカウントが(7/19に!)作成されている。
日本時間かUTCかは知らないが、かなりのスピード感だ。
そして、これはwp2shellのIoC(Indicator of Compromise / 侵害の痕跡)らしい。

wp2shellを調べると、以下のサイトが見つかり、同じような症状であることを確認した。
https://note.com/t_yabuhara/n/n27946b9b6523
CVE-2026-60137、CVE-2026-63030:wp2shell

結論としては、WordPress本体の脆弱性によるものであり、ユーザー側の問題ではなかった、と。
一般的なWordPressサイトには自動更新がかかるが、当サイトはコンテナ環境(bitnami/WordPress)なので、自動更新がかからなかった、と・・・

復旧

一番確実な対応は全初期化だが、幸いバックアップがある。
WordPressのコンテンツとMariaDBを、1日に1回 NASに送るようになっている。
NASはNASで、1週間に1回スナップショットを取る設定だ。
7/6のスナップショットをRestoreすれば、まっさらな状態に戻すことができる。

まずコンテナイメージをすべて最新に更新。
次に、sshhとMariaDBのみ動かして、NASから7/6のデータをコンテナに送信。
その後、
・DBパス、WordPressユーザー名の変更・パスワード変更。
・Salts 再生成

諸々対策を行って、WordPressを再起動、復旧した。

反省

  • 月間アクセス数0のサイトだから大丈夫だろうという慢心があった。
  • 十数年前に作成したadminアカウントがそのまま残っていた。
  • WordPressプラグイン/bitnamiイメージは時々更新していたが、せいぜい数か月に一度。

学んだこと

  • ユーザー側で対策をしていても、WordPress本体が抜かれたらどうしようもない。
  • 更新(特に自動更新)は非常に大切だが、コンテナ環境だと難しい。
  • アプリケーションファイアウォール導入かな。
  • 後は、定番の2段階認証かな。
  • やっぱりバックアップ/スナップショットは非常に大切。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください