緊急PHPに致命的な脆弱性(CVSS 9.2)。サポート切れの PHP 7.4・8.0・8.1 向け修正(ソースのみ)が php-src に公開最新情報 ›
無料で相談する

Webサイトの脆弱性診断とは|中小企業のWordPressサイトで何を調べるか

公開:10/22 00:18更新 (日本時間)Webセキュリティ診断センター 編集部約9分で読めます
Webサイトの脆弱性診断とは|中小企業のWordPressサイトで何を調べるか
#脆弱性診断#WordPress#PHP
この記事の要点
  • 脆弱性診断は、脆弱性(セキュリティ上の欠陥)の知見を持つ人が、Webサイトやサーバーに弱点がないかを調べるサービスです。経済産業省の基準では、Webアプリケーション・プラットフォーム・スマートフォンアプリの3つに分かれます。
  • php2shellのようなPHP本体の脆弱性は、フォームやログイン画面を調べる診断だけでは分かりません。サーバー側のソフトとそのバージョンも見る必要があります。
  • ペネトレーションテストは、攻撃者と同じ手法で「実際に目的を達成できるか」を試すもので、脆弱性診断の一種という位置づけです。
  • 診断で何も見つからなくても、安全の証明にはなりません。ツールでの診断は、サイトを止めたり不要なデータを登録したりすることがあるので、サーバーの管理者の許可を取ってから行います。

脆弱性診断とは

経済産業省の「情報セキュリティサービス基準」では、脆弱性診断サービスを「システムやソフトウェア等の脆弱性に関する一定の知見を有する者が、システムやソフトウェア等に対して行う」サービスと定め、次の3つに分けています[経済産業省の基準(IPAの基準適合サービスリストより)]。

Webサイトに当てはめると、次の図のようになります。Webアプリケーションは、問い合わせフォームやログイン画面など、サイトの機能そのものです。プラットフォームは、そのアプリを動かしているOSやWebサーバー、PHPなどのソフトを指します。

Webアプリケーション、ミドルウェア・言語、OS・サーバーの3層と、Webアプリケーション脆弱性診断・プラットフォーム脆弱性診断が見る範囲の対応
図1 脆弱性診断の種類と、調べる範囲(Webサイトに当てはめた例)

IPA(情報処理推進機構)の「安全なウェブサイトの作り方」も、同じように2つに分けて対策を説明しています。1章はWebアプリケーションの作り方の対策で、SQLインジェクションやクロスサイト・スクリプティングなどを扱います。2章は運用の対策で、Webサーバーについては「OSやソフトウェアの脆弱性情報を継続的に入手し、ソフトウェアの更新や問題の回避を行」うよう求めています[IPA「安全なウェブサイトの作り方」]。

PHP本体の脆弱性は、どの診断で分かるか

2026年10月21日に修正版が出たphp2shell(CVE-2026-109618 / CVE-2026-109619)は、PHP本体の脆弱性です。PHP公式は、Webのリクエストを処理するすべてのPHPが対象で、mod_phpではアプリのコードが動く前に攻撃が成立することが実証されているとしています[php.net]。

このような脆弱性は、フォームやログイン画面の作りを調べても見つかりません。図1でいえば、アプリではなく「ミドルウェア・言語」の層の問題だからです。確かめるのは、サイトを動かしているPHPのバージョンと、修正版が当たっているかどうかです。レンタルサーバーなら管理画面やWordPressのサイトヘルスで確認できます。手順は「PHPのバージョンを確認する方法」にまとめています。

反対に、PHPを最新にしても、フォームやプラグインの作りに問題があれば、その問題は残ります。どちらか一方を見れば済むわけではありません。

ペネトレーションテストとの違い

ペネトレーションテスト(侵入試験)は、同じ基準で次のように定められています[経済産業省の基準(IPAの基準適合サービスリストより)]。

