WordPressのユーザIDへのDoS攻撃対策

WordPressへのブルートフォース攻撃が気になっていたので、Limit Login Attempsというプラグインを最近導入しました。
そしてそのログを確認したところ、デフォルトユーザへのDoSが多数発生しているのに気がついたので、別のユーザIDを作成し、そのアカウントでログインするようにしていました。
しかしながら、そのユーザに対してもすぐにブルートフォース攻撃が発生していました。
そこでなぜ、新たに作成したユーザIDがすぐにバレてしまったのか調べてみることにしました。

ブログに投稿者名が表示されており、また投稿アーカイブなる機能が有効になっていました。

そこで以下の対策を実施することにしました。

1.ブログ上の投稿者名をユーザIDからニックネームに変更

これはすぐに気がつかない私も悪かったのですが、ブログ上に表示されている投稿者名が、ユーザIDのままとなっていました。これをまずニックネームに変えました。

これは[ユーザ]の「ブログ上の表示名」から簡単に変えることが可能です。

2.投稿者の名前を表示させない

1.の対策をしていればこれは必要ないかもしれませんが、私の場合、記事を投稿するとその投稿ページに誰が投稿したから表示されるようになっており、さらに1.の対応を実施していなかった為、投稿者名としてユーザIDがそのまま表示されていました。

そこで以下の通り、content.phpの50行目付近にある、twentysixteen_entry_meta()関数の呼び出しを無効化しました。(Twenty Sixteenテーマの場合)

[外観]-[テーマエディター]から[個別投稿(single.php)]のcontent.phpを編集

上記の変更後、更新を保存した瞬間から、以下のようにユーザIDを含めたメタ情報が表示されなくなります。

3.投稿アーカイブのパスと名前を変える

これは全く知らなかったのですが、以下のようにWordPressのFQDNの後ろに”?author=番号”を入力すると、WordPressの各アカウントで作成した記事のアーカイブをまとめて見れるようになっているようです。

https://WordPress_FQDN/?author=1

そのアーカイブを表示する時のURLがデフォルトで以下のようになっており、何も対策をしていないと、WordPressに登録しているユーザIDがバレバレとなってしまいます。

https://WordPress_FQDN/author/ユーザID/

これを防ぐ為には、Edit Author Slugというプラグインを導入するのが簡単です。

上記のプラグインを導入後、まず、WordPressダッシュボードの[設定]-[Edit Author Slug]の画面にて、上記の”author”というパス名を変更することができます。(「投稿者ベース」という項目にて変更可能。)

また、このプラグインを導入すると、WordPressダッシュボードの[ユーザ]-[あなたのプロフィール]の画面で一番下までスクロールさせた時に「投稿者スラッグ」という項目が追加されており、ここで、上記の”ユーザID”に表示される名前を変えることが可能です。

実際のユーザIDによるブルートフォース攻撃が激減

以上の3つの対策を実施後、いまのところ、実際のユーザIDで攻撃されることはなくなっており、逆にニックネームやEdit Author Slugで設定したダミーのユーザIDで攻撃されております。
やはり、攻撃者の方は投稿名や投稿アーカイブスの情報を元に攻撃を仕掛けているようですね。