サイト当番 ホームページ保守運用

Notes

WordPress脆弱性診断|
プラグインとWPScan

脆弱性診断を走らせている様子

診断は、穴の開け方を試す作業ではありません。自分のサイトの版と、公開されている弱点の一覧を照合し、更新するか止めるかを決める作業です。一覧の読み方は脆弱性の記事にあり、こちらは診断の進め方と結果の見方を書きます。

WordPress脆弱性診断で分かること

分かるのは、本体とプラグインとテーマの版が、公開済みの弱点一覧に載っているかどうかです。分からないのは、その弱点が自分のサイトで実際に使われたかどうか、カスタムで足したコードの穴、サーバー設定の穴、人のパスワードの弱さです。診断結果が静かでも、使い回した管理者パスワードはそのままです。逆に、診断が多数の警告を出しても、すでに更新済みで影響が無い項目が混ざることがあります。

版の照合と状態の照合

診断の本体は照合です。自分のサイトが今どの版か、その版に公開された弱点があるか、修正版が出ているか。この3つが揃って初めて「更新する」「止める」「様子を見る」を選べます。版が分からない診断は、推測です。管理画面の更新画面、プラグイン一覧、サイトヘルスは、版を知るための起点になります。公開面だけを見て版を当てにいく作業は、他人のサイトへ向けると侵害になります。自分の管理画面で版を見てください。

状態の照合は、有効か停止か、実際に読み込まれているかです。停止したプラグインの古いファイルが残っていると、診断は警告を出し続けます。警告を消すために診断を止めるのではなく、使っていないファイルを外す判断へ進んでください。有効なまま古いものは、更新の対象です。停止したまま古いものは、削除の対象です。この切り分けが、診断を見たあとの作業です。

診断の結果を「点数」で社内へ報告しないでください。点数は、使っていないプラグインの警告で下がり、必要な更新が埋もれます。報告するなら、公開面に届く遅れが何件か、修正版がある遅れが何件か、自分で止めたものが何件か、の3つです。3つが書ければ、診断ツールの画面を添付する必要はありません。画面の添付だけが回ると、次の週も同じ画面が再送されます。

診断が触れない範囲

会員だけが見る画面、決済の外部、メールの転送、サーバーの古いPHP、バックアップ置き場の権限。これらは診断プラグインの対象外であることが多いです。対象外を「問題なし」と読まないでください。PHPの版はサイトヘルスとホストの画面で見て、プラグインの弱点とは別に扱います。バックアップ置き場が公開ディレクトリにあるかは、診断ではなく配置の確認です。

診断は、改ざんの有無を断定しません。弱点があることと、すでに書き込まれていることは別です。書き込みの兆候は改ざんの記事で見てください。診断で弱点が出たからといって、当日中に全部を更新する判断も、何もしない判断も、両方とも雑です。影響の範囲と、更新で壊れやすい機能を見てから適用します。

脆弱性診断を無料で始める範囲

無料で先にできるのは、管理画面の更新通知、プラグインとテーマの公式ページ、公開されている弱点一覧との突き合わせです。外部の診断サービスを契約する前に、この3つで版の遅れを洗い出せます。遅れの一覧が作れないまま有料診断へ進むと、結果の読み方が分からないまま警告だけが増えます。無料の範囲で一覧を作ることが、診断の準備です。

管理画面で出す一覧

更新画面に出る本体、プラグイン、テーマを、名前と今の版と提供元で書き出してください。提供元が公式ディレクトリでないものは、別の行にします。サイトヘルスの推奨にPHPの版や、古いAPIの指摘が出ることがあります。指摘の文言をそのまま信じず、自分のサイトで使っている機能かを見てください。使っていない機能の警告は、更新の優先度を下げられます。

停止中のプラグインも一覧に入れてください。無料の開始範囲で抜けやすいのは、停止中です。公開面には出ていなくても、ファイルが残っていれば入口になり得ます。一覧の列は、名前、版、有効か停止か、最終更新の確認日、公式に修正版があるか、です。この表が無い診断は、結果を貼る場所がありません。

公式の案内との突き合わせ

各プラグインの公式ページには、更新履歴と、対応する本体の版が書かれています。自分の本体より新しい本体を要求する更新は、先に本体側の確認が必要です。弱点の公開情報は、プラグインの脆弱性チェックで見る手順に分けています。ここでは、無料の開始範囲が「診断ツールを入れること」ではなく「版の表を作ること」だと押さえてください。

