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

Notes

WordPressの脆弱性|
一覧の見方と自分のサイトの確かめ方

脆弱性一覧を確認している様子

脆弱性への対応は、番号を覚える作業ではありません。一覧の読み方と、自分の本体・プラグイン・テーマの版を照合する作業です。特定の番号は作りません。公式と公的機関の見方を一般論で書き、見つかったあとの順番まで残します。

WordPress脆弱性の確認範囲

確認の範囲は、今動いているプログラムの版です。本体、有効なプラグイン、無効なプラグイン、使っているテーマ、使っていないテーマ、必須プラグイン、サーバーのPHP、です。公開面に出ていない無効プラグインも、ファイルが残っていれば対象です。範囲を公開面だけにすると、管理画面から入る入口を見逃します。

範囲を取るときは、管理画面の一覧を書き出します。名前、今の版、配布元、最終更新日、有効か無効か、です。書き出しが無いと、一覧側の「この版まで影響」を自分のサイトへ当てられません。サイトヘルスの画面は範囲の補助です。サイトヘルスが緑でも、個別のプラグインに既知の入口があることがあります。緑を合格にして照合を省略しないでください。

サーバー側の範囲も一行で残します。PHPの版、Webサーバーの種類、管理画面の公開方法、証明書の有無です。WordPressの一覧に載っていない入口が、古いPHPや、管理画面の公開方法に残ることがあります。サーバーの版を自分で変えられない契約でも、版を知っていると、本体の更新可否が説明できます。

確認しない範囲も決めます。他社の事例にある番号を、自分のサイトに無いプラグインへ当てること、検索で出た攻撃手順を自分の公開サイトで試すこと、です。照合は、自分の一覧と、公開されている影響範囲の突き合わせです。攻撃の再現は、確認の作業ではありません。再現して公開が止まった場合、原因が脆弱性なのか自分の操作なのか分からなくなります。

複数サイトを見ている場合は、サイトごとに範囲を分けます。似たプラグイン構成でも、版が一つ違うだけで対象外になります。まとめて「全部危ない」としないでください。まとめると、更新しなくてよいサイトまで止め、本当に対象のサイトの作業が遅れます。範囲の表は、サイト名を列に、部品名を行にした方があとで照合しやすいです。

範囲にPHPを含める理由は、本体の更新可否がPHPの版で止まるからです。一覧側が本体の入口を書いていても、自分のPHPが古くて本体を上げられないことがあります。その場合の作業は、脆弱性の修正ではなく、サーバー側の版の相談です。相談の前に、今のPHPと、本体が要求するPHPを数字で残します。数字が無い相談は、上げてよいのか止めるべきかから始まります。

WordPress脆弱性一覧の見方

一覧は、一つの画面に全部が揃っているわけではありません。見る場所は、大きく分けて公的な注意喚起、製品の公式、収集データベースです。日本では、IPAが注意喚起や重要なセキュリティ情報として、影響の広い案件をまとめることがあります。JVNのように、識別子と影響製品、対策の概要が並ぶ一覧もあります。これらは、すべてのプラグインの小さな修正まで拾うものではありません。広い影響の案件を先に知る入口です。

製品の公式は、WordPress本体の配布元と、各プラグイン・テーマの配布ページです。本体の更新説明にセキュリティと書いてある週は、一覧を細かく読む前に、自分の本体の版を見ます。プラグインの配布ページには、変更履歴と、対応する本体の版が載ることが多いです。履歴に「security」や「脆弱性」とある更新は、見た目の変更より先に照合します。履歴が空の製品は、一覧側に名前が出ても、直った版が分かりません。

収集データベースは、プラグイン名と版で検索できる形が多いです。代表的なものに、脆弱性を収集して版で絞れる公開データベースがあります。ここでの数字や深刻度は、一次情報そのものではありません。一次に戻るリンクがあるかを見ます。リンクが無い項目だけを信じて更新を急ぐと、別製品の同名や、直っていない版の情報で動くことがあります。

一覧の行で先に見る欄は、製品名、影響する版、直った版、公開日、深刻度、前提条件です。番号そのものより、自分の版が影響する版に入るかが先です。深刻度が高くても、認証した管理者だけが踏める条件なら、一般の閲覧者が踏む入口とは違います。逆に深刻度が中くらいでも、認証なしで踏める条件なら、公開面の入口です。欄の名前は一覧ごとに違います。同じ意味の欄を、自分のメモでは「影響版」「修正版」「条件」に揃えます。

