WordPressでサイトを構築しているなら、セキュリティ対策はなるべく早くしておきましょう。WordPressはユーザーが多く、プログラムが公開されているため、ひとたびセキュリティの穴が見つかると、そこを突く攻撃が一気に盛んになるからです。
またWordPress特有の問題点があり、そこを狙った不正ログインの手口も存在しますが、これについては効果的な対策法があります。
WordPressをインストールしているサーバ側での対策も有効ですが、ここではWordPressの機能に絞ったテクニックを解説していきます。安心してコンテンツを作り込めるよう、WordPressのセキュリティ対策の基本を学んでおきましょう。
1.不正ログインを阻止する3つの対策
WordPressを狙った悪事のうち、もっとも警戒すべきはIDとパスワードを特定されての不正ログインです。
ログイン情報を一切外部に出していなくても、ブルートフォースアタックと呼ばれる、IDとパスワードの組み合わせをすべて試す攻撃(たとえば自転車などに使われるの4桁の数字のチェーンロックであれば、0000から9999まで全ての組み合わせを試す方法)により、ログイン情報が特定されてしまうケースがあります。
さらにWordPressが狙われやすい以下のような理由もあります。
- もっとも多く使われているCMS(WEBコンテンツの管理システム)であること
- 基本的に、ログインページのURLが「URL+wp-login.php」になること
- 対策をしないとユーザー名が一目瞭然となってしまうこと
様々な不正ログインに対抗する手段がありますが、ここでは効果的かつ簡単な3つの方法を解説します。
1-1.ユーザー名を非表示にする
前述のユーザー名が外部に露出している問題を解決します。
1-1-1.ユーザー名とブログ上の表示名を別のものにする
デフォルトの設定だと、ログインに使うユーザー名と、記事の執筆者であるブログ上の表示名は同一です。よって記事を見るだけで、ログインIDがわかってしまいます。
そこで以下の手順で、ユーザー名とは別の執筆者名のみを公開するように設定します。
1.ダッシュボードの「ユーザー」→「ユーザー一覧」とクリックし、表示されたユーザー名の下の「編集」をクリック
2.「ニックネーム(必須)」にすでに設定されているユーザー名と別の名前を設定。「ブログ上の表示名」で、新しく作ったユーザー名を選択。
こうすることで、記事の執筆者名とログインIDを別個のものにできます。
1-1-2.Edit Author Slugを導入する
ただし1-1-1で解説した対策法だけでは、「記事URL+/?author=1」と入力することで、設定によってはアドレスバーにユーザー名が表示されてしまう仕様に対して無力です。
1.ダッシュボードの「プラグイン」→「新規追加」とクリックし、検索ウィンドウに「Edit Author Slug」と入力してエンターを押す。
2.Edit Author Slugが表示されたら、「いますぐインストール」をクリック。
3.「プラグインを有効化」をクリック。
4.ユーザーの編集画面に進む
5.Author Slugを、ユーザー名とは別のものに変更
このふたつの設定を行うことで、ログインにはIDとパスワードが必要になるため、IDが露出していてパスワードのみの場合とくらべ、特定される可能性は大きく減少します。
1-2.パスワードを長くて複雑なものに変更
長くて複雑なパスワードを設定することは、WordPressにかぎらない、インターネットのセキュリティの基本中の基本です。
パスワードは文字数が増えるほど、使われている文字の種類が増えるほど(例:数字のみ→数字+アルファベット)、強度は高まります。
パスワードの強度は、実際にWordPressの管理画面でパスワードを入力して判定しましょう。
【非常に弱い】【弱い】【普通】【強力】の4段階があります。
1-3.Stealth Login Pageの導入
ここまでの設定では、第三者が不正ログインするためには、ログインIDとパスワードをどちらも特定する必要がありますが、さらにもうひとつパスワードを追加することで、よりセキュリティを高めることができます。
1.ダッシュボードの「プラグイン」→「新規追加」と進み、検索ウィンドウにStealth Login Pageと入力しエンターを押します。
2.Stealth Login Pageが表示されたら「いますぐインストール」をクリック。
3.「プラグインを有効化」をクリック。
4.ダッシュボードの「設定」→「Stealth Login Page」をクリック。
5.2つ目のパスワード等を設定し、「Save Settings」をクリックします。
6.ログイン画面に2つ目のパスワード入力ウィンドウが追加されます。
2.本体やプラグインの脆弱性への対策
2-1.とにかく最新に保つのが基本
WordPressは、オープンソース(内容が公開されており、再配布が可能)なので、脆弱性(コンピュータ、ソフトウェアの欠陥や仕様の問題によるセキュリティ上の弱点)が比較的発見されやすく、そういった脆弱性が発見された場合、それを利用した不正なアクセスや、サイトの改ざんといった被害に遭遇する危険性が高まります。
WordPress本体やテーマ、プラグインなどに脆弱性などのバグが発見され、制作者がその対応をした場合、新しいバージョンにアップデートされるはずです。新たな更新があった場合は、なるべく早くアップデートを実行すべきでしょう。
2-2.テーマやプラグインは公式のもののほうが安全
WordPressのテーマやプラグインは、インターネット上の一般サイトで公開することも可能です。しかしこういった一般のもののなかには、長い期間アップデートされないものの多いため、どうしても使いたいものがある場合以外は、公式のものを使ったほうが良いでしょう。
3.セキュリティプラグインで総合的に防衛する
WordPressの乗っ取りを防ぐためのシンプルな対策法をここまで解説してきましたが、総合的にWordPressを保護してくれるセキュリティプラグインを使うことで、さまざまな問題を対策することができます。
ただしこういったセキュリティプラグインは、優秀なものの多くは海外製で日本語対応していません。そのため導入するハードルは低くありませんが、それと引き換えに豊富な保護機能をまとめて利用することができます。
ここで解説するのはiThemes Securityという総合セキュリティプラグイン。重要度順に対策を並べてくれるため、プラグインの一部の機能を有効にするだけでも十分な効果を発揮します。
3-1.iThemes Securityのインストール方法
1.ダッシュボードの「プラグイン」→「新規追加」とクリックし、検索ウィンドウに「iThemes Security」と入力してエンターを押す。
2.iThemes Securityが表示されたら「いますぐインストール」をクリック
3.「プラグインを有効化」をクリックする
4.表示される「Secure Your Site Now」をクリック。
5.初期設定をする
【Back up your site】
クリックすることでバックアップが作成されます。
【Allow File Updates】
WP-config.php、.htaccessファイルといったセキュリティ上重要なファイルを、プラグインが編集することを許可します
【Secure Your Site】
基本的なセキュリティ対策をワンタッチで実行できます。
上記3つの設定を機械的に行うだけでも、一定のセキュリティ効果が得られます。
3-2.重要な対策から優先的に行う!
プラグインの初期設定後、「Dashboard」タブをクリックし、下の方にスクロールさせると、重要度順に対策すべきセキュリティ項目が一覧表示されています。
High Priority→Medium Priority→Low Priorityの順に重要度が高く、すでに完了している対策はComplete欄に表示されます。
「Fix it」をクリックすると各対策項目にジャンプします。
3-3.各セキュリティ対策の内容
「Settings」タブをクリックすると、各セキュリティ機能の設定が可能です。
「Don’t Lock yourself Out」
自分自身が強制ログアウトされないよう、自分の環境のIPアドレスを登録できます。有効期間は24時間です。
「Go to」
ドロップダウンのメニューから設定したい項目に直行できます。
「Global Settings」
通知先のメールアドレス設定やブラックリストの設定といった、 このプラグインの総合的な設定ができます。
「404 Detection」
存在しないページへの大量のアクセスを監視する設定が確認できます。各種設定は「Global Settings」で行います。
- Permanently ban: 永久にアクセス禁止するか、しないか
- Number of lockouts before permanent ban: 設定された期間内に、この回数以上ロックアウトされたIP(インターネットにアクセスするための固有の番地のようなもの)を永久的にアクセス禁止に
- How long lockouts will be remembered for ban: この期間内に指定した回数以上ロックアウトされると、そのIPアドレスは永久にアクセスできなくなります
- Host lockout message: ホストをロックアウトしたときに画面に表示されるメッセージ
- User lockout message:アカウントがロックアウトされたときに、このメッセージが表示されます
- Is this computer white-listed: 自分のパソコンをホワイトリストに入れるか、入れないか
「Away Mode」
管理画面にログインできない時間帯を指定できます。
「Banned Users」
アクセス禁止にしたユーザーの管理が行えます。
「Brute Force Protection」
ブルートフォースアタックへの対策を行えます。アクセス禁止設定は「404 Detection」と同様です。
「Database Backups」
データベースのバックアップに関する設定を行えます。
「File Change Detection」
変更されたファイルをチェックできる機能です。
「Hide Login Area」
ログインページなどを自動攻撃から発見されにくいようにします。ただし契約サーバによっては上手く機能しないこともあります。
「Malware Scanning」
マルウェアのスキャンが有効になりますが、利用するためにはVirusTotal.comというサービスに登録してAPIキーと呼ばれる利用のための情報を取得する必要があります。
「Secure Socket Layers(SSL)」
SSL(暗号化による通信)が使用できます。
「Strong passwords」
セキュリティ的に強力なパスワードしか設定できなくなります。
「System Tweaks」
さらに細かい設定を行えます。
「WordPress Tweaks」
WordPressの応用的設定を行えます。
4.どんな目的でWordPressを狙うのか
不正ログインや脆弱性を突いた攻撃を仕掛けてくる犯罪者の目的は、ずばりWordPressのサイト内容を改ざん、つまり中身を書き換えることです。それならなぜ中身を書き換えるのか。以下のような理由が考えられます。
4-1.マルウェアを配布するサイトへ飛ばす
そのサイトにアクセスした人をリダイレクト(自動転送)させたり、記事にリンクを設置するなどして、攻撃者にとってメリットになるサイトへ誘導します。代表的なところとして、マルウェアを配布するサイトが考えられます。
WordPressの仕様上、ヘッダ部分など一部の情報を改変するだけで、全記事に同じ情報を入れることができるため、乗っ取る側から見ればとても効率的です。
4-2.メール送信機能などをサイトに仕込む
迷惑メールを自動的に送り続けるプログラムなど、攻撃者にとって都合の良いプログラムをサーバ内に設置することも考えられます。
4-3.愉快犯
面白半分でサイトの内容を改ざんするケースもあります。
2013年に、あるホスティングサービス会社提供するレンタルサーバで運用されている8000件以上のWordPressサイトが改ざんされる事件がありましたが、これは愉快犯によるものでした。
5.まとめ
WordPressを含め、ユーザーが多いプログラムやアプリケーションほど、便利で情報が多い反面、悪意を持った攻撃に遭いやすい傾向があります。
WordPressは非常に優秀なツールだからこそ、余計な心配をせず記事を更新できるよう、セキュリティ対策を事前に行っておきましょう。