初めに
Re:Invent2021 で InspectorでECRが脆弱性スキャンの対象となったので行ってみました。
Inspector(v2)のECRのスキャン機能について
Inspector(v2)のECRのスキャン機能は先日のRe:Invent2021で発表された機能となります。
https://aws.amazon.com/jp/about-aws/whats-new/2021/11/amazon-inspector-continual-vulnerability-management/
元々ECRの脆弱性スキャン機能自体は、ECRの一機能として提供されていましたが、Inspector(v2)の機能に統合された形となります。
尚、Inspectorは今回のアップデートで刷新されており、今回アップデートされたInspectorをInspector V2、アップデート前のInspectorをInspector v1と表記します。
手順
Inspector 画面に移動し、有効化
Inspector 画面に移動し機能を有効化します。
Inspector 画面に遷移後は Inspector v2 の画面となり、本画面で有効化するとInspector v2 が有効化されます。
尚、Inspector v1 を利用したい場合は、Inspector v2 の左メニューで「Switch to Inspector Classic」のリンクがあるため、本リンクをクリックするとInspector v1 の画面に移動ができます。
Inspector v2 有効化(Inspector への権限付与)
Inspector v2 を有効化すると以下の画面に遷移します。
内容としては、「Inspecor を有効化するとInspecor に対して脆弱性チェックに必要な権限を付与する」旨の説明が記載されています。
付与される権限については、「View role permissions」をクリックすることで確認ができます。
Inspecor に対する権限付与について特に問題なければ、「Enable Inspector」をクリックします。
尚、上記の権限付与の動きとしては、Inspecor v2 を有効化すると、以下の様なIAMロールが自動で生成される状態になりました
- IAMロール名
- AWSServiceRoleForAmazonInspector2
- IAMポリシー
- AmazonInspector2ServiceRolePolicy(AWS管理ポリシー)
- 信頼関係
- inspector2.amazonaws.com
ECRの脆弱性スキャンの有効化
Inspecor v2の有効化のみでは、ECRの脆弱性スキャンは開始されません。
ECRの脆弱性スキャンを有効化するには、ECR側で有効化が必要となります。
ECRの画面へ移動し、「Private registry」をクリックします。
「Private registry」の設定項目からスキャン中の編集ボタンをクリックします。
スキャン設定で「拡張スキャン」をクリックを選択します。
連続スキャンフィルター設定は今回は全リポジトリを対象とするので、全てを選択します。
連続スキャンとはCVEに脆弱性が検知されたタイミングとオンプッシュスキャンが有効化されます。
連続スキャン以外にオンプッシュスキャンのみを選択することも可能です。
尚、注意点として過去30日間にイメージが更新されていない場合は連続スキャンの対象から外れる仕様があるため、塩漬けとなっているイメージに対して脆弱性スキャンはすることが出来ません。
「基本スキャン」と「拡張スキャン」の違いは以下の通りです。
比較内容 | 基本スキャン | 拡張スキャン |
---|---|---|
概要 | 従来のECRで利用できた脆弱性スキャン | Inspector(v2)に統合された脆弱性スキャン |
スキャン範囲 | オペレーティングシステムのメジャーパッケージ | オペレーティングシステムとプログラミング言語パッケージの両方をレジストリレベルで脆弱性スキャンが可能 |
対応OS | 少ない※1 | 多い※2 |
スキャンタイミング | 手動/プッシュ時 | 連続/プッシュ字 |
※1 https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/image-scanning-troubleshooting.html | ||
※2 https://docs.aws.amazon.com/ja_jp/inspector/latest/user/supported.html |
上記より基本的には拡張スキャンを適用した方がスキャン範囲も広いので優位性がありそうです。
運用としては、ECR利用開始時に拡張スキャンを連続スキャンで有効化すると、運用中に重大な脆弱性が検知された際に直ぐに脆弱性影響調査が行えそうですね。
ただし、拡張スキャンは手動スキャンを行えない事、過去30日間にイメージが更新されていない場合は連続スキャンの対象から外れる事から重要な脆弱性が検知されたので、スポットでスキャンをしたい場合等、拡張スキャンでは対応が難しいケースがありそうです。
結果の確認
脆弱性結果の確認は Inspectorv2 画面で確認が取れます。
Inspectorv2 のホーム画面で脆弱性スキャンの対象となっているリポジトリの割合やCritical となっている脆弱性数及び内容を確認できます。
※ 今回の検証では脆弱性が見つかったリポジトリがなかった状態でした。
また、「By container image」メニューから検知された脆弱性の一覧及び検索が行える様です。
チェック対象としているリポジトリの一覧は「Account management」ページにて行えます。
他サービスとの連携について
脆弱性スキャンのInspectorv2 への統合のメリットとしては、他サービスとの連携が行える事もあるかと思います。
具体的にはSecurity Hubとの統合により検知された脆弱性をSecurity Hubを利用して統合管理することが可能となったり、AmazonEventBridgeとの連携によりイベントトリガーでの自動化の仕組みを実装したりできたりします。
最後に
Inspector(v2)のECRのスキャン機能については、以前からあったECRの脆弱性スキャン機能より優位性が多い部分が多く、手動スキャンの実施等、特別な要件がない限りは拡張スキャンを利用した方が良い印象を受けました。
最近もLog4jの様な重大な脆弱性も発見され脆弱性スキャンの重要性も高まってきていると思います。
この機会に脆弱性スキャンを実施していない場合は、利用の検討をしてみてはいかがでしょうか。