AWS Security Agentのコードセキュリティレビューを試してみた

記事タイトルとURLをコピーする

こんにちは、サーバーワークスで生成AIの活用推進を担当している針生です。

re:Invent 2025で発表されたAWS Security Agentコードセキュリティレビュー機能を試してみました。

AWS Security Agentのコードセキュリティレビュー機能は、GitHubのPull Requestに対して自動でセキュリティチェックを行い、OWASP Top 10の脆弱性や組織ポリシー違反を検出してくれる機能です。

AWS Security Agentとは

AWS Security Agentは、開発ライフサイクル全体でアプリケーションをプロアクティブにセキュアにするAI駆動のエージェントです。

re:Invent 2025で発表され、現在プレビュー版として提供されています。

3つの機能がありますが、本記事ではコードセキュリティレビューにフォーカスします。

機能 概要
デザインセキュリティレビュー 設計ドキュメントのセキュリティ分析
コードセキュリティレビュー GitHubのPRに対するセキュリティチェック
オンデマンドペネトレーションテスト AIによる自動ペネトレーションテスト

コードセキュリティレビューの特徴

従来のコードレビューツールとの違い

Checkmarxの2025年レポート*1によると、81%の組織がデリバリー期限を守るために、脆弱性があると分かっているコードをデプロイしているとのことです。セキュリティレビューが開発スピードに追いついていないことが背景にあります。

従来のSAST(静的解析)ツールは、コードを検査しますがランタイムコンテキストがありません。また、一般的な脆弱性パターンのみを検出し、組織固有のポリシー違反は検出できません。

AWS Security Agentのコードセキュリティレビューは、これらの課題を解決します。

  • OWASP Top 10の脆弱性を検出: SQLインジェクション、XSS、不十分な入力バリデーションなど
  • 組織固有のポリシー違反を検出: カスタムセキュリティ要件に基づくチェック
  • PRにコメントで指摘: 開発者が修正しやすい形でフィードバック

コードレビューの動作

PRが作成されると自動でレビューが実行され、PRにコメントとして指摘が追加されます。

開発者は通常のコードレビューと同じ流れでセキュリティ指摘を確認・修正できるため、既存の開発ワークフローを変更する必要がありません。

組織ポリシー違反の検出例

例えば、組織で「監査ログの保持期間は90日」というポリシーがある場合、コードで365日の保持期間が設定されていると、AWS Security AgentがPRにコメントで指摘します。

これは従来のセキュリティツールでは検出できない、技術的には正しいがポリシーに違反しているコードを発見できるという点で大きな価値があります。

前提条件

  • 料金: プレビュー期間中は無料
  • 利用可能リージョン: US East (N. Virginia) のみ
  • 必要なもの:
    • AWSアカウント
    • GitHubリポジトリ(GitHub.com)

セットアップ手順

Step 1: Agent Spaceの作成

  1. AWS Security Agentコンソールにアクセス
  2. 「Set up AWS Security Agent(AWS セキュリティエージェントをセットアップ)」を選択
  3. エージェントスペース名と説明を入力

エージェントスペース名: sample-webapp
説明: サンプルWebアプリケーションのセキュリティレビュー

Agent Spaceは、セキュリティ評価を行うプロジェクトを表すコンテナです。1プロジェクトにつき1つのAgent Spaceを作成することが推奨されています。

Step 2: ユーザーアクセス設定

Security Agent Web Applicationへのアクセス方法を選択します。

オプション 説明 推奨ケース
SSO with IAM Identity Center チーム全体でのSSO認証 チームでの利用
IAM users IAMユーザーで直接アクセス 個人での検証

Step 3: セキュリティ要件の設定(任意)

マネージドセキュリティ要件(AWS提供)は初期状態で有効になっており、業界標準に基づいたセキュリティチェックがすぐに利用できます。

組織固有のポリシーがある場合は、カスタムセキュリティ要件を追加で定義できます。

例えば、以下のような要件を追加します。

  • すべてのAPI呼び出しにレート制限を実装すること
  • 個人情報を含むログ出力を禁止
  • 暗号化には顧客管理のKMSキーを使用

[カスタムセキュリティ要件の設定画面]

Step 4: コードレビューの有効化

  1. Agent設定ページで「Enable code review(コードレビューを有効にする)」を選択
  2. GitHubとの連携を設定
  3. レビュー対象のリポジトリを選択

