• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

株式会社ハイファイブクリエイト

東京都を拠点にWebサイト制作やシステム構築、WordPress保守管理やウェブコンサルティングを提供。

  • SERVICE
  • ABOUT
  • WORKS
  • BLOG
  • NEWS
  • CONTACT
ホーム / ブログ / WordPress / WordPress のクロスサイト・スクリプティング被害にあった事例を共有します

WordPress のクロスサイト・スクリプティング被害にあった事例を共有します

池田祐太郎 | 2023年1月11日 公開 コメントを書く

先日、保守管理対象の WordPress サイトに対して クロスサイト・スクリプティング(XSS)攻撃を受けました。200記事程度に対し、特定のサイトに誘導するような JavaScript が埋め込まれる被害規模です。

完全な原因の特定はできなかったものの、おそらくこれだろうという形での原因はわかり、解消後同じ被害は発生していません。

どのような XSS 攻撃だったのか、原因の可能性、同じような被害に合わないためにどうすればいいかなどをご紹介します。

目次

  • 1 突然、不正なスクリプト埋め込みが発生
  • 2 セキュリティチェックを通過するケースもあり
  • 3 200記事以上被害になっているものの、スキャンを実施しても発見できない
  • 4 原因は古く稼働していない WordPress(おそらく)
  • 5 バックアップデータから復旧
  • 6 追加で行ったセキュリティ対策
    • 6.1 不要なリスクのあるファイルの削除
    • 6.2 管理者権限アカウントのパスワードの変更
    • 6.3 WordPress 管理画面に対して BASIC 認証の設定
  • 7 XSS 被害にあわないために WordPress のセキュリティ対策を

突然、不正なスクリプト埋め込みが発生

対象サイトは数百記事の記事を保有しているサイトです。WordPress で作られており、弊社サービスである WordPress 保守管理サポート 対象サイトとなり、セキュリティ対策も行っていました。後でわかりましたが、原因は保守管理サポート対象外からの被害経路の可能性が高いという判断となりました。

ある日、対象サイトに対してセキュリティアラート通知がありました。確認したところ不正なスクリプトが埋め込まれていました。

  • コードは難読化されており、特定のサイトの公開済みWordPressプラグインのファイルを参照するなどのスクリプトが埋め込まれている
  • ページ閲覧後数秒後に不審なサイトに自動リダイレクトされる
  • ウェブサイトフロント側においては埋め込みタグの一部が表示されていた

不正なスクリプトは JavaScript にて記述されており、<script>不正なコード</script> という形でページ内に記述されていました。タグの一部が表示されていた一例をご紹介します。前後は本文が記載されています。

特定の文字列に対して、不正なスクリプトが自動挿入されている状態だった

セキュリティチェックを通過するケースもあり

上記のページは一旦手動でスクリプト箇所を削除する対応をしたものの、その他の複数記事ページにおいて同様の不正なスクリプトが挿入されていました。1記事につき5〜20箇所程度のスクリプトが埋め込まれており、手動での削除作業は少々手間がかかる作業です。

手動で対応していく中で気づいたのは、挿入されている前後の文字列がすべて特定の文字列だったことです。よって、WordPress の データベースを上書きされる XSS 攻撃というのがわかりました。

同様のスクリプトが埋め込まれているのがわかる

200記事以上被害になっているものの、スキャンを実施しても発見できない

全体の被害を特定するため、サイト全体をスキャンしました。いくつかスキャンツールを利用しましたが、代表的なものは Sucuri 社が提供するスキャンプラグインです。

Sucuri Security – Auditing, Malware Scanner and Security Hardening – WordPress plugin | WordPress.org

スキャンを実施しましたが、残念ながらマルウェアスキャンによって発見された脅威はありませんでした。

スキャン実施するもクリーン判定をされてしまう

ところが、直接 db を検索するとマルウェアと思われる記事が該当するのです。記事タイトルに含まれているものもあれば、本文内に含まれているのもあり、ざっとみても200件以上の記事が該当する計算でした。

記事タイトルに埋め込まれている例

原因は古く稼働していない WordPress(おそらく)

その後色々と対応していく中で、現在は稼働していないかなり前にインストールされてままの WordPress が下層ディレクトリに存在しているのがわかりました。これらは弊社が関わる前に作られた WordPress でした。

  • 古いディレクトリに設置されている WordPress において脆弱性を確認
  • 数年前に一時的な目的として作られた WordPress と思われる
  • WordPress のバージョンは 4.3.1 となり、古いままアップデートされていない
  • アクセスしてもデータベース接続エラーで閲覧不可
  • Contact Form 7 の バージョンが4.3となっており、脆弱性を抱えるバージョン

ということで担当者に確認したところ、不要な WordPress とのことでディレクトリ毎削除しました。

ちなみに、サーバー内に WordPress が含まれているかどうかは Linux の find コマンドで確認可能です。

find . -name 'wp-config.php' -print

バックアップデータから復旧

古い WordPress を削除したところでデータベースに書き込まれたスクリプトは削除されません。これらは作成してあったバックアップデータから復旧作業を行いました。安全を期して2ヶ月以上前のデータから復旧しました。その間新たに作られた記事や変更箇所はバックアップを作っておいていただき、復旧後に手作業で追加変更してもらいました。

復旧後から現在まで、XSS 攻撃の形跡はなく、不正なスクリプト埋め込みも確認できていません。おそらく、原因は上記の古い WordPress だったと考えられます。

