「有料で購入したテーマだから安全だろう」

「長年問題なく表示されているから、いまも大丈夫だろう」

そう考えて使い続けていたWordPressテーマから、バックドアとして悪用されうるコードが見つかることがあります。

今回ご紹介するのは、サーバー移管に伴う調査で実際に確認した事例です。対象サイトでは、10年以上前に購入した海外製の有料テーマが現在まで使われていました。テーマには多くのカスタマイズが加えられていたため、更新すると表示や機能が壊れるおそれがあり、アップデートされないまま運用が続いていました。

サイトは正常に表示されていました。管理画面にも、分かりやすい警告は出ていませんでした。

しかし、移管前にテーマのコードを確認したところ、本来の表示機能とは関係のない、不審な処理が見つかりました。


1. 何が見つかったのか

見つかった処理には、次のような特徴がありました。

  • テーマ本来の表示や管理機能との関係が見えない
  • コードが読み取りにくい形へ難読化されている
  • 処理内容と関係のないコメントが置かれ、意図を把握しにくくしている
  • 外部から利用された場合、サイトの内部で意図しない処理を実行される可能性がある

具体的なコードや設置場所、利用方法は、悪用を避けるため本記事では公開しません。

調査時点では、このコードが本来接続しようとしていた仕組みは機能していませんでした。そのため、ただちに外部から操作されている状態は確認されませんでした。

それでも、動いていないから安全とは言えません。 コードがサイト内に残っている以上、その仕組みを知る第三者に別の方法で悪用される可能性を検討する必要があります。

2. 後から改ざんされたコードではありませんでした

最初に疑ったのは、サイトが過去に侵入を受け、テーマへ不正なコードを追加された可能性です。

そこで、現在サーバー上にあるテーマだけでなく、購入当時に保存されていた約10年前の配布データとも比較しました。すると、元の配布データにも同じコードが含まれていました。

少なくとも、今回見つかったコードは、現在のサーバーへ後から侵入した第三者が追加したものではありません。購入時に入手したテーマへ、最初から含まれていたことになります。

ただし、これだけで「テーマ作者が悪意をもってバックドアを仕掛けた」とは断定できません。

当時の有料テーマでは、ライセンス確認や海賊版対策などの目的で、外部と通信する仕組みが組み込まれることも考えられます。今回のコードが何を目的としていたのか、現在残っている情報だけでは確認できませんでした。

問題は、作られた当時の目的が善意だったか悪意だったかだけではありません。

販売が終了し、作者による更新も行われず、利用者も存在を把握していないコードが、公開中のWebサイトに残り続けていること自体がリスクです。

3. 悪意のなかった機能も、放置されれば危険になります

10年前には必要だった機能でも、外部サービスの終了や通信方式の変更によって役目を失うことがあります。開発者が保守を続けていれば、不要になった処理の削除や、安全な方法への置き換えが行われます。

しかし、テーマそのものが販売終了になれば、その更新は届きません。

今回のサイトでは、デザインや表示機能を細かくカスタマイズしていたため、テーマを単純に更新できない事情もありました。古いテーマを使い続けたくて更新しなかったというより、更新するとサイトが壊れるため、更新できない状態になっていたのです。

これは、長く運営されている企業サイトで珍しくない状況です。

見た目は変わらず、日々の更新もできるため、問題は表面化しません。その一方で、テーマ内部には、現在のPHPやWordPressを前提としていないコード、提供元が管理していない通信処理、使われなくなったライブラリなどが残っていきます。

Webサイトが表示できていることと、安全に管理できていることは別です。

4. 次の項目に心当たりがあれば、一度点検してください

今回のような問題は、管理画面を眺めるだけでは判断できません。特に、次の項目に当てはまるサイトは注意が必要です。

  • 5年以上、同じWordPressテーマを使用している
  • テーマを直接カスタマイズしており、更新できない
  • テーマの購入元や制作会社と連絡が取れない
  • テーマの販売ページや配布サイトがなくなっている
  • WordPress本体やPHPも古いままになっている
  • サイトの保守担当者が退職し、更新履歴が分からない
  • サーバー移管やリニューアルを予定している

WordPress公式の「サイトヘルス」では、有効中・停止中のテーマや自動更新の状態を確認できます。また、使用する予定のない停止中テーマは削除することが推奨されています。

ただし、今回のように現在使用しているテーマ自体の内部に問題がある場合、管理画面上の表示だけでは分かりません。 テーマファイルのコードレビューと、プラグイン・アクセスログを含めた確認が必要です。

5. 古いテーマを安全に見直す流れ

弊社へご依頼いただいた場合は、現在のサイトをいきなり更新するのではなく、次の順序で状況を確認します。

STEP 1|サイト構成と更新状況の確認

