大学のような教育機関、メディア、非営利団体Web制作会社など、多数のウェブサイトを管理する組織の多くは、その柔軟性とコントロールにWordPressマルチサイトを使用しています。各サイト(サブサイト)は、プラグイン、テーマ、コアファイルを共有しながら、それぞれに特定のユーザー、コンテンツ、ドメインを追加することができます。この構造によりメンテナンスが簡素化され、必要時の拡張もスムーズです。

しかし、その利便性がもたらすセキュリティ上の懸念もあります。すべてのサイトが同じコアファイルを共有するため、脆弱なパスワードや古くなったプラグインなど、ひとつの脆弱性がマルチサイト全体を危険にさらす可能性があります。

1つのサブサイトに悪意のあるユーザーが侵入すると、システム内のすべてのサイトにアクセスできてしまう可能性があり、標準サイトと比較して、マルチサイトのセキュリティリスクは急速に増大します。

そこで今回は、マルチサイト全体のセキュリティを強化するためのベストプラクティスをご紹介します。安全なセットアップ、定期的な更新、攻撃に対するシステムの強化、不審な活動の監視方法などを取り上げます。

また、複数のサイトでセキュリティを強化するのに役立つツールやプラグイン、マルチサイト全体の保護を簡素化するWordPress用マネージドサーバーも見ていきます。

まずは安全なインストールから

安全なWordPressマルチサイトの構築は、インストールした瞬間から始まります。パスワード、ユーザー役割、認証など、すべての選択がシステム全体に影響します。

強力で一意のパスワードを設定する

共有ネットワーク環境では特に、強力なパスワードの設定が必要不可欠です。すべてのユーザー、特に特権管理者が複雑で一意の認証情報を使用することで、セキュリティリスクを大きく減らすことができます。Password Policy Managerなどのプラグインを使って、すべてのサイトでパスワードの強度を徹底して高めましょう。

Password Policy Managerのようなプラグインで強力なパスワードを強制
Password Policy Managerのようなプラグインで強力なパスワードを強制

Password Policy Managerは、パスワードの長さ、複雑さ、有効期限などの要件を設定することができます。

特権管理者のアクセスを制限する

特権管理者の権限は、テーマやプラグインのインストール、ユーザー管理、サイト全体の変更など、マルチサイト全体を完全にコントロールすることができるため、必要なユーザーにのみ限定してください。誰かのアカウントが侵害された場合の被害を最小限に抑えるため、それ以外のユーザーはサイト単位の管理者権限を割り当ててください。

二要素認証を義務付ける

二要素認証(2FA)を導入することで、パスワードが漏れたり推測されたりした場合でも、アカウントを保護することができます。WP 2FAのようなプラグインを使えば、特権管理者やその他の上位権限を持つユーザーに二要素認証を強制することができます。認証アプリやメールなどの複数の方法がサポートされているため、使いやすく柔軟性にも優れています。

WordPressに二要素認証を実装するWP 2FA
WordPressに二要素認証を実装するWP 2FA

多要素認証は、WordPressに限ったことではなく、大手企業でも広く採用されています。例えば、複数のデータ漏洩被害を受けたT-Mobileは、サイバーセキュリティ対策の強化に数百万ドルを投資しています。

T-Mobileのセキュリティ対策には二要素認証が含まれている
T-Mobileのセキュリティ対策には二要素認証が含まれている

同社は、最高情報セキュリティ責任者から取締役会への定期的なサイバーセキュリティ報告を実施し、最新のゼロトラストアーキテクチャを採用して、多要素認証方式を導入しています。

WordPress向けのマネージドサーバーを利用している場合、マルチサイトへの二要素認証やその他のユーザー単位のポリシーを簡単に実装できます。Kinstaでは、手間をかけることなく一貫したセキュリティ基準を保つのに役立つツールと統合をサポートしています。

徹底した更新

