View a markdown version of this page

コードレビューを作成する - AWS セキュリティエージェント

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

コードレビューを作成する

AWS Security Agent ウェブアプリケーションでコードレビューを作成して、ソースコードリポジトリと S3 ソースでセキュリティの脆弱性をスキャンします。コードレビューは、コードベース全体で包括的な静的分析を実行し、セキュリティの問題を特定し、修復ガイダンスを提供します。

個々のコード変更を分析するプルリクエストベースのコードレビュー (「」を参照プルリクエストでコードセキュリティの検出結果を確認する) とは異なり、オンデマンドコードレビューは完全なソースコードをスキャンしてセキュリティの脆弱性を特定し、組織のセキュリティ要件への準拠を検証します。

この手順では、ソースコード入力の選択、アクセス許可の設定、レビューの実行により、コードレビューを作成します。

前提条件

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

  • AWS Security Agent ウェブアプリケーションへのアクセス

  • エージェントスペース内の少なくとも 1 つの接続された GitHub リポジトリまたは S3 バケット

ヒント

すでに GitHub リポジトリがエージェントスペースに接続されている場合、コードレビューはすぐに使用できます。追加のセットアップは必要ありません。エージェントスペースページのコードレビューカードからウェブアプリで開始を選択するか、ウェブアプリケーションを直接起動します。

追加のソースを接続したり、S3 バケットを設定したりする必要がある場合は、「」を参照してくださいコードレビューを有効にする

コードレビューページにアクセスする

ウェブアプリケーションのコードレビューセクションに移動します。

  1. AWS セキュリティエージェントのウェブアプリケーションにログインします。

  2. 左側のサイドバーで、コードレビューを選択します。

  3. ソース情報、最終実行ステータス、結果の概要を含む既存のコードレビューのリストが表示されます。

コードレビューを作成する

ソースコードの入力とアクセス許可を設定して、新しいコードレビューを設定します。

  1. コードレビューページで、コードレビューの作成を選択します。

コードレビューの詳細を設定する

タイトルを指定し、確認するソースコードを選択します。

  1. タイトルフィールドに、コードレビューのわかりやすい名前を入力します。

    ヒント

    レビューのアプリケーション、リポジトリ、または範囲を識別する名前を使用します。たとえば、「billing-service-security-review」または「infrastructure-code-audit」です。

  2. Sources セクションで、このレビューのソースコード入力を選択します。2 つのタブから選択します。

GitHub リポジトリ

エージェントスペースに接続されているリポジトリから選択します。

  1. GitHub リポジトリタブを選択します。

  2. 統合リポジトリテーブルで、レビューに含める各リポジトリの横にあるチェックボックスをオンにします。

  3. 検索フィールドを使用して、特定のリポジトリを名前で検索します。

注記

コードレビュー設定を介してエージェントスペースに接続されたリポジトリのみがここに表示されます。リポジトリを追加するには、管理者コンソールで管理を選択するか、管理者にエージェントスペース設定の更新を依頼します。

S3 ソース

エージェントスペースに接続されている S3 バケットから ZIP ファイルを選択します。エージェントスペース管理者は、使用可能な S3 バケットを設定します。これらのバケットのいずれかに保存されている ZIP ファイルは、コードレビューのソースとして使用できます。

  1. S3 ソースタブを選択します。

  2. レビューに含める各 ZIP ファイルの S3 URI を入力します。最大 30 個の S3 ソースを追加できます。

注記

S3 ソースは、エージェントスペースに接続されている S3 バケットに保存されている ZIP ファイルである必要があります。追加のバケットを使用可能にするには、「」を参照してくださいコードレビューを有効にする

アクセス許可の設定

