EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev

EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev

Clock Icon2024.07.02 07:33

nakanoshima.dev #37 にて 「 EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する 」というタイトルで LT登壇させていただきました。 主催いただいた運営の皆様、参加者の皆様 ありがとうございます。

https://nakanoshima-dev.connpass.com/event/315871/

本ブログでLTの内容について簡単にまとめます。

LTスライド

そもそも脆弱性対応は何をする?

識別と適用、プロセスを意識する

脆弱性対応では、ざっくりと 識別と適用、プロセスを意識すると良いでしょう。

sc_2024-07-01_14-35-33_13939

#### 識別する

まず ソフトウェアの把握 が 必要不可欠です。 サーバーにインストールされているソフトウェアの 名前やバージョンを棚卸しして、 管理します。

また、日々発生、更新される 脆弱性情報をキャッチアップ し続けることも大事です。 脆弱性を管理しているデータベースや、 セキュリティ関連のニュース(SNS)などが役に立つでしょう。

そして、ソフトウェア情報と 脆弱性関連情報をベースに、 サーバー内の脆弱性を特定 します。 サーバーの特性や用途、周辺環境や、 脆弱性の深刻度などの情報を集めておきます。 それらはトリアージ(パッチ適用の優先度ぎめ)で役立ちます。

#### 適用する

パッチを適用します。 パッチ適用の手段は様々あります。 より効率化したり、自動化したりすることも可能です。 後述しますが、 EC2インスタンスにおいては AWS Systems Manager が役に立つでしょう。

#### プロセス化する

組織内で繰り返し実行できるように 脆弱性対応フロー を定義します。 また、フロー内の各フェーズにおいて、 どのチームが責任を持つのか、 担当を決めておくとよいでしょう。

脆弱性対応のプロセス例

IPAのドキュメントが参考になったので、 以下に引用します。

sc_2024-06-12_13-19-16_32268

– 引用: 脆弱性対策の効果的な進め方(ツール活用編) | 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コンソール上で確認できるようになります。

sc_2024-07-02_16-00-04_23185

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関数) を継続的にスキャンして、脆弱性を検出/管理できます。 ネットワーク到達可能性も考慮して、脆弱性のリスクを評価してくれます。 脆弱性の特定、およびトリアージ(優先順位の判断)で役立ちます。

sc_2024-07-02_16-12-28_15279

詳細は以下ブログを参照ください。

[最近のニュース] 2024/04に エージェントレス診断が一般提供 されました。 これまでSSMエージェントが Inspector利用の前提条件でしたが、 それが無くなりました。 スキャンのカバレッジを上げられる熱いアップデートです。

脆弱性関連情報の把握 (LTにて割愛した部分)

例えば以下のようなサイトから、 脆弱性関連情報をキャッチアップします。 自動で気付ける/配信される仕組み(RSS等)を設定しておくと良いでしょう。

適用で役に立つ技術 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 と仲良くなっていくのが良いでしょう。

sc_2024-07-02_16-07-16_31649

  • STEP0: SSH接続 → まずはここから
  • STEP1: SSM Session Manager → SSHを使わずに コンソール接続
  • STEP2: SSM Run Command → コンソール接続せずに コマンドを一括投入
  • STEP3: SSM Patch Manager → 自動化された パッチ適用の仕組みを実現

それぞれの詳細は(少し古いですが)以下ブログを参照ください。

おわりに

sc_2024-07-02_16-07-59_21991

当日のLT登壇は、だいぶ駆け足で話していたので 聞き取りづらかったかも知れません(汗)。

改めて、主催いただいた運営の皆様、参加者の皆様ありがとうございます!

参考

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.