一覧に同じ製品が何度も出る場合は、新しい行から読みます。古い行の修正版を当てても、その後の行でまた対象になっていることがあります。行を古い順に追うと、一度直したつもりで終わります。新しい行で自分の版が対象外なら、それ以上古い行は記録用です。対象外を全部直そうとすると、更新の順番が壊れます。

一覧の見出しに「緊急」とあっても、自分の製品名が本文に無ければ、その行は自分の作業ではありません。見出しだけで管理画面を止めると、止めた理由を後から説明できません。本文に製品名、版、対策がある行だけを、自分の表へ移します。移すときは、一覧の画面を保存するより、必要な欄だけを自分の言葉で写します。画面の保存は容量が増えるだけで、翌月の差分が見えません。

WordPress脆弱性の最新情報

最新情報は、毎日全部を読むものではありません。見る周期を、本体と、自分が使っているプラグインに分けます。本体は、配布元の更新通知と、公的な注意喚起を週の運用に載せます。プラグインは、管理画面の更新通知と、配布ページの履歴を、更新作業の日に見ます。通知が無い日に新しい一覧を全部読むと、自分のサイトに無い製品の話で時間が終わります。

情報の新しさは、公開日だけでは決まりません。公開が遅く、攻撃の話が先に出ることがあります。逆に、公開が早く、修正版がまだ無いこともあります。新しいという理由だけで急ぐと、修正版が無い状態で本番を止めたり、非公式の修正ファイルを入れたりします。非公式のファイルは、この記事の対象外です。修正版が無い場合の扱いは、見つかったときの章へ分けます。

日本語の解説記事は、最新の入口として便利です。ただし、記事が引用している一次へ戻ります。見出しだけを読んで自分のサイトが対象だと決めると、別のプラグインの話を自分の更新へ当てます。一次に製品名と版があるかを確認し、自分の書き出しと並べます。一次が英語でも、版の数字は照合できます。数字が無い解説だけを材料にしないでください。

メールやSNSで「今すぐこの番号を当てろ」と来る案内は、最新情報ではありません。番号をこの記事では作りませんし、案内の番号を自分で増やす必要もありません。案内のリンク先が公式か、公的な注意喚起か、見知らぬログイン画面かを見ます。見知らぬ画面で管理者パスワードを入れる作業は、最新情報の確認ではありません。疑わしい案内は、公開URLの確認へ回し、ログインは今の自分のURLだけを使います。

最新を追う担当が一人しかいない場合は、見る場所を二つに減らします。本体の配布元と、公的な注意喚起です。二つ以外は、更新作業の日にプラグインの履歴で足します。場所を増やすほど、同じ案件が別の言葉で届き、対応が二重になります。二重対応の記録は、あとで「直したのか残しているのか」が分からなくなります。

最新情報の受け取りをメール購読にする場合は、購読先を公式と公的機関に限ります。見知らぬ配信が「あなたのサイトが対象」と書いていても、その文面だけで管理画面へ入らないでください。対象かどうかは、自分の書き出しと、公式の版情報で決めます。配信文のリンクがログイン画面に見える場合は、控えた自分のURLと比較します。比較せずに入力すると、最新情報の確認が認証情報の渡しになります。

WordPress脆弱性情報の読み方

読み方の骨格は、自分の製品か、自分の版は対象か、直った版はあるか、直す以外の緩和はあるか、公開面で踏めるか、です。この五つが揃う前に更新ボタンを押すと、対象外の更新で管理画面が止まります。五つをメモに書くときは、一覧の言葉を写すより、自分の言葉で短くします。写すと、版の数字を写し間違えても気づきません。

影響する版の書き方は、一覧ごとに違います。ある版より前、ある版からある版まで、特定の版だけ、です。自分の版が境界の数字と同じときは、その数字が「含む」のか「含まない」のかを本文で確認します。確認できない場合は、対象として扱い、配布ページの履歴で直った版を見ます。境界を自分の都合で対象外にしないでください。

深刻度の数字や語は、比較の目安です。高いから今日中、低いから来月、と機械的に分けると、条件を見落とします。認証なしで投稿を書き換えられる条件と、管理者だけが設定画面で踏める条件では、同じ語でも急ぐ理由が違います。条件の欄が空の行は、条件が無いのではなく、書いていないことがあります。空の行は、公式の説明へ戻ります。

