close

[WordPress]避けては通れない「ブルートフォースアタック対策」

公開日:

ブルートフォースアタック」もしくは「総当たり攻撃」というものをご存知でしょうか。これはパスワードを手当たり次第に打ち込み、サイトを乗っ取る行為を指します。

もし、あなたがWordPressで構築したホームページを初期設定のまま使用していた場合、こういった悪意のある攻撃に対して無防備である可能性が高いです。このページではその穴と対策について説明していきます。

危険1.ログインIDが丸わかり

ここでいうログインIDはWordPressログイン時に下の画面で聞かれるユーザ名のことです。

画像では後述のプラグインSiteGuard WP Pluginをインストールしているため、ひらがなランダム文字入力欄が表示されています。

あなたのサイトがWordPressで作成されているなら、

あなたのサイトのURL/?author=1/

を開いてみてください。
開くとあなたのサイトのURLは以下に自動変換されます。

あなたのサイトのURL/author/ログインID/

このようにあなたのログインユーザー名を知ることができるのです。

危険2.ログインURLが丸わかりで危険

危険1でログインIDを取得できることがわかりました。

しかし、ログインURLがわからなければログインを試すことができませんが、WordPressは初期の状態だと、

あなたのサイトのURL/wp-admin/

で必ずログイン画面に飛ぶようになっています。

よって危険1で取得したIDでログインを試すことができるようになってしまいます。
ハッカーに手当たり次第パスワードを試され、突破されてしまえばサイトが乗っ取られてしまいます。
これがブルーとフォースアタック(総当たり攻撃)です。

もしパスワードが強固である自信があったとしても、ハッカーがログインを試せる状況にあること自体が危険であることには変わりませんし、そのアクセスでサイトに負荷がかかる可能性もあります。

ログイン履歴を確認しよう

後述のセキュリティプラグインでもいいですが、単にログイン履歴だけを確認するのであれば、

プラグイン「Crazy Bone (狂骨)」が便利です。

以下のように「ユーザ」>「ログイン履歴」から履歴が確認できるようになります。

私も実際にブルートフォースアタックを受けました

上の画像は筆者が実際にブルートフォースアタックを受けたものです。
毎回ログインIDを変えながらアクセスされていました。

サイトは構築して1ヶ月ほどでPV数もまだ少ないのですが既に攻撃を受けています。

幸いパスワードは突破されなかったためサイトは無事でした。。

対策1./?author=X/を404.phpへ飛ばそう

危険1に対する対策です。
functions.phpに以下の記述を行います。

///?author=X/を404へリダイレクト
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
    if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
        wp_redirect( home_url( '/404.php' ) );
        exit;
    }
}
add_action('init', 'disable_author_archive');

対策2.プラグインで対策をしよう

危険2に対する対策です。

プラグイン「SiteGuard WP Plugin」をインストールしよう

インストールすると左のメニューから以下のページに飛べます。

一番上の管理者ページアクセス制限を有効にして、ログインURLを任意のものに変更しましょう。

対策は以上です!
大切なサイトを攻撃から守りましょう!

Comment

メールアドレスが公開されることはありません。