このコードレビュー用に IAM サービスロールとオプションの CloudWatch ロググループを選択します。

  1. アクセス許可セクションで、サービスロールドロップダウンを見つけます。

  2. 設定したサービスロールから IAM ロールを選択します。

    注記

    サービスロールには、S3 でソースコードにアクセスし、CloudWatch ログ、およびコードレビューに必要なその他の AWS リソースに書き込むためのアクセス許可が必要です。サービスロールは、AWS マネジメントコンソールでのコードレビューのセットアップ中に設定されます。

  3. (オプション) CloudWatch ロググループドロップダウンで、コードレビュー実行ログを保存するロググループを選択します。

    注記

    ロググループを選択しない場合、AWS セキュリティエージェントはコードレビューログを保存するためのデフォルトのロググループを作成します。

自動コード修復を設定する

自動修復を有効にして、レビューが完了するとすぐに AWS セキュリティエージェントがすべての検出結果のコード修正を生成できるようにします。

  1. 自動コード修復セクションで、自動コード修復を有効にするチェックボックスをオンにします。

AWS セキュリティエージェントが修正を配信する方法は、ソースによって異なります。

  • プライベート GitHub リポジトリ – AWS セキュリティエージェントは、修正を含むプルリクエストをリポジトリに送信します。

  • パブリック GitHub リポジトリ – 修正前に脆弱性が開示されないようにするため、AWS セキュリティエージェントはプルリクエストを開きません。代わりに、ウェブアプリケーションからダウンロードしてプライベートに適用できる検出結果に、提案された差分をアタッチします。

  • S3 ソース – コード修復は使用できません。検出結果の詳細を確認し、手動で修正を適用します。

重要

プライベートリポジトリに送信された修復プルリクエストは、読み取りアクセス権を持つすべてのユーザーに表示されます。マージする前に変更を確認します。自動コード修復は、GitHub リポジトリがソースとして選択されている場合にのみ使用できます。

注記

無効にしても、レビューの完了後に GitHub がソースとする個々の検出結果のコード修復を手動でトリガーできます。

シミュレートされた検証を設定する

シミュレートされた検証を有効にして、検出された脆弱性が実行中のアプリケーションで悪用可能かどうかを動的に確認します。

  1. シミュレートされた検証セクションで、シミュレートされた検証を有効にするチェックボックスをオンにします。

有効にすると、AWS セキュリティエージェントは静的分析が完了した後にシミュレートされた環境をプロビジョニングします。ソースコードをオンボードし、環境内でサービスを開始し、スキャン中に見つかった脆弱性を悪用しようとします。その後、検出結果は、脆弱性が正常に悪用されたかどうかを示す検証ステータスで更新されます。

注記

シミュレートされた検証は現在、自己完結型のドッカー化可能なアプリケーションでのみ使用できます。ソースとして複数のリポジトリが選択されている場合、シミュレートされた検証は使用できません。

重要

シミュレートされた検証により、コードレビューの実行に処理時間が追加されます。検証ステップは環境をプロビジョニングし、悪用の試みを実行します。これには、検出結果の数とアプリケーションの複雑さに応じて、通常 1~3 時間かかります。

許可されたネットワーク送信先

シミュレートされた環境には、事前定義された許可リストに制限されたアウトバウンドネットワークアクセスがあります。アプリケーションは、検証中に次のドメインに到達できます。

次の表に、許可されたドメインとその目的を示します。

ドメイン 目的

.amazonaws.com, .aws.amazon.com

AWS サービス

.public.ecr.aws

Amazon ECR Public

.docker.com, .docker.io

Docker Hub

.github.com, .githubusercontent.com

GitHub

.gitlab.com

GitLab

.npmjs.com, .npmjs.org

npm レジストリ

.pypi.org, .pypi.python.org, .pythonhosted.org

Python パッケージインデックス

.crates.io, .rustup.rs

Rust パッケージ

.maven.org, .gradle.org

Java/Gradle パッケージ

.nuget.org

.NET パッケージ

.rubygems.org, .ruby-lang.org

Ruby パッケージ

.golang.org, .pkg.go.dev, .goproxy.io

Go パッケージ

.nodejs.org, .yarnpkg.com

Node.js

.alpinelinux.org, .debian.org, .ubuntu.com, .centos.org, .fedoraproject.org

Linux ディストリビューションリポジトリ

.cloudfront.net

CloudFront ディストリビューション

