AWS re:Invent 2025にて発表された「AWS Security Agent」
AIがテストしてくれるらしい~とかで興味を持って動確しようとしたんですが、どうもうまくいかず、結局解決できなかったオチです。
AWS Securyty Agentって?
AWS re:Invent 2025にて発表されたAWS Security Agentは、生成AIを活用してアプリケーションのセキュリティ評価を自動化・スケールさせる新サービスです。
現在はプレビュー期間で、リージョンはus-east-1のみですが、無料で使用できます。
3つのレビュー機能があって、
-
設計レビュー
アーキテクチャ図や製品仕様書を分析し、計画段階で潜在的なセキュリティリスクを特定します。 -
コードレビュー
プルリクエストを自動分析し、組織のセキュリティ要件や一般的な脆弱性に対する修正案を提示します。 -
ペネトレーションテスト (侵入テスト)
AIが多段階の攻撃シナリオをオンデマンドで実行し、実際に悪用可能な脆弱性を検証します。
ペネトレーションテストはどうも実際にAIがどんな根拠でどんなテストをしたかがわかるらしい・・・

挙句にGithubを連携すれば修正済みのプルリクまで用意してくれるらしく、人間はPRレビューするだけで脆弱性対応ができてしまうとのこと。すごい時代になりましたね。
実際にやってみる
まずこちらの記事を参考に、テスト環境を作ってみます。
(ありがたいことにCfnテンプレートを置いてくれているので拝借)
PrivateサブネットにEC2を置いて、DockerでDVWAを動かします。
その結果、記事と同様エラーになってしまいました。
ウェブアプリの文面見る限りではsetupのどこかでこけてるっぽい・・・?
ちょっと情報が少なくて原因が絞り込めないですね。

HTTPS化
悩みながらpentestの設定項目を見ていて気が付いたのですが、

これ、URLがhttps指定じゃないといけないのかも?と思いました。
とりあえず試してみようということで、前段にALBを置き、
そいつをHTTPS化させてEC2にロードバランシングしてもらえばいいかなと考えました。
ざっくり構成としては以下のような感じ

まず宛先をEC2に設定したターゲットグループを作成します。

ヘルスチェックはとりあえずlogin.phpに投げます。

ALBも続けて作成します。ターゲットグループに先ほど作成したtest-tgを指定しておきます。

続いてこちらを参考に自己証明書(所謂オレオレ証明書)を作成し、ACMへインポートします。
CSRファイルの作成時「Common Name」にRoute53で作成したプライベートホストゾーン名を指定しました。
そして先ほど作成したALBで「リスナーの追加」を選択

プロトコルにHTTPSを指定し、デフォルト SSL/TLS サーバー証明書に作成した証明書を指定してリスナーを追加します。

次にRoute53にレコードを追加します。ルーティング先を先ほど作成したALBに設定します。
#Route53に登録したレコード名でアクセス確認
$ curl -I https://<レコード名> -k
これが通ればひとまずHTTPS化はOK
Security Agentに戻ってHTTPS化したレコードでテストを作成、実行します。

が・・・・・
駄目っ・・・・・!
ドメインのステータスが「到達不能」になっていた
ここで改めて管理コンソールを改めて見てみると、ドメインのステータスが到達不能となっています。

これがうまくいってないのが原因では?と考えたのですが、これもまた違うようです。
それを試すためにまず、到達不能となっているドメインのレコードでVPCを指定せずテスト作成して実行してみます。

また別のエラーが出てきました。
Error
Cannot start pentest execution. Domain dvwa.internal is UNREACHABLE but pentest has no VPC configuration. UNREACHABLE domains require VPC configuration for runtime verification.
到達不能になっているドメインのテストをする際はVPCを設定しろということだそうです。
つまり到達不能になっているドメインはVPC指定が必須→プライベートサブネットのアプリケーションのドメインには到達不能になるのがデフォってことなんじゃないかと・・・。
パブリックのドメインであれば到達不能にはならないんですかね?
試したいところですがドメイン代がかかるのでここまでにしておきます。
AWS側の不具合??
何か手がかりがないかとCloudtrailで気になるものがありました。
※一部抜粋、原文ママ
"eventTime": "2025-12-26T13:11:17Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "CreateNetworkInterfacePermission",
"awsRegion": "us-east-1",
"sourceIPAddress": "securityagent.amazonaws.com",
"userAgent": "securityagent.amazonaws.com",
"errorCode": "Client.InvalidNetworkInterfaceID.NotFound",
"errorMessage": "The interface ID 'eni-123' does not exist",
"requestParameters": {
"CreateNetworkInterfacePermissionRequest": {
"AwsAccountId": "123456789012",
"Permission": "INSTANCE-ATTACH",
"NetworkInterfaceId": "eni-123"
}
},
なにやら123456789012といういかにもテスト用っぽい存在しないアカウントで
eni-123というこれまたテスト用っぽいENIに権限付与しようとして失敗してます。
結果
解決できず。原因不明。
AWS側の不具合な気がしないでもないですがプレビュー版だから仕方無しですかね~~



