View a markdown version of this page

ペネトレーションテスト用の認証情報を提供する - AWS セキュリティエージェント

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ペネトレーションテスト用の認証情報を提供する

AWS セキュリティエージェントがウェブアプリケーションの認証済み領域をテストできるようにする認証情報を提供します。認証情報がない場合、エージェントはパブリックにアクセス可能なページと APIs。

認証情報を設定する

  1. 侵入テストの作成ワークフローで、認証認証情報 - オプションセクションを見つけます。

  2. 認証情報 #1 セクションで、認証情報の入力方法を選択します。

    • 認証情報の入力 - 認証情報を直接入力します。開発環境とテスト環境に最適です。

    • 詳細設定 - AWS ネイティブの認証情報管理を使用します。本番環境と機密認証情報に推奨されます。

高度なオプション

詳細設定を選択した場合は、3 つの認証情報戦略から選択できます。

  • IAM ロールの引き受け - AWS Cognito または IAM 認証を使用するアプリケーションの場合

  • AWS Secrets Manager - 暗号化とローテーションによる安全な認証情報ストレージ用

  • Lambda 関数 - 動的な認証情報の生成または複雑な認証フローの場合

認証情報を直接入力する

  1. 認証情報の入力を選択します。

  2. ユーザー名とパスワードを入力します

  3. アクセス URL ドロップダウンで、これらの認証情報を使用する URL を選択します。これは、ターゲットエンドポイントのリストから選択する必要があります。

  4. (オプション) 2FA - オプションフィールドで、2 要素認証を必要とするアプリケーションに TOTP シークレットを指定します。次のいずれかを行うことができます。

    • TOTP シークレットを直接入力するか (例: JBSWY3DPEHPK3PXP)、完全な otpauth://totp/ URI を入力します (例: otpauth://totp/Example:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example)。

    • アップロードアイコンを選択して、認証アプリケーションのセットアップページから QR コードイメージをアップロードします。QR コードはローカルでスキャンされ、TOTP URI は自動的に抽出されます。

      TOTP シークレットを指定すると、エージェントは新しいワンタイムコードを自動的に生成し、ログイン中に 2FA プロンプトが検出されると入力します。

  5. (オプション) アプリケーションに複雑な認証フローがある場合は、エージェントスペースのログインプロンプトを展開して、特定のログイン手順を指定します。

重要

個人アカウントや管理アカウントではなく、代表的なアクセス権を持つテストアカウントを使用します。

詳細設定を使用する

高度な認証情報戦略 (Secrets Manager、Lambda、または IAM ロール) を選択すると、AWS セキュリティエージェントはサービスロールを使用して、設定された AWS リソースから直接認証情報を取得します。エージェントスペースのログインプロンプトを使用して、これらの認証情報をアプリケーションに適用する方法をエージェントに提供します。例えば、どのログイン URL に移動するか、どのフォームフィールドに入力するかなどです。

注記

Secrets Manager のシークレットと Lambda 関数は、AWS セキュリティエージェントのセットアップと同じ AWS アカウントに存在する必要があります。クロスアカウント認証情報は現在サポートされていません。

  1. 詳細設定を選択します。

  2. ユーザーアクセス戦略ドロップダウンで、次のいずれかを選択します。

エージェントが引き受けることができる IAM ロールを選択する

このオプションは、AWS Cognito、IAM 認証付き API Gateway、またはその他の AWS ネイティブ認証システムを使用するアプリケーションに使用します。IAM ロールには、AWS セキュリティエージェントがロールを引き受けることを可能にする信頼関係と、アプリケーションの認証システムにアクセスするためのアクセス許可が必要です。

接続された AWS Secrets Manager から静的認証情報を選択する

このオプションを使用して、暗号化、ローテーション、アクセス監査を使用して AWS Secrets Manager から認証情報を安全に取得します。

IAM ロールには secretsmanager:GetSecretValueおよび アクセスsecretsmanager:DescribeSecret許可が必要です。

エージェントは Secrets Manager から直接シークレット値を取得します。エージェントスペースのログインプロンプトを使用して、アプリケーションのログインフローにこれらの認証情報を適用する方法をエージェントに指示します。例えば、どの URL に移動するか、どのフォームフィールドに入力するかなどです。エージェントがログインプロンプトで指定した手順に従って形式を解釈するため、任意の形式を使用してシークレットを保存できます。

たとえば、エージェントが https://example.com/login でユーザー名/パスワードログインフォームを送信する場合、 フィールドusernamepasswordフィールドを使用してシークレットを JSON としてフォーマットできます。アプリケーションで TOTP ベースの 2FA が必要な場合は、totpSecretTOTP シークレットのフィールドを直接含めるか、完全な URI otpauth://totp/ を含めます。

