世界的に最もメジャーなCMSとして定着しつつあるWordPressですが、今回はWordPressのセキュリティについて紹介します。
専門用語が多くて難しく、効果が目に見えにくいことから、後回しにしてしまいがちなセキュリティ対策。WordPressはそのシェアの高さからハッカーの標的となってしまうことがあります。
改ざんなどの事故が起きた場合には復旧作業や調査・報告費用として100万円以上が必要となることもあります。そうなってしまう前に可能な範囲で対策を施していきましょう。
WordPressセキュリティ対策リスト
ここからセキュリティ対策を「WordPressのセキュリティを高める方法、事故の発見・復旧」の2つのフェーズにわけ、セキュリティを高める具体的な方法をご紹介します。これらを徹底すれば、攻撃を受ける回数、セキュリティを突破される可能性も大きく下がるほか、仮に事故が発生しても迅速な復旧が可能になるはずです。ぜひ最後までお読みください。
注意 ご紹介する対策を行うことにより、Webサイトに不具合が出る可能性があります。理由はサーバーが対応していない、使用しているPHPバージョンが適合しない、など様々です。また、これらの施策を実施することで、攻撃を完全に防げるものではないことにご注意ください。
目次
WordPressのセキュリティを高める方法
安全なテーマ・プラグインを利用する
WordPressを構成するものとして、「コア」と呼ばれるWordPressの本体、デザインや基本的な機能をもつ「テーマ」、機能を追加することができる「プラグイン」というファイル群があります。
中でもテーマとプラグインは世界中に様々な制作者がいるため、開発者によってそれぞれのセキュリティレベルが異なっています。WordPress公式のテーマディレクトリに登録されているのものは、セキュリティチェックを受けたテーマなので安心ですが、機能やデザインの面で折り合わないこともあります。その際にはなるべく有償のものを利用するか、制作会社に制作を依頼すると良いでしょう。
有償のものをおすすめする理由としては、制作会社に依頼する場合同様にチェック体制が整っている可能性が高いことと、サポート体制が整えられていることが多いためです。
WordPress公式テーマディレクトリ
プラグインについては公式ディレクトリにあるものという条件に加えて、活発に更新されているものを選択することも重要です。これも、一つの考え方として、メンテナンスや脆弱性対応がしっかりとなされているという証拠です。
WordPress公式プラグインディレクトリ
ログインページ・アカウントを強化する
WordPressを含むWebシステムへの代表的な攻撃の一つに、ブルートフォース攻撃、辞書攻撃と呼ばれるものがあります。これはIDやパスワードのリストを元に様々なパターンで入力し続け、ログインを試みるという攻撃です。
ログインされてしまうとウィルスの設置やコンテンツの書き換えなどが容易になってしまいますので、しっかりと対策する必要があります。これには
- ログイン画面を保護する
- アカウント、パスワードを強固なものにする
- 辞書攻撃を回避する仕組みを導入する
の3つの対策が有効です。
ログイン画面を保護する
まずは管理しているWordPressのログインページURLを確認しましょう。もしトップページのURLに/wp-login.php、または/wp-adminを末尾に追加したURLでログインページにアクセスできる場合は対策が必要です。
初期状態のWordPressではログイン画面のURLは同じ構造のため、誰もがログインページにアクセス可能な状態です。これを変更することでハッカーがログイン画面にたどり着く確率を下げることができます。
プラグインで対策を行う場合にはSiteGuard WP Pluginがおすすめです。(サーバーによってはエラーが発生します。ご注意ください。)
強固なアカウント、パスワードの利用
アカウントやパスワードは充分に強いものを使用しましょう。アカウント名はadminやrootなどの定番とされるものを避け、12ケタ以上かつ、記号を含んだものであれば充分な強度を持つパスワードと言えます。パスワードジェネレータの使用もおすすめです。
ログインページのセキュリティ機能向上
ログインに必要な情報がアカウント名とパスワードだけである場合には、対策をおすすめします。初期状態のログインページは
- IDとパスワードのみが求められる
- 何度でもログイン試行が可能
であり、辞書攻撃を行うにあたって障害となるものが何もありません。
キャプチャ機能や2段階認証プロセスなどを導入して攻撃に備えましょう。こちらは先ほどご紹介したSiteGuard WP Pluginで導入可能です。またSiteGuard WP Pluginには日本語のキャプチャ機能が搭載されています。日本語の場合、使用する人数が英語やアラビア数字に比べて少なく、外国のハッカーにとっては攻撃しにくい対象といえます。
危険なアクセスを防ぐ
ハッカーはログインページ以外からも様々な方法で攻撃を試みますが、攻撃にはある程度の共通点があります。それらを検知して遮断する、標的になるファイルを削除するなどの対策も有効です。
WAFやIPSなどのサービスを利用する
もしWAF(ウェブアプリケーションファイアウォール)やIPSといったサービスを導入可能であれば積極的に利用しましょう。悪意のある通信を遮断したり、侵入を検知して知らせてくれたりと、セキュリティ対策として大きな効果が期待できます。
不要なファイルを削除する
WordPressはブログシステムとして生まれたため、個人がブログを運営するに当たって便利な機能が搭載されていますが、企業サイトとして運営している場合には不要なファイル、というものがいくつか存在します。例えば
- xml-rpc.php
- wp-comments-post.php
などです。xml-rpc.phpはメール投稿やパブリサイズ共有などの機能を利用しない場合には不要ですし、コメント機能をそもそも利用しない場合も多いしょうから、無効化が可能かどうか検討されると良いでしょう。これによりコメントスパムやWordPressの機能を外部から悪用される可能性を低減することができます。
事故の発見・復旧
事故への準備と対応
ここまでに挙げた対策を行うことで改ざんなどの被害に遭う可能性は大きく下がっているはずですが、それでもなんらかの理由で事故が発生することはあります。ここからはスピーディーな事故対応を行うために必要な準備やツールを紹介します。
事前に対応を決めておく
準備のないままに事故が発生した場合、どのような措置を行うかが決まらないまま被害が拡大していくことがあります。発見者から責任者へ連絡が行き意思決定がされるまでにエンドユーザーがサイトを利用し続け、被害が拡大していくという構図です。
社としての対応手順が共有されていると、被害を最小限に抑えることが可能になるでしょう。
定期的なバックアップを行う
セキュリティを破られた場合にもっとも確実でスピーディーな対策は、汚染のないデータでサイトを作り直すことです。バックアップのない状態で全ファイルを確認する場合は費用も大変な額になってしまいます。少しでも早く復旧するために、定期的にバックアップを取得しておきましょう。
脆弱性情報をチェックする
WordPressやプラグインの脆弱性情報をチェックし、適切に対応しましょう。代表的な脆弱性情報サイトであるJPCERTやJVNの情報をRSSなどで自動的にチェックするのがおすすめです。
事故を検知する仕組みを整える
ハッカーがWordPressのセキュリティを突破して侵入した際には、本体やテーマ、プラグインに対してなんらかの変更を加えることがほとんどです。これらを検知することで早期に事故を察知でき、被害の拡大を抑えることができます。改ざん検知プラグインなどを利用して異変を察知しましょう。All in One WP securityはテーマやプラグインのファイルに変更が起きた場合にメールで通知を送ってくれルため、改ざんを早期に発見可能です。
ログを取得する
事故が起きた時に、ログイン履歴やファイル操作の履歴が残っていると原因を特定しやすくなります。LogBookやsucuri securityが便利です。
管理画面で可能な行動を制限する
WordPressにはプラグインやテーマを管理画面から編集する機能が搭載されています。管理者としては便利な部分もありますが、侵入者にこの機能を使用された場合にはテーマファイルのどこにでもバックドア(ハッキングするための裏口)を設置可能になってしまい、非常に厄介な状況になります。
また、運用の面でも問題があります。オンライン上で担当者が変更を加えてしまうと、バックアップのテーマファイルと実際に使用されているテーマファイルに差異が生まれてしまいます。この機能は停止しておくのがおすすめです。
WordPressセキュリティの基本
多くのセキュリティ対策をご紹介してきましたが、WordPressのセキュリティ対策の基本は”アカウントを守る”、”最新版を利用する”です。これさえ守られていればハッキングの危険性は大きく下がります。まずは最新版を利用できているか?アカウント名やパスワードは推察しにくいものになっているか?これらを確認してください。