WordPressでの
不正ログイン対策について

検索サイトからの評価が高まり、サイトへのアクセスが拡大してくると、多くのケースで管理画面への不正なアクセス(アタック)も拡大する。特に、お使いのCMSがWordPressの場合、特に多くの不正アクセスが発生する。

これは、インターネットで使用されているCMSの多く(50%超え)がWordPressである事にも起因している。つまり、ハッキングする不正アクセスする側からすれば、WordPress攻略方法を確立すれば効率がよいという事になる。

さらに、ブラックマーケットと呼ばれる通常のブラウザでアクセスできないマーケットで、セキュリティの緩いサイト情報が販売されている現実もある。つまり、セキュリティが緩いと判断されると、そういったマーケットで販売されて、ハッカー達からのアタックの対象になる。

 

スクリーンショット 2016-06-30 17.00.46
不正アクセスログリスト(画像をクリックすると拡大表示されます)

左の画像(画像をクリックすると拡大表示されます)は、管理画面への不正アクセスリストの一部である。

ご覧いただいておわかりの様にadminというユーザー名でのアクセスが多い。これは、wordPressインストール時に何もしなければadminというユーザー名で管理者アカウントが生成されるからである。

では、具体的にどのように、こういった不正アクセスのログ(記録)を取得するのか?

all in one wp securityというプラグインでは、ログインエラーの状況だけではなく、さらにログインしたユーザーも確認できるので、実際に不正アクセスが実行されてしまった事も確認できる。似たようなログを取得するCrazy Boneというアプリがあるが、これは更新何年もされていないようなのでオススメしない。

 

こういった不正アクセス対策として、
何を実行すべきなのかをリストにしてみた。

  1. 管理画面に不正アクセスをさせない。
    → ログインURLのカスタマイズ。※以下に設定のフローを記載。
  2. 不正アタックがあっても簡単にログインをさせない。
    → Login Lock Downと呼んでいる「一定回数ログインに失敗した場合、アクセス元のIPアドレスを一定時間プロテクトする」機能を設定にする。※以下に設定のフローを記載。
  3. 不正アタックが継続して多数ある。
    → そのアクセス元IPアドレスをブラックリストとして登録して、指定IPからのアクセスを遮断する。*(アスタリスク)を使用して、一定の範囲のIPアドレスをブロックする事も可能。※以下に設定のフローを記載。
  4. スパムアタックのユーザー名にadminが多い。
    → ユーザー名 admin を使用しない。もし、初期設定してしまった場合、別のユーザー名に変更する。もしくは、adminを全く権限のないアカウントにする。どうしてもIDとしてadminが必要な場合、難易度の高いパスワードを設定する。
  5. ログインIDを知られないためにも、ユーザーのニックネームを設定する。初期状態では、IDがそのままユーザー名として使用されるので注意が必要です。つまり、初期状態ではサイトにログインIDを公開している状態なのです。
  6. ログイン画面に、ユーザー名とパスワード以外にも、簡単な計算(計算して正しい数字をいれないとログインできない)などを設置することも大きく有効です。これをログインキャプチャと呼んでいます。
  7. パスワード再設定リンク、つまり「パスワードをお忘れですか」のリンク先にも上記と同じ方法のログインキャプチャを設置すると有効です。つまり、メールアカウント自体がハッキングされている事を想定する必要もあります。

 

これらの設定が重要です。最も簡単なのは、All In One WP Securityというプラグインを活用する(弊社も活用しています)。

 

上記1.の場合、管理画面の左メニュー「WP Security」から「Brute Force」を選択、初期表示される「Rename Login Page」の「Enable Rename Login Page Feature」にチェックをいれて、その下の「Login Page URL」で、管理画面へのアクセスURLをカスタマイズする。

つまり、通常(多くのケース)、管理画面へのアクセスは、
https://dt-a.net/wp/wp-login.php
ですが、これを例として、以下のようにカスタマイズ(例として)
https://dt-a.net/example-login
することで多くの不正アクセスを排除する事ができる。

※一部のサーバでSSLを使用している場合、うまくいかないケースもあります。この場合は、FTPアクセスしてWP Securityのパーミッションを一端0000にしてからリトライです。

 

上記2.のLogin Lock Downは、左の管理メニュー「WP Security」の「User Login」の初期表示される「Login Lockdown」の「Enable Login Lockdown Feature」にチェックを入れて、その下に見える「3」「5」「60」の数字(初期状態の数字でも問題はない)は、5分間に3回ログインに失敗した場合、60分間、アクセス元のIPをプロテクトする、という意味です。

 

上記3.のブラックリスト登録は、まず不正アクセスしてくるIPアドレスを取得する事から始まる。もし、こういったIPアドレスのリストが必要な場合、ご相談いただければお渡しできますが、敵(スパムアクセス元)もIPアドレスは、いろいろと変更してくるので効果が薄いかも知れません。(例として一般のプロバイダを利用していれば、毎回アクセス毎にIPアドレスは変わるのです。これを活用されるとかなりIPアドレスのリストが必要になります)

その上で、左の管理メニュー「WP Security」の「Blacklist Manager」から「Enable IP or User Agent Blacklisting」にチェックをいれて、その下の「Enter IP Addresses」にIPアドレスのリストをいれます。もしくは、さらに下にある「Enter User Agents」にユーザーエージェント」いれる事で、不正アクセスもとのシステムをプロテクトする事も可能なようです(実際には試していません)。

 

上記以外にも、顧客向けに対策したのは、

  • コメント無効化。
  • Pingback機能の無効化。
  • DBのPrefixのカスタマイズ(初期状態ではwp_になっている)。
  • htmlソース内のwordpressバージョンを非表示にする。

といった対応をしました。

 

そもそも、不正アクセスされて、どんな問題がおきるのか?ですが、ここ数年、弊社顧客の例ですと、以下ような問題がありました。

 

  • ウィルスを拡散する土台にされた。つまり、そのwebページにアクセスすると、何らかのウィルス感染するようにしかけられた。(当時、弊社にノウハウがなく専門業者にお願いして対応しました。結構なコストが発生しました。)
  • 上記とDoDos攻撃などの土台にされる可能性もある。
  • 怪しい外部リンク、例えば、webカジノや怪しい薬剤販売のwebサイトへのリンクが設置された。(3,000カ所を超る外部リンクを設置されました。ほとんどの部分手作業で取り除く事になった。トホホホ。)

 

これらのトラブル経験から
サイトの管理運営を最適化したサービス
「DtA Webサポート」を始めました。

 DtA Webサポート