安全なWordPressマルチサイトは、定期的にメンテナンスされています。古いコアファイル、テーマ、プラグインは、攻撃者にとって格好の侵入口になります。したがって、常にサイトを最新の状態に保つことは、マルチサイト全体の侵害を防ぐ最も効果的な方法の1つです。

自動化するかWP-CLIで手動管理する

WordPressコアファイルの更新を自動化して、重要な変更を見逃すリスクを減らすことも重要です。Kinstaでは、プラグインとテーマ向けのKinsta自動アップデートアドオンを提供しています。

更新の自動化により、最新のセキュリティパッチがリリースされ次第、すぐにサイトに適用されるため安心です。より実践的なアプローチをとる場合、特に大規模なマルチサイトでは、WP-CLIを使って手動で一括更新を実行することができます。WP-CLIは、各サイトに個別にログインすることなく、大規模な更新をスクリプト化し、設定する機能があります。

信頼できるテーマとプラグインだけを使用する

WordPressのプラグインディレクトリ、テーマディレクトリ、あるいは信頼できる開発者など、信頼できるソースから入手できるプラグインとテーマのみを使用しましょう。海賊版や違法配布プラグインには、マルウェアが隠されていることが多く、古いプラグインや放置されたプラグインにはセキュリティホールがあります。インストールする前に、更新履歴、ユーザーレビュー、互換性を常に確認することを習慣化してください。

使用していないものはすべて削除する

使っていないプラグインやテーマは、たとえ無効にしていてもリスクをはらんでいます。これらのファイルがサーバーに残っていると、既知の脆弱性が狙われる可能性があります。使用しないものはすべて削除し、必要最低限のプラグイン/テーマを残しましょう。プラグインやテーマが少なくなれば、パッチの適用や監視、頭痛の種も低減します。

住宅検査ソフトウェアを提供するSpectoraは、Kinstaへの移行後、ページ読み込み速度が15%改善され、サイト管理に関する悩みが減少しました。

サイトの統合管理により、Spectoraのプラグイン管理はよりシンプルかつ効率的に
サイトの統合管理により、Spectoraのプラグイン管理はよりシンプルかつ効率的に

不要なプラグインやテーマを排除し、クリーンで最新の環境を維持することはこれに大きく貢献しています。

WordPressの耐攻撃性強化

強力なパスワードと最新のソフトウェアを組み合わせても、マルチサイトは依然として攻撃の標的になり得ます。ブルートフォース攻撃、XML-RPCの悪用、ファイルパーミッションの設定ミスがハッカーなどの侵入経路となることがあります。システムやソフトウェアなどの設定を強化することで攻撃対象となる可能性を低減し、マルチサイト全体の防御を高めることができます。

ログイン試行を制限する

ブルートフォース攻撃は、ユーザー名とパスワードを推測するために繰り返しログインを試みるものです。WordPressはデフォルトではログイン試行回数が制限されていないため、そのままにしておくと、ブルートフォース攻撃の被害に遭う可能性があります。Limit Login Attempts Reloadedのようなプラグインを使うと、1つのIPアドレスに許可するログイン試行回数に上限を設けることができます。

Limit Login Attempts Reloadedでブルートフォース攻撃のリスクを最小限に抑える
Limit Login Attempts Reloadedでブルートフォース攻撃のリスクを最小限に抑える

この簡単な設定により、自動化されたログイン試行をブロックし、マルチサイト全体や個々のサブサイトへのアクセスを試みるボットの動きを抑えることができます。

必要でなければXML-RPCを無効にする

XML-RPCは、WordPressへのリモートアクセスを可能にするものですが、特にマルチサイトでは脆弱性ももたらします。モバイルアプリや外部サービスとの接続に使用するなどの目的がなければ、無効にしてください。

Disable XML-RPC APIのようなプラグインを使えば簡単に無効化することができます。部分的なアクセスが必要になる場合は、XML-RPCの特定の機能を制限して、その他の機能は有効にしておくことができるプラグインも存在します。

