ボット検知

Before you start

サポートされているサードパーティーCAPTCHAプロバイダーの統合を利用するには、プロバイダーの構成情報が必要です。詳細については、「サードパーティーCAPTCHAプロバイダーの統合を構成する」をお読みください。

ボット検知は、要求がボットからのものである可能性が高いことを検知することによって、スクリプト攻撃を軽減します。これらのタイプの攻撃は、資格情報スタッフィング攻撃やリスト検証攻撃などと呼ばれることもあります。ボット検知は、特定の攻撃に対するサポートを提供し、正当なユーザーに負担をほとんど与えません。ボット検知のデフォルトの応答は認証チャレンジで、CAPTCHAのないユーザー検証を提供します。

詳細については、「資格情報スタッフィング攻撃:その仕組みと対処法」をお読みください。

Auth0は、大量のデータと統計モデルを使用して、ログイン、サインアップ、またはパスワードリセットのトラフィックの急増がボットやスクリプトによるものである可能性が高いことを示すパターンを突き止めます。資格情報スタッフィング攻撃に加担している可能性が高いIPアドレスからログインやアカウント作成、パスワードリセットを試みるユーザーは、追加の検証手順を完了する必要があります。トリガーは、正当なユーザーに不要な負担をかけることなく、これらの攻撃に関連するトラフィックを検出します。

ボット検知を構成する

Auth0ではデフォルトで、すべての接続のボット検知が有効です。

[Response(応答)]設定でボット検知を有効にしない場合、ボット検知はモニタリングモードで動作します。モニタリングモードでは、関連するイベントがテナントログに記録され、確認できます。詳細については、「攻撃防御のログイベントを表示する」をお読みください。

リスク評価のテナントログは、Auth0 Dashboardで有効にできます。

  1. [Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Bot Detection(ボット検知)]を選択します。

  2. [Detection(検知)]セクションでトグルを有効にします。

    攻撃防御画面の検知セクション

  3. [Response(応答)]セクションで、ボット検知応答を選択します。

    Dashboard - 攻撃防御 - ボット検知

    認証チャレンジの使用中は、[Fail open(失敗で開く)]トグルはデフォルトで無効になっています。

  4. パスワードフロー、パスワードレスフロー、およびパスワードリセットフローでCAPTCHAを必須にしたい場合は選択してください。

    • [Never(求めない)]:ユーザーに対してログイン時にCAPTCHAの完了を一切求めません。

    • [When Risky(リスクがある場合)]:ユーザーに対して、ログインが[Bot Detection Level(ボット検知レベル)]設定と一致する場合にのみ、CAPTCHAの完了を求めます。

    • [Always(常に)]:ユーザーに対してログイン時に常にCAPTCHAの完了を求めます。

  5. [When Risky(リスクがある場合)][Always(常に)]を選択すると、[CAPTCHA Providers(CAPTCHAプロバイダー)]フィールドが[Response(応答)]セクションに表示されます。[Auth Challenge(認証チャレンジ)](Auth0提供)、[Simple CAPTCHA(シンプルCAPTCHA)](Auth0提供)、またはサポートされているサードパーティープロバイダーの統合(外部でのセットアップと登録が必要)を選択してください。

    • [Auth Challenge(認証チャレンジ)][Simple CAPTCHA(シンプルCAPTCHA)]を選択する場合は、操作はこれだけです。ログインエクスペリエンスがJavaScriptをサポートしていない場合は、[Simple CAPTCHA(シンプルCAPTCHA)]を選ぶ必要があります。

    • サードパーティープロバイダーの統合を選択する場合は、続けてプロバイダーの構成の詳細を入力します。詳細については、「サードパーティーCAPTCHAプロバイダーの統合を構成する」をお読みください。

  6. [When Risky(リスクがある場合)]を選択すると、[Bot Detection Level(ボット検知レベル)]フィールドが[Response(応答)]セクションに表示されます。ユースケースに適したセキュリティレベルを選択してください。詳細は、「ボット検知レベルを構成する」をお読みください。

  7. [Save(保存)]を選択します。

ボット検知レベルを構成する

Bot Detection Level(ボット検知レベル)]設定をご自身のリスク許容度とビジネスニーズに合わせて構成します。

設定は3種類から選べます。

  1. [Low(低)]:ボットアクティビティの可能性が高い場合にCAPTCHAがトリガーされ、実際のユーザーには比較的負担が少なくなります。

  2. [Medium(中)]:デフォルト。ボットアクティビティの可能性が中程度の場合にCAPTCHAがトリガーされ、実際のユーザーにはセキュリティと負担のバランスが取れたエクスペリエンスが提供されます。

  3. [High(高)]:ボットアクティビティの可能性がわずかにある場合にCAPTCHAがトリガーされ、実際のユーザーにはセキュリティは強化されますが、負担が大きくなる可能性があります。

[Auth0 Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]でこのスライダーを表示

信頼できるIPアドレスにボット検知の迂回を許可する

