カーネルをアップデートしてもAmazon Inspectorで検知するときの対応

Amazon Inspectorを使うと、EC2のCVEなどの脆弱性があるか診断できます。脆弱性のあるカーネルをアップデートしてもInspectorの指摘が出ることがあります。指摘を消したい場合は、古いカーネルを削除することで対応できます。

Inspectorの結果を確認する

検証には、カーネル「4.14.123-86.109.amzn1.x86_64」がインストールされているAmazon Linux 1を使いました。

# uname -r
4.14.123-86.109.amzn1.x86_64
#

InspectorのCVEルールパッケージで診断すると、CVE-2019-3900とCVE-2019-1125が検出されました。

Amazon Linuxの脆弱性に詳細はAmazon Linux Security Centerで確認できます。CVE-2019-3900はこちらを見ると、kernel-4.14.133-88.105が対応バージョンであることがわかります。CVE-2019-1125はこちらから、kernel-4.14.133-88.112が対応バージョンです。「Issue Correction」からyum updateでカーネルをアップデートで対応できることがわかります。また、New Packagesで対応バージョンがわかります。

yum update -yとOS再起動で全てのパッケージを更新し、カーネルバージョンを確認するとどちらの脆弱性にも対応したバージョンになりました。実行中のバージョンは「4.14.133-88.112」です。

# uname -r
4.14.133-88.112.amzn1.x86_64
# 

この状態でInspectorで診断すると新しいカーネルになったにも関わらず、CVE-2019-3900とCVE-2019-1125は検出されます。

インストール済みのカーネルを確認する

Amazon Linux 2では、デフォルトで3世代のカーネルを保持します。カーネルをアップデートしても、Inspectorはインストール済みの古いカーネルを検知します。

# cat /etc/yum.conf | grep install
installonly_limit=3
#

rpm -qa kernelでインストールされたカーネルを確認できます。package-cleanup --oldkernels --count=1で1世代を残し、古いカーネルを削除します。

# rpm -qa kernel
kernel-4.14.123-86.109.amzn1.x86_64
kernel-4.14.133-88.112.amzn1.x86_64
[root@ip-172-31-24-47 ~]#
# package-cleanup --oldkernels --count=1
Loaded plugins: priorities, update-motd, upgrade-helper
--> Running transaction check
---> Package kernel.x86_64 0:4.14.123-86.109.amzn1 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================
 Package            Arch               Version                            Repository             Size
======================================================================================================
Removing:
 kernel             x86_64             4.14.123-86.109.amzn1              installed              94 M

Transaction Summary
======================================================================================================
Remove  1 Package

Installed size: 94 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : kernel-4.14.123-86.109.amzn1.x86_64                                                1/1
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.order: remove failed: No such file or directory
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.networking: remove failed: No such file or directory
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.modesetting: remove failed: No such file or directory
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.drm: remove failed: No such file or directory
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.builtin: remove failed: No such file or directory
warning: file /lib/modules/4.14.123-86.109.amzn1.x86_64/modules.block: remove failed: No such file or directory
  Verifying  : kernel-4.14.123-86.109.amzn1.x86_64                                                1/1

Removed:
  kernel.x86_64 0:4.14.123-86.109.amzn1

Complete!
# rpm -qa kernel
kernel-4.14.133-88.112.amzn1.x86_64
#

Inspectorで診断すると、カーネルの指摘は0になりました。

さいごに

Amazon Inspectorでカーネルの脆弱性を検知した時にカーネルをアップデートしても指摘が出ることがあります。Amazon Linux Security Centerで脆弱性を確認し、対応バージョンを確認できます。Amazon Linux 2はこちらです。カーネルを対応バージョンにアップデートしているにも関わらず、Inspectorで指摘が出た際はこちらの手順をお試しください。

参考