ファイルパーミッションを適切に設定する

ファイルパーミッションの設定に誤りがあると、攻撃者が簡単にコアファイルを変更したり、悪意のあるコードを注入したり、昇格アクセスしたりできてしまいます。WordPressでは、ファイルパーミッションは通常「644」、ディレクトリパーミッションは「755」であることを確認してください。

777」はすべてのユーザーに読み取り、書き込み、実行アクセスを許可するため、絶対に使用しないように注意してください。特にテーマ、プラグイン、カスタムスクリプトを追加した後は、ファイルとフォルダのパーミッションを定期的にチェックし、必要に応じて調整してください。

マルチサイト全体のセキュリティ対策

個々のサイトを守ることも重要ですが、マルチサイトを扱う場合には、システム全体のセキュリティも強化する必要があります。広範な防御層は、すべてのサブサイトを一般的な脅威から守り、深刻な被害につながる可能性を低減するのに役立ちます。

ウェブアプリケーションファイアウォール(WAF)を使用する

ウェブアプリケーションファイアウォール(WAF)は、受信トラフィックがサイトに到達する前に検査とフィルタリングを行い、SQLインジェクション、クロスサイトスクリプティング、ブルートフォース攻撃などの悪意のあるリクエストをブロックします。Cloudflareのようなサービスでは、カスタマイズ可能なWAF保護を提供しており、Kinstaのようなマネージドサーバーはサーバースタックの一部にエンタープライズ級のWAFフィルタリングを組み込んでいます。WAFを実装することで、攻撃者がWordPressに到達するのを未然に防ぐことができます。

あらゆる場所でHTTPSを強制する

SSL暗号化は、転送中のデータを保護し、ユーザーや検索エンジンに信頼性を示します。マルチサイトでは、公開サイトであっても内部サイトであっても、すべてのサイトでHTTPSを利用する必要があります。

Really Simple Securityのようなプラグインを使ってマルチサイト全体でHTTPSを強制するか、利用中のサーバーがサポートしている場合は、サーバーサイドで処理することができます。

Really Simple Securityを使ってWordPressサイトにSSLを導入
Really Simple Securityを使ってWordPressサイトにSSLを導入

Kinstaでは、Cloudflareとの統合により全てのドメインにSSL証明書が無料で自動インストールされるため、手間なくサイトを簡単に保護することができます。

デフォルトのデータベーステーブル接頭辞を変更する

WordPressは、デフォルトで全てのデータベーステーブルに接頭辞「wp_」を使用しています。攻撃者は自動化したSQLインジェクション攻撃を仕掛ける際、この接頭辞をスキャンすることがよくあります。したがって、デフォルトの接頭辞を 「network1_」などのような一意の文字列に置き換えましょう。これだけですべての攻撃を阻止できるわけではありませんが、一般的な自動攻撃にさらされる機会を減らすことができます。

管理画面へのアクセスを制限する

WordPress管理画面は、依然として攻撃の標的になっています。IP許可リストVPN、サーバーレベルの制限を使用して、/wp-adminへのアクセスを制限することが重要です。

例えば、.htaccessNginxの設定を調整することで、オフィスのネットワークやチームのVPN以外のすべてのIPをブロックすることができます。これにより、特にマルチサイト内の使用していないサイトやトラフィックの少ないサイトにおいて、管理画面へのブルートフォースによる侵入を試みる可能性を減らすことが可能です。

マルチサイトの積極的な監視

マルチサイトのセキュリティは、問題が深刻化する前に対処することも重要です。監視ツールを使って不審な行動を検出し、変更を追跡して、マルチサイトが健全な状態に保ちましょう。

WordPressマルチサイトでは、すべてのサイトをリアルタイムで可視化することがさらに重要になります。以下、効果的な監視方法をいくつかご紹介します。

アクティビティログの使用

プラグインのインストール、ユーザー役割の変更、ログインの試行など、マルチサイト上のすべてのアクションは何かしらの影響を与えるものです。アクティビティログは、何がいつ誰によって変更されたかを追跡するのに便利です。

