この記事の結論:会社のホームページをWordPressで運用しているなら、改ざんを防ぐには、「作って終わり」ではなく、保守の手順を決めて回すことが必要です。手順は、①本体・テーマ・プラグイン・サーバーの台帳を作る、②更新を「自動にするもの」と「確かめてから上げるもの」に分ける、③ファイルとデータベースをサイトの外にバックアップし、戻せることを確かめる、④管理画面のアカウントを絞り、2段階認証とファイル編集の停止をかける、⑤WAFを入れたうえで更新を続ける、⑥改ざんに早く気づく見張りと、改ざんされたときの初動を決めておく、の6つです。IPAの「安全なウェブサイトの運用管理に向けての20ヶ条」は、この手順の抜けを確かめるチェック表として使えます。
この記事は、会社のホームページをWordPressで運用していて、保守を誰がどこまでやるのかが決まっていない会社の担当者と、保守を受け持つ制作側の人に向けたものです。IPAが2026年3月に公開した「中小企業の情報セキュリティ対策ガイドライン」第4.0版でも、自社診断の項目に「ウェブサイトを安全に運用する」が新しく加わっています。書いている内容の根拠は、IPAとWordPressが出している資料(閲覧日は記事末に記載)で、実在の会社の被害の話は扱っていません。
WordPressの改ざんは、管理画面と古い部品の2か所から入られることが多い
WordPressの企業サイトが改ざんされる入口として、まず押さえたいのは2つです。1つは管理画面へのログイン(推測されやすいパスワードや使い回しのパスワード)、もう1つは本体・テーマ・プラグインの既知の脆弱性です。
どちらも、サイトを公開した後の「運用」で防ぐものです。IPAの20ヶ条でも、ウェブアプリケーションを構成するソフトウェアの脆弱性対策を定期的にしているか、不正ログインの対策はできているか、が別々の項目として挙がっています。制作の段階でどれだけ丁寧に作っても、公開から時間がたつほど、部品は古くなっていきます。
| 入口 |
起きること |
防ぐ手順 |
| 管理画面へのログイン |
パスワードを当てられ、管理者として操作される |
アカウントの整理、2段階認証、管理画面への接続の制限 |
| 本体・テーマ・プラグインの脆弱性 |
ログインなしで、ファイルの書き換えや不正な書き込みをされる |
台帳と更新、使っていない部品の削除、WAF |
| サーバーやPHPの古い版 |
WordPressの外側から入られる |
サーバー側の更新、レンタルサーバーの設定の確認 |
保守の最初の作業は、サイトを構成する部品の台帳を作ること
保守を始めるときは、まずサイトを構成する部品を1つの台帳に書き出します。何が入っているかが分からなければ、更新が必要かどうかも判断できないからです。
| 書き出す部品 |
台帳に書く項目 |
| WordPress本体 |
いまの版、自動更新の設定 |
| テーマ(子テーマを含む) |
名前、入手元、いまの版、最後に更新された日、独自に改造しているか |
| プラグイン |
名前、入手元、いまの版、何のために入れたか、有効か無効か |
| PHPとデータベース |
版、レンタルサーバーの管理画面で変えられるか |
| 管理画面のアカウント |
利用者名、権限、持ち主、最後にログインした日 |
| サーバー・ドメイン・DNSの契約 |
名義、管理画面に入れる人 |
この台帳を作ると、「何のために入れたか誰も分からないプラグイン」や「無効にしたまま残っているプラグイン」が見つかることがあります。WordPressの公式の手引きでも、使っていないプラグインは削除するよう勧めています。テーマも同じ考え方で整理します。無効にしただけではファイルはサーバーに残るので、使わないものは消します。入手元が公式のディレクトリや信頼できる配布元でないテーマ・プラグインも、入れ替えの候補にします。
更新は「自動にするもの」と「確かめてから上げるもの」に分ける
更新の手順は、部品ごとに「自動で上げる」か「検証してから上げる」かを決めておくと、毎月の作業が短くなり、放置も防げます。全部を手で上げる運用は続かず、全部を自動にすると表示が崩れたときに気づくのが遅れます。
WordPressの本体は、3.7から自動更新の仕組みを持っています。プラグインとテーマは、5.5から1つずつ自動更新をオンにできるようになりました。公式の解説によると、自動更新は既定で1日2回動き、成功・失敗の結果はサイトの管理者にメールで届きます。
| 区分 |
例 |
更新のしかた |
| 自動で上げる |
本体のマイナー更新、表示に関わらない小さなプラグイン |
自動更新をオンにし、通知のメールを保守の担当者が受け取る |
| 確かめてから上げる |
本体のメジャー更新、ページビルダー、フォーム、多言語、EC 系のプラグイン、テーマ |
検証用の環境で更新し、主要なページと問い合わせフォームの送信を確かめてから本番へ |
| すぐに上げる |
脆弱性の修正を含む更新 |
区分にかかわらず、確かめる範囲を絞って早めに上げる |
自動更新は WordPress の定期実行の仕組み(WP-Cron)に頼っているので、サーバーの設定によっては動かないことがあります。管理画面の「ツール」>「サイトヘルス」にエラーが出ていないかも、月に一度見ておきます。
更新のあとに確かめる項目は、毎回同じものを決めておきます。トップページ、主要なサービスのページ、問い合わせフォームの送信と自動返信メールの到着、スマートフォンでの表示、の4つは外さないようにします。
バックアップは、ファイルとデータベースの両方をサイトの外に置く
バックアップは、テーマや画像などのファイルと、投稿や設定が入ったデータベースの両方を、サイトと同じサーバー以外の場所に残します。同じサーバーに置いたバックアップは、サーバーごと被害を受けたときに一緒に使えなくなります。
| 決めること |
目安 |
| 対象 |
ファイル一式(wp-content を含む)とデータベース |
| 頻度 |
更新の前と、定期(更新の頻度に合わせて決める) |
| 置き場所 |
サーバーとは別のストレージ。サーバー会社の自動バックアップは、あれば併用する |
| 残す世代 |
改ざんに気づくまでの時間を見込み、数週間前の状態まで戻れる世代を残す |
| 戻せるかの確認 |
検証用の環境に実際に戻して、表示とログインを確かめる |
改ざんは、気づくまでに時間がかかることがあります。直近のバックアップがすでに改ざんされた後のものだった、ということもあり得るので、古い世代も一定期間残します。WordPress の公式の解説でも、プラグインやテーマの自動更新をオンにする前に、元に戻せるバックアップがあるかを確かめるよう書かれています。実際に戻してみる練習のやり方は、業務システムの復元テストの記事で書いた考え方がそのまま使えます。
管理画面は、アカウントの整理と2段階認証とファイル編集の停止で守る
管理画面の守りは、ログインできる人を減らし、ログインを強くし、ログインされても被害が広がりにくい設定にする、の3段で考えます。
ログインできる人を減らす
台帳のアカウントを見直し、退職した人や取引の終わった制作会社のアカウントは削除します。IPAの20ヶ条にも「不要なアカウントが登録されていませんか?」という項目があります。記事を書くだけの人には「管理者」ではなく「編集者」や「投稿者」の権限を渡します。管理者を共有のアカウント1つで回している場合は、人ごとのアカウントに分けます。
ログインを強くする
パスワードは推測されにくく、ほかで使っていないものにします。WordPress の公式の手引きでは、2段階認証を追加の守りとして紹介し、管理画面(/wp-admin/)にもう一段のパスワード保護をかける方法や、管理画面の通信を HTTPS にすることにも触れています。社外から管理画面に入る必要がないなら、管理画面への接続元を会社のネットワークに限る設定も有効です。
ログインされても被害を広げない
WordPress には、管理画面からテーマやプラグインのファイルを直接書き換えられる編集画面があります。管理者のアカウントが乗っ取られたとき、この画面から不正なコードを書き込まれるのを防ぐため、wp-config.php で編集画面を止めておきます。
// wp-config.php:管理画面からのテーマ・プラグインのファイル編集を止める
define( 'DISALLOW_FILE_EDIT', true );
あわせて、ファイルとディレクトリのアクセス権を必要最小限にします。公式の手引きでは、ディレクトリは755、ファイルは644を基本とし、wp-config.php は外から読まれないように守ることを勧めています。IPAの20ヶ条の「ファイル、ディレクトリへの適切なアクセス制御をしていますか?」にあたる部分です。
WAFは入れたうえで、更新の代わりにはしない
WAF(Webアプリケーションファイアウォール)は、サイトに届く前に怪しい通信を止める仕組みで、入れておく価値はあります。ただし、WAF は脆弱性そのものを直すものではないので、更新までの時間を稼ぐ守りとして位置づけます。
WAF を置く場所は、大きく3つあります。
| 置き場所 |
特徴 |
確認すること |
| レンタルサーバーの機能 |
契約に含まれていることが多く、管理画面でオン・オフできる |
オンになっているか、誤って止められた通信の記録を見られるか |
| サイトの手前のサービス(CDN など) |
サーバーに届く前に止められる。DNS の向き先を変えて使う |
サーバーの IP アドレスへ直接届く経路が残っていないか |
| WordPress に入れるプラグイン |
サーバーの種類を問わず入れられる |
プラグイン自体の更新、サイトの表示速度への影響 |
WordPress の公式の手引きでも、悪意のある通信を WordPress に届く前に止める手段として、サーバーとの間に入るリバースプロキシ型のサービスや、ModSecurity などのサーバーに入れる WAF が挙がっています。IPAの20ヶ条の「ウェブサーバへの不正な通信を検知または、遮断していますか?」に当たる対策です。
WAF を入れた直後は、問い合わせフォームの送信や管理画面の保存が誤って止められていないかを確かめます。誤って止められた通信があれば、全体を止めるのではなく、該当する規則だけを例外にします。
改ざんに早く気づく見張りと、改ざんされたときの初動を決めておく
対策をしていても、改ざんを完全には防げません。早く気づく仕組みと、気づいたときの初動の手順を、保守の範囲として先に決めておきます。
見張り
- ファイルの変更を検知する仕組み(プラグインや、サーバー会社の機能)を入れ、身に覚えのない変更を知らせる
- サーバーのアクセスログと、管理画面へのログインの記録を残し、定期的に見る(IPAの20ヶ条の「ウェブサーバのログを保管し、定期的に確認していますか?」)
- Google Search Console を設定し、「セキュリティの問題」レポートと、登録したメールアドレスへの通知を受け取れるようにする
Search Console のセキュリティの問題レポートには、Google がサイトのハッキングや、訪れた人に害を与えるおそれのある動きを見つけたときに、その内容が表示されます。表示された場合、検索結果に警告が出ることがあります。
改ざんされたときの初動
| 順番 |
やること |
| 1 |
メンテナンス表示などに切り替え、閲覧者に被害を広げない |
| 2 |
ログ、改ざんされたファイル、データベースの写しを残す(調べるために消さない) |
| 3 |
管理画面・サーバー・データベース・FTP などのパスワードをすべて変える |
| 4 |
改ざん前のバックアップから戻す。戻した後、本体・テーマ・プラグインをすべて最新にする |
| 5 |
入口になった原因(古いプラグイン、漏れたパスワードなど)を特定して塞ぐ |
| 6 |
公開を再開し、Search Console に警告が出ていれば、修正後に審査を依頼する |
問い合わせフォームで受け取った個人情報が見られた可能性がある場合は、社内の責任者に報告し、必要な届け出や連絡を判断します。この判断の窓口を誰にするかも、保守の取り決めに入れておきます。
月次と四半期の保守のチェック表
最後に、ここまでの手順を、定期の作業としてまとめます。保守を外部に任せる場合も、社内で回す場合も、この表のどれを誰が行うかを決めておけば抜けが出にくくなります。
| 頻度 |
作業 |
| 毎月 |
確かめてから上げる部品の更新、更新後の4か所の確認、バックアップの成功の確認、サイトヘルスの確認 |
| 毎月 |
自動更新の通知メールの確認、WAF で止めた通信の記録の確認、Search Console のセキュリティの問題の確認 |
| 四半期 |
台帳の見直し(使っていないプラグイン、不要なアカウント)、バックアップから実際に戻す確認、PHPの版の確認 |
| 年1回 |
IPAの20ヶ条での点検、サーバー・ドメインの契約と名義の確認 |
株式会社bundlyzeでは、企業サイトの制作のほか、社外の立場でWebの責任者役を務め、方針の立案・実行・数字の振り返りまで受け持つ「WEB戦略代行」も提供中です。業務システムなら要件の整理から稼働後の保守まで対応します。WordPressの保守の段取りづくりや、作り直しまで含めた相談は、ホームページ制作と運用で受け付けています。
参考にした公式の資料(IPA・WordPress・Google、閲覧は2026年10月3日)