修正版がある行は、その版へ上げる作業が本線です。上げる前に、その版が今の本体とPHPで動くかを配布ページで見ます。動かない修正版を当てると、脆弱性は閉じても公開が止まります。修正版が無い行は、無効化する、公開を絞る、機能を外す、といった緩和が書かれているかを見ます。緩和が無い場合は、自分で攻撃を試すのではなく、使うのを止める判断へ寄ります。

識別子が複数付いている行があります。公的な識別、製品側の識別、収集側の識別です。照合に使うのは識別子ではなく、製品名と版です。識別子は、同じ案件を後で探すための印です。印をメモに残すのは構いません。印だけを検索して、別製品の解説に飛ばないよう、製品名を必ず添えます。この記事では具体的な識別子を列挙しません。列挙すると、古い印を新しい事実のように読まれます。

読み方で迷いやすいのは、深刻度の語と、実際に公開面で起きることの距離です。語が強くても、自分のサイトがその機能を使っていなければ、急ぐ理由は小さくなります。ただし使っていない機能でも、プラグインが有効なら入口は残り得ます。使っていないことを理由に対象外にするなら、その機能をオフにした事実を残します。オフにしていない「使っていない」は、読み方ではなく願望です。

脆弱性一覧と自分のサイトの照合

照合は、自分の書き出しを左に、一覧の影響版を右に置く作業です。名前が一致しても、版が対象外ならその行は見送りです。名前が似ていても、配布元が違うなら別製品です。フォークされたプラグインや、日本語向けの同名配布は、名前だけでは一致しません。配布元のURLと、管理画面に出る作者名を見てから一致とします。

一致した行は、今すぐ更新、様子を見る、止める、の三つに分けます。今すぐ更新は、修正版があり、互換の説明が今の本体に合い、バックアップがある場合です。様子を見るは、条件が管理者だけ、または修正版の互換が不明で、代替の運用で入口を狭められる場合です。止めるは、修正版が無く、無効化してもサイトの目的が残る場合です。三つ以外の「あとで考える」は、翌月消えます。日付と理由を付けます。

照合の結果は、更新画面の通知と一致しないことがあります。通知が無いプラグインが一覧の対象になる、通知はあるが一覧に無い、です。通知は配布元が更新を出した印です。一覧は、第三者や公的な側が影響を書いた印です。両方を見て、片方だけを正本にしないでください。通知だけを正本にすると、配布が止まった製品の入口が残ります。

テーマの照合は、プラグインより漏れやすいです。有効なテーマだけ見ると、使っていないテーマのファイルが残ります。親テーマと子テーマは、両方の版を書きます。子テーマだけ新しい場合でも、親の入口は残ります。独自テーマで配布ページが無い場合は、一覧に名前が出ないことがあります。出ないことを安全とは呼ばず、最終更新日と、触っている人を記録します。

照合を自動化する道具は、範囲の補助です。道具が出した件数を、そのまま作業件数にしないでください。誤検出と、対象外の同名と、すでに直した版が混ざります。道具の使い方と範囲は脆弱性診断に分けています。この記事では、道具の結果も、自分の書き出しとの突き合わせを経てから更新へ回します。

照合の表は、対象、対象外、未確認の三列にします。対象外と未確認を混ぜると、翌月また全部を読みます。未確認は、一次の本文が読めなかった行です。読めなかった理由が言語でも、版の数字が無いでも、理由を一行残します。理由が無い未確認は、対象へ寄せて更新の候補にします。寄せたくない場合は、その行を止める判断の材料へ回します。

WordPress脆弱性が見つかったとき

見つかったときは、公開面を自分で攻撃して確かめる前に、現状を残します。ファイルとデータベースの一代、今の版の書き出し、見つけた行の控えです。控えには、製品名、自分の版、影響版、修正版、条件を書きます。控えが無いと、更新のあと「何を直したのか」が残りません。残したあと、修正版があるかを公式で確認します。

修正版がある場合は、バックアップのあと、その製品だけを上げます。他の更新を同じ操作に混ぜないでください。混ぜると、壊れ方が脆弱性対応なのか別の更新なのか分からなくなります。上げたあと、公開面と管理面の代表画面を見ます。フォームや会員があるサイトは、ログインと送信も見ます。表示が崩れたら、その製品を戻し、互換の確認へ戻ります。戻し方はバックアップ記事の範囲の章です。

