WordPressでホームページ・ブログを運用して思うこと:セキュリティなど
このサイトは、WordPressで作成しています。WordPressを利用するにあたり、ネット上でさまざまな情報を調べましたが、ホームページ・ブログの作成と運用に関する総合的な情報は少ないように感じました(探し方が悪いだけの可能性もあります)。具体的には、WordPressの始め方や操作方法、特定のプラグインの説明など、個別のトピックに関する情報は多く見つかりましたが、WordPressを利用したホームページ・ブログの作成と運用についての総合的な情報は限られていました(ただし、個別のトピックに関する情報は非常に有用です)。
そこで、なぜWordPressを選んだのかやWordPress運用で考えたこと、実運用などを整理することは有用だと考え、今回の記事を書きました。なお、今回の記事では主にWordPressをシステムとして運用する上での情報を中心に扱っており、具体的なホームページやブログ記事の書き方については触れていません。
1.WordPressとは
WordPressは広く使われているOSS(オープンソースソフトウェア)のCMS(コンテンツ管理システム)。OSSとしてのWordPressは、以下のような特徴を持ちます。
1.1.コミュニティベースの開発、公開されたコード
WordPressはOSSであり、グローバルな開発コミュニティによって開発・メンテナンスされています。ソースコードは公開されており、基本機能は無料で利用できます。透明性が高く、セキュリティ上の問題は適時に検出され、修正される傾向にあります。
一方で、悪意ある攻撃者にとってのターゲットにもなりやすく、WordPressの脆弱性を悪用したインシデントが起こる可能性もあります。
1.2.大規模な利用とターゲット性
WordPressは非常に人気のあるプラットフォームであり、数多くのウェブサイトで利用されています。また、ネット上にWordPressの始め方や操作方法などのWordPress利用に関する情報も豊富にあり、実績と情報の両面から優れたCMSだと感じます。
一方で、非常に人気のあるプラットフォームであるがゆえに、悪意ある攻撃者のターゲットになりやすく、攻撃者がWordPressの脆弱性を悪用する機会も増えます。
※Tips 著名なサイトでないから安全?
有名企業、著名人のサイトでなくとも悪意ある攻撃者のターゲットになり得ます。他のサイトを攻撃をするための拠点にされる可能性があるのです。具体的には、サイトにマルウェアや悪意あるスクリプトを仕込んだりすることで、自身のボットネットを構築し、攻撃者の指示に従ってスパムの送信など、様々な悪意ある活動を行うことができるのです。
1.3.多様なプラグインとテーマ
WordPressはプラグインやテーマといった拡張機能が非常に豊富で、かつ、非常に有用です。
一方で、これらの拡張機能は第三者によって作成され、WordPressのコアとは独立しています。そのため、拡張機能の開発者がセキュリティを適切に考慮していない場合や拡張機能の組み合わせによっては、システムに脆弱性が生じたり、WordPressの動作が不安定になったりする可能性があります。
※Tips システム自体に内在する課題
「パソコンに新たなソフトウェアをインストールしたら、パソコンの動作が不安定になった」という経験はありませんか?問題となるのはソフトウェアの組み合わせです。特定のソフトウェア単独では正常に動作するのに、別のソフトウェアと一緒に動作させると不安定になることがあります。これはシステムの中ではよくある話です。全てのソフトウェアを組み合わせて動作確認することはできないため起こる現象です。この現象に対処するには、ソフトウェアを導入する前に実際の環境で動作確認をする必要があります。
WordPressで新たな拡張機能を導入する場合も同様で、動作が不安定にならないかなどをテスト環境でテストしてから実際の運用に移すことが重要です。
1.4.WordPressや拡張機能の頻繁なアップデート
WordPressや拡張機能は、機能拡張や脆弱性対策などのために頻繁なアップデートが行われています。アップデートをしないで古いバージョンのまま使用するのは、脆弱性などが修正されておらず、悪意ある攻撃者に悪用されるリスクが高まります。
WordPressや拡張機能のアップデートに際して、プラグインやテーマの互換性に問題を抱えることがあります。対応方法によっては、脆弱性が生じたり、WordPressの動作に不具合を生じたりする可能性があります。
※Tips アップデートに内在する課題(互換性など)
あるモジュールをアップデートしたところ、システム全体として動作が不安定になった。これもシステムの中ではよくある話です。
アップデートされたモジュールが他のモジュールと依存関係にあって(他のモジュールから呼ばれたり呼んだりすること)上手く動作しなくなったり、リソースで競合が起こったり(メモリ、ディスクなど)、予期しない設定情報の書き換えが起こったりするとシステムの動作が不安定になる可能性があります。
WordPressや拡張機能のアップデートをする場合も同様で、システムの動作が不安定にならないかなどをテスト環境でテストしてから実際の運用に移すことが重要です。
2.WordPressとレンタルサーバの選択理由
WordPressは非常に人気のあるプラットフォームであり、多くのウェブサイトで利用されています。また、WordPressの始め方や操作方法などの利用に関する情報も豊富であり、実績と情報の両面から優れたCMSだと感じ、ホームページ・ブログ作成のプラットフォームとしてWordPressを選択しました。
尚、ホームページ・ブログの作成は、HTMLとCSSを利用しても可能ですが、システムのメンテナンス性などを考慮し、CMSを使用することとしました。
WordPressを稼働させるには、Webサーバ、PHP、データベースなどの導入や設定も必要ですが、ホームページ・ブログを作成する目的から考えると、面倒なサーバ運用はアウトソースすることにしました。つまり、レンタルサーバを借りることにしました。現在では、WordPressの導入を前提にしたレンタルサーバもありますので、その中からレンタルサーバを選択し、独自ドメインを取得して、ホームページ・ブログを立ち上げました。
※Tips 規模が小さな組織でシステムを運用するには
システム運用が楽にできることは大規模組織以上に重要です。サイト運営を私一人で遂行するこのサイトも、レンタルサーバを選択し、レンタルサーバ側が用意している有用なツールは積極的に活用する方針で運用してます。
3.安定的なサイト運用をするには
WordPressはOSSであり、悪意ある攻撃者のターゲットになりやすいので、完全な対策は存在しないものの、サイト運営に際しては一定のセキュリティ対策が必要と考えます。また、WordPressや拡張機能のアップデートが頻繁に行われるので、安定してサイト運営できるような対策も必要と考えます。以下に対策例を示します。
3.1.バックアップ
ホームページやブログのバックアップは最優先。悪意ある攻撃やアップデートによるサイトの破損など、予期しない事態に備えるため、定期的なバックアップを取ることが重要です。WordPressや拡張機能のアップデート前にバックアップすることや、リストア操作を試しておくことも重要です。
3.2.緊急のサービス停止手段の準備
サイトの異常動作に備えて、緊急にサービスを停止する手段を用意しておくことが推奨されます。このサイトでは、レンタルサーバで提供されているメンテナンスモードを利用し、サイトへのアクセスを制限する方法を利用しています。
3.3.WordPress管理者画面への不正ログイン防止
WordPressのデフォルトで運用することはリスクが高いの判断し、このサイトでは以下のような対策を施しています。
- パスワードの強化(長さなど厳しい要件のパスワードにしています)
- ログイン失敗時のロックアウト機能の導入
- 画像認証を追加することで、コンピュータを利用した繰り返し攻撃を防止
- ログイン履歴のメール通知と確認
- ユーザ名の漏洩防止、WordPressのデフォルトのログインページURLの変更
など
3.4.アップデートへの対応
アップデートに伴う不具合を防止するため、以下のような対策を施しています。
- WordPress、テーマ、プラグインのアップデート通知を受け取り、適宜アップデートを実施
- アップデートによるサイトの破損リスクに備えて、レンタルサーバが提供するテスト機能を活用。システムが自動的にテストを実施し、アップデート前にアップデートに伴う不具合の有無を確認
など
3.5.不要なテーマ・プラグインの削除
不要なテーマやプラグインは削除しておくことで、セキュリティリスクを減らすことができます。
3.6.チェーンメール対策
問い合わせフォームを悪用したチェーンメール対策として、GoogleのreCAPTCHAなどのサービスを利用しています(reCAPTCHAは無料で提供されており、ボットと人間を区別するためのサービス)。
WordPressサイト運営にはセキュリティを考慮し、一定の対策を行うことが重要です。バックアップの取得、緊急のサービス停止手段の準備、不正ログイン防止、アップデート対応、不要なテーマ・プラグインの削除、チェーンメール対策などに留意し、安定したサイト運営を実現することが重要を考えます。