Amazon Inspector による AWS Lambda 機能のスキャン - Amazon Inspector

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

Amazon Inspector による AWS Lambda 機能のスキャン

Amazon Inspector の AWS Lambda 関数サポートにより、Lambda 関数とレイヤーのセキュリティ脆弱性評価が継続的かつ自動的に行われます。Amazon Inspector では、2 種類の Lambda スキャンを提供しています。これらのスキャンタイプは、異なるタイプの脆弱性を検出します。

Amazon Inspector Lambda 標準スキャン

これはデフォルトの Lambda スキャンタイプです。Lambda 標準スキャンは、Lambda 関数とそのレイヤー内のアプリケーションの依存関係をスキャンして、パッケージの脆弱性がないか調べます。詳細については、「Lambda 標準スキャン」を参照してください。

Amazon Inspector Lambda コードスキャン

このスキャンタイプは、関数やレイヤー内のカスタムアプリケーションコードをスキャンして、コードの脆弱性がないか調べます。Lambda 標準スキャンをアクティブ化することも、Lambda コードスキャンと同時に Lambda 標準スキャンをアクティブ化することもできます。詳細については、「Amazon Inspector Lambda コードスキャン」を参照してください。

Lambda スキャンをアクティブ化すると、Amazon Inspector はアカウントに以下の AWS CloudTrail サービスにリンクされたチャネルを作成します。

  • cloudtrail:CreateServiceLinkedChannel

  • cloudtrail:DeleteServiceLinkedChannel

Amazon Inspector はこれらのチャネルを管理し、それらを使用してスキャンの CloudTrail イベントをモニタリングします。サービスにリンクされたチャネルの詳細については、「 AWSCLI CloudTrail を使用した のサービスにリンクされたチャネルの表示」を参照してください。

注記

Amazon Inspector によって作成されたサービスにリンクされたチャネルでは、証 CloudTrail 跡があるかのようにアカウントの CloudTrail イベントを確認できますが、アカウントのイベントを管理する CloudTrail ために独自のチャネルを作成することをお勧めします。

Lambda 関数スキャンのアクティブ化の手順については、「スキャンタイプをアクティブ化する」を参照してください。

Lambda 関数スキャンのスキャン動作

Amazon Inspector はアクティベーション時に、アカウント内で過去 90 日間に呼び出された、または更新されたすべての Lambda 関数をスキャンします。Amazon Inspector は、次のような状況で Lambda 関数の脆弱性スキャンを開始します。

  • Amazon Inspector が既存の Lambda 関数を検出した場合。

  • 新しい Lambda 関数が Lambda サービスにデプロイされた場合。

  • 既存の Lambda 関数またはそのレイヤーのアプリケーションコードまたは依存関係に更新がデプロイされた場合。

  • Amazon Inspector がデータベースに新しい共通脆弱性識別子 (CVE) 項目を追加し、その CVE が関数に関連している場合。

Amazon Inspector は、各 Lambda 関数が削除されるかスキャンから除外されるまで、そのライフタイム期間を通じてモニタリングします。

Lambda 関数の脆弱性の最終確認日は、[アカウント管理] ページの [Lambda 関数] タブから、または ListCoverage API を使用して確認できます。Amazon Inspector は、以下のイベントに応じて Lambda 関数の [最終スキャン日] フィールドを更新します。

  • Amazon Inspector が Lambda 関数の初回スキャンを完了した時。

  • Lambda 関数の更新時。

  • Amazon Inspector が Lambda 関数を再スキャンしたとき。これは、その関数に影響する新しい CVE 項目が Amazon Inspector データベースに追加されたためです。

サポートされているランタイムと対象となる関数

Amazon Inspector は、Lambda 標準スキャンと Lambda コードスキャンのさまざまなランタイムをサポートしています。各スキャンタイプでサポートされているランタイムのリストについては、「サポートされているランタイム: Amazon Inspector Lambda 標準スキャン」と「サポートされているランタイム: Amazon Inspector Lambda コードスキャン」を参照してください。

Lambda 関数が Amazon Inspector スキャンの対象となるには、ランタイムがサポートされていることに加えて、以下の基準を満たす必要があります。

  • この関数は過去 90 日間に呼び出されたか、または更新されています。

  • この関数は $LATEST にマークされています。

  • この関数はタグによるスキャンから除外されていません。

注記

過去 90 日間に呼び出されたり変更されたりしていない Lambda 関数は、自動的にスキャンから除外されます。Amazon Inspector は、再度呼び出されたり、Lambda 関数コードに変更が加えられたりする場合に、自動的に除外された関数のスキャンを再開します。

Amazon Inspector Lambda 標準スキャン

Amazon Inspector Lambda 標準スキャンでは、Lambda 関数のコードとレイヤーに追加したアプリケーションパッケージの依存関係内にあるソフトウェアの脆弱性を特定します。たとえば、Lambda 関数が既知の脆弱性があるバージョンの python-jwt パッケージを使用している場合、Lambda 標準スキャンはその関数の検出結果を生成します。

Amazon Inspector が Lambda 関数のアプリケーションパッケージの依存関係に脆弱性を検出すると、Amazon Inspector は詳細なパッケージ 脆弱性タイプの検出結果を生成します。

スキャンタイプをアクティブ化する手順については、「スキャンタイプをアクティブ化する」を参照してください。

注記

Lambda 標準スキャンでは、Lambda ランタイム環境にデフォルトでインストールされる AWS SDK 依存関係はスキャンされません。Amazon Inspector は、関数コードとともにアップロードされた依存関係、またはレイヤーから継承された依存関係のみをスキャンします。