脆弱性診断のサービスの定義を満たすサービスのうち、攻撃者が実際に侵入等を行うために用いる手法と同様の手法により、アプリケーション、システム、又はネットワークのセキュリティ機能を回避して攻撃の目的を達成できるかの観点から試験を行い、その結果をもとに助言を行うサービス

つまり、ペネトレーションテストは脆弱性診断の一種です。弱点がどこにあるかを調べるのが脆弱性診断で、そのうち「攻撃者と同じやり方で、実際に目的まで届くか」を試すのがペネトレーションテストです。IPAの基準適合サービスリストでも、ペネトレーションテストは脆弱性診断のオプションとして別に載っています[IPA]。

脆弱性診断は知見を持つ者がシステムやソフトウェアを調べるもの、ペネトレーションテストは攻撃者と同じ手法で目的を達成できるかを試すもの、という比較
図2 脆弱性診断とペネトレーションテストの違い

診断のやり方とツール

ツールの診断と、人の手の診断

診断には、診断用のツールで多数のパターンを自動で送る方法と、診断員が画面を操作しながら確かめる方法があります。IPAの基準適合サービスリストに載っているサービスの説明にも、ツールによる自動診断をもとに、診断員の手動診断を組み合わせるとしているものがあります[IPAのリストに載った各社のサービス概要]。

診断項目の目安:IPA「ウェブ健康診断仕様」

Webアプリケーションで何を調べるかの目安として、IPAは「ウェブ健康診断仕様」を公開しています。もとは地方自治情報センター(LASDEC)が自治体のサイト向けにまとめた診断の仕様で、次の13項目について、検出のパターンと判定の基準を示しています[IPA「ウェブ健康診断仕様」]。

記号診断項目記号診断項目
ASQLインジェクションH意図しないリダイレクト
Bクロスサイト・スクリプティングIHTTPヘッダ・インジェクション
CCSRF(クロスサイト・リクエスト・フォージェリ)J認証
DOSコマンド・インジェクションKセッション管理の不備
Eディレクトリ・リスティングL認可制御の不備、欠落
Fメールヘッダ・インジェクションMクローラへの耐性
Gパス名パラメータの未チェック/ディレクトリ・トラバーサル

この仕様は、IPA自身が「基本的な対策が出来ているかどうかを診断するもの」と説明しています。全ページではなく抜き取りで調べ、検査パターンも絞っているため、一般の脆弱性診断サービスより簡素だとしています[IPA「ウェブ健康診断仕様」]。

自分でツールを使う前に
IPAは、診断によって対象のサイトが止まったり、意図しないデータが登録されたりする可能性があると注意しています。サイトが止まると、同じ設備を使っている別のサイトにも影響が出ることがあるため、サーバーやデータセンターの管理者の許可を事前に得るよう求めています[IPA「ウェブ健康診断仕様」]。共用のレンタルサーバーでは、ほかの利用者のサイトも同じサーバーで動いています。無断で診断ツールを当てないでください。

WordPressのサイトで何を調べるか

WordPress.orgのセキュリティの手引き(Hardening WordPress)は、弱点が入りやすいところとして次を挙げています[WordPress.org「Hardening WordPress」]。診断を頼む前に、自社でも確かめられる項目です。

確かめるところ手引きに書かれていること
WordPress本体常に最新のバージョンにする。古いバージョンにはセキュリティの更新が出ない
プラグイン・テーマ信頼できない入手先のものを使わない。更新を続け、使っていないものは削除する
サーバーのソフトWebサーバーとその上のソフトを、安全で安定したバージョンで動かす。またはそれを管理してくれるホスティングを使う
ファイルの権限書き込みの権限を絞る。管理画面からPHPファイルを編集できなくする設定(DISALLOW_FILE_EDIT)も検討する
パスワードとログイン推測されにくいパスワード、「admin」のようなユーザー名を避ける、2段階認証、FTPではなくSFTPを使う
バックアップと監視データベースを含めて定期的に取り、日付の違う複数の世代を残す。サーバーのログやファイルの変更を見る