.google.com, .googleapis.com

Google APIs

.microsoft.com, .visualstudio.com

Microsoft のサービス

.sourceforge.net, .bitbucket.org

ソースホスティング

注記

アプリケーションがこのリストにないドメインへのネットワークアクセスを必要とする場合、接続はネットワークファイアウォールによってブロックされます。外部 APIsまたは上記に記載されていないサービスに依存するアプリケーションは、シミュレートされた環境で正しく起動しない場合があります。

コードレビューを作成する

  1. 設定を確認して、精度を確認します。

  2. コードレビューの作成 を選択します。

コードレビューの詳細ページにリダイレクトされ、レビュー実行を開始できます。

コードレビューを実行する

コードレビューを作成したら、実行を開始して分析を開始します。

  1. コードレビューの詳細ページで、レビューの開始を選択します。

  2. AWS セキュリティエージェントがソースコードの分析を開始します。

実行するコードレビューの横にあるレビューの開始を選択して、コードレビューリストページからレビューを開始することもできます。

コードレビューの実行をモニタリングする

コードレビューの実行の進行状況を追跡します。

実行フェーズを確認する

コードレビューの実行は、次のフェーズを通じて進行し、進行状況インジケータとして表示されます。

  1. プリフライト – AWS セキュリティエージェントはソースコードへのアクセスを検証し、テスト環境を設定します。プリフライトチェックには以下が含まれます。

    • サービスインフラストラクチャのセットアップ

    • S3 ソースアクセスの検証

    • テスト環境のセットアップ

  2. 静的分析 – AWS セキュリティエージェントは、ソースコードをスキャンして、セキュリティの脆弱性と要件違反がないか確認します。

  3. シミュレートされた検証 (オプション) – シミュレートされた検証が有効になっている場合、AWS セキュリティエージェントはシミュレートされた環境をプロビジョニングし、アプリケーションをデプロイします。次に、静的分析中に検出された脆弱性を悪用しようとします。このステップでは、結果がターゲットランタイムで悪用可能かどうかを確認します。このフェーズは、コードレビューの作成中にシミュレートされた検証を有効にした場合にのみ表示されます。

  4. 確定中 – AWS セキュリティエージェントは検出結果をコンパイルし、結果の概要を生成します。

実行の詳細を表示する

実行の詳細ページで、タブ間を移動して進行状況をモニタリングします。

  • コードレビューの実行 – 実行 ID、作成時刻、ステータス、期間、タスク時間、重要度レベルの内訳、リスクタイプのグラフを含む実行の概要を表示します。

  • プリフライト – 各検証ステップのプリフライトチェックの進行状況とステータスを表示します。

  • コードレビューログ – レビュー中に AWS セキュリティエージェントが特定および実行したタスクと、各ステップの詳細なタスクログを表示します。

  • シミュレートされた検証 – シミュレートされた検証が有効になっている場合は、プロビジョニングステータス、個々の検出結果の検証タスク、およびその結果を表示します。

  • 結果 – レビューの完了後にセキュリティ結果を表示します (「」を参照コードレビューの結果を確認する)。

実行履歴

各コードレビューでは、すべての実行の履歴が保持されます。コードレビューの詳細ページで、次の操作を行います。

  • 最新の実行セクションには、最新の実行とその開始時刻、ステータス、期間、ID が表示されます。

  • すべての実行テーブルには、開始時刻、ステータス、期間、結果の概要、ID を含む以前の実行がすべて一覧表示されます。

  • Monitor run を選択して、最新のアクティブな実行の詳細を表示します。

  • 実行の開始時刻リンクを選択すると、詳細が表示されます。

次の手順

コードレビューを実行した後:

  • セキュリティ検出結果とその修復ガイダンスを確認する (「」を参照コードレビューの結果を確認する)

  • 自動プルリクエストまたは手動修正による検出結果の修正 (「」を参照コードレビューの検出結果の修正)

  • 修正を実装した後に追加のレビューを実行して修正を検証する

  • コードベースの進化に合わせてコードレビュー設定またはソースを調整する