■Inspector
Amazon Inspector(アプリのセキュリティとコンプライアンスの改善をサポート)| AWS
https://aws.amazon.com/jp/inspector/
■設定
脆弱性対策を簡単に実現!Amazon Inspectorがすごすぎる|ソニー|コラム|NURO Biz(ニューロ・ビズ)
https://biz.nuro.jp/column/aws-mama-059/
【初心者向け】Amazon Inspectorとは | SunnyCloud
https://www.sunnycloud.jp/column/20230607-01/
Inspector → 使用を開始する
「Inspector をアクティブ化」の画面が表示される
「サービスの許可」として、以下の説明が表示されている
「Inspector をアクティブ化すると、ユーザーに代わって AWS の機密データを検出、分類、保護し、潜在的なセキュリティ上の問題に関する検出結果を生成するための許可を Inspector に付与することになります。これにより、Inspector はお客様のアカウントのためにのみアクティブ化されます。」
問題無ければ「Inspector をアクティブ化」ボタンをクリック
有効化に成功すると、画面に「Inspector へようこそ。最初のスキャンが進行中です。」と表示される
(スキャン完了については表示されなかったが、最初のスキャンは2〜3分程度で完了したみたい)
EC2、AMI、Lambda関数については、何も検出されなかった
ECRリポジトリ、ECRコンテナイメージについては、それぞれ60件ほどの「緊急」が検出された(検証中のもの)
ECRの「イメージの脆弱性スキャン」では対応しようが無いものが検出されることがあったが、今回同じようなものなのかは引き続き要調査
■SSMエージェントを利用してスキャン
Amazon Inspector (v2) を設定してみた - サーバーワークスエンジニアブログ
https://blog.serverworks.co.jp/amazon-inspector-v2
Amazon Inspector v2でEC2インスタンスの脆弱性スキャンを実施する方法 | クラウド・AWSのIT技術者向けブログ SKYARCH BROADCASTING
https://www.skyarch.net/blog/amazon-inspector-v2%E3%81%A7ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%...
以前(v1)はEC2に「エージェント」と呼ばれるものをインストールすることで、完全なスキャンができた
現在(v2)はAmazon Systems Manager (SSM) エージェントを使うことで対応できる
Inspector → ダッシュボード
「環境カバレッジ」内の「インスタンス」を確認すると、「0%」「0/10インスタンス」と表示されている
これは「リージョン内に10台のインスタンスがあり、スキャン対象は0台だった」ということ
EC2がマネージドインスタンス化(ポリシー「AmazonSSMManagedInstanceCore」を与える)することでスキャン対象になるので、実際に行ってみる
まずはロールを作成する
セキュリティ認証情報 → ロール → ロールを作成
許可ポリシー: AmazonSSMManagedInstanceCore
ロール名: AmazonSSMManagedInstanceCoreRole
対象のAmazon EC2に対して以下の操作を行う
アクション → セキュリティ → IAMロールを変更
インスタンスID: 対象のインスタンスIDが表示されていることを確認
IAMロール: AmazonSSMManagedInstanceCoreRole
1時間ほど経ってから確認すると、ダッシュボードに「10%」「1/10インスタンス」という表示に変わった
左メニューから「検出結果 → インスタンス別」と辿ると、インスタンス別の検出結果を一覧できる
(マネージドインスタンス化したものは、「オペレーティングシステム」にOS名が表示されていた)
インスタンス名をクリックすると、検出内容の詳細を確認できる
左メニューから「検出結果 → 抑制ルール」と辿ると、不要な結果を非表示にできる
(例えば「Medium以下のものについては表示しない」などができる)
「ルールを作成」をクリック
名前: exclude-medium
抑制ルールのフィルター: 重大性:Medium,Low
「このルールによって抑制された検出結果」に意図した内容が表示されていることを確認し、「保存」ボタンをクリックする
これでインスタンスの検出内容の詳細を確認すると、設定した結果が除外されていることを確認できる
(検出結果で非表示になるだけで、検出件数には反映されないみたい)
■スキャンのタイミング
任意のタイミングではなく、あらかじめ定められたタイミングでスキャンが行われる
Amazon Inspector で Amazon EC2 インスタンスをスキャンする - Amazon Inspector
https://docs.aws.amazon.com/ja_jp/inspector/latest/user/scanning-ec2.html
> Amazon Inspector は 24 時間に 1 回、EC2 インスタンスのネットワーク到達可能性スキャンを実行します。
> アクティベーションを行うと、Amazon Inspector はアカウント内のすべての SSM 管理対象インスタンスをスキャンします。Amazon Inspector は、以下の状況で SSM 管理の EC2 インスタンスの新しい脆弱性スキャンを開始します。
>
> ・新規 EC2 インスタンスを起動するとき。
> ・既存の EC2 インスタンス (Linux のみ) に新しいソフトウェアをインストールする場合。
> ・Amazon Inspector が新しい共通脆弱性と危険性 (CVE) 項目をデータベースに追加し、その CVE がお客様の EC2 インスタンス (Linux のみ) に関連している場合。
Amazon Inspector v2でEC2インスタンスの脆弱性スキャンを実施する方法 | クラウド・AWSのIT技術者向けブログ SKYARCH BROADCASTING
https://www.skyarch.net/blog/amazon-inspector-v2%E3%81%A7ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%...
> Inspector v2では、次のタイミングでスキャンが行われます。
>
> ・EC2 インスタンスが Amazon Inspector によって検出されると即時
> ・新しいインスタンスを開始した際
> ・既存のインスタンスに新しいソフトウェアがインストールされた場合
> ・Amazon Inspector がデータベースに新しい一般的な脆弱性および例外 (CVE) 項目を追加したとき
>
> 「新しいソフトウェアをインストールする場合」ですが、yumやaptを利用したパッケージインストールが対象となります。
> makeは対象外のようですのでご注意ください。
> 毎日自動的にスキャンを走らせるなどの対応はできませんが、コスト的にも優れ、コントロールパネルもかなり見やすくなっており、非常に有用なサービスと感じました。
■通知
Amazon Inspectorの通知を受け取る
https://staff-blog.faith-sol-tech.com/amazon-inspector%E3%81%AE%E9%80%9A%E7%9F%A5%E3%82%92%E5%8F%97%...
Amazon EventBridge → ルール → ルールの作成
以下の内容でルールを作成する
ルールの詳細を定義
名前: AmazonInspectorNotificationRule
ルールタイプ: イベントパターンを持つルール
イベントパターンを構築
イベントソース: AWSイベントまたはEventBridgeパートナーイベント
メソッド: パターンフォームを使用する
イベントパターン
イベントソース: AWSのサービス
AWS のサービス: Inspector2
イベントタイプ: Inspector2 Finding
ターゲットを選択
ターゲットタイプ: AWSのサービス
ターゲットを選択: SNSトピック
トピック: (あらかじめ作成しておいたSNSトピック)
上記設定だと、頻繁に何十通もの通知メールが届く
意図してポートを空けているような場合、これが毎回通知される
通知対象を制限したい場合、引き続き以下の設定を行う
Amazon EventBridge → ルール → AmazonInspectorNotificationRule → イベントパターン → 編集
イベントパターンを以下のように編集した(detailの項目を追加した)
{
"source": ["aws.inspector2"],
"detail-type": ["Inspector2 Finding"]
}
↓
{
"source": ["aws.inspector2"],
"detail-type": ["Inspector2 Finding"],
"detail": {
"severity": ["HIGH", "CRITICAL"],
"status": ["ACTIVE"]
}
}
これで重要度の低いものは通知されなくなる