手引きは、ホスティング会社が設備を管理していても、利用者が入れたアプリ(WordPress本体、プラグイン、テーマ)には責任を持たないと書いています。また、共用サーバーでは、同じサーバーの別のサイトが原因で自分のサイトまで被害を受けることがあるとしています[WordPress.org「Hardening WordPress」]。レンタルサーバーを使っている場合、PHP本体の更新はサーバー会社の告知で確かめ、診断ではアプリの側を中心に見るのが現実的です。

依頼するときに確かめること

事業者を選ぶ目安

IPAは、経済産業省の「情報セキュリティサービス基準」に適合したサービスの一覧(情報セキュリティサービス基準適合サービスリスト)を公開しています。審査登録機関の審査を通り、IPAに誓約書を出した事業者のサービスが載り、「脆弱性診断サービス」の区分もあります[IPA]。2026年10月9日にも一覧が更新されています。

ただし、IPAは掲載について「いかなる保証等をも意味するもの」ではないとしています。審査と判定は日本セキュリティ監査協会(JASA)が行っています[IPA]。一覧は選ぶときの手がかりの一つとして使い、中身は見積もりの段階で確かめます。

見積もりでそろえておくこと

対象を決める、許可と日時、診断、報告書、修正と再診断の5段階の流れ
図3 脆弱性診断を頼むときの流れ

料金は事業者ごとに決まっていて、公的な機関がまとめた相場は見つけられませんでした。上の条件をそろえたうえで、複数の見積もりを比べてください。

診断で脆弱性が見つかったら

報告書には、脆弱性ごとに危険度が書かれます。CVSS(脆弱性の深刻度を表す共通の物差し)の点数で示されることもあります。数字の読み方は「CVSS 9.2ってどれくらい危ない?」で説明しています。

直し方について、IPAの「安全なウェブサイトの作り方」は、脆弱性の原因そのものをなくす「根本的解決」と、攻撃による影響を減らす「保険的対策」を分けています。理想は根本的解決ですが、費用や時間の都合ですぐにできない場合は、保険的対策が暫定対策として働くとしています[IPA「安全なウェブサイトの作り方」]。WAF(不正な通信を止める仕組み)や設定の変更は、脆弱性の原因そのものはなくさないので、この分け方では保険的対策にあたります。

診断の途中で、見覚えのないファイルなど、すでに侵入された形跡が見つかることもあります。その場合の確かめ方と初動は「Webサイトが乗っ取られていないか確かめる方法」をご覧ください。

よくある質問

診断で何も見つからなければ、安全ですか?

安全とは言い切れません。IPAは、検査パターンを絞った診断では、脆弱性が検出されなかった場合でも「安全宣言には繋がりません」としています。反対に、検出された脆弱性が実際には脆弱性ではない可能性もあるとしています[IPA「ウェブ健康診断仕様」]。

レンタルサーバーでも、サーバー側の診断は必要ですか?

共用のレンタルサーバーでは、PHP本体の更新はサーバー会社が行うことが多く、利用者が選べるのは管理画面のPHPのバージョンなどに限られます。また、前述のとおり、管理者の許可なくサーバーに診断ツールを当てることはできません。自社で確かめるのは、選んでいるPHPのバージョンと、サーバー会社の告知です。VPSや専用サーバーを自社で管理している場合は、サーバー側も診断の対象に入れます。

WordPressを最新にしていれば、診断は要りませんか?

WordPress本体を最新にしても、プラグインやテーマ、独自に作ったフォーム、サーバーのPHPに問題があれば残ります。php2shellのように、WordPressをどれだけ新しくしても防げない脆弱性もあります。

脆弱性診断のご相談は、Webセキュリティ診断センターへ
WordPressやPHPで動くサイトの脆弱性診断、PHPのバージョン確認と更新、見つかった問題の修正までお受けします。何を調べればよいか分からない段階からご相談ください。無料相談はこちら

参考にした情報

貴社のサイトに合った対応をご案内します!
まずは、お気軽にご相談ください。

お問い合わせ・お見積りはこちら
無料で相談する最新情報を見る