※当サイトでは、正確かつ迅速な情報発信のためAIを補助ツールとして活用しています。
はじめに
このサイトは、2013年からずっと同じ環境で動いていました。
PHP 5.6 + WordPress 3.1.4 という構成のまま、コンテンツの更新はあったものの、システムのバージョンは長年そのまま。「動いているから触らない」という判断のもと、気づけば10年以上が経っていました。
その環境が限界を迎えたのが、12月に発覚した不正アクセス被害です。この記事では、発覚から翌年5月の新サーバー移行までの一連の対応を、時系列でまとめます。
12月:不正アクセスの発覚
ある日、自社のトップページが表示されなくなりました。最初は「何かのエラーかな」と思いながらWordPressの管理画面を開くと、見覚えのない不正なユーザーアカウントが追加されているのを発見。手元のバックアップで一時的に復旧させ、その場をしのぎました。
しかし、これは長い対応の始まりに過ぎませんでした。
3月:カジノ記事の不正投稿と、続く改ざん
年が明けて3月、サイトの「新着情報」にオンラインカジノへ誘導する不審な記事が勝手に投稿されているのを発見。ここで「これは明確な攻撃だ」と判断しました。
入り口になりそうな不要なプラグインを削除しましたが、その後も index.php が書き換えられるなど、改ざんは断続的に続きました。
原因ははっきりしていました。PHP 5.6はすでにセキュリティサポートが終了しており、利用していたサーバー(WebARENA)の制約上、PHPのアップグレードも困難。無理に変更すればサイト全体が真っ白になる(WSOD)リスクがありました。
3月:テスト環境の構築と、不正ファイルの駆除
本番サイトを直接修正するのはリスクが高いため、サブドメイン上にテスト環境を構築して検証を進める方針にしました。2011年以来の記事データはローカルにバックアップして確保し、テスト環境にはWordPress 6.7.1をインストール。旧システムへのリンクは一時的に静的HTMLへ置き換え、お客様が不正なページに誘導されないよう応急的に対処しました。
一方で、旧環境では攻撃が続きます。3月9日に不正ファイルを削除しましたが、翌10日には新たなファイルが再設置。3月16日にそれを確認し、サーバーのhomeディレクトリ全体を探索して、撒かれていた不正なPHPファイルを徹底的に駆除しました。
3月17日にはFTPのIPアドレス制限を実施。自社のIPアドレスからしかサーバーにアクセスできないよう設定し、外部からの侵入経路を物理的に遮断しました。
4月:脱WordPress、Next.js + microCMSへ
一連の対応を通じて、WordPressを使い続けること自体のリスクが改めて浮き彫りになりました。世界的にシェアの高いWordPressは攻撃の標的になりやすく、古いバージョンのまま維持するのは危険が大きすぎる——そう判断し、4月にNext.js + microCMSへの移行を決めました。
microCMSは日本製のHeadless CMSで、コンテンツの管理画面と閲覧者が見る画面を完全に切り離せる点が特徴です。WordPressのようにPHPがサーバー上で直接動くわけではないため、今回のような改ざん被害のリスクを根本から排除できます。
比較ポイント | WordPress(旧) | microCMS(新) |
|---|---|---|
PHPバージョン問題 | 影響あり(PHP 5.6) | 関係なし |
攻撃リスク | 高い(世界的シェアが標的に) | 大幅に低減 |
サーバー管理 | 自前で必要 | 不要(SaaS) |
表示速度 | 遅い(旧サーバー) | 静的生成で高速化 |
セキュリティ管理 | 自己責任 | microCMS側が担保 |
5月:新サーバーへ切り替え(メールも移行)
移行にあたっては、旧サーバーと新サーバーをしばらく共存させながら、慎重に切り替えを進めました。そして5月、より高速で管理しやすいサーバー(エックスサーバー)へ正式に移行。あわせてメール環境も新サーバーへ切り替え、サイトとメールの両方を新しい基盤へ移しました。
まとめ
2013年から変わらなかった環境が、不正アクセスという形で限界を迎えました。PHP 5.6のEOL、WordPress 3.1.4の脆弱性、サーバーの制約——把握しつつ後回しにしてきた問題が、一気に表面化した出来事でした。
新しい環境では二度と改ざんに怯えないことを最優先に、microCMSとモダンなフロントエンドの組み合わせで運用していきます。今後も技術的な知見や構築の過程を発信していければと思いますので、引き続きよろしくお願いします。