注記

Amazon Inspector Lambda 標準スキャンを非アクティブ化すると、Amazon Inspector Lambda コードスキャンも非アクティブ化になります。

Lambda 標準スキャンから関数の除外

特定の関数にタグを付けて、Amazon Inspector Lambda 標準スキャンから除外することができます。スキャンから関数を除外すると、実行不可能なアラートを防ぐことができます。

Lambda 関数を Lambda 標準スキャンから除外するには、関数に次のキーと値のペアをタグ付けします。

  • キー: InspectorExclusion

  • 値: LambdaStandardScanning

Lambda 標準スキャンから関数を除外するには
  1. Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  2. [関数] を選択します。

  3. 関数テーブルから、Amazon Inspector Lambda 標準スキャンから除外する関数の名前を選択します。

  4. [設定] を選択し、メニューから [タグ] を選択します。

  5. [タグを管理][新しいタグを追加] の順に選択します。

  6. [キー] フィールドに「InspectorExclusion」と入力し、[値] フィールドに「LambdaStandardScanning」と入力します。

  7. [保存] を選択してタグを追加し、Amazon Inspector Lambda 標準スキャンから関数を除外します。

Lambda へのタグの追加について詳しくは、「Lambda 関数でのタグの使用」を参照してください。

Amazon Inspector Lambda コードスキャン

重要

コードスキャンは、Lambda 関数からコードスニペットをキャプチャして、検出された脆弱性をハイライトします。これらのスニペットには、ハードコードされた認証情報やその他の機密情報がプレーンテキストで表示される場合があります。

Amazon Inspector Lambda コードスキャンでは、AWS セキュリティのベストプラクティスに基づいて、Lambda 関数内のカスタムアプリケーションコードをスキャンしてコードの脆弱性がないか調べます。Lambda コードスキャンでは、コード内のインジェクションの欠陥、データ漏洩、脆弱な暗号化、または暗号化の欠落を検出できます。利用可能なリージョンについては、「リージョン固有機能の可用性」を参照してください。

Lambda 標準スキャンは、関数で使用されるアプリケーションパッケージの依存関係を評価して、共通脆弱性識別子 (CVE) がないかを評価する機能です。Lambda コードスキャンを Lambda 標準スキャンと同時にアクティブ化できます。

Amazon Inspector は、自動推論と機械学習を使用して Lambda 関数のアプリケーションコードを評価し、アプリケーションコードを分析して全体的なセキュリティコンプライアンスを確認します。Amazon との共同で開発された内部ディテクターに基づいて、ポリシー違反と脆弱性を特定します CodeGuru。可能な検出のリストについては、CodeGuru ディテクターライブラリ を参照してください。

Amazon Inspector が Lambda 関数のアプリケーションコードに脆弱性を検出すると、Amazon Inspector は詳細なコード脆弱性タイプの検出結果を生成します。この検出結果タイプには、コード内の問題の正確な場所、問題を示すコードスニペット、および推奨される修復方法が含まれます。推奨される修復には、脆弱な plug-and-play コード行を置き換えるために使用できるコードブロックが含まれています。これらのコード修正案は、その検出結果に対する一般的なコード修正ガイダンスに加えて提供されます。

重要

コード修正案は、自動推論と生成 AI サービスを利用しているため、意図したとおりに機能しない場合があります。採用するコード修正案に対する責任はユーザーにあります。採用する前に、必ず修正案を確認してください。コードが意図したとおりに実行されるように、コードの修正案の編集が必要となる場合があります。「責任ある AI ポリシー」を参照してください。

コードの脆弱性検出結果におけるコードの暗号化

Lambda コードスキャンを使用したコード脆弱性の検出結果に関連して検出されたコードスニペットは、 CodeGuru サービスによって保存されます。デフォルトでは、 によって管理される AWS 所有キー CodeGuru を使用してコードを暗号化しますが、Amazon Inspector API による暗号化には独自のカスタマーマネージドキーを使用できます。詳細については、「検出結果のコードの保管時の暗号化」を参照してください。

Lambda コードスキャンは、Lambda 標準スキャンと同時にアクティブ化できます。スキャンタイプをアクティブ化する手順については、「スキャンタイプをアクティブ化する」を参照してください。

Lambda コードスキャンから関数の除外

特定の関数にタグを付けて、Amazon Inspector Lambda コードスキャンから除外することができます。スキャンから関数を除外すると、実行不可能なアラートを防ぐことができます。

Amazon Inspector から Lambda 関数を除外するには、Lambda コードスキャンは関数に次のキーと値のペアをタグ付けします。

  • キー: InspectorCodeExclusion

  • 値: LambdaCodeScanning

Lambda コードスキャンから関数を除外するには
  1. Lambda コンソール (https://console.aws.amazon.com/lambda/) にサインインします。

  2. [関数] を選択します。

  3. 関数テーブルから、Amazon Inspector Lambda コードスキャンから除外する関数の名前を選択します。

  4. [設定] を選択し、メニューから [タグ] を選択します。

  5. [タグを管理][新しいタグを追加] の順に選択します。

  6. [キー] フィールドに「InspectorCodeExclusion」と入力し、[値] フィールドに「LambdaCodeScanning」と入力します。

  7. [保存] を選択してタグを追加し、Amazon Inspector Lambda コードスキャンから関数を除外します。

Lambda へのタグの追加について詳しくは、「Lambda 関数でのタグの使用」を参照してください。