WordPressは、世界的に人気がありCMSとしても多く活用されている。それが故に攻撃の対象になりやい。攻撃者たちは、インターネットに公開されているサイトに無作為に攻撃を仕掛け、WordPressの穴をついて無理やりにでも入り込もうとアタックを仕掛けてくる。特に存在が明らかになったログイン画面へのアタックは、執拗に繰り返される。
以前に当コラムにおいて、ログインアタック対策に有効なプラグインとして「Limit Login Attempts」を紹介した。このプラグインは、ログイン認証に規定回数以上失敗した場合にログイン処理をロックするというものであった。
今回は、アタックの対象となるログイン画面の存在を隠してしまう「Login rebuilder」について紹介しよう。
ログイン画面のURLは、バレるものと考える
WordPressのログイン画面は、ただ単にインストールした状態であれば「インストール先/wp-login.php」もしくは「インストール先/wp-admin」をURLに指定すれば簡単に表示させることが可能だ。WordPressで記事を入力したことのある読者であれば容易に想像がつくだろう。
「当社のサイトは大丈夫。インストール先を複雑な文字にしているから」
なんて思っているのであれば、それはまったく無意味なこと。ブラウザの機能でソースを表示すれば、インストール先はちゃんと書かれている。HTMLが読める程度の知識があれば難なく知ることができるのだ。
そのうえ、攻撃者たちは、そんなことは百も承知だ。
あなたのWEBサイトのすべてのページを解析して、機械的に、瞬時に調べ上げる。ログイン画面が攻撃者の目の前に表示されるのは、おそらく1時間とかからないだろう。
攻撃者の前に明らかになったログイン画面は、攻撃対象リストに組み入れられ、連日連夜、執拗なログインアタックを受けることになる。
プラグイン「Login rebuilder」でログイン画面を隠す
Login rebuilderは、ログイン画面のファイル名(URL)を標準の「wp-login.php」から任意のファイル名に変更することができるプラグイン。「そもそもログイン画面のURLを知られなければ、ログインアタックの対象にもならないでしょ」というロジックだ。
Login rebuilderでログイン画面のファイル名を十分に長い推測不可能なファイル名に変更すれば、ログインアタックに対するセキュリティは、数段強化されることになる。
筆者おすすめ、とっつきやすい WordPress 参考書(1)
小さなお店&会社の WordPress超入門 ―初めてでも安心! 思いどおりのホームページを作ろう!
筆者おすすめ、とっつきやすい WordPress 参考書(2)
「いちばんやさしいWordPressの教本第3版 人気講師が教える本格Webサイトの作り方」
筆者おすすめ、とっつきやすい WordPress 参考書(3)
「Web担当者のためのWordPressがわかる本」
Login rebuilder のインストールと設定
1.入手とインストール
Login rebuilderはWordPress.org(リンク先:https://wordpress.org/plugins/login-rebuilder/) からダウンロードすることができる。
インストールは、ダウンロードした圧縮ファイルを解凍後、[/wp-content/plugins」へアップロードし、管理画面の「プラグイン」から「有効化」すれば完了だ。
ただし、実際に機能させるためには、いくつかの設定と作業を施す必要がある。
3.新しいログイン画面用ファイルの設置
Login rebuilderを機能させるには、「新しいログインファイル」を準備する必要がある。新しいログインファイルは、ログイン画面のURLの一部となる。
新しいログインファイルを設置する方法は以下の通りだ。
まず、新しいログインファイルのためのファイル名を決め、管理画面の中の「新しいログインファイル」をそれに合わせて変更する。この時、「新しいログインファイル」は、推測が困難なできるだけ長いファイル名とすること。この例では、「new-login_b3ljohwpk8mxsra3.php」として新しいログインファイルを作成した。
そして次に、「新しいログインファイル」の記述に従って、実際のファイルを準備する。
変更した「新しいログインファイル」欄の直下に格納するパス示されるので、最終的に新しいログインファイルは、このパスに保存する。このとき、元々のログインファイルである「wp-login.php」を削除する必要はない。処理的には一旦新しいログインファイルを通過させてから、「wp-login.php」の処理を実行させる形を取るからだ。
新しいログインファイルには、さらにその下に示されるソースコードをコピーして貼り付け、先ほど決定した「新しいログインファイル」のファイル名で保存し、サーバーの指定パスにアップロードするだけである。
4.標準のログインファイルにアクセスがあったときの挙動
新しいログインファイルを設置しても、標準のログインファイル「wp-login.php」へのアクセスが止むことはないが、そこにはもうログイン画面は表示されない。Login rebuilderの設定には、標準のログインファイル「wp-login.php」にアクセスがあったときの挙動(応答)を指定できる。
正規の編集者や管理者であれば、新しいログイン画面のURLを知っているはずなので、標準のログインファイル「wp-login.php」へアクセスがあった場合は、「403ステータス」すなわち「アクセスが禁止されています」として応答すればいいだろう。「無効なリクエスト時の応答」には「403ステータス」を指定すればOKだ。
「サイトトップへリダイレクト」は、サイトの負荷を上げることにもなるのでお勧めしない。
5.稼働開始:驚くべきセキュリティ効果を体験せよ
基本的な設定は以上である。
「ステータス」を「稼働中」に設定し、「変更を保存」をクリックすれば導入完了だ。
たったこれだけの手間で、あなたが長い間不安に感じていたログインアタックから解放される。今日からあなたはログインアタックについての心配の種はなくなるし、上長にも胸を張ってセキュリティ対策の効果をアピールできるようになる。
ただし、ログインURLが変更になったことを運用担当者に忘れずに連絡しておこう。さもないと、せっかくのあなたの努力が社内からのクレームの嵐で水泡に帰してしまう。
セキュリティの確保は運用者の責任
不可解な目的を持ってアタックを仕掛けてくる攻撃者は、非難されてしかるべきだし、もっての外であるが、そのことを声を大にして叫んだところで攻撃者の耳に届くことはない。WEBサイトの運用者や担当者は、可能な限り対処できる対策を粛々と打つしか方法はないのである。
今回紹介したプラグインは、新しいログインファイルを準備するなど、少し作業が必要だが、ぜひ導入にトライしてもらいたい。ログイン画面が露呈しているのと、いないのとではあなたのWEBサイトのセキュリティに雲泥の差がでてくる。Login rebuilderを活用し、今日からログインアタックを気にしない余裕のWEBサイト運営者になろうではないか。