セキュリティ / 高速化
既知の脆弱性・セキュリティ修正・改ざん・怪しいファイルを毎日見張り、二段階認証などで入口をふさぎ、画像をWebPにして表示を速くする
乗っ取りの入口でいちばん多いのは「更新していないプラグイン」です
「Sorabun > 計測 / 分析 > セキュリティ / 高速化」は、WordPressが乗っ取られる入口を見張り、ふさぐ画面です(Pro)。あわせて、画像を軽くして記事の表示を速くする設定もここにあります。
WordPressの乗っ取りは、ほとんどが 開発元がすでに直している弱点 を突かれて起こります。修正版が出たあと、更新していないサイトが狙われる、という形です。ところが WordPress の「更新があります」は、ただの機能追加もセキュリティ修正も同じ表示なので、急ぐべき更新が埋もれてしまいます。
この画面は、次のことを 毎日自動で 調べ、急ぐものが見つかったら知らせます。
- 入っているプラグイン・テーマ・本体に 既知の脆弱性 が無いか
- 更新があるプラグインに セキュリティ修正 が含まれていないか
- WordPress本体とプラグインのファイルが 書き換えられていない か、怪しいファイル が置かれていないか
お客様が別途契約する有料サービスやAPIキーは要りません。問い合わせ先は WordPress.org と、Sorabun のライセンスサーバー(既知の脆弱性の照合)です。
1. 既知の脆弱性
入っているプラグイン・テーマ・本体を、公開されている 脆弱性の一覧(Wordfence Intelligence)と照合します。一覧は Sorabun のライセンスサーバーで毎日取り込んでいます。
| 表示 | 意味 |
|---|---|
| 深刻度 | 緊急・重大・中・低(CVSS の点数から) |
| 対応「◯◯ 以上に更新」 | 修正版が出ています。その版まで更新すれば直ります |
| 対応「修正版なし」 | まだ直っていません。更新では直せないので、使っていなければ停止・削除を検討してください |
- 照合のために送るのは プラグイン・テーマの名前(slug)だけ です。入っている版やサイトの中身は送りません。版の比較はお客様のサイトの中で行います
- 「緊急」「重大」のもの、「修正版なし」のものは、見つかった日に通知します
- ライセンスの認証が必要です
脆弱性の情報は Wordfence Intelligence のものです。画面の下に出典と、CVE(MITRE)の著作権表示を出しています。
2. セキュリティ修正を含む更新
更新があるプラグインについて、いま入っている版から最新版までの変更履歴 を WordPress.org から読み、セキュリティの修正が書かれていないかを確かめます。結果は急ぐ順に並びます。
| 判定 | 意味 |
|---|---|
| 急いで更新 | 変更履歴に「脆弱性」「XSS」「SQLインジェクション」「CVE-」など、セキュリティの修正がはっきり書かれています。できるだけ早く更新してください |
| 安全性の修正らしきもの | 「入力の無害化(sanitize)」「権限の確認」など、安全性に関わりそうな修正が書かれています |
| 変更内容を確認できない | 変更履歴が無い・読めない(テーマ、WordPress.org 以外で配られているプラグインなど) |
| 機能の更新 | 変更履歴にセキュリティの修正は見当たりませんでした |
WordPress本体の 同じ系列の小さな更新(6.8.1 → 6.8.2 など)は、ほぼセキュリティと不具合の修正なので「急いで更新」と出します。
「急いで更新」があるあいだは、管理画面のどの画面にも赤い知らせが出ます。更新すれば消えます。
開発元が変更履歴に書かないセキュリティ修正は拾えません。「急いで更新」は 少なくともこれは急いで という目安です。ほかの更新も、こまめに当ててください。
セキュリティ修正だけを自動で当てる
「4. 侵入の入口をふさぐ」の 「セキュリティ修正を含む更新だけ、自動で当てる」 をオンにすると、「急いで更新」のものと、既知の脆弱性で修正版が出ているプラグインだけを、WordPress の自動更新(1日2回)で当てます。
WordPress の自動更新は「全部当てる」か「当てない」かの二択ですが、この設定なら 急ぐものだけ を当てられます。ほかのプラグインの自動更新の設定は変えません。当てたものは画面に記録します。
3. 改ざんと怪しいファイル
WordPress本体
WordPress本体のファイル(wp-admin と wp-includes)を、WordPress.org が公開している 正しいファイルの一覧(チェックサム) と突き合わせます。見つけるのは次の3つです。
- 書き換わっているファイル … 本体のファイルに、不正なコードが足されている
- 見当たらないファイル … 本体のファイルが消されている
- 本体のフォルダにある、見覚えのないPHP … 乗っ取りのあとに置かれる「裏口」によく使われる形です
wp-content(テーマ・プラグイン・画像)は、正当な更新で中身が変わるので突き合わせません。
心当たりが無いのに違いが見つかったときは、「ダッシュボード > 更新」の 「バージョン x.x.x を再インストール」 で本体を入れ直すと、公式のファイルに戻ります(記事や設定は消えません)。見覚えのないPHPは入れ直しでは消えないので、サーバーのファイル管理で中身を確かめて削除してください。
ベータ版などの開発版の WordPress には公式の一覧が無いので、「確かめられません」と出ます。改ざんが見つかったという意味ではありません。
プラグインと怪しいファイル
「ファイルを調べる」 で、次の2つを調べます(毎日自動でも調べます)。
- 照合(確実): WordPress.org で配られているプラグインは、版ごとの正しいファイルの一覧が公開されています。入っているファイルと突き合わせ、書き換わったファイル と、元の配布物に無いPHP を見つけます
- 手口の検査(目安): テーマ・アップロードフォルダ・有料や自作のプラグインなど、照合できないファイルは、乗っ取りで置かれるファイルによくある書き方(暗号のように隠したコードの実行、外から送られた値の実行、アップロードフォルダのPHP、画像のふりをしたPHP など)を探します
公式のファイルと一致したものは手口の検査をしないので、正規のプラグインを「怪しい」と言うことはほとんどありません。
見つかったものは 「AIに説明してもらう」 で、そのコードが何をしているか・不正らしいか・どうすればよいかを、AIが平易な言葉で説明します。AIに送るのは、見つかった行の前後25行だけです。
| 度合い | 意味 |
|---|---|
| 高い | まず間違いなく不正な書き方です(見つかった日に通知します) |
| 目安 | 不正でよく見る書き方ですが、正規のコードでも使われます。中身を確かめてください |
手口の検査は、専門企業が持っている大量の見本(シグネチャ)ほどの網羅はありません。「見つからなかった=安全」とは限らないので、乗っ取りが疑われるときは専門の業者に相談してください。
4. 侵入の入口をふさぐ
どれも 既定はオフ です。サイトによっては必要な機能を止めるので、説明を読んでからオンにしてください。
| 設定 | 何を防ぐか | 気をつけること |
|---|---|---|
| セキュリティ修正の自動更新 | 急いで当てるべき更新を、人の手を待たずに当てます | 更新で表示が崩れることがまれにあります。当てたものは画面に記録します |
| 二段階認証を管理者に必須にする | パスワードが漏れても、スマホが無ければログインできないようにします | オンにすると、未設定の管理者は設定するまでほかの画面を開けません。先に自分の設定を済ませてください |
| ログインの総当たり | 同じ接続元から5回続けて失敗したら、15分ログインできなくします。パスワードを機械で試し続ける攻撃を止めます | 会社などで同じ回線から大勢がログインする場合、誰かの打ち間違いが続くと全員がしばらく入れなくなることがあります |
| ユーザー名の漏れ | 「?author=1」でログインIDが分かる仕組みと、REST API・サイトマップのユーザー一覧を、ログインしていない人には出しません | 著者ページ(/author/名前/)はそのまま表示されます |
| XML-RPC | 一度に大量のパスワードを試す攻撃に使われる、古い連携の仕組みを止めます | WordPressのスマホアプリ・Jetpack・一部の外部投稿ツールが動かなくなります |
| アップロードフォルダのPHP | 画像のふりをしたPHPを置いて開かせる攻撃に備え、アップロードフォルダでPHPを動かしません | .htaccess が効くサーバー(Apache・LiteSpeed)で効きます。nginx のサーバーでは、画面に出る1行をサーバーの設定に足してもらってください |
ログインを締め出したときは、日時と接続元(末尾を伏せたもの)、試されたユーザー名が画面に残ります。締め出しの判定には、偽ることのできない接続元の情報だけを使います。
二段階認証の設定(各自のプロフィール画面)
二段階認証は、ユーザーごとに 「ユーザー > プロフィール」の「二段階認証」 で設定します。
- 「設定する」 を押すと、QRコードが出ます
- スマホの認証アプリ(Google Authenticator・Microsoft Authenticator・1Password など)で読み取ります
- アプリに出た6桁を入れて 「確かめる」 を押すと有効になり、予備コードが10個 出ます。スマホを失くしたときに1回ずつ使えるので、印刷するかパスワード管理アプリに保存してください
以後のログインでは、パスワードのあとに6桁を聞かれます。6桁は5回まで間違えられ、それを超えるとパスワードからやり直しです。同じ6桁は2度使えません。
- QRコードは画面の中で作ります(秘密鍵を外部のサービスに送りません)。秘密鍵は暗号化して保存し、予備コードは元に戻せない形で保存します
- スマホも予備コードも失くした人は、ほかの管理者がその人のプロフィール画面で 「このユーザーの二段階認証を解除する」 を押すと、パスワードだけで入れるようになります
- XML-RPC は、二段階認証の人はアプリケーションパスワードでしか入れません
サーバーのファイル管理で wp-config.php に define( 'SORABUN_SECURITY_OFF', true ); の1行を足すと、この欄の設定(二段階認証・ログインの締め出しなど)がすべて止まります。見張りと通知は続きます。入れるようになったら、その1行を消してください。
5. 画像を軽くして表示を速くする
記事の表示を遅くしているものの大半は画像です。JPEG・PNG を WebP にすると、見た目をほとんど変えずに、大きさが数分の一になります。
「WebPで配る」 をオンにすると、記事の画像を、WebPの複製があればそちらで表示します。
- 元の画像は書き換えません。 横に WebP の複製(photo.jpg なら photo.jpg.webp)を作り、表示のときにだけ差し替えます
- オフにすれば、その場で元の画像の配信に戻ります
- 新しくアップロードした画像は、その場で複製を作ります
- 前からある画像は 「前からある画像をまとめて軽くする」 で複製を作ります。15枚ずつ進み、進み具合と軽くなった量が画面に出ます
- WebPにするとかえって大きくなる画像(よく圧縮されたPNGなど)は、複製を作らず元の画像のまま配ります
- 差し替えるのはこのサイトのアップロードフォルダの画像だけです。外部サイトの画像はそのままです
- 複製が要らなくなったら 「WebPの複製を消す」 で消せます。元の画像は残ります
アイキャッチや図解など、Sorabun が AI で作る画像は、WebP・最大幅1600px で保存しています。「設定 > 生成の既定値」の 「AIが作った画像を軽くして保存する」 で切り替えられます。動画用のスライドは、動画編集ソフトで読めるよう PNG のままです。
サーバーの画像処理(GD / Imagick)が WebP に対応していないと、複製は作れません。そのときは画面に案内が出るので、サーバー会社に WebP 対応をご確認ください。