意外にやってない!?WordPressのセキュリティ対策

  • このエントリーをはてなブックマークに追加

【WordPressのセキュリティ対策が問題になっている】

セキュリティの脆弱性をついた攻撃による、情報漏洩等のニュースが毎日の様に報道されています。つい先日も、「日本年金機構」のサーバーから125万件の個人情報が流出した、というニュースが報道されました。また、年金機構のWebサイトにも脆弱性が発見され、閉鎖して復旧作業を行っています。また、最近WordPressを設置したサーバーやサイトを対象に、大規模なクラッキングや改ざんが行われている事もニュースになりました。管理画面から、気軽にWordPressを自動インストールできるホスティングサービスも多く、世界的に有名なWordPressを利用したサイトは、CMSの中では世界一多いとも言えます。その為、共通の脆弱性が多く存在する事になり、攻撃対象になりやすいといった側面もあります。WordPressでサイトを運営する場合には、しっかりとしたセキュリティ対策が重要と言えます。

 

【WordPressも基本的なセキュリティ対策が重要】

WordPressに限らず、サイトを運営する上では、基本的なセキュリティ対策は重要です。高度な知識や特別なプログラムを使用しなくとも、基本的なセキュリティ対策が可能です。WordPressのセキュリティ対策では、先ず基本的な対策をしっかりと行う事が重要と言えます。

■パーミッションの設定
システムファイルやディレクトリのパーミッションの設定は基本となります。WordPress Codex等を参考に、正しく設定する事が基本となります。手動インストールした場合には、特に変更する必要はありませんが、正しくパーミッションが設定されているか、確認する事は重要です。パーミッションの設定は通常、FTPクライアントで行います。

■脆弱性に対するバージョンアップ
WordPressは、脆弱性や不具合等に対するバージョンアップが頻繁に行われています。WordPress本体だけでなく、追加したプラグインにも脆弱性も潜んでいます。バージョンアップは面倒ですが、こまめにチェックし、重要な脆弱性に対するバージョンアップを心掛けましょう。管理画面のダッシュボードから、確認できます。

■WordPressのバージョンアップは事前に検証する
WordPressのバージョンアップが行われた時には、バージョンアップの更新履歴(Change Log)が公式サイトに掲載されます。この更新履歴を確認すれば、WordPressに、どのようなアップデートが行われたかが分かります。アップデートの内容が、セキュリティアップデートとは関係ない場合もあります。本当に必要なアップデートなのか?を確認し、緊急性があるようなセキュリティアップデートやバグの修正だった場合にのみ、バージョンアップするようなルールにしてみるのも、余計な手間やバージョンアップによる不具合を防ぐ事にも繋がります。アップデートの内容によっては、プラグインが正しく動作しなくなるなど、副作用も考えられますので、WordPressのバージョンアップの内容の事前確認や、テストサイト上での検証を行う事も必要です。

 

【プラグインによるセキュリティ対策】

プラグインを使用すれば、様々なセキュリティ対策がWordpress上から可能になります。基本的なセキュリティ対策をしっかりと行った後、プラグインでセキュリティ対策を行う事で、更に堅牢なセキュリティ対策を行う事が出来ます。

■ログインURLを変更する
通常は、「wp-login.php」からログインを行いますが、このURLをランダムな文字列のURLへ変更する事で、ログイン画面を隠す事ができます。WordPressのログイン画面を隠す事が出来れば、ブルートフォースアタックだけでなく、URLを定期的に変更する事で、運営者以外で、URLを知る者(元関係者)からも、ログイン画面を隠す事が出来ます。ログイン画面のURL変更だけでも、大きな違いが出るはずです。ログイン画面のURLは、プラグインを使って、簡単に変更する事が出来ます。

お勧めプラグイン:
Login Rebuilder

■認証失敗時の試行回数の制限
認証に失敗した場合の、認証試行回数の制限を行うことで、パスワードに対する辞書攻撃「ブルートフォースアタック」を抑止する事ができます。ブルートフォースアタックは、膨大な単語の辞書を用いて、プログラムがサイトのログイン画面でログインを自動的にかつ高速に試みるハッキングの事です。このアタックを受けると、大量のログインエラーが、ログに記録されるようになります。このアタックに対しては、ログイン試行回数の制限は勿論ですが、ログイン名やパスワードには、推測されやすい、あるいは単純な単語を使わない、といった基本的な措置が最も重要です。パスワードが単語の場合には、直ぐにランダムな文字や数字、更には記号を混ぜたパスワードに変更する事をお勧めします。

対応プラグイン:
Login LockDown

■認証画面にCaptchaを導入する
悪意のあるプログラムのアタックによる自動ログイン試行を防ぐために、Captchaを導入する事も、ブルートフォースアタックの抑止になります。Captchaとは、フォームを送信する場合に、人間が操作しているかを判断める為に、フォームの送信ボタン付近に、画像で出力された文字や数字を表示し、それを入力しないとボタンを押せないようにする仕組みです。

お勧めプラグイン:
SI Captcha Anti-Spam

■IPアドレスによる制限をかける
管理画面へのアクセスが、特定の場所からのみと限定できるのであれば、アクセスを許可させる対象を確実に限定する事ができます。これには、アクセスを限定する場所で使用している回線のIPアドレスを、ISP等に申し込み、固定する必要があります。IPアドレスによる、管理画面のアクセス制限は、「/wp-admin/」のディレクトリ内に、「.htaccess」を用意する事で、設置する事が出来ます。ロリポップのFAQにも、詳細が掲載されています。

http://lolipop.jp/manual/hp/htaccess-03/

 

【更に細かいWordPressのセキュリティ対策】

■ソースからバージョン情報を隠す

WordPressで構築されたサイトは、デフォルトの状態であれば、ソース上に、<meta name="generator" content="WordPress 4.1.5" />といった、WordPressで作成されている事と、そのバージョンを示すタグが自動で挿入されます。もし、使用しているバージョンに重大な脆弱性があった場合、自ら脆弱性のあるバージョンを使用していますよと教えているのと同じ事になります。WordPressに関する固有情報は、ソース上から削除するのがベストです。

■投稿情報のユーザ名を隠す
投稿情報には、ユーザ名が表示されていますが、ログインに必要なユーザー名とパスワードの組み合わせの内、ユーザー名を教えている事になります。つまり、悪意のある攻撃者がサイトのWordPressにログインしようとした場合に必要な情報の半分を与えた事になります。投稿に表示される投稿者の名前は、ユーザー名とは別のものに置き換える事をお勧めします。

 

【セキュリティ対策で最も需要な事とは】

日本年金機構の125万件の個人情報が流出した件でも、担当者個人のセキュリティに対する認識の低さが指摘されています。サイトの管理運営に携わる全ての関係者が、セキュリティ対策に対する意識を向上させる事が、セキュリティ対策では最も重要ではないでしょうか?セキュリティ対策の一番の問題は、起こらないだろう、大丈夫だろう、という楽観的な考え方が前提になっている場合が多いかと思いますが、正しくは、起こったらどうなるか?ではどうするのか?と考えるべきではないでしょうか?上記の方法で、しっかりとセキュリティ対策を行っても、パスワードそのものが解読されやすければ、セキュリティ対策をしていないのと同じ事になってしまいます。