他人のサイトを対象にした無料診断はしないでください。自分の管理権限があるサイトだけが範囲です。公開されているデモや、取引先のサイトを、許可なく診断の対象にしないでください。許可がある場合も、相手の営業時間と、負荷の出方を先に確認します。負荷試験と診断を混ぜないでください。許可の範囲を超えた版の収集もしないでください。

脆弱性診断プラグインの手順

診断用のプラグインを入れるなら、公式ディレクトリからにしてください。診断のためだけに、出自の分からない製品を足さないでください。入れる前に、バックアップの成功を確認します。診断プラグインは読み取りが中心でも、サイトの負荷と、管理画面の権限を増やします。管理者以外が設定を触れないことを、有効化の直後に見てください。

入れる前と入れた直後

いま動いているセキュリティ系のプラグインと役割が重なることがあります。同じ種類を重ねると、管理画面が重くなり、誤検知が増えます。すでにスキャンがあるなら、新しい診断を足す前に、既存の結果を先に読んでください。結果が残っていないなら、既存を残したまま新しいものを足すより、どちらを主にするかを決めてください。

有効化したら、全ファイルを対象にした自動修復はオフのままにしてください。自動で消す設定は、正規のカスタムまで巻き込みます。最初の実行は、読み取りと報告だけにします。実行時刻は、フォームが集中する時間を外してください。共用サーバーでは、実行中に公開面が遅くなることがあります。遅さが残るなら、対象をディレクトリ単位に分けます。

結果の残し方

結果は、画面のまま保存し、ファイル名と理由の列がある表へ移してください。プラグインの画面だけに残すと、プラグインを止めたときに結果も消えます。表の列は、対象、警告の種類、公式の修正があるか、自分の判断、実施日です。判断の欄が空の警告は、見ていない警告です。数が多くても、判断が空なら診断は終わっていません。

誤検知と思われる項目も、消さずに「誤検知の理由」を書いて残してください。同じファイルが翌月も出るなら、除外設定より、そのファイルの役割を確認する方が先です。除外を安易に増やすと、本当の差し込みも除外されます。診断プラグインの除外は、確認した正規カスタムに限ってください。

WPScanでのWordPress脆弱性診断

WPScanは、公開されている弱点の一覧と、WordPressの版情報を照合するための名前として知られています。この記事では、他人のサイトへ向けて走らせる使い方や、入口を探して試す操作は書きません。自分のサイトの版を管理画面で確認し、公式に公開されている弱点一覧と突き合わせる範囲だけを扱います。突き合わせに使う一覧の見方は、製品側の公開資料と、脆弱性の一覧の見方に従います。

調べ方

調べる対象は、自分の本体の版、有効なプラグインの名前と版、使っているテーマの名前と版です。版は管理画面から書き出してください。書き出した版を、公開されている弱点一覧の該当項目と照らします。載っていないものは「無い」ではなく「その一覧の範囲では見つかっていない」です。一覧の更新が遅れていることもあるので、公式の更新履歴と並べて見てください。

プラグインの名前が似ているものは、提供元まで見てください。同名に近い配布が複数あると、別人の弱点を自分のものと取り違えます。テーマの子テーマは、親の版も書いてください。親が古いと、子だけ新しくても親側の弱点が残ります。調べた日を表に残すと、翌月の差分が見えます。

結果の見方

結果に出るのは、弱点の識別子、影響する版の範囲、修正された版、深刻さの目安、です。識別子がある項目は、公式の説明を開いて、自分の使い方に関係するかを読んでください。関係しない機能の弱点は、優先度を下げられます。関係する機能で、修正版が出ているなら、更新の対象です。修正版が無く、そのプラグインが必須でないなら、停止と削除の対象です。

深刻さの数字だけを見て全部を止めないでください。数字が高くても、自分のサイトではその機能を使っていないことがあります。逆に数字が低くても、公開フォームに直結する弱点なら先に扱います。見方の軸は、自分の公開面に届くか、管理画面に届くか、すでに修正版があるか、の3つです。3つを書けない結果は、まだ読んでいない結果です。

