コンテンツにスキップ

Inspector連携#

Amazon Inspector」を連携してスキャン結果を取り込み、FutureVuls 上で管理できます。 EC2 インスタンスおよび AWS Lambda の脆弱性情報は、AWS API の inspector2:ListFindings を使用して取得します。

予め AWS 認証情報の設定が必要のため、「外部連携 > AWS連携」で AWS の認証情報を登録してください。

以下が Inspector 連携のスキャン対象です。

また、Amazon Inspector SBOM Export 機能と連携し、脆弱性の有無にかかわらずソフトウェアを網羅的に把握できるようになります。

Amazon EC2のスキャン#

EC2インスタンスのスキャン結果を FutureVuls 上で管理する手順は以下の通りです。

  1. Amazon Inspectorの有効化
  2. SSMエージェントの設定
  3. Amazon Inspectorのスキャン結果確認
  4. Futurevuls上でインスタンスを登録
  5. スキャン実行

2023-3-29リリース」より以前に AWS 認証設定を行った場合は、更新が必要です。

FutureVulsで利用するポリシー」を参照し、 FutureVulsAssumeRole のIAM Policyに Action として inspector2:ListCoverageinspector2:ListFindings を追加してください。

権限が不足している場合、スキャン結果が取得できない、または空になる可能性があります。

Amazon Inspectorの有効化#

  1. Amazon Inspector コンソール」を開き、使用を開始する をクリックします。
  2. Inspectorをアクティブ化 をクリックします。
  3. Inspector > 設定 > アカウント管理 から、Amazon EC2スキャン をアクティブ化します。

AmazonEC2スキャンアクティブ化

SSMエージェントの設定#

インスタンスに SSM エージェントのインストール、アクセス許可をし、Inspector によるスキャンができるように設定します。 設定方法の詳細は「Amazon EC2インスタンスのスキャン」を参照してください。

エージェントレススキャンを利用する場合

エージェントレススキャンを利用する場合、本セクションはスキップが可能です。 詳細な手順やエージェントレススキャンを利用する際の注意点については以下のブログ記事をご参照ください。

Amazon Inspector と FutureVuls で実現する EC2 のエージェントレス脆弱性スキャン:ハンズオンガイド

SSMエージェントをインストールと起動#

インスタンスに SSM エージェントをインストールします。インストール方法は AMI により SSM エージェントがプリインストールされてるか、OS により異なりますので、「SSM Agentの使用」を参照してください。

Systems Managerにインスタンスのアクセス許可を設定#

Fleet Manager コンソールからデフォルトのホスト管理設定を有効にするか、もしくは AmazonSSMManagedInstanceCore ポリシーの IAM ロールを連携したいインスタンスにアタッチします。 詳細は「Systems Managerにインスタンスのアクセス許可を設定する」を参照してください。

Amazon Inspectorのスキャン結果確認#

Inspector > 検出結果 > インスタンス別 から、連携したいインスタンスのスキャン結果を確認できたら AWS 上の設定は完了です。

検出結果

FutureVuls上でインスタンスを登録#

Inspector 上で脆弱性が検出されたら、FutureVuls 上でインスタンスを登録します。 サーバ > サーバ追加 > EC2インスタンス追加 から、連携したいインスタンスを選択します。

インスタンス追加

スキャン実行#

サーバ詳細タブに 手動スキャン ボタンが表示されます。 スキャンが実行されると、通常のサーバと同じように脆弱性やタスクが作成されます。

手動スキャン

AWS Lambdaのスキャン#

AWS Lambda 関数のスキャン結果を FutureVuls 上で管理する手順は以下の通りです。

  1. Amazon Inspectorの有効化
  2. AWS Lambdaのスキャン結果確認
  3. FutureVuls上でAWS Lambda関数を登録
  4. スキャン実行

ランタイムのサポートについては、「サポートされているLambda関数のランタイム」を参照してください。

コンテナイメージタイプの Lambda 関数は AWS Inspector によるスキャンがサポートされていないため、FutureVuls で登録できません。

AWS Lambda のスキャン機能を利用するにあたり、「2024-4-1リリース」より以前に AWS 認証設定を行った場合は、更新が必要です。

Lambda関数をFutureVulsへ登録する場合は、「FutureVulsで利用するポリシー」を参照し、 FutureVulsAssumeRole のIAM Policyに Action として lambda:GetFunctionlambda:ListFunctionsを追加してください。

Amazon Inspectorの有効化#

  1. Amazon Inspector コンソール」を開き、使用を開始する をクリックします。
  2. Inspectorをアクティブ化 をクリックします。
  3. Inspector > 設定 > アカウント管理 から、AWS Lambdaスキャン をアクティブ化します。

AWS Lambda 標準スキャンアクティブ化

AWS Lambdaのスキャン結果確認#

Inspector > 検出結果 > Lambda関数別 から、連携したい Lambda 関数のスキャン結果を確認できたら AWS 上の設定は完了です。

検出結果

FutureVuls上でAWS Lambda関数を登録#

FutureVuls 上で AWS Lambda 関数を登録する方法は2種類あります。