IP AllowListフィールドに最大100個の個別のIPアドレスおよび/またはCIDRレンジ(IPv4またはIPv6)を追加することで、ボット検知のバイパスを許可することができます。Auth0は、このリストのIPアドレスまたはCIDRレンジについて、ブロックを強制することもアラートを送信することもありません。

  1. [Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Bot Detection(ボット検知)]を選択します。

  2. [IP AllowList]フィールドに、ボット検知をバイパスするIPアドレスおよび/またはCIDRレンジを入力します。アドレス・範囲が複数ある場合は、カンマで区切ります。

カスタムログインページやクラシックログインエクスペリエンスにサインアップ検知モデルを構成する

Auth0はサインアップ検知の機会学習モデルを提供しています。これはログインモデルとは異なり、特有の信号を分析することで、さまざまな種類の攻撃に対処します。

このモデルでは、サインアップフローとログインフローでCAPTCHAの動作を変えられるため、サインアップ攻撃に対する保護を強化し、最新のセキュリティ技術にも対応できます。

カスタムログインページクラシックログインエクスペリエンスを使用している場合に、ボット検知がサインアップフローに使用する検知モデルをAuth0 Dashboardから構成できます。

  1. [Dashboard]>[Security(セキュリティ)]>[Attack Protection(攻撃防御)]に移動し、[Bot Detection(ボット検知)]を選択します。

  2. [Detection Models(検知モデル)]セクションを見つけます。

  3. [Signup detection models for custom and classic login pages(カスタムおよびクラシックログインページのサインアップ検知モデル)]トグルを有効にします。

制約と制限

フローの制限

ボット検知は、Auth0ユニバーサルログインを使用するウェブアプリケーションとモバイルアプリケーションで使用できます。ユニバーサルログインを使用しないアプリケーション、特にCAPTCHAまたはreCAPTCHAチャレンジをサポートしないフローについては、サポートレベルに限りがあります。

ボット検知を有効にする前にすべてのログインエクスペリエンスがサポート対象であることを確認してください。アプリケーションにエラーが発生する可能性があります。

フロー 制限
ユニバーサルログイン デフォルトで対応
クラシックログイン(カスタマイズなし) デフォルトで対応
クラシックログイン(__Lock__テンプレートを用いたカスタムログインページ) lock.js SDKバージョン12.4.0以降の使用で対応
クラシックログイン(__カスタムログインフォーム__テンプレートを用いたカスタムログインページ) auth0.js SDKバージョン9.24以降を使用し、CAPTCHAやreCAPTCHAチャレンジを処理するようにコードを拡張している場合に対応
ネイティブアプリケーション 以下のSDKの使用で対応:
  • Auth0.swiftバージョン1.28.0以降
  • Auth0.Androidバージョン1.25.0以降
  • Lock.Swiftバージョン2.19.0以降
  • Lock.Androidバージョン2.22.0以降
通常のWebまたはネイティブアプリケーションでリソース所有者のパスワードフローを使用 制限付きで対応。CAPTCHAなど、ボット検知の応答は対話型フローが必要なため非対応。SDKがrequires_verificationエラーを返した場合は、Webベースのログインフローをトリガーしてユーザーの認証を完了させる必要がある。
Auth0がホストしていないフローでlock.js SDKまたはauth0.js SDKを使用してクロスオリジン認証(co/authenticateエンドポイント)を行う 非対応

接続タイプの制限

使用する接続のタイプに応じて、ボット検知には以下の制限があります。

接続タイプ 制限
データベース フロー制限の表が示すように、ログインが互換性のあるログインフローを使用する場合に対応されます。
カスタムデータベース フロー制限の表が示すように、ログインが互換性のあるログインフローを使用する場合に対応されます。
Active Directory/LDAP フロー制限の表が示すように、ログインが互換性のあるログインフローを使用する場合に対応されます。
エンタープライズ 非対応です。
ソーシャルログイン 非対応です。
パスワードレス フロー制限の表が示すように、ログインが互換性のあるログインフローを使用する場合に対応されます。

カスタムログインページのサポート

Auth0.jsを使用してカスタムログインページを構築する場合には、ボット検知を有効にして、ログイン要求がAuth0によって高リスクと判断された場合にCAPTCHAの手順を表示することができます。

カスタムログインフォームコードは、ユーザーがCAPTCHAステップを渡すように求められるシナリオを処理しなければなりません。詳細は、「ボット検知をカスタムログインページに追加する」をお読みください。

ネイティブアプリケーションのサポート

ログインフローにAuth0 SDKを使用してネイティブアプリケーションを構築する場合は、ボット検知を有効にして、ログイン要求がAuth0によって高リスクと判断された場合にCAPTCHAの手順を表示することができます。

カスタムログインフォームコードは、ユーザーがCAPTCHAステップを渡すように求められるシナリオを処理しなければなりません。詳細については、「ボット検知をネイティブアプリケーションに追加する」をお読みください。

もっと詳しく