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は次のような手順で動きます。
/wp-json/wp/v2/users/にアクセス- ユーザー名を取得
/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はログイン攻撃の準備としてアクセスする
- それ単体で侵入されることはない
ログの意味を理解することで、不必要な不安を減らせます。
