納品済みサイトの脆弱性診断、WPScanとAIに任せてみたら「見つける」のは一瞬だったが「本当に危険か」の判断は結局人力だった話

AIツール比較・レビュー

悩み:納品後のサイト、脆弱性対策をどこまでやるべきか分からない

2026年7月、WordPress本体の重大な脆弱性が立て続けに公開され、それを組み合わせた攻撃手法まで話題になった。ニュースを見て真っ先に思ったのは「うちが納品したサイト、全部大丈夫だろうか」ということだった。

保守契約を結んでいるサイトはまだいいとして、納品して契約が切れたサイトや、更新頻度の低い小規模サイトまで含めると、正直すべてを手作業でチェックする余裕はない。かといって「たぶん大丈夫」で放置するのも怖い。そこで、脆弱性のスキャンとその後の判断を、ツールとAIにどこまで任せられるか試してみた。

結論を先に言うと、無料の脆弱性スキャンツール「WPScan」は既知の脆弱性を機械的に洗い出すのが速く、その結果をAIに読ませると専門用語だらけのレポートを一般向けの言葉に翻訳し、対応の優先順位まで提案してくれた。ただし、「本当に今すぐ危険なのか」「このクライアントにとって直す価値があるのか」という最終判断は、結局サイトの中身を自分の目で確認しないと下せなかった

TOI

TOI

「Critical」の文字を見た瞬間、心臓に悪かった……よく見たら使ってないプラグインの誤検知だった

なぜWPScanとAIの組み合わせを試したか

WPScanはWordPress専用の脆弱性データベースを持つスキャンツールで、公式サイト(wpscan.com)から無料のオンライン診断を使えば、対象サイトのURLを入力するだけで、使用中のプラグイン・テーマ・WordPress本体のバージョンを既知の脆弱性情報と照合し、レポートを出してくれる。エンジニアでなくても入力自体は数分で終わる。

ただし出てくるレポートは「CVE-2026-xxxxx」のようなID表記や深刻度スコアが並ぶだけで、非エンジニアはもちろん、普段コードを書かない立場の人が見ても「結局何をすればいいのか」がすぐには分からない。この「翻訳」と「優先順位づけ」の部分をAI(ChatGPT)に任せられないか試すことにした。

実際にやってみた

やった手順

  1. WPScanの無料オンライン診断に、保守契約が切れて久しい過去の納品サイト(テスト用に自分が管理しているもの)のURLを入力
  2. 出力されたレポート(検出プラグイン・脆弱性ID・深刻度)をそのままコピーし、ChatGPTに貼り付け
  3. 「非エンジニアのクライアントに説明する文章に直して」「対応の緊急度を高・中・低で分類して」と指示
  4. AIが「高」に分類した項目について、実際に管理画面でプラグインの利用状況・最終更新日を自分の目で確認

AIが速かったこと

WPScanのレポートをそのまま貼り付けただけで、専門用語の解説から緊急度の整理までを数十秒でやってくれた。

  • 「クロスサイトスクリプティング(XSS)」のような専門用語を、「悪意のあるコードが管理画面を乗っ取る可能性がある不具合」のように言い換えてくれる
  • 検出された複数の脆弱性を、深刻度スコアをもとに「高・中・低」で機械的に分類
  • クライアント向けの報告メール文面まで、その場で下書きしてくれる
  • 「まずプラグインAとBを更新すれば、リスクの大半は解消される」という優先順位の提案

レポートの「翻訳」と「クライアントに伝える文章の下書き」については、AIに任せて明確に時短になった。ここは正直、これまで自分で調べながら書いていた時間がまるごと浮いた。

AIに任せきれなかったこと

一方で、AIが「高」に分類した項目のうち、実際に確認すると誤検知だったものが複数あった。

  • WPScanがバージョン番号だけで機械的に脆弱性ありと判定していたプラグインが、実は数ヶ月前にすでに手動でパッチ済みだった(バージョン表記が更新されていなかっただけ)
  • 「脆弱性あり」と出たプラグインが、実際には管理画面上で無効化されたまま放置されているだけで、攻撃対象にすらなっていなかった
  • 逆に、AIが「中」程度に扱った項目の中に、そのサイト特有のカスタムコードと組み合わさると実際には影響範囲が大きくなるものがあった

AIはWPScanの出力結果というテキスト情報だけを根拠に優先順位をつけているので、「そのプラグインが実際に使われているか」「サイト固有の改修が入っていないか」という、管理画面を開かないと分からない情報までは判断できない。ここは結局、一件ずつ自分の目で確認する作業を省略できなかった。

TOI

TOI

結局「無効化されてるだけのプラグイン」を見に行く手間は、AIには肩代わりしてもらえなかった

結局どこまで任せていいか:クライアントの状況別に整理する

やってみて分かったのは、脆弱性診断そのものより「診断結果をどう扱うか」の部分でクライアントごとの事情が大きく違うということだった。

保守契約中で、すぐに対応できるサイトの場合
WPScan+AIの優先順位づけをほぼそのまま採用してよい。高リスクと出たプラグインから順に更新し、AIが下書きしたクライアント向け報告文面を使い回せば作業は速い。

保守契約が切れていて、更新作業自体に別途費用が発生するサイトの場合
AIの「高・中・低」だけで判断せず、まず自分でプラグインの利用実態を確認してから、本当に対応が必要な項目だけに絞り込む必要がある。ここを省くと、クライアントに「大したことないのに大げさに請求された」と思われかねない。

カスタム開発・独自改修が多いサイトの場合
AIの深刻度判定をそのまま信じず、該当プラグインが他のカスタムコードとどう連携しているかをテスト環境で確認してから対応する必要がある。ここは自動化できないと割り切った方がいい。

クライアントサイトのアクセシビリティ診断、AIチェックツールに任せてみたら「機械的な不備」は一瞬で見つかったが「本当に使えるか」の判断は結局人力だった話
悩み:「うちのサイト、アクセシビリティ大丈夫ですか?」に即答できないここ1年くらいで、納品後のクライアントから聞かれる質問が変わってきた。「スマホでも見やすくしてください」ではなく、「うちのサイトってアクセシビリティ的に問題ないですか?」と...

まとめ

  • WPScanの無料オンライン診断は、非エンジニアでもURLを入力するだけで既知の脆弱性を機械的に洗い出せる
  • AIに診断結果を読ませると、専門用語の翻訳・緊急度の分類・クライアント向け報告文面の下書きまで数十秒でやってくれ、ここは明確に時短になる
  • ただし、AIの判定はテキスト上の脆弱性情報だけが根拠のため、誤検知や「実際にそのプラグインが使われているか」といったサイト固有の事情までは拾ってくれない
  • 次のアクションとしては、AIが「高」と分類した項目をそのまま報告するのではなく、対応前に必ず管理画面で利用状況を確認するワンクッションを挟むと、誤検知に基づく過剰対応やクライアントの不信感を防げる

コメント

タイトルとURLをコピーしました