WordPressを安全に使うためにする事

I,はじめに

このサイトはWordPressで構築しています。

これを使えば小難しいことを考えずにサイトを作成できるため、私個人としては気に入っているのですが、いかんせんセキュリティ上の問題が懸念されることの多いソフトウェアです(WordPress の脆弱性対策について:IPA 独立行政法人 情報処理推進機構 等)。

確かに、こうしたセキュリティ上の懸念に頭を悩ますよりも、静的ファイルでサイトを構築することにより安全性を高める、といったサイト運営の方法もあります(友人が実践している)。

ですが、WordPressを使ってみたかったので、仕方ありません。

そこで、WordPressで構築されたサイトの安全性を向上させる私的なメモとして本稿を書き残します。

II,各手法

1,ログインユーザーIDを変更する。

WordPressの管理画面へのログイン試行攻撃を実際に受けてみると、攻撃者は主にユーザーIDを「admin」、「administrator」、「sysrigar」(サイト名と思われる)の3パターンで試していました。

そのため、管理画面へログインする際に使用するユーザーIDをこれら以外のもの、例えば「perl」など通常は想定できないものに変更することが手っ取り早いです。

WordPressのユーザーID変更ないし追加は下記の先人様の記事をご参照ください。

2,プラグインを入れる

(1)画像認証

WordPressのログイン画面に画像認証(CAPTCHA)を設置することで、ボットによる不正ログイン(不正アクセス行為の禁止等に関する法律第3条違反行為)を困難にすることが出来ます。

この機能を付与するプラグインはいくつか存在します。

本サイトで使用しているのは、SiteGuard WP Pluginです。

このプラグインをインストールすることで、ログイン画面に画像認証が追加できます。

(2)Google Authenticator

これを入れればかなり安全になるものの、面倒くさかったので、本サイトでは活用していません。

これについての詳細は、先人様の記事をご参照ください。

3,WordPressのテーマファイルに細工をする

上述の安全対策を試みたとしても、攻撃者に対してWordPressの管理画面へのアクセスを許してしまっており、ログイン失敗の記録が大量に積み重なります。

こうしたことを避けるために、WordPressのテーマファイルを細工し、管理画面ページを開くためには特定のアドレスからしかアクセスできないようにします。

これについては、下記の先人様の記事を参考に本サイトでも導入しており、ログが汚れないという点でかなり良いアイディアだと思っております。

この防衛策は、wp-login.phpの呼び出し時にある定数に特定の値が定められているかいないかで、ログインページへのアクセスを許すか否かを決めるというものです。

そして、ある定数は、特定のPHPファイルへアクセスしない限り未定義のままです。

そのため、あるPHPファイルを経由してのみ、wp-login.php等の管理画面へのアクセスが可能となります。

多少コードをいじれる人でないと難しいですが、個人的には気に入っています。

III,終わりに

こうした防御策で防げるのはブルートフォース攻撃だけであり、WordPress本体のバグ等を利用した攻撃を防げるわけではありません。

そこは利便性とのトレードオフとなりますが、今回の対策のように、多少の知識があれば誰でもできるキディな攻撃の効果を出にくくする事は大事だと思います。

とはいえ、静的ファイルでサイトを構築していればこうした面倒なことはしなくても済むんですよね・・・

以上

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA