WordPressの「ユーザー列挙」を防ぐ方法|初心者でもできる2つの簡単な対策
ハッカーがあなたのWordPressサイトのユーザー名を探し出そうとしている――そんな心配をしたことはありますか?
おそらく、あまり気にしたことがない方がほとんどでしょう。
しかし現実は違います。サイトにアクセスしてユーザー名を探り出す行為は、ハッカーがよく使う定番の手口の一つです。
有効なユーザー名さえ分かれば、あとはパスワードを推測するだけでサイトへの侵入が可能になります。ハッカーは「ブルートフォース攻撃(総当たり攻撃)」と呼ばれる手法で、WordPressダッシュボードの正しいパスワードを機械的に試し続けます。
そしてログインに成功すれば、サイトは完全に掌握されてしまいます。データの窃取、訪問者の不正リダイレクト、顧客へのスパム送信など、悪質な被害は多岐にわたります。
しかし安心してください。「ユーザー列挙(User Enumeration)」脆弱性への対策を講じれば、ハッカーがユーザー名を発見することを防げます。
このガイドでは、ユーザー列挙とは何か、そしてハッカーに悪用されないための具体的な対策方法を解説します。
要点(TL;DR): ユーザー列挙は、WordPressサイトへのブルートフォース攻撃の成功率を高める要因となります。対策としては、MalCareセキュリティプラグインの導入がおすすめです。ブルートフォース攻撃を自動的に検知・ブロックしてくれます。
ユーザー列挙とは何か?
ユーザー列挙とは、ハッカーがWordPressサイトのユーザー情報を特定するプロセスのことです。サイトをスキャンしてユーザー名やメールアドレスなどの情報を収集し、それを使ってログインを試みます。
注意: ここでいう「ユーザー」とは、訪問者や顧客のことではありません。WordPress管理画面にアクセスできるアカウントを持つユーザーを指します。
なぜこれが問題なのでしょうか? ハッカーは「ブルートフォース攻撃」という手法で、ユーザー名とパスワードの組み合わせを総当たりで試します。ボットをプログラムすれば、数秒のうちに何千もの組み合わせを入力できます。
しかし、もしユーザー名が既に判明していれば、ハッカーはサイトへの侵入まであと一歩というところまで迫っていることになります。
ここで登場するのがユーザー列挙です。ハッカーは、サイト上に表示されている著者名やメールアドレスから、ユーザー名を割り出そうとします。
ハッカーがユーザー名を発見する方法はいくつもあります。効果的な対策を講じるには、まずその手口を理解することが重要です。
ユーザー列挙の主な手口
ユーザー名はWordPressサイトのデータベースに保存されています。しかし、ハッカーがこの情報を入手するために、必ずしもデータベースへ直接アクセスする必要はありません。
ここでは、WordPressサイトで使われる代表的な2つの手法を詳しく見ていきましょう。
1. 著者アーカイブを利用する方法
WordPressサイト上のすべてのユーザーには、固有のIDが割り当てられています。このIDは、WordPressがデータベース内の対応するユーザーアカウントを参照するために使用されます。
そして、サイトのユーザーがページや投稿を作成すると、WordPressはそのデータを「著者アーカイブ」に保存します。
著者アーカイブとは、投稿やページを「誰が作成したか」によって分類したものです。
ハッカーはサイト上でスクリプトを実行し、著者アーカイブを読み込ませてユーザーIDを暴露させます。さらに別のスクリプトで、そのユーザーIDに紐づくユーザー名を特定します。
2. ログインフォームを利用する方法
WordPressのログインページで存在しないユーザー名を入力すると、次のようなメッセージが表示されます。
一方、有効なユーザー名と誤ったパスワードを入力すると、表示されるのはこちらです。
つまり、表示されるエラーメッセージの違いから、「そのユーザー名は実在するが、パスワードだけが間違っている」ということが外部から判断できてしまうのです。
ハッカーは専用ツールを使って候補となるユーザー名のリストを大量に入力し、エラー表示の違いから有効なユーザー名を見つけ出します。
こうした方法でユーザー名が判明すると、ハッカーはサイトへの侵入に大きく近づくことになります。これを防ぐためのセキュリティ対策を必ず実施しましょう。
ユーザー列挙を防ぐ2つの方法
ユーザー列挙を防ぐには、プラグインを使う方法と、WordPressファイルに直接コードを記述する方法の2つがあります。手動でのコード編集は、わずかなミスでもサイトが壊れる可能性があるためおすすめしませんが、両方の手順を紹介します。
1. 「Stop User Enumeration」プラグインをインストールする
これは最も簡単かつ効率的な対策方法です。WordPress公式ディレクトリから「Stop User Enumeration」プラグインをインストールしましょう。
その名の通り、このプラグインはハッカーがサイトをスキャンしてユーザー名を探すのを防ぐために設計されています。
さらに便利な機能として、ユーザー列挙を試みたIPアドレスを記録します。IPアドレスとは、インターネットに接続された機器に割り当てられる固有のコードのことです。MalCareのようなファイアウォール系プラグインは、悪意のある活動を行うIPアドレスを検知し、サイトへのアクセスをブロックします。
すでにファイアウォールを導入している場合は、Stop User Enumerationプラグインが記録したIPアドレスと、ファイアウォールがブロックしているIPアドレスを照合してみてください。ブロックされていない場合、多くのファイアウォールでは手動でIPアドレスを登録してブラックリストに追加できます。以降、そのIPアドレスからのアクセスは自動的に遮断されます。
2. コードを手動で追加してユーザー列挙を防ぐ
注意: この方法は推奨しません。どうしても実施したい場合は、必ず事前にWordPressサイトのバックアップを取ってください。問題が発生したときに、元の状態に復元できるようにするためです。
ステップ1: ホスティングアカウントにログインし、cPanel > ファイルマネージャを開きます。(FileZillaなどのFTPクライアントを使ってファイルにアクセスすることも可能です。)
ステップ2: public_htmlフォルダを開き、wp-contentフォルダへ移動して、テーマのフォルダにアクセスします。必ずサイトで有効化しているテーマを選んでください。
ステップ3: テーマフォルダ内にあるfunctions.phpファイルを探し、右クリックして編集します。
ステップ4: 以下のコードを挿入します。
/**
* Block User Enumeration
*/
function kl_block_user_enumeration_attempts() {
if ( is_admin() ) return;
$author_by_id = ( isset( $_REQUEST['author'] ) && is_numeric( $_REQUEST['author'] ) );
if ( $author_by_id )
wp_die( 'Author archives have been disabled.' );
}
add_action( 'template_redirect', 'kl_block_user_enumeration_attempts' );
変更を保存してファイルを閉じます。これでサイト上のユーザー列挙はブロックされます。
以上で、ユーザー列挙からサイトを守る対策は完了です。加えて、サイト上で公開している名前と異なる管理者ユーザー名を使用することも強くおすすめします。例えば、チームメンバーやブログ著者の名前をサイトに表示している場合は、それとは別の管理者名を設定しておくと安全です。
まとめ
WordPressサイトでユーザー列挙をブロックすれば、ブルートフォース攻撃を受ける可能性を大幅に減らせます。ハッカーは通常、侵入しやすいサイトを狙っており、ボットによる攻撃が何度か失敗すると、次のターゲットへ移っていくのが一般的だからです。
ただし、ブルートフォース攻撃は数あるセキュリティ脅威の一つにすぎません。WordPressサイトをハッカーから守るには、他の対策も必要です。
サイトを定期的にスキャンし、マルウェアに感染していないか確認してくれるセキュリティプラグインの導入を強くおすすめします。ハッカーのアクセスを未然にブロックする機能も備えています。
適切なセキュリティ対策があれば、安心してサイトを運営できるでしょう。
今すぐMalCareでWordPressサイトを守ろう!
-
スピーカーのセットアップエラーを解決する4つの効果的な方法
スピーカーのセットアップエラーは、PCで音楽を聴いたり、ゲームを楽しんだり、映画を観たりする際に発生する最も一般的な問題のひとつです。音が出ない状態では、パソコンで何をするにも楽しさが半減してしまうため、できるだけ早く解決する必要があります。一部のスピーカー設定を変更することでサウンドシステムのセットアップエラーを解消できますが、対処法に進む前に、まず確認しておくべき前提条件があります。 パソコンを再起動し、スピーカーを確認しましょう。シンプルな再起動だけで一時的な問題が解決することは少なくありません。 オーディオデバイスをPCから取り外し、可能であれば再起動します。その後、再度接続して正常
-
Windows 10でドライバーエラーコード32を修正する4つの効果的な方法
ドライバーエラーコード32は、特定のハードウェアのドライバーが何らかの理由で無効化された際に発生する、デバイスマネージャーでよく見られるエラーです。Windowsがあるデバイスのドライバーを検出できない場合、画面にエラーメッセージが表示されます。 パソコンの世界において、デバイスドライバーは非常に重要な役割を担っています。ドライバーはハードウェアとオペレーティングシステムをつなぐ仲介役として機能し、それぞれの動作を制御しています。そのため、ドライバーが応答しなくなった場合は、速やかに対処する必要があります。ドライバーの不具合の原因はさまざまで、古いドライバー、破損したドライバー、ドライバーが