WordPressのログイン画面への攻撃の対策例

 /  Tech

Hacking...
photo credit: Christopher Schirner via photopin cc

 この記事について:公開1ヶ月に満たないこのブログも、どうやらブルートフォースアタック(不正ログインの総当たり攻撃)を受けていたようです。早速対策を講じました。

スポンサーリンク

はじめに

ある日なんとなくトラフィックのログを眺めていたところ、数分の間に何度もwp-login.phpにアクセスされているログを発見。どうやらオランダはアムステルダムのIPアドレスのようで。

これは何だろうと不安に思い、心配になって調べてみたら、これがブルートフォースアタック(不正ログインの総当たり攻撃)のことかと今さら感。

パスワードは英数字を組み合わせて長いものにするというのは実施済でしたが、それだけではどうにもならないような気がしてきたので、急きょこのブログにも対策を講じました。

そもそも何が問題なのか

翻訳記事ですが、とても整理されています。

つまりは、誰かに自分のWordPressのサイトを乗っ取られてしまう危険性があるということですね。

早速対策を講じる

対策はいくつかの方法があるようですが、このブログでは次の4つの対策を講じました。

  1. 管理者権限の新規ユーザーを作成し、ユーザー名「admin」を削除
  2. 作成する新規ユーザーのユーザー名はわかりやすいものにしない
  3. 作成する新規ユーザーのパスワードは英数字を組み合わせてできるだけ長いものにする
  4. Basic認証を導入

1. 管理者権限の新規ユーザーを作成し、ユーザー名「admin」を削除

WordPressを新規にインストールすると、管理者であるユーザー名「admin」が自動的に設定されています。このユーザー名「admin」が最も狙われるとのことなので真っ先に削除しました。

詳細な手順は、SEO Japanで紹介されていた記事の通りに実施。

ユーザーネーム「admin」を削除する

パターンの詳細に再び注目していく。ワードプレスのサイトの運営者が、何よりも先に実施しなければいけないのは、サイトからユーザーネーム「admin」を削除することだ。 今のところ、今回の攻撃で最も狙われている脆弱性はこのユーザー名である。そのため、「admin」をユーザー名で利用するユーザーが存在するなら、今すぐに削除するか、名前を変更するべきである。

ユーザーの名前を容易に変更したいなら、新しいユーザーと置き換えよう。その際は次の手順に従うことを薦める:

  1. 「admin」ユーザーと同じ権限を持つ新しいユーザーを作成する。通常は管理人が該当する。ユーザーを作成するには、異なるeメールアドレスが必要であり、今のeメールアドレスとは異なるアドレスを利用しなければいけないだろう。
  2. ログアウトする。
  3. 新しいユーザーとしてログインする。
  4. 「admin」ユーザーを削除する。
  5. 「admin」ユーザーが所有する投稿とリンクの取り扱いを尋ねられたら、「すべての投稿とリンクをこのユーザーに帰属させる」を選択し、ドロップダウンリストから新しいユーザーを選ぶ。その後、「確認のうえ削除する」をクリックする。
  6. ユーザーが削除されたら、新しいユーザーのeメールアドレスを変更することが出来る。

ユーザー名を変更することが可能なプラグインが存在し、また、データベース内でユーザー名を変更することも可能ではあるが、個人的には上述したメソッドを常に採用している。 このメソッドの大きな利点は、早く、簡単にユーザー名を変更することが出来る点である。また、ID番号が1のユーザーのデータベースの記録を修正するワードプレスのハッキングスクリプトを私は目撃したことがあり、ユーザー名を削除することで、このハッキングを回避することが可能になる。重要度が高いわけではないが、出回っているスクリプトが、ID番号が1ではないユーザーには役に立たない点を知っておいても損はしないはずだ。

[出典]

2. 作成する新規ユーザーのユーザー名はわかりやすいものにしない

1で新規ユーザーを作成する際のユーザー名はわかりやすい名称を避けました。「admin」ではないからと言って、特定されやすいものだったら意味がありませんからね。

3. 作成する新規ユーザーのパスワードは英数字を組み合わせてできるだけ複雑にする

これは「admin」の時に実施済みでしたが、もう一度見直してみました。

4. Basic認証を導入

連続してログインに失敗した時に一定時間ログインをできなくさせるプラグインを入れることも対策として挙げられるようです。ただし、それでも不都合があったりするようなので、Basic認証を導入しました。今回の対策のポイントです。

一言で言えば、「ログイン画面を表示する際にIDとパスワードによる認証機能を付けよう」というものです。

具体的なやり方は全くわからなかったので、こちらの記事を参考にさせて頂きました。

くれぐれも.htaccess等のファイル操作は慎重に行う必要があります。特に.htaccessファイルが様々なディレクトリに作られている場合は、どこのディレクトリにあるファイルを編集するのか、どこのディレクトリにアップロードするのかをきちんと確認しながら行いましょう。

こういうことが不慣れな僕は途中で全く関係のないディレクトリにファイルをアップロードして、なおかつ.htaccessファイルを上書きしてしまい、焦りました。元に戻すだけでかなり面倒です。くれぐれも慎重に。

おわりに

もし自分のサイトが乗っ取られて悪用されたら、どうにもならないですよね。

ログイン画面にBasic認証を入れるということは、ログイン画面を開くための認証とログイン認証の2段階認証になることを意味します。また、今回講じた対策以外にも「WordPressを常に最新のものにする」というのも必要な対策の1つでしょう。

もしかすると、将来的にBasic認証に対して何かしら攻撃をしかけるということが起こるかもしれませんが、自分のサイトを守るためにできる限りの対策はやっておきたいですよね。

 タグ:

スポンサーリンク
スポンサーリンク
Ads by medi8