View a markdown version of this page

ペネトレーションテストを有効にする - AWS セキュリティエージェント

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

ペネトレーションテストを有効にする

アプリケーションで自律的なペネトレーションテストを実行するように AWS セキュリティエージェントを設定します。この設定により、AWS セキュリティエージェントは AWS リソースにアクセスし、ドメインの所有権を検証し、ウェブアプリケーションと APIs の悪用可能な脆弱性を特定する包括的なセキュリティテストを実行できます。

ペネトレーションテストを有効にすると、AWS セキュリティエージェントは手動テストの遅延なしにアプリケーションセキュリティを継続的に検証できます。必要な AWS 統合を設定することで、AWS セキュリティエージェントがパブリックアプリケーションとプライベートアプリケーションの両方をテストし、検出結果を CloudWatch に記録し、認証されたテスト用の認証情報にアクセスできることを確認します。

この手順では、ターゲットドメインを設定し、オプションでテスト用の VPC、CloudWatch ログ記録、認証情報ストレージ、Lambda 関数を設定し、追加のコンテキストを提供するために S3 統合を設定し、IAM ロールを介してサービスアクセスを設定します。

前提条件

開始する前に、以下があることを確認してください。

  • IAM ロールを作成するための管理権限を持つ AWS アカウント

  • ドメイン所有権の検証機能 (DNS または HTTP レコードの変更)

  • テストするターゲットドメインまたはアプリケーション

  • (オプション) プライベートアプリケーションをテストする場合の VPC 設定の詳細

  • (オプション) AWS セキュリティエージェントに追加アーティファクトを提供する場合の S3 バケット

ステップ 1: ドメインを設定する

ウィザードの最初のステップで、テストするターゲットドメインと、AWS セキュリティエージェントが所有権を検証する方法を指定します。

  1. 「ターゲットドメイン」セクションの「ドメイン」フィールドにドメインを入力します。

  2. 検証方法を選択します。

    • DNS_TXT – ドメインの DNS 設定に TXT レコードを追加して、ドメインの所有権を検証します。

    • HTTP_ROUTE – ドメイン上の特定の URL で検証ファイルをホストすることで、ドメインの所有権を検証します。

    • PRIVATE_VPC - プライベート VPC 侵入テストにのみ使用できます。ドメインがプライベート CIDR 範囲内の IP に解決されることを確認します

    • 詳細については、「ペネトレーションテスト用のアプリケーションドメインを有効にする」を参照してください。

  3. 別のドメインを追加を選択し、ドメインを追加します (合計 5 つまで)。

  4. 次へ を選択して、ドメインの検証に進みます。

ステップ 2: ドメインを検証する

ウィザードの 2 番目のステップで、設定した各ドメインの所有権を確認します。AWS セキュリティエージェントは、侵入テストを実行する前に、検証済みの所有権を必要とします。

  1. ターゲットドメインテーブルにリストされているドメインを確認します。

  2. ドメインごとにそれを選択し、選択した方法に基づいて検証をトリガーします。

    • Route 53 ドメイン (同じ AWS アカウント): ワンクリック検証を選択します。AWS セキュリティエージェントは DNS レコードを自動的に作成し、検証を完了します。

    • DNS TXT (他の DNS プロバイダー): 検証トークンをコピーし、DNS レジストラに TXT レコードを追加し、ドメインを選択して検証を選択します。

    • HTTP ルート: 検証トークンをウェブサーバーの必要なルートパスに配置し、ドメインを選択して検証を選択します。詳細については、「ペネトレーションテスト用のアプリケーションドメインを有効にする」を参照してください。

  3. 次へ を選択して、オプションの設定に進みます。

注記

検証済みドメインのサブドメインは、DNS TXT または HTTP ルート検証を使用する場合、個別の検証を必要としません。プライベート VPC 検証の場合、ターゲットエンドポイントドメイン名は検証用に設定された完全なドメイン名と一致する必要があります。

注記

VPC 内のプライベートドメインの場合、ドメインの検証ステータスが UNREACHABLE であっても続行できます。AWS セキュリティエージェントは、各ペンテスト実行の開始時にプライベートエンドポイントのドメイン検証を試みます。

ステップ 3: (オプション) 追加機能を設定する

ウィザードの 3 番目のステップでは、オプションの AWS リソースを設定して、ペネトレーションテストの範囲を拡張できます。このステップのすべてのセクションはオプションであり、デフォルトで折りたたまれています。

(オプション) VPC 設定を構成する

VPC 内でホストされているプライベートターゲットドメインをテストする場合は、AWS セキュリティエージェントの VPC 設定を構成します。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. VPCsセクションを展開します。

  2. VPC ドロップダウンで、プライベートターゲットドメインをホストする VPC を選択します。

  3. サブネットドロップダウンで、AWS セキュリティエージェントが使用する VPC サブネットを選択します。

    ヒント

    高可用性を実現するには、複数のアベイラビリティーゾーンから複数のサブネットを選択します。サブネットにアウトバウンド接続用の NAT ゲートウェイが含まれていることを確認します。

  4. セキュリティグループドロップダウンで、AWS セキュリティエージェントが使用する VPC セキュリティグループを選択します。

    重要

    セキュリティグループが AWS セキュリティエージェントがペネトレーションテストを実行できるようにアウトバウンド接続を許可していることを確認します。

