アカウント列挙
アカウント列挙 とは何ですか?
アカウント列挙対象システムに存在するアカウントやメールアドレス、電話番号を、アプリのレスポンスの差から特定する攻撃。
アカウント列挙は、対象アカウントが存在する場合と存在しない場合とで、アプリのレスポンスに差(ログイン・登録・パスワードリセット時のエラー文言の違い、応答時間の差、HTTP ステータスコードの違いなど)があることを突きます。攻撃者は多数の候補識別子を試して、有効なアカウントの一覧を作り、その後フィッシング、クレデンシャルスタッフィング、パスワードスプレーなどに利用します。「ユーザーが存在しません」対「パスワードが違います」、リセット時の「メールを送りました」対「アカウントが見つかりません」、登録時の「このメールは既に使われています」など、多くのフローで生じやすい脆弱性です。対策は、統一されたエラー文言、応答時間の均一化、汎用的な通知、IP とアカウント単位のレート制限、悪用検知時の CAPTCHA、MFA による後続攻撃の緩和などです。
● 例
- 01
新規登録フォームが「このメールアドレスはすでに使われています」と返し、有効なメールを大量に収集される。
- 02
/login のレスポンス時間が既知ユーザーと未知ユーザーで異なり、その差からアカウント一覧を構築される。
● よくある質問
アカウント列挙 とは何ですか?
対象システムに存在するアカウントやメールアドレス、電話番号を、アプリのレスポンスの差から特定する攻撃。 サイバーセキュリティの ID とアクセス カテゴリに属します。
アカウント列挙 とはどういう意味ですか?
対象システムに存在するアカウントやメールアドレス、電話番号を、アプリのレスポンスの差から特定する攻撃。
アカウント列挙 はどのように機能しますか?
アカウント列挙は、対象アカウントが存在する場合と存在しない場合とで、アプリのレスポンスに差(ログイン・登録・パスワードリセット時のエラー文言の違い、応答時間の差、HTTP ステータスコードの違いなど)があることを突きます。攻撃者は多数の候補識別子を試して、有効なアカウントの一覧を作り、その後フィッシング、クレデンシャルスタッフィング、パスワードスプレーなどに利用します。「ユーザーが存在しません」対「パスワードが違います」、リセット時の「メールを送りました」対「アカウントが見つかりません」、登録時の「このメールは既に使われています」など、多くのフローで生じやすい脆弱性です。対策は、統一されたエラー文言、応答時間の均一化、汎用的な通知、IP とアカウント単位のレート制限、悪用検知時の CAPTCHA、MFA による後続攻撃の緩和などです。
アカウント列挙 からどのように防御しますか?
アカウント列挙 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
アカウント列挙 の別名は何ですか?
一般的な別名: ユーザー列挙, 識別子列挙。
● 関連用語
- identity-access№ 1196
ユーザー名列挙
ユーザー名そのものが存在するかどうかをアプリのレスポンスから判定する、アカウント列挙の一形態。
- attacks№ 232
クレデンシャルスタッフィング
ある漏えいから得たユーザー名・パスワードの組合せを他サービスで自動再生し、パスワード使い回しを悪用してアカウントを乗っ取る攻撃。
- attacks№ 800
パスワードスプレー攻撃
少数のよく使われるパスワードを多数のアカウントに対して低頻度で試し、ロックアウトやレート制限を回避する攻撃。
- attacks№ 821
フィッシング
信頼できる組織になりすまし、被害者から認証情報を取得したり送金させたり、マルウェアを実行させたりするソーシャルエンジニアリング攻撃。
- network-security№ 904
レート制限
レート制限は、識別子(IP、ユーザー、API キー、トークンなど)あたりの単位時間内のリクエスト数を制限する仕組みで、API やアプリを濫用・スクレイピング・総当たり攻撃から守ります。