AWS Security Agent 検証 — 自動コード修正(Code Remediation)の品質評価
ペンテストで検出した7件の脆弱性に対して自動コード修正を実行。全件に GitHub PR が生成され、SQL Injection のパラメータ化クエリからクレデンシャルのハッシュ化まで、そのまま適用可能な修正が得られた。
「penetration-testing」タグが付いたコンテンツ一覧
ペンテストで検出した7件の脆弱性に対して自動コード修正を実行。全件に GitHub PR が生成され、SQL Injection のパラメータ化クエリからクレデンシャルのハッシュ化まで、そのまま適用可能な修正が得られた。
認証なし・単一ロール(2FA 付き)・複数ロールの3条件でペンテストを実行。認証情報なしでも Agent が SQL Injection 経由でクレデンシャルを取得し TOTP を推測して自力ログインする挙動を確認した。
AWS Security Agent は GraphQL API をテスト可能と公式に記載しているが、実際の検出能力はどうか。4条件で検証した結果、HTML リンク構造の有無が検出の分岐点であり、条件を満たせば Introspection・ネストクエリ・Mutation 分析など GraphQL 固有のテストが実行されることを確認した。
AWS Security Agent にソースコードを提供するとペンテストの検出数が5件→13件(documents)/28件(sourceCode)に増加。documents と sourceCode で処理パイプラインが根本的に異なることも判明した。
AWS Security Agent のオンデマンド・ペネトレーションテストを東京リージョンで検証。5つの既知脆弱性のうち4つを検出(偽陽性0件)、ビジネスロジック脆弱性も HIGH confidence で検出した。コストは約$136/回。
認証情報を提供しなくても、Agent は SQL Injection でデータベースからクレデンシャルを抽出し、TOTP コードを推測して管理者としてログインした。ドキュメントの「認証情報なしでは公開ページのみテスト」は攻撃チェーンによる突破を除外していない。
Security Agent の SCANNER は JSON レスポンスからリンクを辿らない。API-only アプリをテストする場合は HTML の <a> タグやフォームを含むエントリポイントが必要。
Code Remediation を有効にしたペンテストで Unable to reach GitHub repository エラー。Agent のテスト環境は Agent Space のサブネットで起動し、GitHub にアクセスするためインターネット接続が必要。
create-pentest の vpcConfig.subnetArns は配列だが、2つ以上指定すると 'Maximum of 1 subnet id is allowed' エラーになる。EC2 と同じサブネットを1つだけ指定する。
Target Domain の HTTP Route 検証で UNREACHABLE になっても問題ない。Private VPC ドメインの場合、UNREACHABLE がペンテストに使用可能な正常状態。ドキュメントに記載あり。
AWS Security Agent は13カテゴリの攻撃を並列実行するため、Flask 開発サーバーのようなシングルスレッドサーバーは HTTP 503 でクラッシュする。gunicorn 等のマルチワーカー構成が必要。
sourceCode を使ったペンテストが東京リージョンで2回連続 INTERNAL_ERROR になったが、us-east-1 では同じ設定で正常に動作した。documents は東京でも問題なし。
create-pentest の assets.sourceCode に生ファイルを指定すると「Source code S3 URL must point to a ZIP archive」エラーになる。documents は生ファイルを直接指定可能。
sourceCode は CODE SCANNER(BUSINESS LOGIC / IMPORTANT FLOWS / FRAMEWORKS)で体系的な静的分析を実行し PENTEST 前に脆弱性を検出する。documents は DOCUMENTS タスクで文脈処理するのみ。