{ "username": "test-user", "password": "secure-password-here", "totpSecret": "JBSWY3DPEHPK3PXP" }

次に、認証手順 を設定します。アクセス URLhttps://example.com (またはターゲットエンドポイントのリストから選択された他の URL) に設定します。エージェントスペースのログインプロンプトに「https://example.com/login に移動し、指定されたユーザー名とパスワードをフォームに入力します」と入力します。

別の例として、代わりに HTTP ヘッダーに提供される API キーがある場合は、プレーンテキストとして保存できます。

"api-key-here"

次に、認証手順 を設定します。エージェントスペースのログインプロンプトにX-API-Key ヘッダーをすべてのリクエストで指定された API キーに設定します」と入力します。

重要

TOTP ベースの 2FA のみがサポートされています。SMS、E メール、プッシュ通知、ハードウェアキー、OAuth 認証はサポートされていません。

利用可能な Lambda 関数を選択して認証情報を動的に取得する

このオプションは、複雑な認証システム、動的な認証情報生成、または外部 ID プロバイダーとの統合に使用します。

IAM ロールには アクセスlambda:InvokeFunction許可が必要であり、関数は 30 秒以内に完了する必要があります。

ペネトレーションテストが実行されると、AWS セキュリティエージェントは AWS Lambda 関数を同期的に呼び出し、ペネトレーションテストと解決される特定の認証情報を識別するイベントに合格します。

{ "pentest_arn": "arn:aws:securityagent:us-west-2:111122223333:pentest/pt-abcd1234-5678-90ab-cdef-EXAMPLE11111", "actor_identifier": "Credential1" }
  • pentest_arn – 認証情報が解決されるペネトレーションテストの Amazon リソースネーム (ARN)。これを使用して、関数内のリクエストの範囲指定、認可、または監査を行います。

  • actor_identifier – コンソールでこの認証情報に割り当てた認証情報名 (例: Credential1)。これを使用して、1 つの関数が複数の認証情報を提供するときに正しい認証情報を返します。

エージェントは、関数の出力を認証情報として直接使用します。エージェントスペースのログインプロンプトを使用して、AWS Secrets Manager と同じように、アプリケーションにこれらの認証情報を適用する方法をエージェントに指示します。Lambda 関数の出力とサポートされている認証タイプのフォーマット方法の例接続された AWS Secrets Manager から静的認証情報を選択するについては、「」を参照してください。

複数の認証情報を設定する

さまざまなユーザーロールまたは認証システムをテストするには:

  1. 別の認証情報を追加する を選択します。

  2. いずれかの入力方法を使用して追加の認証情報を設定します。

  3. 認証情報を削除するには、認証情報セクションの「削除」を選択します。

ログインの最適化

ログインの最適化により、AWS セキュリティエージェントは以前のペンテスト実行からナビゲーションパターンを学習し、後続の実行に適用できます。これらのパターンには、ログインフローとマルチステップ認証ワークフローが含まれます。これにより、エージェントが認証方法の再検出に費やす時間が短縮され、スキャンが高速化され、テストカバレッジの一貫性が向上します。

ログイン最適化の仕組み

最初のペンテストの実行時に、エージェントは指定した認証情報を使用してアプリケーションのログインフローをナビゲートする方法を検出します。成功したナビゲーションステップを記録し、学習したログインワークフローをキャプチャするスキルファイルを生成します。

後続の実行では、エージェントは保存されたスキルファイルを読み取り、学習したナビゲーションパターンを直接適用し、検出フェーズをスキップします。つまり、次のようになります。

  • 認証テストまでの時間を短縮 — エージェント は、ゼロから探索するのではなく、実証済みのナビゲーションパターンをすぐに適用します。

  • より一貫した動作 — エージェント は代替手段を探索するのではなく、同じ実証済みのパスに従います。

注記

ログイン最適化は、実行内の最初のログインセッション中に学習します。同じ実行の後続のログインセッションは、最初のセッションで学習した内容の恩恵を受けます。今後の実行では、すべてのログインセッションが保存されたスキルの恩恵を受けます。

ログイン最適化を有効または無効にする

ログインの最適化はデフォルトで有効になっています。無効化または再有効化するには:

  1. ペンテスト設定で、認証認証情報 - オプションセクションに移動します。

  2. ログイン最適化の切り替えを見つけます。

  3. ログインの最適化を有効にするには、トグルをオンにします。無効にするには、無効にします。

無効にすると、エージェントは実行のたびにログインフローをゼロから再検出します。以前に学習したナビゲーションスキルは保持され、機能を再度有効にすると再び適用されます。

ヒント

アプリケーションのログインフローが大幅に変更された場合 (再設計されたログインページや新しい認証ステップなど)、エージェントは次の実行時に学習したスキルを更新することで自動的に適応します。最適化を手動でリセットする必要はありません。