AWS Lambda 関数を登録できる対象

AWS Lambda 関数は、サーバ種別が 疑似サーバ のサーバに登録できます。

また、1つのサーバ上に複数の Lambda 関数を登録できます。

登録方法1: FutureVuls上でLambda関数を一括登録#

  1. サーバ > サーバ追加 > 擬似サーバ追加 から、AWS Lambda 関数登録に使う擬似サーバを登録します。
  2. サーバ詳細 > AWS Lambda 関数 > 一括追加 に、グループの AWS 認証情報に紐付く Lambda 関数の一覧が表示されます。
  3. 一覧の中から、登録したい関数名を選択します。(複数選択可能)

関数追加

登録方法2: Lambda関数のARNを指定して登録#

  1. AWS コンソールの関数の詳細ページにて、関数の ARN をコピーします。 関数ARN
  2. サーバ詳細 > AWS Lambda関数 > 追加 から、先程コピーした Lambda 関数の ARN を Lambda 関数の ARN を入力します。

関数追加

スキャン実行#

サーバ詳細タブに 手動スキャン ボタンが表示されます。 スキャンが実行されると、通常のサーバと同じように脆弱性やタスクが作成されます。

手動スキャン

Amazon Inspector SBOMのインポート#

AWS Inspector v2の SBOM Export 機能と連携し、脆弱性の有無にかかわらずソフトウェアを網羅的に把握できるようになります。これにより、より包括的なソフトウェアサプライチェーンリスク管理(EOL 管理、ライセンス管理など)が可能になります。

本設定は任意です

SBOM Export を設定しない場合でも、Amazon Inspector を利用した脆弱性検知(EC2/Lambda/ECR)はご利用いただけます。

ただし、「脆弱性が検知されていないソフトウェア」も含めた全ソフトウェアの可視化や、EOL管理・ライセンス管理機能を利用したい場合は、本設定が必要です。

対象リソースと取得できる情報#

リソース 取得できる情報
EC2 インスタンス OS パッケージ、アプリケーションライブラリ
Lambda 関数 ランタイムとアプリケーションライブラリ
ECR イメージ コンテナ内の OS パッケージ、アプリケーションライブラリ

設定方法#

事前に「AWS認証設定」を完了させてください。

また、Amazon Inspector を有効化してください。

1. FutureVuls 画面で SBOM Export を有効化#

FutureVuls コンソールで グループ設定画面 > 外部連携 > AWS に移動し、Inspector SBOM エクスポートの「設定」ボタンをクリックします。

image

2. CloudFormation でIAM権限を追加#

FutureVuls から提供される CloudFormation テンプレートを使用して、既存の IAM ユーザ/ロールに SBOM Export 用の権限を追加します。

CloudFormation テンプレートには以下のパラメータを入力します:

パラメータ名 説明
S3BucketName FutureVuls コンソールに表示された S3 バケット名 futurevuls-inspector-sbom-123456789012-42-ap-northeast-1
KmsKeyArn FutureVuls コンソールに表示された KMS キー ARN arn:aws:kms:ap-northeast-1:...
IAMUserName IAM ユーザ認証を使用している場合、既存の IAM ユーザ名 FutureVulsIAMUser
IAMRoleName IAM ロール認証を使用している場合、既存の IAM ロール名(ユーザ認証の場合は空) FutureVulsAssumeRole

IAM ユーザ/ロールの選択

AWS認証設定」で選択した認証方法に応じて、IAMUserName または IAMRoleName を入力してください。両方を入力する必要はありません。

以下の権限が追加されます:

対象サービス 権限
Inspector2 CreateSbomExport, GetSbomExport, CancelSbomExport, BatchGetAccountStatus, ListFindings
S3 PutObject, PutObjectAcl, GetBucketLocation(指定バケットのみ)
KMS Decrypt, Encrypt, GenerateDataKey(指定キーのみ)

スコープ制限

S3 および KMS の権限は、FutureVuls が管理する特定のバケットとキーのみに制限されています。ユーザの AWS 環境内の他のリソースへのアクセスは許可されません。

3. 自動連携の開始#

一度設定すると、FutureVuls の定期スキャン時に SBOM Export が自動実行され、エクスポートされた SBOM が FutureVuls に取り込まれます。

スキャン方式の切り替えについて

Inspector 連携を設定すると、グループ内のすべての Lambda、ECR、EC2 は Inspector SBOM スキャンに切り替わり、通常スキャンの対象外となります。

SBOM スキャンが実行されると、通常スキャンで検知されていたソフトウェアや脆弱性は SBOM 管理下に移行され、それ以降は Inspector SBOM 経由での管理となります。

この移行の際、タスクには「旧ソフトウェアの管理から外れ、新しい SBOM 管理下に置かれた」旨のコメントが自動的に記載されます。

SBOM Export の実行タイミング

  • SBOM Export は通常のサーバスキャン(脆弱性スキャン)とは別のタイミングで実行されます
  • サーバ詳細画面からの手動スキャンでは SBOM Export は実行されません
  • 手動で SBOM Export を実行したい場合は、グループ設定画面 > グループ から「INSPECTOR SBOM 一括スキャン」を利用してください