WP Activity Logではサイト上で何が起こったかをいつでも簡単に確認できる
WP Activity Logではサイト上で何が起こったかをいつでも簡単に確認できる

WP Activity Logのようなプラグインは、すべてのサイトにわたるユーザーの行動に関する詳細なログを提供してくれるため、疑わしい行動を素早く調査したり、問題をトラブルシューティングしたりすることができます。複数のユーザーが関与する大規模なマルチサイトでは、説明責任の必須レイヤーになります。

脆弱性スキャンを実行する

強固なセキュリティポリシーを確立していても、新たな脆弱性は常に現れます。WordfenceやSucuriのようなツールを使うと、マルチサイトの自動スキャンを設定することができます。これらのプラグインは、古いソフトウェア、既知のエクスプロイト、ファイルの変更、マルウェアの侵入にフラグを立てて、リアルタイムで通知を送信するため、問題が本格的な侵害に発展する前にパッチを適用可能です。

例えば、米国のテキサス大学オースティン校では、集中型の情報セキュリティ室(ISO)を通じて、ネットワーク侵入検知やフォレンジック調査などのインシデント対応を監督するという積極的なアプローチをとっています。

テキサス大学オースティン校はネットワークセキュリティを監督する情報セキュリティ室を設置
テキサス大学オースティン校はネットワークセキュリティを監督する情報セキュリティ室を設置

セキュリティに関する苦情を処理し、経営幹部と相談しながら復旧作業を調整しており、これは脅威を特定し、迅速に対応するための専用プロセスがいかに重要であるかを示しています。

パフォーマンスと稼働時間を監視する

セキュリティの問題は、常に警告を受けて検出できるとは限りません。ハッキングによりサイトの読み込みが遅くなったり、突然ダウンしたりすることもあります。稼働率、サーバーの応答時間、リソースの使用状況を追跡する監視ツールは、このような「危険信号」の早期発見に役立ちます。サイトが突然異常な帯域幅を消費し始めたり、何度もクラッシュしたりする場合は、技術的な不備ではなく、攻撃を受けている可能性があります。

バックアップと災害復旧計画

WordPressマルチサイトの安全性をどれほど高めても、問題が発生する可能性はゼロではありません。ヒューマンエラーや更新の失敗、標的型攻撃など、さまざまな要因が挙げられます。だからこそ、信頼性の高いバックアップとリカバリの計画は必要不可欠です。予期せぬ事態が発生した場合は、迅速かつ確実にマルチサイト全体を復旧する必要があります。

毎日のバックアップを自動化する

手作業によるバックアップでは、マルチサイトの規模に対応できません。毎日のバックアップを自動化し、確実に実行しましょう。Kinstaでは、組み込みのバックアップ機能を標準提供しています。またバックアップはワンクリックで復元できるため、個々のサイトのファイルやデータベースを調べることなく、環境全体をオンラインに戻すことができます。自動バックアップには、すべてのサイト、メディア、プラグイン、テーマ、データベースコンテンツが含まれるため安心です。

バックアップをオフサイトに保存する

サーバー上にのみバックアップを保存していると、サーバー自体が危険に晒された状況では意味をなしません。Google ドライブ、Dropbox、Amazon S3などの外部ストレージを利用して冗長性を確保することをおすすめします。UpdraftPlusのような多くのWordPressバックアッププラグインは、クラウドストレージサービスとの統合もサポートしているため、一度設定すればバックグラウンドで実行させることができます。Kinstaのマネージドサーバーでも、外部バックアップを簡単に設定することができます。

定期的に復元をテストする

バックアップをただ作成すれば安心というわけではなく、実際に機能するかどうかテストすることも重要です。四半期ごとにテスト復元を実行することをおすすめします。これによりファイルの完全性を確認し、プラグインの互換性をチェックして、チーム全体がリカバリプロセスを理解していることを確認できます。また、プレッシャーがかかる中で、フルサイト復元を行う必要がある場合、実際にどれくらいの時間がかかるかを把握することも可能です。