追加で行ったセキュリティ対策

さらに安全にするため、以下のセキュリティ強化・対策を行いました。

不要なリスクのあるファイルの削除

データベースの一括置換を行うためのツールである Search Replace が設置されていました。基本的に利用後は削除が望ましいディレクトリのため一式削除しましました。ちなみに、日付を見るとこちらも同様古い WordPress と同様の年でした。

また、wp-config.php ファイルのバックアップファイルが残っていました。記載されているアクセス情報は現在無効だったため大きな問題はありませんでしたが、設定ファイルのため削除しておくのが安心です。

管理者権限アカウントのパスワードの変更

WordPress各管理者アカウントのパスワードを堅牢なものに変更しました。WordPress のログインアカウントのパスワードなどが漏洩している可能性を考慮しての対応です。

WordPress 管理画面に対して BASIC 認証の設定

セキュリティ強化のため、管理画面に対して Basic 認証を設定しました。

ちなみに、IP アドレスによる制限はセキュリティ上効果が期待できますが、運営側メンバーのデメリットもあります。例えば動的に IP アドレスが変わる場合は都度追加しないといけず、運用上手間が大きいです。

XSS 被害にあわないために WordPress のセキュリティ対策を

以上、実際にあった XSS 被害事例の共有でした。他にもいろいろな被害が発生しています。

WordPressのアップデートやセキュリティ対策をしなかったことで実際に起きた事件

WordPress は正しく保守・管理していれば問題有りませんが、今回のように脆弱性があるバージョンを使っているまま放置されている WordPress を使い続けていると、被害にあってしまう場合があります。

WordPress のリニューアルの際には今までお付き合いのあった業者変更に伴い、今回のように サーバー内に認知外の WordPress が置き去りになることがあります。リニューアルの際には今後の保守やリスクについても検討することをおすすめします。

WordPress サイトをリニューアルする時に考えたい今後の保守やリスク対応

今回の被害にあった WordPress は保守対象サイトだったため、基本的な対応はサポート内に含まれており、弊社への対応費用は別途かかっていません。WordPress サイトを運用しているが、保守に不安がある・万が一被害にあった場合に対応できない、等でお困りであればお気軽にご相談ください。

メールコンサルティング
WordPress保守管理サービス

Filed Under: WordPress 関連タグ:セキュリティ, 保守管理

池田祐太郎

WordPress の構築・保守を10年以上にわたって手掛けており、主に小〜中規模のコーポレートサイト・ECサイト・ブランドサイト等の企画・開発・保守・コンサルティングなどを行ってきました。2012年にハイファイブクリエイトを創業し、現在は WordPress の保守やコンサルティング、ディレクションや開発業務などを担当しています。 プロフィール詳細

Reader Interactions

コメントを残す コメントをキャンセル

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

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.

この記事と関連する記事

外部のプロフェッショナルによる WordPress サイトの保守・運用:安心と安全性を手軽に手に入れる方法
2023年1月25日
タグ: 保守管理
カテゴリー: WordPress
エラーログに wp-admin, wp-include 配下のファイルが含まれているエラーの対応方法
2022年11月15日
タグ: 保守管理
カテゴリー: TIPS
コストをかけずに情報セキュリティ対策ができる SECURITY ACTION
2022年11月1日
タグ: セキュリティ
カテゴリー: 仕事のこと

人気記事

  1. 同一サーバー上に構築するWordPressのテスト環境の作り方
  2. git pull してもエラーが出てファイルが反映されないときの対処法
  3. サイト制作の要件定義書に普段書いている内容(ダウンロード可)
  4. WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
  5. ダウンロードして即使えるサイトマップ(サイト構成図)のテンプレート5点
  6. Elementorで表を作る3つの方法

最初のサイドバー

WordPress保守管理サポート

Search

最近の投稿

  • WordPress サイトを多言語化するプラグイン5選(自動翻訳サービス除く)
  • ウェブサイトを自動的に多言語対応する各サービスを比較します
  • WooCommerce のバリエーションのある商品を追加して売上向上を図る
  • 目次生成プラグインの TOC+ が表示されなくなったときの対処法
  • ChatGPT の有料版「ChatGPT Plus」を使ってみた

カテゴリー

  • CSS初心者
  • HTML初心者
  • TIPS
  • WooCommerce
  • WordPress
  • エステサロン
  • お知らせ
  • キュレーション
  • サイトマップ
  • システム会社
  • デベロッパーツール入門
  • ブログ
  • ホームページ制作
  • ホームページ制作無料講座
  • メール
  • モバイル
  • 仕事のこと
  • 制作実績
  • 整体院
  • 美容院
  • 雑感

タグ

Android BtoC CMS css elementor git Google+ google workspace Gutenberg HTML iPhone jQuery Mac MAMP php SEO SNS SSL Sublime Text Webサイト高速化 Windows WordPress WordPressカスタマイズ WordPressテーマ WordPress構築調査 WPRocket アクセス解析 アプリ クラウドソーシング サイト引っ越し サブスクリプション サーバー ショートカットキー スマホサイト スマートフォン ツール フルサイト編集 ブログ プラグイン マーケティング リニューアル 保守管理 多言語 最適化 集客するサイト構築

アーカイブ

CONTACT

お問い合わせはこちら

Footer

  • PRIVACY POLICY
  • 情報セキュリティ基本方針
  • 特定商取引法に基づく表示
  • 転載/引用

© 2023 high five create All rights reserved.