※GitHubの画面に遷移して認証を許可する

※詳細な手順は公式ドキュメントを参照

実際に使ってみる

GitHubリポジトリを接続

対象のリポジトリを選択します。

コードレビューを有効化します。

コードレビューで分析するセキュリティ問題のタイプを選択します。

設定項目 説明
Security requirement validation 有効にしたカスタムセキュリティ要件に対してコード変更が準拠しているか検証
Security vulnerability findings SQLインジェクション、XSSなどの一般的なセキュリティ脆弱性を検出
両方 カスタム要件違反と一般的な脆弱性の両方を検出

今回は Security vulnerability findings を有効にして検証しました。

PRを作成してレビューを確認

あえて脆弱性を含めたコードをPRしてみます。

検出された脆弱性の例

このプルリクエストで、aws-security-agent は以下のように、SQLインジェクションの脆弱性に対する指摘と、推奨事項をコメントしてくれました。

このコードにはSQLインジェクションの脆弱性があり、ユーザー入力が適切なサニタイズ処理なしにSQLクエリに直接連結またはフォーマットされてしまいます。これにより、攻撃者はクエリを操作してデータベースの内容を読み取り、変更、または削除できるようになります。この問題を修正するには、文字列連結を、SQLロジックとユーザーデータを分離するパラメータ化クエリに置き換えてください。これは重大なセキュリティ問題であり、マージ前に対処する必要があります。パラメータ化クエリを使用することにより、SQLロジックとデータを分離し、さまざまなデータベースシステムでクエリの安全性が向上します。


問題は何ですか?ユーザーが提供する入力は、SQLデータベースクエリを生成する前にサニタイズする必要があります。攻撃者は信頼できない入力を作成し、それを利用して、データベースのコンテンツを読み取り、変更、または削除するクエリステートメントを実行する可能性があります。

追加の発生箇所:この問題は、このファイル内の次の場所でも発生します。

135行目

推奨事項は何ですか?データベース操作で潜在的なSQLインジェクションのリスクが検出されました。クエリは文字列の連結またはフォーマットを使用して構築されており、データが適切にサニタイズされていない場合、脆弱になる可能性があります。このリスクを軽減するには、データベースシステムに適したパラメータ化されたクエリを使用してください。このアプローチはSQLロジックとデータを分離し、異なるデータベースシステム間でクエリの安全性を高めます。すべての入力が適切にサニタイズされ、信頼できると確信できる場合は、この警告を無視できます。

検出できる脆弱性

コードセキュリティレビューで検出できる主な脆弱性

OWASP Top 10関連

脆弱性 説明
SQLインジェクション ユーザー入力がSQLクエリに直接挿入される
クロスサイトスクリプティング(XSS) ユーザー入力がHTMLに直接出力される
不十分な入力バリデーション 入力値の検証が不足している
安全でないデシリアライゼーション 信頼できないデータのデシリアライズ
セキュリティ設定ミス 不適切なセキュリティ設定

組織ポリシー違反

カスタムセキュリティ要件で定義したポリシーへの違反も検出できます。

  • ログ保持期間の規定違反
  • 暗号化方式の規定違反
  • 認証・認可の実装不備
  • その他、組織固有のセキュリティポリシー

まとめ

AWS Security Agentのコードセキュリティレビューを試してみました。

良かった点

  • PRに対して自動でセキュリティチェックが実行される
  • OWASP Top 10の脆弱性だけでなく、組織固有のポリシー違反も検出できる
  • 開発フローに組み込みやすい(PRベースのレビュー)

注意点

  • 現在はプレビュー板として提供しているため、正式リリース時には仕様変更が入る可能性あり
  • 現在US East (N. Virginia)リージョンのみで利用可能
  • プレビュー期間終了後の料金は未定

今後に期待

  • 東京リージョンでの利用
  • 応答コメントの日本語対応
  • GitHub以外のサービスへの対応

セキュリティレビューを開発プロセスに組み込む「シフトレフト」の実現に、AWS Security Agentは有効なツールになりそうです。プレビュー期間中は無料なので、ぜひ試してみてください。

この記事の内容をまとめたイラスト

参考リンク

注釈

針生 泰有(執筆記事の一覧)

サーバーワークスで生成AIの活用推進を担当