ブログを構築するにあたり、いろいろなサイトやコミュニティを見て回りましたが、WordPressの対策はスパムだけでよいのか?という質問をよく見かけましたので、これへの回答を整理してみました。
この記事の対象としては、IT技術にあまり詳しくないがWordPressで個人のブログなどを構築、運用している方を想定しています。
結論:WordPressを使用してWebサイトを運用する場合、スパム対策だけでは不十分です。追加でセキュリティ対策を実施しましょう。
具体的に解決策のみ知りたい場合は、解決策まで飛んでください。
そもそもWordPressで構築されたWebサイトにはどのようなセキュリティ上のリスクがあるか
IPA(独立行政法人情報処理推進機構)の調査によれば、WordPressで構築されたWebサイトには大きく2つのリスクがあります。
・脆弱性やウェブサイトの運用上の不備の悪用
・認証ページの認証突破
IPAテクニカルウォッチ「CMSを用いたウェブサイトにおける情報セキュリティ対策のポイント」
ここからは2つの大項目について掘り下げていきます。
脆弱性やウェブサイトの運用上の不備の悪用とは
脆弱性やウェブサイトの運用上の不備について、それぞれ説明していきます。
ソフトウェアの脆弱性を悪用される
脆弱性とは、ここではソフトウェアのセキュリティ上のバグを指しています。例えば、WebサイトのURLに特殊な文字を入力すると、任意のコードが実行されてしまうバグがあったりします。ソフトウェアは人間が作っているものなので、こういったセキュリティ上のバグがよく発見されます。
攻撃者はこれらのバグを利用してWebサイトの改ざんや、Webサイトの乗っ取り等を行おうとします。
WordPressはCMSの中でもセキュリティ上のバグが発見されることが多いため、バグが発見されたらすぐに修正し、攻撃者の悪用を防ぐ必要があります。
尚、本ブログのサイドページにはipaが提供している脆弱性情報を掲載していますので、ここでどのような脆弱性が公開されているかを確認してみてください。
運用上の不備を悪用される
運用上の不備というのは、不要なファイルを不適切な権限で公開していたり、不要なユーザーに管理者権限を付与しているなどの問題が挙げられます。
不要なユーザーに管理者権限を付与するというのは、個人でWordPressのブログを構築して運用している場合には、自身のユーザーのみで運用している事が多いと思いますので、あまり該当することはないかもしれません。
不要なファイルを不適切な権限で公開してしまう例としては、WebサイトのパスワードファイルをWebサイトにアクセスした人全員に公開してしまい、パスワードが漏れ、不正にアクセスされることなどが考えられます。このため、不要なファイルは公開しない。公開する場合は、適切に権限を設定する必要があります。
ここまで、大項目の1つ目である、脆弱性やウェブサイトの運用上の不備の悪用について、説明しました。
ここからは大項目の2つ目である、運用上の不備について説明します。
認証ページの認証突破とは
WordPressの管理者画面には認証ページがありますが、この認証において管理者のユーザID、パスワードが攻撃者に当てられてしまって、不正にアクセスされることがあります。
よくあるパスワードを使用することによる認証突破
攻撃者にパスワードが当てられてしまう原因としては、よくある管理者ユーザー名、よくあるパスワードを使用していることが考えられます。(例えば、管理者名:administrator、パスワード:password)攻撃者はよくあるユーザー名、パスワードの組み合わせの一覧を所持しており、これらの組み合わせを自動的に認証画面に入力して認証を突破することを試みます。このため、これに対する対策が必要です。
他のサイトで使用しているユーザー名、パスワードを使用することによる認証突破
攻撃者はインターネット上にあるいくつかのWebサイトが漏らしてしまったユーザID、パスワードの組み合わせを持っていることがあります。攻撃者はこれら組み合わせを、自動的に認証画面に入力して様々なパスワードを試すことがあります。これはパスワードリスト型攻撃といって、様々なサイトで被害事例があります。このため、これに対する対策が必要です。
スパム対策だけではセキュリティ対策は不十分なのか
ここまで、WordPressで構築されたWebサイトに存在するセキュリティリスクについて整理してきましたが、これらリスクに対してスパム対策が有効なのかを考えます。
スパム対策については、コメント欄等へのスパムコメントの投稿を防ぐことはできます。しかし、これまでに説明してきた、セキュリティ上のバグを利用した攻撃への防御や、認証ページの認証突破への防御としては不十分です。
(認証ページにreCapchaを使用することで一部の認証突破の防御として機能することは期待できますが、これだけではやはり不十分です。)
解決策
ではどういった対策が必要なのかについて説明していきます。
WordPressのバージョン、プラグインのバージョンを常に最新にする
先程リスクであげたとおり、セキュリティ上のバグはよく発見されます。これら発見されたバグに対し、プラグインの作成者やWordPressの作者は修正パッチを作成します。修正パッチは最新簿バージョンを利用することで適用する事ができるため、常に最新のWordPressのバージョンや、プラグインを利用することがセキュリティ上のバグの対策として有効です。
XserverのWordPress自動構築機能などを利用する
Xserverに限りませんが、様々な業者にてWordPressの自動セットアップ機能が用意されている場合があります。この機能を利用することで、不要なファイルの不適切な権限での公開を防ぐことが可能です。
(自動セットアップ機能を利用してWordPressを構築した後は、構成ファイルやアクセス権の勉強をしていきましょう。構築後のカスタマイズにより意図せず不要なファイルの不適切な権限での公開を防ぐために必要です。)
プラグインを導入して対策する
以下のプラグインを導入することで、認証ページへの認証突破を防ぐことができます。
- SiteGuard WP Plugin
- Invisible reCaptcha
- SiteGuard WP Pluginのログインページ変更の設定を行ういます。攻撃者はWordPressのデフォルトのログインページ(wp-login.php)のURLにアクセスし、認証突破を試みます。このため、ログインページのURLを変更することにより、認証突破を試みられることを防ぐことができます。
- Invisible reCaptchaのEnable Login Form Protectionにチェックを入れます。1の対策をしているのにも関わらず、ログインページが攻撃者にバレてしまった場合、攻撃者は自動で様々なパスワードの入力を試みます。Enable Login Form Protectionを有効にしていると、自動でのパスワード入力を防ぐことができ、多数のパスワードを試すことができなくなり、不正アクセスを防ぐことに繋がります。
SiteGuard WP Plugin、Invisible reCaptchaには上記以外にもセキュリティ対策機能がありますので、すべて有効にしましょう。その他のセキュリティ対策機能については、別の記事でまとめます。
また、上記プラグイン以外にも、何らかの不備により不正アクセスを受けてWebサイトが改ざんされた場合への対応として、以下プラグインを導入して、定期的にバックアップを取得しておくことが重要です。
- BackWPup
バックアップは取得したら、必ずバックアップからのリストアをテストしておきましょう。バックアップに不備があり、バックアップからのリストアができないなどを防ぐことができます。
まとめ
WordPressWordPressで構築したWebサイトに対する代表的なセキュリティリスクを説明することで、スパム対策だけではセキュリティ対策が不十分であることを説明しました。
最低限、ここに記載したセキュリティ対策を行い、安全にWebサイトを運用しましょう。
コメント