Amazon InspectorでEC2インスタンスの脆弱性診断してみました。

## はじめに
ソフトウェアの脆弱性診断等はよく耳にする言葉ですが、Amazon Inspectorをご存じでしょうか？
Amazon Inspectorは、AWSのマネージドサービスで、簡単にAmazon EC2インスタンスやECRコンテナイメージ、Lambda関数などに含まれるソフトウェアの脆弱性や意図しないネットワークの露出がないかをスキャンしてくれるサービスです。

簡単な設定で、すぐにAmazon Inspector自動でスキャンを実行し、検知された脆弱性の情報を、管理してくれる為、とても簡単に定期的に診断が実行できます。

診断のタイプとしては、以下の3つの診断を実施してくれます。

### Package脆弱性
一般的な脆弱性と暴露 (CVE) AWS にさらされている環境内のソフトウェアパッケージを特定する。
LinuxのCVE 検出は、ベンダーのセキュリティアドバイザリによってリリースから 24 時間以内にAmazon Inspectorに追加
Windows用のCVE検出は、Microsoft がリリースしてから 48 時間以内に Amazon Inspectorに追加

### コード脆弱性
Lambda 関数のアプリケーションコードを評価し、アプリケーションコードを分析して全体的なセキュリティコンプライアンスを確認する。

### ネットワークへの到達性
ネットワーク到達可能性の結果は、環境内のAmazon EC2インスタンスへのアクセスにあたり、
過度に許容される可能性のあるネットワーク構成や、潜在的に悪意のあるアクセスを許可する可能性のあるネットワーク構成を指摘する
Amazon Inspectorは24 時間ごとにネットワークの到達可能性に関する結果のスキャンを実行

Amazon ECR コンテナの診断とAWS Lambda関数の診断には、エージェントは不要ですが、Amazon EC2のPackage 脆弱性診断には、Systems Managerエージェントが必要になります。
但し、Systems Managerエージェントは、多くのAMIにプレインストールされている為、導入が不要なAMIも増えています。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/ami-preinstalled-agent.html

## 今回の構成
今回は、Amazon Linux 2023とWindows server 2022のEC2インスタンスを作成し、Amazon Inspectorで脆弱性診断してみました。
![構成図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/783300b4-2d09-d12f-7ae4-731ab1e38004.png)

1\. AMIは以下を選択して、ぞれぞれEC2インスタンスを作成、こちらのAMIにはSystems Managerエージェントがプレインストールされています。
 ・ Amazon Linux 2023 AMI
 ・ Microsoft Windows Server 2022 Base

2\. EC2ロールには、AmazonSSM ManagedInstanceCoreポリシーを割り当てます。

3\. EC2は、プライベートサブネットに配置し、EC2インスタンス上のSystems Managerエージェント → Systems Managerサービスとの通信は、NAT Gateway経由で実施します。
Amazon Virtual Private Cloudエンドポイントを利用する形でも問題ありません。

Systems Managerが導入されていると、EC2インスタンスへのログインもSystems Managerのセッションマネージャを利用してログインできる為、非常に便利です。

## 実際に診断してみる

### Amazon Inspectorの有効化
はじめてご利用になる場合は、無料トライアル利用が可能です。
「使用を開始する」ボタンを選択します。
![診断開始1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/ed10aae6-fe3c-b3c5-52d7-fd657f88bb19.png)

次に、「Inspectorをアクティブ化」ボタンを選択します。
その後、Inspectorで利用されるポリシー等が表示されますが、確認し「閉じる」ボタンで進みます。
![診断開始2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/ec2f5a32-90d4-4030-5d13-bbbd0cd33ad9.png)

自動でアカウント内のAmazon EC2インスタンスやECRコンテナイメージ、Lambda関数に対して診断を実施し診断結果を表示してくれます。
![診断開始3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/f8729021-b9ca-0be1-a244-ac041e6e056e.png)

### 診断結果
今回は、Amazon Linux 2023のEC2インスタンスとMicrosoft Windows Server 2022のEC2インスタンスを作成しましたので、それぞれの診断結果を確認してみます。

Amazon Linux 2023のEC2インスタンスに関しては、脆弱性は見つかりませんでした。
![診断結果amalx2023.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/0680f5fa-9e3c-279b-d846-9a2518a85910.png)

Microsoft Windows Server 2022のEC2インスタンスに関しては、どうでしょうか？
こちらは、「高」が15件、「中」が17件指摘されています。
![診断結果win2022.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/7e18b346-d0bb-7dcb-5703-8484dd3ac93d.png)

### 脆弱性の是正
指摘された脆弱性に関しては、OSパッチを適用することで解消できそうなものが多いようなので、早速Windows Server 2022のEC2インスタンスにログインしてWindows Updateしてみました。
![OS更新.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/740494ce-ed84-0569-2d5e-68863cf27f9a.png)

その後、Inspectorの再スキャンが実施されると、期待どおり、脆弱性の、ほとんどが解消されていることを確認できました。
![是正結果.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672779/2aa31061-2532-3a86-d16c-34700c68fbd7.png)


## 最後に
### 利用料金
Amazon Inspectorの利用料金に関しては、以下のサイトをご確認頂ければと思います。

https://aws.amazon.com/jp/inspector/pricing/

比較的安価で利用できるサービスではありますが、Amazon Inspectorのスキャンは、アカウント内の対象サービスに自動で実行されます。
その為、スキャン対象が多くなれば、その分の利用料金を考慮頂く必要があるかと思っています。

とはいえ、こんなに、簡単にソフトウェアの脆弱性診断ができてしまうメリットも大きいかと思いますので、ご興味のある方は、ぜひご活用頂ければと思います。