(オプション) CloudWatch ログ記録を設定する

ペネトレーションテスト実行のログを保存するように CloudWatch を設定します。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. CloudWatch Logs セクションを展開します。

  2. Log Groups ドロップダウンで、既存の CloudWatch ロググループを選択します。

  3. ロググループを選択しない場合、AWS セキュリティエージェントは適切なアクセス許可/aws/securityagent/<agent name>/<pentest id>を持つ という名前のロググループを作成します。

注記

IAM ロールに、選択した CloudWatch ロググループに書き込むアクセス許可があることを確認します。

(オプション) テスト認証情報のシークレットを設定する

アプリケーションがテストに認証情報を必要とする場合、AWS セキュリティエージェントは AWS Secrets Manager からそれらを安全に取得できます。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. シークレットセクションを展開します。

  2. アプリケーションの認証情報を含む AWS Secrets Manager シークレットを選択します。

  3. ウェブアプリケーションで侵入テストを設定するときは、認証されたテストのためにこれらのシークレットを参照できます。

重要

認証情報は暗号化され、AWS Secrets Manager に保存されます。IAM ロールに、テスト中にこれらの認証情報を使用するための Secrets Manager for AWS Security Agent へのアクセス許可があることを確認します。

(オプション) テスト認証情報用に Lambda 関数を設定する

テスト中にアプリケーションの認証情報を提供できる Lambda 関数を設定します。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. Lambda 関数セクションを展開します。

  2. アプリケーションの認証情報を提供できる Lambda 関数を選択します。

  3. AWS セキュリティエージェントは、ペネトレーションテスト中にこれらの関数を呼び出して、認証情報を動的に取得します。

注記

IAM ロールに、指定された Lambda 関数を呼び出すアクセス許可があることを確認します。Lambda 関数は、テスト中に AWS セキュリティエージェントが使用するのに必要な形式で認証情報を返す必要があります。

(オプション) S3 バケットを設定する

AWS セキュリティエージェントへの入力として提供するドキュメントまたはアーティファクトをアップロードする場合は、S3 バケットの詳細を指定します。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. S3 バケットセクションを展開します。

  2. Bucket フィールドに、S3 バケット名を入力または検索します。

注記

GitHub リポジトリを後で接続したり、ウェブアプリケーションに直接ファイルをアップロードしたりすることもできます。提供される情報は、徹底的なカバレッジを確保し、誤検出を減らし、実用的な結果をもたらすことができます。

(オプション) サービスアクセスを設定する

AWS セキュリティエージェントでは、侵入テストのために AWS リソース (VPC、CloudWatch ロググループ、Secrets Manager、Lambda 関数など) にアクセスするための IAM ロールが必要です。このセクションはオプションであり、デフォルトで折りたたまれています。

  1. サービスアクセスセクションを展開します。

  2. デフォルトでは、AWS セキュリティエージェントは、ペネトレーションテストに必要なアクセス許可を持つデフォルトの IAM ロールを使用します。

  3. IAM ロールをカスタマイズするには、次のいずれかのオプションを選択します。

    1. デフォルトロールの作成 – AWS セキュリティエージェントは、必要なアクセス許可を持つ新しい IAM ロールを自動的に作成します。

    2. 既存のサービスロールを使用する – ドロップダウンメニューから既存の IAM ロールを選択します。

  4. 既存のロールを使用する場合:

    1. 既存のロールを選択するの下にあるドロップダウンメニューを選択します。

    2. リストから IAM ロールを選択する

    3. 更新アイコンを選択して、必要に応じてリストを更新します。

注記

デフォルトの IAM ロールには、VPC リソース、CloudWatch ロググループ、Secrets Manager、Lambda 関数、および侵入テストに必要なその他のサービスにアクセスするためのアクセス許可が含まれています。特定のセキュリティ要件がない限り、デフォルトの IAM ロールを使用することをお勧めします。

ステップ 4: ペネトレーションテストを保存して有効にする

必要な設定をすべて設定したら、AWS セキュリティエージェントエージェントのペネトレーションテストを有効にします。

  1. すべての設定セクションを確認して、正確性を確認します。

  2. [保存] を選択します。

  3. AWS セキュリティエージェントは設定を検証し、必要な AWS リソースを作成します。

次の手順

ペネトレーションテストを有効にした後:

  • AWS セキュリティエージェントのウェブアプリケーションで侵入テストスコープを設定する

  • テスト結果の通知設定をセットアップする

  • 発見されたペネトレーションテストの結果を確認して対応します。

  • (オプション) 検出結果修復用の追加のリポジトリを設定する

ペネトレーションテストの実行と管理の詳細については、AWS Security Agent ウェブアプリケーションのドキュメントを参照してください。