> 記事 > 未分類 > WordPressのログイン画面を変更し、迷惑ログイン試行をシャットアウト

WordPressのログイン画面を変更し、迷惑ログイン試行をシャットアウト

2014.07.03.(Thu)Masahiro Natori By.Masahiro Natori
カテゴリー:未分類
タグ

こんにちは。
先週末半日も家の草むしりをしたら、肩凝りがひどくなってしまったmasaです。
もともと結構な肩凝り症なのですが、やはり普段やりなれない動作を長時間続けたことで
悪化してしまったようです。庭はすっかりきれいになったのですが、手がしびれたような感覚が
なかなか取れずにいます。

私は日本人なので、こんなときにはゆっくり温泉にでも浸かって疲れを癒したい!と思うところなのですが、ここパースには悲しいことに温泉がありません。それでもオーストラリアにまったくないわけではなく、ノーザンテリトリーの自然温泉(マタランカ温泉)や、メルボルンにはペニンシュラ温泉や、ヘップバーン温泉といった温泉地があり、Shizuka Ryokanという日本の温泉旅館のような宿泊施設まであるそうなので、いずれは是非行ってみたいと思っています。

大量のログイン試行を見て感じたこと


先日、WordPressのデフォルトID 「admin」はすぐに消したほうがいい。という記事で、WordPressのログイン履歴を成功、不成功にかかわらず記録する Crazy Bone というプラグインを紹介したのですがこのプラグインのおかげで、世界中のあちこちから弊社サイトのWordPressへのログイン試行が行われていることがわかりました。

記事内にも書きましたが、ログイン試行は、「admin」というIDで行われている場合がもっとも多いのですが、「HarveyDaughtry」「KennithWagner」など、一般の名前のようなものでログインを試されている場合もありました。

ズラッと並んだログイン試行を見て、やはり「このままじゃいけない」という気になりました。弊社サイトではユーザー「admin」については消去済みですし、「admin」以外の”実在するユーザーID”を使用した不正ログインが試行されるケースは今まで一度も起きていないので、攻撃が成功する(不正にログインされる)可能性というのはそれほど高くない、と思ったのですが、万が一のことを考えれば、ログイン試行されないように出来れば、もっと安全性は高まります。


扉の場所がわからなければ、ノックもされない


WordPressは、ウェブサイトを作成するのに大変便利なツールで、弊社でも多くのサイトで使わせていただいてますが、管理ツールにログインできてしまえば、ファイルの書き換え、削除、アップロード、何でも操作できてしまうため、ログインを破られることに大きなリスクを伴います。しかし、そういうリスクがあるにも関わらず、WordPressの初期設定では、設置したURLに /wp-login.php あるいは /wp-admin と入れるだけで、簡単にログイン画面にたどり着けてしまいます。

初期状態のWordPressは簡単にログイン画面にアクセスできることと、デフォルトでadminというユーザーが管理者権限持っている状況というのは、大変危険だといえます。

WordPressのログインページを隠す方法


WordPressのログインページを隠す方法は、いくつかありますが、手軽に行いたい場合にはプラグインを導入する、という方法もあります。私が見た中では、Stealth Loginが、評価が高くて良いみたいです。私はいろいろ検討した結果、「ログインページを変える:WordPress私的マニュアル」こちらのサイトで紹介されている方法を取ることにしました。
プラグインでやれば簡単に出来そうではあったのですが、カスタマイズの勉強のためと、何らかの原因でプラグインが正しく導入できなかった場合、「ダッシュボードにアクセスできない」「プラグインがワードプレスのどのphpに変更をかけているかがわからない」という状況になってしまうと復旧が大変になる恐れがあると思い、自分で明示的に変更する手法をとりました。

手順としては、

1.新しいログインファイルとなるphpファイルを作成し、サーバーにアップロードする

********.php (すいません、紹介はできません)
というファイルを作成して、wp-login.php と同じディレクトリに設置します。


2.functions.php を変更する。

WordPressの追加関数を書き込む用のファイルを変更します。
wp-login.phpと、functions.phpは設置してある場所が違いますので、注意してください。

+wp-admin
+wp-content
 +themes
 +[利用中のテーマ名]
  -functions.php
+wp-include
-wp-login.php

3.ログイン拒否確認

まず、従来ログインするときにアクセスしていた/wp-login.php あるいは /wp-admin にアクセスし、ログイン画面が表示されないことを確認しました。現時点では、アクセスしても真っ白な画面が表示されるようになっています。

4.ログイン確認

新ログインページにアクセスし、ログイン画面が表示され、従来のパスワードできちんとログインが出来ることを確認します。一応、ログイン画面もカスタマイズしていたので、それもそのまま表示されていました。

login

4.告知

WordPressにログインするメンバー全員にメールで連絡を行いました。
これを行わないと、記事を書こうとログインページにアクセスしても、
真っ白な画面が出てきてしまいます。

WordPressのログインページを隠した結果


ログインページを変更して以降、不正なログイン試行はまったくなくなりました(当然ですが)。
Crazy Boneによる、ログイン履歴の確認と、Apacheのログを確認しましたが、変更したことによる悪い影響は見受けられませんでした。逆に、Crazy Boneは登録ユーザーのログインしか発生しなくなったので、入れている意味がまったく感じられないほどになってしまいました。

不正アクセスまとめ


せっかくなので、弊社サイトへの失敗に終わった不正アクセスのID/Passwordのパターンを
公開します。

illegal_login
全体では1500パターンほどのログイン試行がありました。最も多く試行されたパターンはadmin / !@#$%^ で、これはUSキーボードでshiftを押しながら12345とタイプしたときに入力される文字列です。定番の admin/admin , admin/123456 , admin/1234567890 などは、必ず破られますので、止めましょう。
パターンが多すぎるのできちんと調べたわけではないですが、だいたい70%ほどがID:adminでの試行でした。

まとめ


WordPressを使用しているウェブサイトにとって、ログイン画面は楽屋への入り口のようなもので、目立つわけではないのですが、実際には大変慎重に扱わなければいけない部分だと思います。ログイン画面をWordPress標準のものからオリジナルのものに変えるだけで、ほぼログイン画面へのアタックは無効化でき、不正ログインの心配は(ほぼ)無いといっていいと思います。今回の作業に要した時間は調査も含めて半日ほどでしたので、十分すぎるくらいの価値があると思います。WordPressサイトを管理している方は是非、この機会にログイン画面の変更を試してみてください。

Masahiro Natori

Masahiro Natori
こんにちはMasaです。39歳の時に16年勤めた会社を辞め、2013年4月に家族で日本からパースに引っ越してきました。2013年6月よりGITSに勤務。2014年1月にGITSのサポートでProgrammerとして457ビザを取得。 趣味は音楽を聴くことと、部屋のレイアウトを変えること、ドライブすること。
  • facebook
  • twitter