CAPTCHA 認証
CAPTCHA ベースのログインは、自動化されたボットのアクセスを防ぐために追加のセキュリティ層を提供しますが、スキャン前に認証する必要がある DAST ツールにとっては複雑さも増します。ログインフローに画像ベースまたはテキストベースの CAPTCHA、あるいは reCAPTCHA チャレンジが含まれる場合、AppScanこれらのフローをスキャン中に確実に記録して再生するための仕組みが用意されています。
アプリケーションのログインフォームで送信前に CAPTCHA の解答が必要な場合は、このページを参照してください。ここでは、サポートされている CAPTCHA の種類、設定要件、制限事項、およびスキャンを中断なく進めるために必要なトラブルシューティング手順について説明します。テキストや単純な画像パズルなどの CAPTCHA チャレンジの一部は、自動化技術や AI 支援技術で処理できますが、reCAPTCHA v2/v3 や行動ベースのチャレンジなどのインフラストラクチャレベルの CAPTCHA は、スキャンの継続性を維持するために特定の設定が必要になることがよくあります。これらの仕組みがどのように機能するかを理解することは、DAST スキャン中に認証を成功させ、完全なカバレッジを実現するために不可欠です。
サポートされている CAPTCHA の種類
AppScan次の CAPTCHA 実装をサポートします:
-
CAPTCHA v1(AIベースの画像認識)
-
reCAPTCHA v2(チャレンジベース:対話型チェックボックス)
-
reCAPTCHA v3(行動ベース:不可視のスコアリング)
CAPTCHA v1(AIベース)
reCAPTCHA v2 および v3(インフラストラクチャベース)
- 概要: reCAPTCHA v2/v3 を使用するアプリケーションのログインを自動化するには、チャレンジを回避する必要があります。これは、Google Cloud で IP アドレスの許可リストを構成し、Google にAppScanトラフィックを信頼済みとして扱わせることで実現します。
-
構成要件:
-
reCAPTCHA キーが有効で、正しいドメインに対してアクティブであることをサイト所有者に確認します。
-
スキャナーAppScanが使用するパブリック IP アドレスを特定します。
-
サイト所有者によって IP チェックが有効化されている場合、チャレンジトークンは送信元 IP アドレスにバインドされます。処理中にスキャナーの IP が変わると(たとえば、ロードバランシングやマルチノードスキャンのため)、検証は失敗します。この問題を解決するには、送信元 IP が信頼されるように、プロバイダーのコンソール(たとえば Google Cloud コンソール)でスキャナーのパブリック IP アドレスまたはサブネットを手動で許可リストに追加します。
- ローカル IP アドレスまたはプライベート IP アドレスは使用できません。
- reCAPTCHA v2 では、手動記録で AppScan ブラウザーのみを使用してログイン記録を開始します。
-
-
制限:
-
reCAPTCHA v2
-
自動ログインはサポートされていません。
-
外部ブラウザーでは動作しません。
-
-
トラブルシューティング
| 問題 | 考えられる原因 | 推奨処置 |
|---|---|---|
| CAPTCHA v1 がログイン中に失敗する | AppScan画像または入力テキストを CAPTCHA 要素として認識しません。 | CAPTCHA 画像とテキストの HTTP パラメーター ID を特定し、手動で追加します。詳しくは、「CAPTCHA HTTP パラメーターの識別方法」を参照してください。 |
|
AI モデルが複雑な画像を解決できない |
より大きい、またはより高度な AI モデルに切り替えます。(例: GPT-4 と mini モデル)。既定のモデルでは、難しい画像で失敗する場合があります。 |
|
| reCAPTCHA v2/v3 がログイン記録または再生中に失敗する |
reCAPTCHA が完全に初期化されていないか、検証されていません。 |
ログインを再度記録します。初期化の遅延はよくあります。 |
| 許可リスト設定の問題により reCAPTCHA 認証が失敗する |
|
|
| セッションのコンテキストがキャプチャされない | ログインを再度記録し、ログイン後に別のページ(たとえばホームページ)を選択します。 | |
| ログインフローでのタイミング遅延 | アクションベースの遅延を増やします(詳細構成)。 | |
|
再生中のタイミング遅延 |
CAPTCHA ステップの前に、手動の待機アクションを挿入します。 | |
| CAPTCHA が初期化される前にページの読み込みが遅すぎる | CAPTCHA の操作の前に、より長いクローラー遅延または明示的な待機(たとえば 10 秒)を追加します。 |
CAPTCHA HTTP パラメーターの識別方法
AppScanアプリケーションにログインできるように、CAPTCHA を含むパラメーター名を把握しておく必要があります。通常、記録されたログイン手順を検証するときに、このパラメーターを識別します。そうならない場合、または自動ログインを使用する場合は、パラメーターを自分で追加する必要があります。
- ブラウザーを開き、アプリケーションのログイン・ページに移動します。
- F12 をクリックして、ブラウザーの開発者ツール・ペインを開きます(通常はメインのブラウザー・ペインの右側、または下部にあります)。
- 「エレメント」タブをクリックして、HTML コードを表示します。コードの一部を選択すると、対応する要素がメインのブラウザー・ペインで強調表示されます。
- CAPTCHA 要素を見つけて、
idを特定します。例:
<img id="captchaImage" src="./captcha?ts=1782734992413" alt="Captcha" width="180" height="56"> - id パラメーターの値(引用符を除く)が、必要な CAPTCHA HTTP パラメーターです。
例:
captchaImage