Amazon Inspectorについて

Inspector

インフラソリューション本部の C-C-Crab です。

今回は自動脆弱性管理サービスAmazon Inspectorの概要とEC2インスタンスのスキャン方法について紹介します。
この記事で扱うのは2021年11月に発表された新しいInspector(v2)です。旧Inspector(Classic)についてはこの記事では触れません。

Amazon Inspectorの概要

Amazon Inspectorとは

Amazon Inspectorとは、EC2インスタンス、ECRコンテナイメージ、Lambda関数を継続的にスキャンし、ソフトウェアパッケージの脆弱性(CVE)と意図しないネットワークの露出を検出する自動化された脆弱性管理サービスです。

EC2をスキャンするためには、マネージドインスタンス化(Systems Manager(SSM)エージェントがインストールされアクティブ化)されている必要があります。ECRやLambda関数ではエージェントのインストール等は必要ありません。

また、公式ドキュメントでは詳細な記述は見つかりませんでしたがInspectorの対象となるパッケージはOSのパッケージ管理ツール(yum/dnf/apt等)でインストールされたパッケージが対象のようです。実際、古いソースをダウンロードしてmakeコマンドでインストールしてもInspectorでは脆弱性は検出されませんでした。

なお、残念ながら現時点(2023/3)では大阪リージョンではサービスが提供されていません。

リージョン - グローバルインフラストラクチャ | AWS

スキャンのタイミング

それぞれのワークロードは検出時に初回スキャンが行われ、以下のタイミングで再スキャンされます。

EC2新しいパッケージをインストールもしくはアンインストールしたとき
新しいCVEが公開されたとき 脆弱なパッケージをアップデートしたとき
ネットワークの露出については24時間毎
ECRコンテナイメージ新しいCVEが公開されたとき
※自動スキャンの期間は、ライフタイム(デフォルト)、180日、30日で設定可能
Lambda関数Lambda関数が更新されたとき
新しいCVEが公開されたとき

EC2をスキャンしてみる

今回は脆弱性を含むEC2インスタンスを作成しInspectorでスキャンしてみます。

EC2インスタンスを作成

今回はInspectorにて脆弱性を検出させたいため、インスタンス作成時にコミュニティAMIから古いAmazon LinuxのAMIを使用します。

所有者情報から怪しいAMIではないかと思われるかもしれませんが、AMIから所有者で検索すると所有者エイリアスよりAMIの所有者がAmazonであることがわかります。

Amazon EC2 コンソールでは、Amazon または検証済み Amazon パートナーが所有するパブリック AMI には [Verified provider] (検証済みプロバイダー) のマークが付されます。

(前略)Amazon または検証済みパートナーが所有するパブリックイメージには、amazon または aws-marketplace のいずれかのエイリアス所有者が存在します。(中略)他のユーザーは、AMI にエイリアスを設定できません。これを利用すれば、Amazon または検証済みパートナーから AMI を簡単に見つけられます。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/sharing-amis.html

マネージドインスタンス化

EC2インスタンスをInspectorでスキャンするためには、EC2インスタンスがマネージドインスタンス化されている必要があります。

IAMに移動し「ロールを作成」をクリックします。

信頼されたエンティティタイプで「AWSのサービス」、ユースケースで「EC2」を選択し次へ。

許可ポリシーで「AmazonSSMManagedInstanceCore」を選択し次へ。

ロール名を入力して完成です。

続いて、EC2に移動し作成したEC2インスタンスにロールを割り当てます。

先程作成したIAMロールを選択し「IAMロールの更新」をクリックします。

以上でマネージドインスタンス化の作業は完了です。

Amazon Inspectorを有効化

Amazon Inspectorを有効化します。
Amazon Inspectorに移動し、「使用を開始する」、「Inspectorを有効化」を順番にクリックするとInspectorが有効化されます。

Inspectorを有効化すると、EC2インスタンス、ECRコンテナイメージ、Lambda関数に対して脆弱性スキャンが開始されます。少し時間をおいてInspectorのダッシュボードを確認してみてください。

検出結果の確認

Inspectorのダッシュボードからスキャン結果を確認してみましょう。環境カバレッジのインスタンス部分をクリックします。

対象のEC2インスタンスをクリックします。

検出結果が表示されました。

確認したい脆弱性のタイトルをクリックすると脆弱性の詳細が確認できます。詳細画面では脆弱性の概要や影響を受けるパッケージ、対策、Inspectorスコア等が確認できます。

公式ドキュメントによると、InspectorスコアはCVE情報とネットワークの露出および悪用可能性を関連付けスコアリングしたもののようです。CVSS基本値より実用的な評価基準と言えそうです。

Severity levels for Amazon Inspector findings - Amazon Inspector
When Amazon Inspector generates a vulnerability finding, it automatically assigns a severity to the finding. A finding's severity reflects the principal charact...

検出結果フィルタリング

検出結果のうち重要なもののみ確認したい場合は、抑制ルールを使用することでルールに一致したものの表示を抑制することができます。

抑制ルールに移動して「ルールを作成」をクリックします。

適当な名前を設定し、抑制ルールのフィルターで表示を抑制したい脆弱性の条件を指定します。今回は重大性がMedium以下を抑制するルールとしました。

先程と同様にダッシュボードから検出結果を確認すると、重大性がMedium以下の脆弱性が表示されなくなります。(設定が反映されるのに少し時間がかかります)
抑制された検出結果は、抑制ルールから先程作成したルールをクリックすると確認できます。

最後に

今回はAmazon Inspectorを使ってEC2インスタンスをスキャンしてみました。
Inspectorは自動的に脆弱性を検出してくれますが、毎回ダッシュボードを確認するのは面倒かと思います。そのため、次回は他のAWSサービスと連携してメール等で通知を受け取る方法を紹介します。

プロフィール
この記事を書いた人
C-C-Crab

インフラソリューション本部オペレーションサービスユニット所属
よく所属のユニット名を忘れます
早く釣りに行きたい…

C-C-Crabをフォローする
フェイスでは一緒に働く仲間を募集しています

フェイス・ソリューション・テクノロジーズ株式会社では、一緒に働いてくれる仲間を募集しています。
いろいろな案件があるので、いろいろなことに挑戦できる会社です。
「面白いこと」に積極的なので、あなたの「面白そうなことだからやってみたい」を形にできるチャンスがあります!

Inspector
フェイススタッフブログ

コメント

タイトルとURLをコピーしました