WordPress本体、PHP、使用中テーマ、子テーマ、プラグインのバージョンと更新状況を確認します。テーマが直接変更されているか、更新によって失われるカスタマイズがあるかも調査します。

STEP 2|テーマのコードレビュー

テーマ内のPHPやJavaScriptを確認し、難読化された処理、不自然な外部通信、外部入力の危険な扱いなどがないかを点検します。

STEP 3|プラグインとアクセスログの確認

テーマだけでなく、開発終了・長期未更新のプラグインが残っていないかを棚卸しします。取得できる範囲でアクセスログも確認し、不審なコードが実際に利用された形跡がないかを調べます。

STEP 4|対応方法のご提案

問題が見つかっても、すぐにテーマを削除できるとは限りません。現在の表示や機能への影響を整理し、次のような選択肢から現実的な対応をご提案します。

  • 危険な処理を取り除き、当面の運用を継続する
  • カスタマイズを子テーマやプラグインへ分離し、更新可能な構成へ直す
  • 保守されている別テーマへ段階的に移行する
  • オリジナルテーマとして作り直す

STEP 5|検証環境での更新と動作確認

本番サイトへ直接変更を加えず、バックアップと検証環境を用意します。表示、フォーム、管理画面、スマートフォン表示などを確認してから、本番環境へ反映します。

6. よくあるご質問

Q. 有料テーマなら、無料テーマより安全ではないのですか。

A. 有料であることだけでは、安全性を判断できません。重要なのは、現在も提供元による更新やサポートが続いているか、利用中のWordPressやPHPに対応しているか、不審なコードが含まれていないかという点です。

Q. 長年問題なく動いています。それでも確認が必要ですか。

A. 表示や更新ができていても、内部の安全性までは判断できません。危険な処理が使われるまで症状が出ないこともあるため、販売終了や長期未更新に該当する場合は一度確認することをおすすめします。

Q. テーマを最新版へ更新すれば解決しますか。

A. 更新版が提供されており、危険な処理が修正されているなら有効な対応です。ただし、テーマへ直接カスタマイズが加えられている場合、更新によって表示や機能が失われる可能性があります。事前に差分を調査し、検証環境で確認する必要があります。

Q. テーマ名が分からなくても調査できますか。

A. はい。WordPressとサーバーへアクセスできれば、使用中のテーマ、子テーマ、変更されたファイルなどを確認します。制作会社との連絡が取れない場合や、引き継ぎ資料がない場合でもご相談ください。

Q. セキュリティチェックの費用はいくらですか。

A. WordPressサイト簡易セキュリティチェックは33,000円(税込)からです。サイト規模、サーバー環境、プラグイン数、更新状況によって変動するため、対象サイトを確認したうえでお見積りします。検出した問題の修正やテーマの作り直しは、調査結果に応じて別途お見積りとなります。

Q. 調査を受ければ、安全だと言い切れますか。

A. いいえ。セキュリティチェックですべての攻撃や未知の問題を発見できるとは限りません。どこまで確認できたか、ログの保存期間などによって確認できなかった範囲も含めてご報告します。

7. 古いWordPressテーマのセキュリティチェックと更新対応を承ります

QUANTS DESIGNでは、WordPressテーマのコード、導入プラグイン、アクセスログを確認し、現在のリスクを整理するWordPressサイト簡易セキュリティチェックを行っています。

問題が見つかった場合は、危険なコードの除去、PHP・WordPressの更新対応、テーマの修正・再構築についても、影響範囲を確認したうえでご提案します。

「古いテーマを使っているが、更新すると壊れそうで触れない」「制作会社と連絡が取れず、誰も中身を把握していない」といった段階でも構いません。

まずは現状を調べ、そのまま使える部分と、直す必要がある部分を切り分けるところから対応します。

ご相談はお問い合わせフォームから承ります。継続的な更新をご希望の場合はWordPressサイト管理代行・引き継ぎ、テーマの再構築をご検討の場合はWordPress制作もご覧ください。


まとめ

今回の事例で重要なのは、正規購入した有料テーマから問題のあるコードが見つかったことだけではありません。

作られた当時に悪意がなかった機能でも、管理する人がいなくなれば、将来の危険な入口になりえます。

特に、カスタマイズを理由にテーマを更新できず、販売元のサポートも終わっているサイトでは、「更新するか、しないか」の二択では解決できません。まず現在のコードと変更内容を調べ、残せる部分と置き換える部分を整理する必要があります。

サーバー移管やリニューアルは、長年見えないまま残っていた問題を確認する機会でもあります。新しい環境へそのまま移す前に、テーマやプラグインの中身を一度点検しておくことをおすすめします。

参考情報


この記事は人間による下書きからAIのサポートを経て、最後に人間がチェックして投稿しております。