WordPress脆弱性診断
URLを入れるだけで、使っているプラグイン・テーマ・WordPress本体のバージョンを検出し、 公開されている脆弱性データベースと1件ずつ照合します。 該当した場合は、CVE番号、深刻度、悪用の実績、どのバージョンに上げれば解消するかまで表示します。 バージョンが特定できない拡張は「不明」と表示し、判定は行いません。
診断はご自身が管理するサイトに対して実行してください。行うのは公開ページへの通常のアクセスのみで、ログイン、総当たり、脆弱性の実際の悪用は一切行いません。
この診断で分かること
公開されているページを読み取り、使われているプラグイン・テーマ・WordPress本体とそのバージョンを特定します。 特定できたものについて、公的な脆弱性データベースと1件ずつ照合し、該当した場合は CVE番号、深刻度、悪用の実績、修正版を表示します。あわせて、debug.log やバックアップファイルの露出、 ディレクトリ一覧の表示、ユーザー名の露出、HTTPSの状態など、攻撃の下調べに使われる情報が 公開状態になっていないかを確認します。
どうやってプラグインを特定しているか
4つの方法を併用しています。1つ目は、読み込まれているCSSとJavaScriptのURLです。 /wp-content/plugins/ の下にあるフォルダ名が、そのままプラグインの識別名になります。 2つ目は、ページ内に残る固有の記述です。製品ごとに決まったコメント、クラス名、 JavaScriptの設定名が出るため、そこから製品を言い当てます。 3つ目は、REST APIが公開している名前空間です。4つ目は、応答ヘッダです。
1つ目だけに頼っていると、高速化プラグインがCSSとJavaScriptを1つに結合している サイトでは、プラグイン名がURLから消えて何も分からなくなります。 2つ目以降を併用しているのは、この取りこぼしを減らすためです。 フォルダ名を wp-content から変更している構成や、Bedrock のような配置にも対応しています。
それでも、表側に何も出力しないプラグイン (バックアップ、メール送信、リダイレクトなど) は 外から特定できません。表示される件数は、実際に入っている数より少なくなります。 完全な一覧が必要な場合は、管理画面の プラグイン 一覧をご確認ください。
判定に使っているデータ
独自の判定基準ではなく、公開されている一次情報を取り込んで使っています。
- NVD (米国国立脆弱性データベース): 脆弱性本体の情報と影響バージョン。CVE番号の一次情報です。
- Wordfence Intelligence: WordPress専門の脆弱性データ。CVE未採番のものや、修正版バージョンを補完します。
- CISA KEV: 実際に悪用が確認されたかどうか。深刻度だけでは分からない優先順位の判断に使います。
- EPSS (FIRST.org): 今後30日以内に悪用される確率。
- WordPress.org: プラグイン・テーマの実在確認、最新版、最終更新日。
なぜ更新していないだけで狙われるのか
攻撃は、価値のあるサイトを選んで行われるのではありません。既知の脆弱性が残っているサイトを、 機械的に探して行われます。規模も業種も条件になりません。 被害の大半は、未知の攻撃ではなく、修正版が出ているのに更新していない拡張から起きています。 復旧には調査・駆除・再構築が必要で、多くの場合、事前に更新しておくより高くつきます。
診断でサイトに負荷はかかりますか
公開ページへの通常のアクセス (GET) だけを行います。1回の診断で対象サイトへ送るリクエストは最大40件、 同時実行は4件までに制限しています。通常の閲覧者が数ページ見るのと同程度です。 認証の突破、総当たり、脆弱性の実際の悪用は一切行いません。 露出しているファイルを見つけても、その内容の取得と表示は行わず、ファイル名だけを報告します。 ユーザー名は列挙できるか否かだけを判定し、取得した名前は保持も表示もしません。
入力したURLはどう扱われますか
診断の件数を数えるため、ホスト名を復元できない形に変換した値と、診断の日時のみを記録します。 URL全体、利用者のIPアドレス、メールアドレスは保存しません。 同じサイトが1時間以内に診断されていた場合は、そのときの結果を表示します。対象サイトへの読み込みを増やさないためです。