始める前に
ブルートフォース対策を構成し、ログとしきい値アラートを設定しておく必要があります。
注目すべきログイベントを見つける
IP をブロックしたり、別の方法で攻撃に対処したりする前に、対象のログメッセージを精査して侵害の兆候を特定します。攻撃元は限られた数の IP である場合もあれば、単一の AS 番号や国である場合もあります。 ブルートフォース攻撃を調査する際は、以下のログイベントタイプが参考になります。これらは Auth0 テナントログ で確認できます。ログイベントタイプ
ログイベントタイプ
f: ユーザーのログイン失敗fu: 無効なユーザー名によるユーザーのログイン失敗fp: 無効なパスワードによるユーザーのログイン失敗pwd_leak: 漏えいしたパスワードでのログイン試行signup_pwd_leak: 漏えいしたパスワードでのサインアップ試行limit_wc: 単一アカウントに対する 10 回超のログイン失敗試行により IP をブロックlimit_sul: 同一 IP アドレスから 1 分間に 20 回超のログインによりユーザーをブロックlimit_mu: 100 回超のログイン失敗試行、または 50 回超のサインアップ試行により IP をブロックfcoa: クロスオリジン認証の失敗scoa: クロスオリジン認証の成功
パスワード推測
攻撃者は、テナントのポリシーについて事前知識がほとんどなくても、アカウントへのアクセスを狙ってパスワードの推測を繰り返すことがあります (TT1110.001) 。攻撃者は、未知のパスワードを使うユーザーが存在するかどうかを手当たり次第に推測しているにすぎないため、Auth0 logs にはfp、fu、fcoa の ログイベント が多数表示されます。詳しくは、Auth0 の Breached Password プレイブック をご覧ください。
パスワードスプレー
攻撃者は、正規のユーザーアカウントへのアクセスを得るために、よく使われるパスワードを多数試します (TT1110.003) 。こうした試みは Auth0 のブルートフォース対策にしばしば検知され、ログにはfp、fu、fcoa のログイベントが多数残ります。
クレデンシャルスタッフィング
クレデンシャルスタッフィング (TT1110.004) は、パスワードを使用していても追加の認証要素を設定していないテナントに対して、特に効果を発揮します。漏えいしたパスワードを悪用し、その一覧を使って被害者のアカウントへのログインを試みることで、クレデンシャルスタッフィング攻撃ではfp ログイベントと pwd_leak ログイベントが生成されます。
サインアップ攻撃
攻撃者は、ユーザー名列挙攻撃 (T1087) やサインアップ詐欺キャンペーンの一環として、短時間に大量のアカウントを作成しようとすることがあります。これは、あなたのテナント上に特定のユーザーアカウントが存在するかどうかを探るために行われます。目的は、サインアップ特典を悪用できるように多数のアカウントを作成したり、後の攻撃に備えて一定期間経過したアカウントを用意したりすることです。サインアップ攻撃では、fs、ss、signup_pwd_leak のログイベントが生成されます。
Auth0 Management API を使用した検出
Auth0 Management API では、関心のある期間内のログタイプを対象に、ログ検索クエリの構文 を使用してテナントログを検索できます。さらに高度なユースケースでは、Auth0 Log Streams を活用することで、データウェアハウスや SIEM などのログ集約ツールにも対応できます。 Auth0 の を使用する場合、攻撃の可能性がある期間はYYYY-MM-DD 形式の date:[startdate to enddate] で指定します。たとえば 2024-10-01 です。現在の日付を表すには * を使用します。
対象期間を攻撃の可能性がある時間枠に絞ることで、必要なタイプのログイベントをすべて取得できます。以下は、2024 年 10 月 1 日から現在までのブルートフォース攻撃を検索するクエリの例です。
緩和策
攻撃から効果的に保護するには、次の対策を検討してください。- 漏えいパスワードの検知 または Credential Guard を有効にして、ユーザーの負担を最小限に抑えながら漏えいした資格情報から保護します。ただし、どちらも辞書攻撃には有効ではない点に注意してください。
- 1 つ以上のフローで CAPTCHA を有効化し、必要に応じて CAPTCHA の表示頻度を上げてください。ただし、CAPTCHA は抑止策であって、根本的な解決策ではありません。
- 攻撃者に現在の CAPTCHA を回避されている場合は、CAPTCHA プロバイダーを変更するか、Auth0 の Auth Challenge または別のサポート対象プロバイダーへの移行を検討してください。
- 悪意のある攻撃者を含め、すべてのユーザーによるアカウント作成を一時的に無効にします。
- エッジプロバイダー側で Web アプリケーションファイアウォールのルールを変更するか、テナントアクセス制御リストを使用して、不正な IP、自律システム番号、地理的な場所、TLS clients、または
user-agent文字列のような HTTP ヘッダー要素をブロックし、リバースプロキシの導入も検討してください。 - 許可される接続数の上限を引き下げてブルートフォース攻撃を緩和するために、ブルートフォース と Suspicious IP のしきい値を厳しくします。
- アプリケーションが クロスオリジン認証 のエンドポイントに依存していない場合 (たとえば、Universal Login のみを使用している場合や、埋め込みフローで OAuth 2.0 トークンエンドポイントを直接使用している場合) は、
fcoaとscoaのイベントが頻繁に見られる際にそれらのエンドポイントを無効にして、未使用の攻撃対象領域を削減してください。 - 侵害されたアカウントに対しては、潜在的に侵害されているアカウントに を要求することも含め、step-up MFA を強制します。
- SMS ポンピング攻撃や通話料金詐欺攻撃を緩和するため、SMS または音声ベースの MFA を OTP または WebAuthn に置き換え、より強力な MFA オプションへ移行してください。
- SMS/音声 MFA を使用する場合は、Twilio の Preventing Fraud in Verify のような、SMS/音声プロバイダーの不正防止機能を導入してください。