マルチサイト固有のアクセスとプラグイン制御

マルチサイトの管理は、柔軟性と制御のバランスを取ることが鍵になります。各サイトの管理者がコンテンツを管理できるようにしたいものですが、マルチサイト全体のセキュリティは犠牲にできません。適切なアクセス制御とプラグイン管理を行うことで、業務効率を落とすことなくシステムのセキュリティを保つことができます。

個々のダッシュボードへのアクセスを制限する

サイト単位の管理者は、そのサイトの管理画面のみにアクセスできるようにしましょう。どうしても必要な場合を除いて、マルチ全体の権限の付与は避けてください。これにより、マルチサイトへの意図せぬ変更を防ぎ、単一のサイト管理者アカウントが侵害された場合の被害を抑えることができます。必要に応じてユーザー役割管理プラグインを使用し、ユーザー全体の権限を微調整します。

サイトごとにプラグインへのアクセスを制御

マルチサイト上のすべてのサイトで同じツールが必要になるわけではありません。すべてのサイトに全プラグインへのアクセス権を与えると、余計なリスクが生じます。Beyond Multisiteのようなプラグインを使用して、サイトごとにプラグインを有効化または制限しましょう。

Beyond Multisiteでマルチサイト全体のプラグインアクセスを制限
Beyond Multisiteでマルチサイト全体のプラグインアクセスを制限

これにより、不要な機能をサイト管理者の手に渡さず、監視や更新が必要な可動部分を減らすことができます。

ステージングで新しいサイトや機能をテスト

サイト、テーマ、プラグインを本番環境に直接反映するのは危険です。ステージング環境をセットアップして、本番稼動前に互換性、パフォーマンス、セキュリティをテストしてください。これにより、バグやリソースの無駄遣いを検出し、マルチサイトを不安定にする可能性のあるコードの導入を避けることができます。Kinstaでは、ステージング環境がすべてのサイトに付属するため、テストを迅速かつ安全に行うことができます。

高度な管理ツールでマルチサイトを強化

マルチサイトが成長するにつれ、手作業によるメンテナンスは非効率的でリスクが高くなります。優れたツールを活用することは、大規模な変更を管理し、ヒューマンエラーを減らして、より安全で信頼性の高い開発ワークフローを作成するのに役立ちます。初期段階で採用する価値があるのは、WP-CLIとDockerです。

WP-CLIを使ってサイトを集中管理する

WP-CLIは、先に述べた通り、マルチサイト全体を制御できるWordPress用のコマンドラインインターフェースです。WP-CLIを使えば、プラグインやテーマの一括更新、ユーザーパスワードのリセット、複数サイトにわたるプラグインの有効化・無効化、コアの更新をすべてターミナルから実行することができます。これにより作業時間が削減され、更新を見逃したり、プラグインを誤って設定したりする可能性も低減します。

開発とステージングにはDockerを使用する

Dockerを使えば、本番環境と同じような隔離されたコンテナベースの環境を構築し、本番環境に触れることなく、新たなプラグイン、テーマ、カスタムコードをテストすることができます。ステージング環境をローカルまたはクラウドで実行することで、互換性の問題を回避し、開発中に脆弱性を導入するリスクを減らすことが可能です。

また他の開発者とのコラボレーションも容易になり、チーム間で一貫した環境を確保することができます。Kinstaの無料WordPressローカル開発ツールDevKinstaは、Docker上に構築されています。

Kinstaの安全なWordPressマルチサイト向けサーバー

マルチサイトの安全かつ効率的な管理は、サーバー選びが非常に重要です。KinstaのWordPress専用マネージドクラウドサーバーは、マルチサイト向けに設計されており、簡単インストール、パフォーマンス、スケーラビリティ、そして一任できる強力なセキュリティを確かな機能で保証します。

