WordPressのセキュリティ対策はしていますか?
利用者が非常に多く、またオープンソース(ソースコードが公開されている)のため、世界中の開発者たちが便利なプラグインを開発しています。それらを使い、自分が使いやすいように自由にカスタマイズすることができます。
ですがオープンソースのため、セキュリティの穴を探すこともできてしまいます。もしも見つかれば、それを突く攻撃が盛んに行われてしまいます。
できるだけ早い段階で対策を取ろう
作ったばかりの弱小サイトだから自分のサイトに旨味なんてまだないし攻撃なんてされないさ!なんて思っていませんか?(私は思ってました・・・)
それほどセキュリティ対策はしていませんでしたが、行動のログくらいはとっておくかと思い、行動履歴を取るプラグイン「WP Security Audit Log」をインストールしていました。
行動履歴を見ると1日に1~2人くらいしか見に来ない私のサイトでも、1日に10回くらい不正ログインしようと攻撃されていました。
このようにサイトの弱い強い関係なく、無差別に攻撃されています。ですのでサイトを作成したら最初にセキュリティ対策を行うのがおすすめです。
どのような攻撃をされるのか
いろいろな攻撃がありますが、最も多いのは不正ログイン攻撃です。なぜかというとWordPressのログインページは自分で意図的に変えない限り、基本的には「サイトURL + wp-login.php」になるからです。攻撃方法としてはよく使われるアカウント名(id)に対してボットを使ってログイン成功するまでひたすらパスワードを試していくブルートフォースアタック(総当たり攻撃)と呼ばれる方法です。
・admin
・administrator
・test
・ドメイン名
・投稿者名
などなど
「ログインが失敗しました」とログが残っているので、今回私がされているのもこの攻撃ですね。
何か対策用のプラグインはないかと探したところ「SiteGuard WP Plugin」というプラグインが日本語対応されていて比較的簡単に設定ができそうだったので導入してみました。
SiteGuard WP Plugin
まずはWordPressのプラグイン検索画面で「SiteGuard WP Plugin」と検索すれば出てきますのでインストールを行ってください。
インストールが完了するとサイドバーの下の方に「SiteGuard」といった名前で表示されます。
ダッシュボード
インストールが完了したらまずはダッシュボードを確認しましょう。どの機能がON/OFFになっているかを確認することができます。チェックマークが緑色になっているのがONです。
ログイン履歴
ログイン履歴では、ログインしようとしたユーザーの情報が記録されます。成功/失敗すべてが記録されます。
結果:失敗、ログイン名:admin というのが不正ログイン攻撃を受けているところですね。こちらがログイン中だろうと攻撃してきています。
管理ページアクセス制限
この機能をONにすると、ログインしていないユーザーがWordPressの管理画面(URLはhttp://ドメイン/wp-admin)にアクセスしようとすると404のエラー画面を返すようになります。これによって管理画面への攻撃を防ぎます。
ログインページ変更
WordPressのログインページのURLを変更することができます。
ログインページのURLは基本的には「http://ドメイン/wp-login.php」であるため、URLを変更することで攻撃されにくくなります。
デフォルトでは「http://ドメイン/login_数字」となっています。この「login_数字」の部分は自分で設定することができます。
画像認証
この機能をONにするとログイン画面に画像認証が追加されます。
ログイン画面は以下のように変わります。
画像に表示されている文字列も入力しなければログインできなくなります。認証が1つ増えるのでそのぶん、不正ログインはされにくくなります。
ログイン詳細エラーメッセージの無効化
ログインに失敗すると「ユーザー名が間違っています」とか「パスワードが間違っています」とエラーメッセージをユーザーのために表示してくれます。ですが、この親切機能がハッカー(不正アクセス犯)に取っては、ユーザー名を特定する情報になってしまいます。
なのでこの機能をONにすると、どの間違いでも同じエラーメッセージを表示するようになり、ユーザー名が特定されるのを防いでくれます。
ログインロック
一定期間内に指定された回数ログインを失敗すると指定した時間、接続元のIPをブロックします。間違えられる回数を少なくしすぎたり、ブロックする時間を長くしすぎるともしも自分が間違ってしまった場合に大変になるので気を付けてください。私はとりあえずデフォルトの期間にしてあります。
ログインアラート
管理画面へのログインを通知してくれます。いち早く不正ログインに気が付くことができます。
フェールワンス
設定すると正しいユーザー名、パスワード、画像認証を入力しても最初の1回は絶対に間違うようになります。間違った後、5秒後~60秒以内に再度正しいログイン情報を入力するとログインが成功するようになります。
すごくセキュリティレベルが上がりそうな機能ですけど、私は毎日ログインするので、ちょっと邪魔になるなと思い、OFFにしています。
XMLRPC防御
ピンバッグ機能を悪用したDDos攻撃(大量にアクセスを送る攻撃)を防ぎます。DDos攻撃を受けるとサイトがダウンしてしまったりします。
更新通知
WordPress、プラグイン、テーマのバージョンが上がり更新が必要になった場合にメールで通知してくれるようになります。セキュリティ対策でできる一番簡単な対策は常に最新のバージョンを使用することなのでONにしておいてよいかと思います。
WAFチューニングサポート
WAF(ウェブ アプリケーション ファイアウォール)ワフといい、サーバー側が使っているファイアウォールです。私たちのサイトが外部攻撃を受けたときに攻撃者を閲覧禁止にして守ってくれます。
まとめ
以上、セキュリティ対策についての話とセキュリティ対策プラグイン「SiteGuard WP Plugin」についての紹介でした。不正アクセス者側は無差別にボットを使って攻撃しています。作ったばかりのサイトでもセキュリティ対策は早めにしときましょう。