WPScanの名前で検索すると、入口の洗い出しや試行の手順が出てきます。それらはこの記事の範囲外です。自分のサイトを守るために必要なのは、版と公開情報の照合と、更新か停止かの判断です。試行の手順を自分のサイトへ向ける作業は、診断ではなく侵害の練習になります。管理画面で版が分かるなら、その版で十分です。

照合で「影響する版の範囲」が自分の版をまたいでいるときだけ、更新か停止かを当日の判断に上げてください。範囲の外なら、表に「対象外」と日付を書いて翌月へ送ります。範囲の内外が読めない説明文は、翻訳を急いで当てないでください。読めない項目は保留にし、公式の修正版の有無だけ見てください。修正版があるなら更新側、無いなら停止の検討側です。両方無い珍しい項目は、そのプラグインを使い続ける理由を先に書いてから残します。

一覧に識別子が無い警告は、ツールの独自判定です。独自判定を公開一覧と同じ列に混ぜないでください。混ぜると、翌月に公式へ照らす作業ができません。独自判定は「中のスキャンで出た」列へ分け、ファイルの場所と、公式核かどうかだけを書いてください。公式核なら配布との比較、追加領域なら自分たちの追記かどうかを見ます。比較の前に上書きしないことは、改ざんの記事と同じです。

脆弱性診断プラグインとWPScan

診断プラグインは、サイトの中からファイルと版を見ます。WPScanの照合は、公開情報と版を外から突き合わせる考え方です。どちらも、更新の判断材料です。どちらか一方を入れれば十分、という関係ではありません。中のスキャンは、公式に載っていない差し込みを見つける手がかりになります。外の照合は、公開済みの弱点を見逃しにくいです。

使い分け

日常の確認は、管理画面の更新通知と、診断プラグインの読み取り結果で足ることが多いです。公開された弱点の名前を指定して確認したいときに、版と公開一覧の照合を足します。照合のために新しいツールを毎回入れないでください。入れるたびに権限と負荷が増えます。版の表さえあれば、照合は表と公開情報で足ります。

両方の結果が食い違うときは、版の取り違えを先に疑ってください。診断プラグインが見ているディレクトリと、自分が公式だと思っているプラグインが違うことがあります。同名の残りファイル、むかしの複製、子テーマの親。食い違いを「ツールの勝ち負け」にしないでください。ディレクトリの実体を見て、表の行を直します。行を直した日も残すと、翌月同じ食い違いが出たときに、前回の結論を繰り返さずに済みます。

重ねすぎない

診断系を3つも4つも入れると、警告の言語が揃わず、どれを信じるかで時間が溶けます。主を1つ、照合用の公開一覧を1つ、にします。主を変えるときは、古い結果の表を残してからにしてください。主を消した瞬間に、先月の判断根拠が消えます。セキュリティの設定そのものは、管理画面の記事で別に進めてください。診断を厚くしても、ログインの弱い状態は残りません。主を変えた理由も1行で残すと、翌月また別のツールを足す判断を止められます。

WordPress脆弱性診断の結果

結果を見たら、更新する、止める、残す、の3つに振り分けてください。振り分けの前に全部適用すると、フォームや会員が止まります。振り分けのあとに何も適用しないと、診断した意味がありません。振り分けの記録は、実施日と戻し方まで書いてください。戻し方が無い更新は、障害の当日に切れます。

更新する

修正版が出ていて、自分の使い方に関係し、バックアップが取れているもの。適用前に、影響する画面を1つ決めてください。適用後にその画面が開くか、フォームが届くかを見ます。本体の更新は、プラグインより先か後かを、互換の案内で決めてください。案内が無い場合は、テスト用の複製があるならそちらで先に見ます。複製が無いなら、更新の件数を一度に増やさないでください。

更新で画面が崩れたら、その更新だけ戻し、他の成功した更新まで戻さないでください。全部戻すと、閉じた弱点がまた開きます。戻したプラグインは、代替があるかを公式で見て、無ければ機能を止める判断へ進みます。判断がつかないものは、結果の表に「保留」と理由を書いて、次の週へ持ち越してください。保留が1ヶ月を超えるものは、実質の放置です。

止める残す

止める対象は、使っていないプラグイン、修正版が無く必須でもないもの、提供元が分からないものです。停止したあとにファイルを残さないでください。残す対象は、自分たちのカスタムで、警告が誤検知と確認できたものです。残す場合は、除外理由を表に書きます。理由が「面倒だから」では残さないでください。