修正版が無い場合は、その製品を無効にできるかを先に見ます。無効にしても目的が残るなら、無効にしてファイルの削除は翌営業日へ送ります。すぐに消すと、同じファイルが改ざんの材料だったのか、正規の古いファイルだったのかが分からなくなります。無効にできない場合は、公開を絞るか、機能の入口を閉じる緩和が公式に無いかを見ます。緩和が無い、条件が認証なし、という組み合わせは、自分で抱え続けない判断へ寄せます。

すでに公開面がおかしい、見知らぬ管理者がある、検索に警告がある、という状態は、脆弱性の照合より応急が先です。応急の範囲は改ざん記事、隔離はハッキング記事、窓口は点検です。照合のメモは、応急のあとで原因を辿る材料になります。応急の最中に一覧を全部読まないでください。読む時間が、公開を止める時間を食います。

見つかった事実を、関係者へ伝えるときは、番号の羅列より、何が対象で、何をしたか、何が残っているかを書きます。番号だけ送ると、受け取った側が別の解説を検索して、別の作業を始めます。残っている作業がある場合は、次の日付を付けます。日付が無い残作業は、翌週には「直った」扱いになります。

見つかったあとにやりがちなのは、同じ系統のプラグインをまとめて上げることです。似た機能の製品が並んでいると、一つが対象なら隣も対象だと思い込みます。隣は版も配布元も違います。まとめて上げると、対象でない更新で画面が止まり、本当に対象だった製品の確認が遅れます。見つかった行の製品名だけを、その日の作業対象にします。

WordPress脆弱性の継続確認

継続確認は、一度照合して終わり、にはなりません。新しい行は毎週出ます。自分の書き出しも、更新のたびに変わります。続ける形は、毎月の運用日に書き出しを更新し、その週の公的な注意喚起と、更新通知の履歴を見る、です。毎日新しい一覧を全部読む運用は、続きません。続かない運用は、忙しい月に空白ができます。

継続の記録は、照合した日付、対象にした製品、見送り、実施した更新です。見送りの理由が残っていると、翌月同じ行をまた最初から読まずに済みます。理由が「時間がない」だけの見送りは、翌月も同じです。理由を、修正版が無い、互換が不明、条件が管理者だけ、のように分けます。分けておくと、条件が変わった月に再評価できます。

プラグインが増える月は、継続確認の範囲も増えます。増やす前に、その製品の最終更新日と、履歴の残し方を見ます。履歴が無い製品は、後の照合で一次へ戻れません。機能を足す判断と、照合の手間はセットです。セットで見られない追加は、翌月のユーザー確認と同じ一覧で「要確認」と残します。

継続を自分で持てない場合は、更新と監視を同じ窓口へ寄せます。サイト当番の死活は全プランで24時間365日、1秒単位です。マルウェアの常時監視はスタンダード月額17,800円以上です。継続確認の一覧読みを、常時監視の代わりにはしません。一覧読みは人の判断、監視は公開の異常を先に拾う作業です。両方を混同すると、一覧を読んだ日だけ安全だと思い込みます。

継続の周期を週から月へ緩める場合は、緩める理由を書きます。通知が少ない、プラグインが少ない、更新を代行へ渡した、のいずれかです。理由が「忙しい」だけの緩和は、空白の月を増やします。空白のあとに戻るときは、書き出しを一から作り直します。古い表を信頼しないでください。版が一つ違うだけで、対象と対象外が入れ替わります。

WordPress脆弱性を自分で難しいとき

自分で難しい時点は、書き出しの版が揃わない、一覧の影響版の読み方が分からない、修正版を上げたら管理画面が止まった、修正版が無い製品を止められない、警告がすでに出ている、です。この時点で新しいスキャン用プラグインを足すと、対象が増えます。先に、公開URL、今の書き出し、残っているバックアップの日付を揃えます。

一覧の読み方より、プラグイン単位の判断が重い場合はプラグインの脆弱性チェックへ進みます。道具で一気に見たい場合は脆弱性診断です。すでに改ざんや警告がある場合は、照合記事の延長ではなく点検です。緊急は税別29,800円からで、人が問題かを見てから進めます。

日常の更新と照合を毎月回せない場合は、WordPress保守の基本枠へ寄せます。スタンダード月額17,800円(税別)です。公開URLを送っていただければ、更新の遅れと、書き出しが取れる状態かを切り分けて返します。特定の番号をこちらから作って脅すことはありません。照合は、今ある版と、公開されている影響範囲だけを材料にします。

相談

脆弱性の照合から見ます

公開URLを送っていただければ、本体とプラグインの版、更新の遅れ、照合に使える書き出しがあるかを切り分けて返します。

点検を相談する