Kinstaは、サブドメイン、サブディレクトリ、ドメインマップのマルチサイト構成をサポートしているため、必要な方法でマルチサイトを立ち上げることができます。5つのサイトを管理している場合でも、500のサイトを管理している場合でも、マルチサイト全体で同等の優れたセキュリティ対策の恩恵を受けることができます。

エンタープライズ級のWAFとCloudflare統合が標準搭載

Kinstaの全てのプランにはCloudflare統合が付帯しており、エンタープライズ級のWAFが導入されます。悪意のあるトラフィックがネットワークに到達する前にフィルタリングし、SQLインジェクション、クロスサイトスクリプティング、ボット攻撃などの一般的なエクスプロイトをブロックします。

マルウェアスキャン

サイトのマルウェアスキャンを毎日実行し、万が一マルチサイトが侵害された場合は、追加費用なしでセキュリティ部門がクリーンアップを行います。このサービスは他のサーバーでは提供されていないことが多く、数十のサイトを管理している場合には特に有用です。

隔離コンテナベースのアーキテクチャ

お客様のWordPressサイトは、独自の隔離されたコンテナで実行されるため、マルチサイトであっても、リソースはサーバーレベルで保護されます。CPUスパイクや不正なスクリプトなど、1つのサイトの問題が他のサイトに波及することはありません。これはセキュリティ上だけでなく、パフォーマンス上の利点にもなります。

SkyrocketWPは、Kinstaへの移行した後、ページの読み込みが最大81%高速化され、パフォーマンスを大幅に改善しました。

SkyrocketWPは、Kinstaへの移行後、セキュリティの強化とともパフォーマンスの改善も実現
SkyrocketWPは、Kinstaへの移行後、セキュリティの強化とともパフォーマンスの改善も実現

この結果は、隔離コンテナ技術がセキュリティとパフォーマンスに与える効果を裏付けています。

ワンクリックで復元可能な毎日の自動バックアップと手動バックアップ

マルチサイト全体が毎日自動バックアップされ、必要に応じて手動でバックアップを作成することも可能です。さらに、サブサイトまたはマルチサイト全体の復元はワンクリックで完了。バックアップにはデータベース、ファイル、テーマ、プラグインなどすべてが含まれており、設定も不要です。

CloudflareのSSL証明書とグローバルCDN

マルチサイト内のすべてのサイトには無料でSSL証明書が導入されるため、手間なく全てのドメインで安全なHTTPS接続が確保されます。また、読み込み時間を短縮し、DDoS攻撃対策とコンテンツの整合性を高めるCloudflareのグローバルCDNも標準搭載されます。

サーバーサイドのセキュリティはすべてKinstaで管理されるため、セキュリティの問題を心配することなく、マルチサイト管理に集中することができます。

まとめ

マルチサイトのセキュリティ対策は、きめ細かなユーザー役割、使用するプラグインの厳選、定期的な更新、信頼できるバックアップ、継続的な監視など挙げられます。今回ご紹介した対策を組み合わせることで、マルチサイト内のすべてのサイトのリスクを軽減することができます。

すべてのサブサイトは同じコアを共有するため、単一の脆弱性はシステム全体を危険にさらす恐れがあります。だからこそ、積極的なマルチサイト全体のセキュリティ強化が重要です。

KinstaのWordPress専用マネージドクラウドサーバーは、この作業の多くを簡素化します。自動バックアップ、マルウェアスキャン、CloudflareのWAF、および隔離コンテナ技術により、手間のかからないマルチサイトの堅牢なセキュリティの維持を実現可能です。初月無料プラン、全プランに30日の返金保証、さらに無料のサイト移行でまずはリスクなしでKinstaをお試しください。

Steve Bonisteel Kinsta

Kinstaのテクニカルエディター。救急車や消防車を追いかける記者としてキャリアをスタート。1990年代後半からインターネット関連の技術情報を担当している。