まったり技術ブログ

Webエンジニアのセキュリティブログ

26万サイト分のWordPressをセキュリティ調査「デフォルトログイン画面・アカウント列挙 編」

はじめに

 国内のWordPressで構築されている 約26万サイトを対象に調査しました。
(※ 厳密には 260,135 サイト分)

 今回調査した内容は2つあります。

  • 調査①:「初期ログイン画面へのアクセス」が可能か
  • 調査②:「アカウントの列挙」が可能か

 調査前は特に以下の2点が気になっていました。

  • 調査①と調査②の割合に差があるか
    → (予想)セキュリティプラグインを導入すると両方とも問題なくなる場合が多いので、割合の差は少なそう。
  • トップドメイン別で割合に差があるか
    → (予想)政府が管理している「go.jp」や企業のみが取得できる「co.jp」は問題が少なそう。

調査①:初期ログイン画面へのアクセス(/wp-login.php)

調査内容

 WordPressの管理画面へアクセスするためのURLがデフォルト(/wp-login.php)になっているかを確認しています。

 管理画面がデフォルトのURLである場合は下画像のように「<WordPressインストール先>/wp-login.php」でログイン画面にアクセスできます。

 この状態だと誰でもがログイン画面にアクセスできることにより、不正なログイン試行が行われるといった可能性があります。

(※ログイン画面にアクセスできるが、認証のリクエストは拒否されるサイトも含まれます。)

調査結果

 最初に全体の数を見てみます。

 調査対象である全260,135サイト中、204,695サイトがデフォルトのURLで管理者のログイン画面にアクセスすることができました。

ログイン画面にアクセス可能か

 次にドメイン別で見てみます。検査数が20以上のものを取り上げています。
(黄色に塗りつぶされているドメインは属性JPドメインであり、取得するには特定に機関に必要なドメインです。)

 割合の差が最大は2倍ほどありますが、ドメインの特徴での差はあまり確認できませんでした。

 「go.jp」ドメインが一番対応されているドメインであることがわかりますが、それでも半数近くが対応していないのは意外でした。

調査②:アカウントの列挙(/wp-json/wp/v2/users)

調査内容

 「<WordPressインストール先>/wp-json/wp/v2/users」にアクセスしてアカウント列挙ができるかを確認してみます。

 アカウント列挙の機能が有効になっていると下画像のように容易にアカウント情報(認証情報の一部)が取得できます。

 アカウントが列挙できるという状態は、調査①の初期ログイン画面へのアクセスが可能よりも深刻であり、Tenable社のスキャナーでは脆弱性として検出されるものになっています。

WordPress のユーザー列挙 | Tenable®

調査結果

 調査対象である全260,135サイト中、134,373サイトがアカウントの列挙が可能になっていました。

 調査①よりも問題のあるサイトの割合が少なくなっていることを確認できます。

アカウントの列挙が有効か

 次にドメイン別で見てみます。検査数が20以上のものを取り上げています。

 属性JPドメインのサイトの対応割合が多い点は興味深い結果となりました。

まとめ

予想と結果

 最初に記載した予想の答え合わせをしていきます。

  • 調査①と調査②の割合に差があるか
    → (予想)セキュリティプラグインを導入すると両方とも問題なくなる場合が多いので、割合の差は少なそう。 → (結果)『調査①は約4/3、調査②は約1/2』      アカウント列挙は不要な場合が多いが、ログイン画面に関しては管理者以外も利用するサイトがあるのでその差が出たのでしょうか。

  • トップドメイン別で割合に差があるか
    → (予想)政府が管理している「go.jp」や企業のみが取得できる「co.jp」は問題が少なそう。
    → (結果)『調査①の差は小さい、調査②の差は大きい』
         調査②の問題はより脆弱性として扱われることが多いことが原因なのでしょうか。

次回

 次は実際に問題なっているプラグイン関連について調査をしていこうと考えています。

追記:第二弾書きました。⬇︎ blog.motikan2010.com