wp-json/wp/v2/usersにアクセスされる理由|WordPressユーザー列挙の仕組みと対策【Security Log #16】

WordPressのアクセスログを見ていると、以下のようなリクエストを見かけることがあります。

/wp-json/wp/v2/users/

「これは何をしているのか」
「ユーザー情報が取得されているのではないか」

初めて見ると不安になりますが、このアクセスには明確な目的があります。

この記事では、実際のログをもとに、wp-json/wp/v2/usersにアクセスされる理由と仕組みを解説します。

wp-jsonとは何か

wp-json はWordPressのREST APIです。

REST APIは、外部からデータを取得・操作するための仕組みで、WordPressでは次のような用途で使われます。

  • 投稿一覧の取得
  • コメントの取得
  • ユーザー情報の取得

WordPressの内部データをJSON形式で取得できる機能です。


wp-json/wp/v2/usersの役割

/wp-json/wp/v2/users/

このエンドポイントは、ユーザー情報を取得するためのAPIです。

設定によっては、次のような情報が取得できる場合があります。

  • ユーザー名(slug)
  • 表示名
  • 投稿者情報

なぜBotはwp-jsonにアクセスするのか

結論としては、ログイン攻撃の事前調査です。

実際のアクセスログから見る挙動

以下は、実際に同一IPから数秒以内に行われたアクセスの一例です。

35.205.216.110 → /(301 → wwwへリダイレクト)
35.205.216.110 → /(200)
35.205.216.110 → /wp-includes/wlwmanifest.xml(403)
35.205.216.110 → /?author=1(302)
35.205.216.110 → /?author=2(302)
35.205.216.110 → /?author=3(302)
35.205.216.110 → /wp-json/wp/v2/users/(403)
35.205.216.110 → /wp-json/oembed/1.0/embed(403)
35.205.216.110 → /xmlrpc.php(POST)(403)

※アクセスの流れ全体については、Botのアクセスパターンを解説した記事で詳しく解説しています。

このログを見ると、wp-jsonへのアクセスは単体ではなく、複数の情報収集の流れの中で行われていることが分かります。

例えば以下のような順番です。

  • トップページへのアクセス(サイトの存在確認)
  • WordPress特有ファイルの確認
  • ?author= によるユーザー列挙
  • wp-json/wp/v2/usersへのアクセス
  • xmlrpc.phpへのリクエスト

このように、wp-jsonへのアクセスは、ユーザー情報を取得するための手段の一つとして使われています。

ユーザー名が分かると何が起きるか

WordPressのログインには、ユーザー名とパスワードが必要です。

このうち、ユーザー名が分かると攻撃の難易度は大きく下がります。

典型的な流れ

Botは次のような手順で動きます。

  1. /wp-json/wp/v2/users/ にアクセス
  2. ユーザー名を取得
  3. /wp-login.php/xmlrpc.php に対してログイン試行

つまり、wp-jsonは侵入ではなく、準備段階で使われています。

ユーザー名が特定されると、次にログイン試行が行われるケースもあります。

WordPressの「/wp-login.php」スキャンとは
WordPress公開直後に来たxmlrpc.php POSTリクエスト


すべてのサイトでユーザー情報が取得できるわけではない

重要な点として、必ずしもユーザー情報が取得できるわけではありません。

取得できるかどうかは設定次第

  • テーマやプラグインの設定
  • REST APIの制限
  • セキュリティ対策

これらによって挙動は変わります。

ステータス意味
200情報取得可能
403アクセス拒否
404存在しない扱い

403エラーや404エラーが返っている場合は、適切に制限されている状態です。


対策は必要か|放置しても問題ないのか

結論として、必須ではありませんが制限しておくと安心です。

理由

  • ユーザー名だけでは侵入は成立しない
  • ただし攻撃の準備には利用される

基本的な考え方

  • 放置しても直ちに危険ではない
  • ただし情報は公開しない方が望ましい

対策例

  • REST APIの制限
  • ログイン関連の保護
  • 不要なエンドポイントの制御

よくある誤解|アクセス=攻撃ではない

「wp-jsonにアクセスされた=ハッキングされた」

これは誤りです。

正しくは、調査されている段階です。

また、これらのアクセスの多くは海外IPアドレスから行われますが、海外アクセスすべてが危険というわけではありません。

WordPressに海外IPアドレスからアクセスが来る理由|すべてブロックすべきなのか


まとめ|wp-jsonは攻撃前の情報収集に使われる

  • wp-json/wp/v2/usersはユーザー情報取得用のAPI
  • Botはログイン攻撃の準備としてアクセスする
  • それ単体で侵入されることはない

ログの意味を理解することで、不必要な不安を減らせます。


このブログの運営環境

  • WordPress
  • GeneratePress
  • エックスサーバー

エックスサーバー公式サイト