0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Inspector Code security と Amazon CodeGuru Security, Amazon Q Developer の使い分け

Posted at

はじめに

ここでは、Amazon Inspector に新しく追加された Amazon Inspector Code security と Amazon CodeGuru Security, Amazon Q Developer について比較していきたいと思います。

それぞれの特徴を簡単に

先にそれぞれの特徴を自分なりに簡単に纏めてみます。
ポイントはどのタイミングで実行したいのかと、どの程度の内容を検出し、簡単に対処できるかが選定のポイントかと思います。

Amazon Inspector Code security Amazon CodeGuru Security Amazon Q Developer
タイミング プッシュ、プルリクエスト、マージリクエスト時

オンデマンド

スケジュール
パイプライン統合

IDE とノートブックの統合

ローカル開発時
特徴 Amazon Inspector Code security の脆弱性データベースについての記載は見つからなかったが、従来の Amazon Inspector と同じなら Amazon Inspector 脆弱性データベースの検索

検出結果の画面は従来の Amazon Inspector と同等。

検出される項目が多いと、対応が大変。
機械学習(ML)と自動推論を組み合わせた SAST ツール。

検出される項目は多くなく限定的。
検出だけでなく AI の提案により修正まで可能。

最新の脅威情報を取得できていない。

コード品質などに関連した指摘は 6 〜 8 割程度。
料金 東京における APN1-Code-Repository-Scan-SCA のリソース評価 1 件あたり 0.18 USD パブリックプレビューで無料 Amazon Q Developer 無料利用枠

Amazon Q Developer Pro 19 USD/月(1 ユーザーあたり)

Amazon Inspector Code security とは

  • Amazon Inspector に 3 つのCode security 機能が追加
    • ソースコードの静的スキャン (SAST)
    • 依存関係・OSS 脆弱性スキャン (SCA)
    • **Infrastructure as Code スキャン (IaC) **

何が検出できるようになったかは文字通りですので、細かいことは記載しません。下記の AWS Blog を一読することをお勧めします。

サポートされている言語

サポートされている言語は更新などもあると思いますので、随時 AWS ドキュメントを確認すると良いと思います。

スキャンのタイミング

  • 変更ベース (プッシュ、プルリクエスト、マージリクエスト時)
  • オンデマンド
  • スケジュール

スキャン結果

設定は今回、

  • SAST,SCA,IaC 全てのスキャンを対象
  • プルリクエスト,マージリクエスト時にスキャン

とするようにしています。

全体のスキャン結果は以下の通りです。

スクリーンショット 2025-07-10 1.16.39.png

個別のスキャン結果は以下の通りです。

Package Vulnerablity
スクリーンショット 2025-07-10 1.17.29.png

Code Vulnerablity
スクリーンショット 2025-07-10 1.17.51.png

SAST,SCA,IaC が対象になり、Amazon Inspector のコンソール上で運用担当者全員が確認可能な点は良さそうです。
ただし、ぱっと見既存の Amazon Inspector と表示のされ方は変わらない印象です。
そのため、検出される項目が多く対応に苦慮される場合は「抑制ルールを作成」したりするなど工夫する必要がある点は既存の Amazon Inspector と変わらないようです。

Amazon CodeGuru Security によるスキャン

Amazon CodeGuru Security は機械学習(ML)と自動推論を組み合わせた SAST ツールです。

統合サービス

Amazon CodeGuru Security を次のサービスと統合して、コードの脆弱性スキャンを開始できます。

  • パイプライン統合

    • GitHub or GitHub Enterprise
    • Bitbucket パイプライン
    • GitLab
    • AWS CodePipeline
    • AWS CLI
  • IDE とノートブックの統合

    • IDE プラグイン
    • ノートブック
  • コンテナと Lambda ベースの統合

    • Amazon Inspector

設定方法

今回は AWS CodePipeline と統合しました。設定方法は Amazon CodeGuru Security の画面から以下の通り確認できますので、詳細は割愛しますが、いくつか補足します。

スクリーンショット 2025-07-10 14.16.23.png

上記の画像、ステップ 1 の CloudFormation で作成されるCodeGuruSecurityCodebuildAccessRole に CodeBuild が Artifact へアクセスするための s3:GetObject権限が必要です。

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"s3:GetObject"
			],
			"Resource": [
				"arn:aws:s3:::<S3バケット名>",
				"arn:aws:s3:::<S3バケット名>/*"
			]
		}
	]
}

CodePipeline が上記画像、ステップ 1 の CloudFormation で作成された CodeBuild プロジェクトへ アクセスするために"codebuild:StartBuild","codebuild:BatchGetBuilds"権限を CodePipeline の IAM ロールに追加する必要があります。

{
	"Version": "2012-10-17",
	"Statement": [
        {
			"Action": [
				"codebuild:StartBuild",
				"codebuild:BatchGetBuilds"
			],
			"Resource": [
				"arn:aws:codebuild:ap-northeast-1:1234567890:project/CodeGuruSecurity",
				"arn:aws:codebuild:ap-northeast-1:1234567890:project/CodeGuruSecurity/*"
			],
			"Effect": "Allow"
		}
    ]
}        

最終的に作成した Pipeline は以下の通りです。Source と Build の間に、Security というステージで作成しました。
スクリーンショット 2025-07-10 15.06.53.png

スキャン結果

メトリクス
スクリーンショット 2025-07-10 15.10.01.png

検出結果
スクリーンショット 2025-07-10 15.10.37.png

検出された結果の詳細
スクリーンショット 2025-07-10 15.10.59.png

上記の通り検出されたのは 1 件でした。
では、どのようなものが検出されるのかなど Amazon CodeGuru Security について次の項目以降で少しだけ整理しておきたいと思います。

サポートされている言語

サポートされているプログラミング言語は何ですか?

CodeGuru Security は現在、Java、Python、JavaScript、TypeScript、C#、CloudFormation、Terraform、Go、Ruby のスキャンをサポートしています。

検出される種類

CodeGuru セキュリティはどのような種類の問題を検出しますか?

CodeGuru セキュリティは、オープンワールドワイドアプリケーションセキュリティプロジ ェクト (OWASP) の上位 10 件の問題、共通弱点列挙 (CWE) の上位 25 件の問題、ログインジェクション、シークレット、AWS API と SDK の安全な使用を検出します。

Amazon Q Developer による /review

Amazon Q Developer の chat の画面で /review と打つと結果が返されます。

画面左下では重要度毎の集計結果が表示されています。

画面左上では検出結果のサマリーが表示されます。

画面左上で検出された適当な Issue をクリックすると画面右上に各検出結果の詳細が表示されます。ここでは、View Details | Explain | Ignore | Ignore All (詳細を表示 | 説明 | 無視 | すべて無視) を選択でき、単に検出だけでなくどこをどう修正したらいいかまでを AI が提案してくれる点がポイントかと思います。

スクリーンショット 2025-07-10 13.25.47.png

ただし、検出結果は Amazon Inspector Code security と異なりました。これは想定通りです。おそらく、Amazon Q Developer は最新の脅威情報を取得できないことと、他の方の記事にもよるとコード品質などに関連した指摘は 6 〜 8 割程度ということでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?