結果の共有は、警告の生画面をそのまま経営へ投げないでください。公開面に届くか、今すぐ止める必要があるか、いつ実施するかを添えます。生画面だけが回ると、全部止めてくれ、という指示だけが残ります。診断の結果は、運用の判断材料です。判断材料を恐怖の材料にしないでください。

脆弱性診断無料の限界

無料の範囲は、版の遅れと、公開済みの弱点の照合までです。すでに書き込まれているかの断定、カスタムコードの穴、人の権限、サーバーの設定、検索側の警告解除は、無料診断の外です。無料で静かだったことを「安全証明」として使わないでください。証明ではなく、遅れの洗い出しです。

見逃しやすいもの

停止中の古いファイル、複製ディレクトリ、公式に載らない独自プラグイン、テーマの直接編集、アップロード配下の実行ファイル。無料の更新画面は、これらを全部は出しません。ディレクトリの一覧を、ホストの画面で月に一度見てください。見慣れない名前があれば、診断の結果表に行を足します。行を足さない限り、無料の限界の外に置かれたままです。

パスワードとユーザーは、診断ではほぼ見えません。弱い管理者と残った担当は、弱点一覧が空でも入口です。診断の翌週に、ユーザー一覧を見てください。診断と権限確認はセットです。セットにしない運用は、ツールだけが新しい状態です。

有料や外部へ進む前

外部の診断を頼む前に、版の表と、自分で実施した更新の記録を渡せる状態にしてください。記録が無いと、外部の結果と自分の状態が接続しません。外部へ進む理由は、自分で照合し切れない件数、カスタムが多い、すでに兆候がある、のどれかです。件数だけが多いなら、まず使っていないプラグインを減らしてください。減らしたあとの表の方が、外部の時間も短くなります。

無料の診断結果を、契約の安心材料としてお客さまへ出さないでください。無料は遅れの洗い出しであり、改ざんが無いことの証明ではありません。証明が必要なら、監視と更新の記録が残る運用へ載せてください。結果のPDFだけを保管しても、翌月の版が変わればそのPDFは古くなります。残すなら、版の表と実施日です。PDFの枚数を増やす作業は、診断の限界を埋めていません。

無料の範囲でPHPの案内が出ても、ホストの画面を見ずに上げないでください。上げる前に、使っているプラグインが新しいPHPで動くかを公式で見ます。見ないまま上げると、診断の警告は減っても公開が止まります。止まるリスクがある更新は、バックアップの成功を見てからにしてください。成功が確認できない週は、診断の表に「PHPは保留」と書いて、警告の数字を無理に下げないでください。

WordPress脆弱性診断が自分で難しいとき

版の表が作れない、結果の振り分けができない、更新で壊れそうで手が止まる。この段階では、診断プラグインを増やさないでください。公開URL、プラグインの一覧、更新が止まっている期間、すでに出ている警告を書いて、サイト改ざん・マルウェア駆除へ送ってください。兆候があるなら緊急の税別29,800円から、兆候が無く日常の監視へ載せるならスタンダード月額17,800円以上です。

渡す前に増やさないもの

新しい診断ツール、自動修復、出自の分からないセキュリティパック。増やすほど、あとから入る人が状態を切れなくなります。自分で進める範囲は、版の表と、公式の更新履歴と、バックアップの確認までです。弱点の一般的な見方は一覧の記事、個別の更新判断はプラグインの記事にあります。料金の比較は料金ページです。診断だけの定価は設けていません。

死活は全プランで24時間365日1秒単位、マルウェアと改ざんの監視はスタンダード以上です。診断で遅れが見えたあとに、見る人を置かないと、翌月また同じ表になります。表を作った週に、誰が更新するかを名前で置いてください。名前が無い表は、診断の記録ではなく、未処理の山です。名前を置けないなら、その時点で保守へ載せる判断にしてください。担当が空欄の週は、診断していないのと同じです。空欄のままツールだけ増やす判断はしないでください。

相談

版の一覧と公開URLを送ってください

公開URLと、今入っているプラグインの名前が分かれば、遅れの切り分けから返します。診断ツールを足す前に見てください。

点検を相談する