手動での一括スキャンは1時間に1回のみ実行可能です。

image

スキャン結果の反映について

Inspector SBOM Export には時間がかかるため、手動で一括スキャンを実行した後、スキャン結果がスキャン履歴に反映されるまで数分〜数十分程度かかる場合があります。しばらく待ってからスキャン履歴を確認してください。

実行結果は グループ設定画面 > スキャン履歴 のスキャン種別 SBOMスキャン にてご確認いただけます。

image

取り込み後にできること#

  • ソフトウェア一覧の確認: 脆弱性の有無に関わらず、全てのソフトウェアを一覧で確認
  • EOL 管理: サポート終了が近いソフトウェアの把握と対応計画
  • ライセンス管理: 使用しているソフトウェアのライセンス情報の確認
  • サプライチェーンリスク管理: ソフトウェア構成の可視化によるリスク評価

注意事項

  • Lambda 関数: SBOM Export の対象は最新バージョンのみです。過去のバージョンは対象外となります。
  • ECR イメージ: FutureVuls に登録されているイメージタグのみが SBOM Export の対象となります。登録されていないイメージタグは対象外です。
  • Inspector2 の有効化: 事前に AWS アカウントで Inspector2 を有効化しておく必要があります。

AWS 側のコストについて#

SBOM Export 機能自体には追加料金は発生しませんが、Amazon Inspector、S3、KMS の利用料金が発生する場合があります。詳細は Amazon Inspector の料金ページをご確認ください。

既存タスクへの影響#

SBOM スキャンへの移行時、既存のタスクはそのまま残ります。移行によってタスクが自動的にクローズされることはありません。

Vuls スキャナとの併用について#

同じグループ内で、Vuls スキャナを使用するサーバと Inspector 連携のサーバ(EC2、Lambda、ECR)を併用できます。

  • Vuls スキャナ: ローカルスキャンやリモートスキャンで登録したサーバは、引き続き Vuls スキャナでスキャンされます
  • Inspector 連携: EC2 インスタンス追加、Lambda 関数追加、ECR イメージ追加で登録したサーバは、Inspector 経由でスキャンされます

Inspector SBOM Export を設定しても、Vuls スキャナで登録したサーバには影響しません。

ソフトウェアの登録について#

SBOM Export で取得したソフトウェアは、以下の処理を経て FutureVuls に登録されます。

リソースとサーバのマッチング#

SBOM に含まれるリソース ARN(EC2 インスタンス ID、Lambda 関数 ARN、ECR イメージ名)を使用して、FutureVuls に登録されているサーバと自動的にマッチングされます。

リソースタイプ マッチング方法
EC2 インスタンス SBOM 内の EC2 インスタンス ID と FutureVuls のサーバに登録されているインスタンス ID を照合
Lambda 関数 SBOM 内の Lambda 関数 ARN と FutureVuls のサーバに登録されている Lambda 関数 ARN を照合
ECR イメージ SBOM 内のイメージ名・タグと FutureVuls のサーバに登録されているイメージ情報を照合

マッチングに失敗した場合

対応するサーバが FutureVuls に登録されていない場合、その SBOM データはスキップされます。先に「FutureVuls上でインスタンスを登録」等でサーバを登録してください。

ソフトウェアタイプの変換#

SBOM Export で取得したソフトウェアは、FutureVuls の脆弱性データベースと照合され、適切なソフトウェアタイプに変換されます。

例えば、Inspector が OS パッケージとして検出したソフトウェアが、FutureVuls のデータベースでライブラリとして管理されている場合、自動的にライブラリタイプに変換されます。これにより、より正確な脆弱性検知が可能になります。

トラブルシューティング#

SBOM Export が失敗する場合#

Access Denied エラーが発生する場合は、CloudFormation スタックが正しく作成されているか確認してください。

# CloudFormation スタックのステータス確認
aws cloudformation describe-stacks \
  --stack-name FutureVulsInspectorSbomExport \
  --query 'Stacks[0].StackStatus'

KMS アクセス拒否エラーが発生する場合は、KMS キーポリシーが正しく設定されているか確認してください。FutureVuls コンソールで SBOM Export 設定を再度実行すると、ポリシーが更新されます。

ソフトウェアが表示されない場合#

  1. サーバが登録されているか確認: SBOM Export で取得したリソースに対応するサーバが FutureVuls に登録されている必要があります。
  2. リソース ARN の一致を確認: EC2 インスタンス ID、Lambda 関数 ARN、ECR イメージ名が正しくマッチしているか確認してください。
  3. スキャン履歴を確認: グループ設定画面 > スキャン履歴 で SBOM スキャンのステータスを確認してください。

一括スキャンの実行制限#

手動での一括スキャン(INSPECTOR SBOM 一括スキャン)は、AWS Inspector2 の同時実行制限を回避するため、1時間に1回のみ実行可能です。

なお、FutureVuls では1日1回の定期自動スキャンが実行されており、その際に SBOM Export も自動的に実行されます。