EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev
nakanoshima.dev #37 にて 「 EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する 」というタイトルで LT登壇させていただきました。 主催いただいた運営の皆様、参加者の皆様 ありがとうございます。
本ブログでLTの内容について簡単にまとめます。
LTスライド
そもそも脆弱性対応は何をする?
識別と適用、プロセスを意識する
脆弱性対応では、ざっくりと 識別と適用、プロセスを意識すると良いでしょう。
#### 識別する
まず ソフトウェアの把握 が 必要不可欠です。 サーバーにインストールされているソフトウェアの 名前やバージョンを棚卸しして、 管理します。
また、日々発生、更新される 脆弱性情報をキャッチアップ し続けることも大事です。 脆弱性を管理しているデータベースや、 セキュリティ関連のニュース(SNS)などが役に立つでしょう。
そして、ソフトウェア情報と 脆弱性関連情報をベースに、 サーバー内の脆弱性を特定 します。 サーバーの特性や用途、周辺環境や、 脆弱性の深刻度などの情報を集めておきます。 それらはトリアージ(パッチ適用の優先度ぎめ)で役立ちます。
#### 適用する
パッチを適用します。 パッチ適用の手段は様々あります。 より効率化したり、自動化したりすることも可能です。 後述しますが、 EC2インスタンスにおいては AWS Systems Manager が役に立つでしょう。
#### プロセス化する
組織内で繰り返し実行できるように 脆弱性対応フロー を定義します。 また、フロー内の各フェーズにおいて、 どのチームが責任を持つのか、 担当を決めておくとよいでしょう。
脆弱性対応のプロセス例
IPAのドキュメントが参考になったので、 以下に引用します。
– 引用: 脆弱性対策の効果的な進め方(ツール活用編) | IPA
識別で役に立つ技術 for EC2
ソフトウェアの把握 > 素朴な方法
素朴な方法は「パッケージ管理ツールのコマンドをそのまま使う」ことです。 例えば dnf
を使っている場合は、 dnf list installed
を実行して インストールされたパッケージを表示できます。
$ dnf list installed | head
Installed Packages
acl.x86_64 2.3.1-2.amzn2023.0.2 @System
acpid.x86_64 2.0.32-4.amzn2023.0.2 @System
alternatives.x86_64 1.15-2.amzn2023.0.2 @System
amazon-chrony-config.noarch 4.3-1.amzn2023.0.4 @System
amazon-ec2-net-utils.noarch 2.4.1-1.amzn2023.0.1 @System
amazon-linux-repo-s3.noarch 2023.4.20240611-1.amzn2023 @System
amazon-linux-sb-keys.noarch 2023.1-1.amzn2023.0.5 @System
amazon-rpm-config.noarch 228-3.amzn2023.0.2 @System
amazon-ssm-agent.x86_64 3.3.380.0-1.amzn2023 @System
[Tips] Amazon Linux 2023 では yum ではなく dnf がデフォルトになっています。
ソフトウェアの把握 > AWSなら!
ただしEC2インスタンスが多くなってくると、 各サーバーに入ってコマンドを実行して棚卸しするのは 骨が折れます。
そこで Systems Manager(SSM) の出番です。 EC2インスタンスを SSM管理下にすることで、 様々な操作を AWS上で実行できるようになります。
特に SSM Inventory という機能が ソフトウェアの把握に適任でしょう。 OS情報やアプリケーション情報を収集して、AWSコンソール上で確認できるようになります。
Inventory についての詳細は以下を参考ください。
サーバー内 脆弱性の特定 > 素朴な方法
素朴な方法は、やはりパッケージ管理ツールによる確認です。 例えば dnf updateinfo
を実行して、更新があるか確認できます。
$ dnf updateinfo
Last metadata expiration check: 0:33:00 ago on Fri Jun 21 02:13:28 2024.
Updates Information Summary: available
3 Security notice(s)
2 Important Security notice(s)
1 Medium Security notice(s)
↓より詳細
$ dnf updateinfo --list --with-cve | head
Last metadata expiration check: 0:34:26 ago on Fri Jun 21 02:13:28 2024.
CVE-2023-25690 Important/Sec. httpd-2.4.56-1.amzn2023.x86_64
CVE-2023-27522 Important/Sec. httpd-2.4.56-1.amzn2023.x86_64
CVE-2023-31122 Important/Sec. httpd-2.4.58-1.amzn2023.x86_64
CVE-2023-43622 Important/Sec. httpd-2.4.58-1.amzn2023.x86_64
CVE-2023-45802 Important/Sec. httpd-2.4.58-1.amzn2023.x86_64
CVE-2023-38709 Medium/Sec. httpd-2.4.59-2.amzn2023.x86_64
CVE-2024-24795 Medium/Sec. httpd-2.4.59-2.amzn2023.x86_64
CVE-2023-25690 Important/Sec. httpd-core-2.4.56-1.amzn2023.x86_64
CVE-2023-27522 Important/Sec. httpd-core-2.4.56-1.amzn2023.x86_64
↓さらに詳細
$ dnf updateinfo --info | head
Last metadata expiration check: 0:36:16 ago on Fri Jun 21 02:13:28 2024.
===============================================================================
Amazon Linux 2023 - ALAS2023-2023-136: Important priority package update for httpd
===============================================================================
Update ID: ALAS2023-2023-136
Type: security
Updated: 2023-03-22 23:25:00
CVEs: CVE-2023-25690
: CVE-2023-27522
Description: Package updates are available for Amazon Linux 2023 that fix the following vulnerabilities:
サーバー内 脆弱性の特定 > AWSなら!
よりAWSの恩恵を受けるには Amazon Inspector がおすすめです。
Inspector を使うことで EC2インスタンス(や ECRコンテナイメージ, Lambda関数) を継続的にスキャンして、脆弱性を検出/管理できます。 ネットワーク到達可能性も考慮して、脆弱性のリスクを評価してくれます。 脆弱性の特定、およびトリアージ(優先順位の判断)で役立ちます。
詳細は以下ブログを参照ください。
[最近のニュース] 2024/04に エージェントレス診断が一般提供 されました。 これまでSSMエージェントが Inspector利用の前提条件でしたが、 それが無くなりました。 スキャンのカバレッジを上げられる熱いアップデートです。
脆弱性関連情報の把握 (LTにて割愛した部分)
例えば以下のようなサイトから、 脆弱性関連情報をキャッチアップします。 自動で気付ける/配信される仕組み(RSS等)を設定しておくと良いでしょう。
- ニュースやSNS
- データベース
適用で役に立つ技術 for EC2
理想は「AWSサービスをフル活用したパッチ適用」ですが、 そう簡単にもいきません。
チームによってAWSスキルが異なってくるので、 複数の選択肢を準備するのが大事になってきます。
パッチ適用 > 素朴な方法
対象のサーバーにSSHで入って更新コマンドを実行するのが良いでしょう。
例えば dnf update --cves CVE-XXX
コマンドで、特定CVEのパッチ当てを実施できます。
$ sudo dnf update --cves CVE-2023-45802 -y
Last metadata expiration check: 0:09:52 ago on Sun Jun 23 03:35:29 2024.
Dependencies resolved.
======================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================
Upgrading:
httpd x86_64 2.4.59-2.amzn2023 amazonlinux 47 k
httpd-core x86_64 2.4.59-2.amzn2023 amazonlinux 1.4 M
...(略)...
Upgraded:
httpd-2.4.59-2.amzn2023.x86_64 httpd-core-2.4.59-2.amzn2023.x86_64 httpd-filesystem-2.4.59-2.amzn2023.noarch
httpd-tools-2.4.59-2.amzn2023.x86_64 mod_lua-2.4.59-2.amzn2023.x86_64
Complete!
パッチ適用 > AWSなら!
より効率化していくのであれば、 やはり SSM と仲良くなっていくのが良いでしょう。
- STEP0: SSH接続 → まずはここから
- STEP1: SSM Session Manager → SSHを使わずに コンソール接続
- STEP2: SSM Run Command → コンソール接続せずに コマンドを一括投入
- STEP3: SSM Patch Manager → 自動化された パッチ適用の仕組みを実現
それぞれの詳細は(少し古いですが)以下ブログを参照ください。
おわりに
当日のLT登壇は、だいぶ駆け足で話していたので 聞き取りづらかったかも知れません(汗)。
改めて、主催いただいた運営の皆様、参加者の皆様ありがとうございます!