AWSの脆弱性管理サービス、Amazon Inspectorとは
こんにちは。クレスコDTのKHといとーです。
近年では、脆弱性の発見数が急増し、それに伴い脆弱性をついたサイバー攻撃による被害も増えています。
システムに存在する脆弱性を発見し修正することで、セキュリティを強化することができ、信頼性も向上させることができます。また、脆弱性管理は、法律や規制の遵守、予期せぬセキュリティインシデントから生じる修復コストの削減にも寄与します。適切な対策を選択し、実装することは容易ではありませんが、そのような悩みを解決してくれる様々な脆弱性管理サービスが提供されています。
今回は、脆弱性管理サービスの1つ、AWSの「Amazon Inspector」について紹介します。
■あわせて読まれている資料:
クラウドのコンサルティングから導入までをワンストップで支援!
→クラウドテクノロジーサービス
目次[非表示]
Amazon Inspectorとは
Amazon Inspectorとは、ソフトウェアパッケージの脆弱性や意図しないネットワークへの露出を、継続的なスキャンによって検出する、脆弱性管理サービスです。
ソフトウェアのインストールや新しい脆弱性が発⾒された場合等にスキャンが⾃動で⾏われ、リアルタイムで脆弱性情報を確認できます。
また、AWS環境内のリソースを⾃動で認識できるため、スケーラブルな監視が可能となっています。一度にスキャンできるインスタンス、イメージの数に制限はありません。また、数クリックで簡単に有効化でき、すぐに利⽤できるのも利点です。
脆弱性スキャンに対応しているAWSサービスは以下です。
- Amazon Elastic Compute Cloud (Amazon EC2)
- Amazon Elastic Container Registry (Amazon ECR)
- AWS Lambda
他にも、Amazon Inspectorと統合したり組み合わせたりして活用できるサービスがいくつかあります。
- AWS Organizations:統合することで複数アカウントを管理できる
- AWS Security Hub:検出結果を標準化されたデータ形式で自動的に集約する
- Amazon EventBridge、Amazon SNS、Amazon Lambda:イベントパターンによって後続処理(通知)を実施する
- Amazon S3:検出結果レポートを保存、フィルタリングしてエクスポートできる
- AWS Systems Manager:定期的なパッチ適用を自動化
Amazon Inspectorで「できること」と「できないこと」
前述の通り、脆弱性管理を支援してくれるAmazon Inspectorですが、「できること」と「できないこと」があります。できないことについては、他のサービスと組み合わせるなどして、環境やニーズに合った対策を行うことが大切です。
●Amazon Inspectorで検出できるもの
- パッケージ脆弱性の評価:AWS環境内のソフトウェアパッケージの脆弱性を特定します。他システムへの不正アクセスや、データの機密性、完全性、可用性が侵害される可能性がある脆弱性を検知します。EC2インスタンス、ECRコンテナイメージ、Lambda関数を評価できます。
- コードの脆弱性の評価:攻撃者が悪用する可能性のあるコードを特定します。コードの脆弱性には、インジェクションの欠陥、データ漏洩、脆弱な暗号化、コード内の暗号化の欠落などがあります。自動推論と機械学習を使用して、Lambda 関数のアプリケーションコードを評価することができます。
- ネットワーク到達可能性の評価:セキュリティグループ、アクセス制御リスト、インターネットゲートウェイなどの管理が不適切である場合や、潜在的に悪意のあるアクセスを許している可能性があるなど、過度に寛容なネットワーク設定について評価します。
- スコア算出による優先順位付け:CVE情報をリソースのネットワークアクセスなどと関連付けて、Amazon Inspector独自のスコアを算出できます。実際に悪用される可能性が低いリスクについては、リスクスコアが下がるので、より実用的な脆弱性リスクスコアを得ることができます。
●Amazon Inspectorで検出できるものと対象一覧
(※1) エージェントレススキャンはできません
(※2) 現在はAmazon Linuxのみサポートされています。
検出できるもの |
EC2(Linux) |
EC2(Windows) |
ECR |
Lambda関数 |
パッケージの脆弱性スキャン |
○ |
○ |
○ |
○ |
コードの脆弱性スキャン |
× |
× |
× |
○ |
CISベンチマークスキャン |
○(※2) |
○ |
× |
× |
ネットワークセキュリティの評価 |
○ |
○ |
× |
× |
Deep Inspection |
○ |
× |
× |
× |
●Amazon Inspectorのスキャンの種類一覧
スキャンの種類 |
説明 |
EC2 インスタンススキャン |
設定を有効にすると、すぐに以下を検出するスキャンが始まります。
ECRはレジストリのスキャン設定にてスキャン対象を指定できます。
|
ECR コンテナイメージスキャン | |
オンデマンドコンテナイメージスキャン | |
Lambda 標準スキャン | |
EC2 CISベンチマークスキャン |
Center for Internet Security によって確立されたベストプラクティスの推奨事項に従って設定されているかどうかを確認します。 |
●Amazon Inspectorの制限事項
- マルウェア検出/不正侵入防御:特定のマルウェアやウイルスを直接検出することはできません。マルウェア対策機能が追加されているサービスは、Amazon GuardDutyです。また、実際の不正アクセスを防御するには、AWS Network Firewall、AWS WAFを利用する必要があります。
- カスタム脆弱性/ゼロデイ脆弱性の評価:Amazon Inspectorは、CVE(共通脆弱性識別子)に基づいて脆弱性を評価しています。CVEに含まれていない特定のアプリケーションやシステムに固有の脆弱性は評価できません。
- 複雑な攻撃パターンの検出:動的な攻撃パターンや複雑な攻撃シナリオ(複数のシステムを組み合わせた攻撃や時間をかけた段階的な攻撃など)は検出できません。DDoS攻撃の対策であれば、AWS Shieldが有効的です。
- ユーザーアクティビティの検出:Amazon Inspectorでは、ログの解析や誤った設定・操作を監査することはできません。IAMでの権限管理、AWS CloudTrail、Amazon GuardDutyでのユーザーアクティビティのモニタリングが有効的です。
上記のように、Amazon Inspectorはネットワークやソフトウェアパッケージに対するセキュリティリスクを、より実用的に評価してくれるサービスとなっています。
Amazon Inspectorで実行できるのは、あくまでソフトウェアとネットワークの脆弱性評価であり、それ以外の脅威の検出や検出結果に対する対処(パッチ適用など)をすることはできません。対処まで自動化する場合は、他のサービスと連携させる必要があります。
Amazon Inspectorの仕組み
Amazon Inspectorの仕組みについて、簡単に紹介します。大まかな流れは以下です。
① AWSコンソールからAmazon Inspectorを有効化します。
② Amazon Inspectorを有効化すると、サービスリンクロールが自動作成されます。このロールには、Amazon Inspector が脆弱性を検出するためにアクセスする必要のあるサービスに対してのアクセス許可と、信頼ポリシーが含まれています。
③ 脆弱性スキャンが自動で開始されます。Amazon EC2 Systems Manager (SSM) エージェントがアクティブな場合は、EC2はインスタンスの共通脆弱性識別子 (CVE) データをもとに評価されます。SSM Agentは多くの EC2にプリインストールされていますが、手動でアクティブ化が必要な場合もあるので、確認しておくと良いです。ネットワークの脆弱性については、SSM Agent のステータスにかかわらず、すべての EC2がスキャンされます。Amazon ECR と AWS Lambda 関数は、エージェントを使用する必要はありません。
④ 脆弱性スキャン完了後、結果をコンソールから確認可能です。
また、スキャンした結果をもとに対策を検討して自動化したり、SBOM(ソフトウェアのライセンス情報、コンポーネント情報、コンポーネント同士の依存関係などをわかりやすく表したもの)をS3にエクスポートしたりすることができます。
Amazon Inspectorのコンソール画面について
●ダッシュボード
アカウント内に存在するサービスとそのスキャン結果の概要が一目でわかるようになっています。
●検出結果
すべてのスキャンで検出された脆弱性の一覧からVulnerabilityをクリックすると、詳細を確認することができます。
以下の結果からは、インスタンスにインストールしたlibwebpというパッケージに脆弱性を発見したことがわかります。
以下の結果からは、インスタンスの80番ポートが空いていることがわかります。
●Export SBOMs
SBOMをJson形式にエクスポートすることも可能です。
エクスポートの際には、事前に格納場所となるS3バケットと暗号化用のKMSを用意する必要があります。
●抑制ルール
細かなフィルターにて検出結果を抑制もできます。
抑制した検出結果のみを表示することもできます。
●CIS scans
CISスキャンのスケジュールを設定し、定期的に、インスタンスのOSがCISによって確立されたベストプラクティスの推奨事項に従って設定されているかどうかを確認できます。
●Vulnerability database search
Amazon Inspectorの脆弱性データベースをCVEで検索し、そのCVEが検出されるかどうかを確認することができます。
●アカウント管理
アカウント上にあるリソースを確認・管理することができます。
●設定
Inspectorの非アクティブ化や、EC2・ECRのスキャンの設定を変更できます。
スキャン方法(エージェント/エージェント+エージェントレス)やプログラミング言語のライブラリと適用可能な設定チェックのデフォルトパスを評価します。
再スキャンと監視期間の設定を変更できます。
Amazon Inspectorのかかるコスト
AWSなので、かかる費用はもちろん月ごとになります。
月々の料金は、スキャンされたワークロードに基づいて算出されます。
●EC2 インスタンススキャン
- SSMエージェントスキャン:インスタンスごとに 1.512USD
- エージェントレススキャン:インスタンスごとに 2.0808USD
●EC2 CIS ベンチマーク評価
- 1インスタンスあたりのアセスメントごとに0.03USD
●ECR コンテナイメージスキャン
- ECR へのプッシュ時に最初にスキャンされたコンテナイメージの数:イメージごとに 0.11USD
- 連続スキャン用に設定された ECR のコンテナイメージの自動再スキャンの数:リスキャンごとに 0.01USD
●オンデマンドコンテナイメージスキャン
- イメージごとに 0.03USD
●Lambda 標準スキャン
- Lambda 関数ごとに0.36USD
- Lambdaコードごとに0.65USD
Amazon Inspectorの総評
個人的には、以下のユースケースで適しているのではないかというのが見解です。
●EC2を手軽に脆弱性スキャンしたいとき
ライセンス費用がかからないので、初期構築時や年次、四半期等の長期間の周期利用でコストを抑えられるため
●すべてをAWSで統一したいとき
Inspectorにて検出できない脆弱性は、AWSの他サービスにてカバーできるものがあるため
まとめ
個人的にはライセンス費用がかからないのが非常に魅力的ですね。
しかし、各製品によってできることはそれぞれ違うため、求める機能やコストに合わせて、ピッタリのものを選ぶのが大切ですよね。
このブログが少しでも皆様の参考資料としてお役に立てば幸いです。
最後までお読みいただき、ありがとうございました。
■サービス資料一覧はこちら↓
引用元
https://aws.amazon.com/jp/inspector/
https://aws.amazon.com/jp/inspector/pricing/
https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonInspector_0228_v1.pdf