ようへいの日々精進XP

よかろうもん

yum パッケージの changelog を確認する yum-plugin-changelog が便利だった

tl;dr

CentOSAmazon Linux のパッケージ管理ツールとして空気のように当たり前にそこにある yum コマンドにプラグインが存在していること自体は存じ上げておりましたが, yum-plugin-changelog というプラグインが便利だったのでメモしておきます.

尚, 各コマンドの動作確認は以下の環境にて行っております.

$ cat /etc/system-release
Amazon Linux AMI release 2017.09

$ uname -rs
Linux 4.9.76-3.78.amzn1.x86_64

changelog を確認する方法

rpm コマンドを使う

rpm コマンドのコマンドラインオプションに --changelog というオプションがあるので, これを利用することも出来ます.

$ rpm -q --changelog kernel | less

* 金  112 2018 Builder <builder@amazon.com>
- builder/905972272a3121bab2721a139aa8144c53f456d9 last changes:

- linux/3b609073ee74e0c7b1fc2e34aa23ff30eddb536c last changes:
  + [3b609073ee74] [2018-01-04] x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm (dwmw@amazon.co.uk)
  + [1fa9a88139bc] [2017-09-17] x86/mm/32: Move setup_clear_cpu_cap(X86_FEATURE_PCID) earlier (luto@kernel.org)
...

これからインストールしようとするパッケージの changelog を確認したい場合には, 以下のように実行することで確認可能です.

$ rpm -qp --changelog https://rpmfind.net/linux/fedora/linux/updates/testing/28/Everything/x86_64/Packages/k/kernel-4.18.7-200.fc28.x86_64.rpm | less

* 月  910 2018 Laura Abbott <labbott@redhat.com> - 4.18.7-200
- Linux v4.18.7

* 日  909 2018 Laura Abbott <labbott@redhat.com> - 4.18.6-200
- Linux v4.18.6

* 金  824 2018 Laura Abbott <labbott@redhat.com> - 4.18.5-200
- Linux v4.18.5

* 金  824 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.19-200
- Linux v4.17.19

* 水  822 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.18-200
- Linux v4.17.18

* 月  820 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.17-200
- Linux v4.17.17
- Fix CVE-2018-15471 (rhbz 1610555 1618414)

* 水  815 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.14-202
- Include missing Forshadow patches

* 火  814 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.14-201
- Fix "Foreshadow" CVE-2018-3620 CVE-2018-3646 (rhbz 1585005 1615998)

* 木  809 2018 Justin M. Forbes <jforbes@redhat.com> - 4.17.14-200
- Linux v4.17.14

* 水  808 2018 Justin M. Forbes <jforbes@redhat.com> - 4.17.13-200
- Linux v4.17.13
...

予めインストールするパッケージの URL が把握出来ていれば, このように rpm コマンド --changelog オプションを使って, 事前にどのような変更が加わっているかを確認することが出来ます.

yum-plugin-changelog を使う

yum-plugin-changelogyumupdate コマンドで利用することで, アップデートするパッケージの changelog を確認することが出来る為, アップデートすることにって, どのような変更が加わるのか, どのような脆弱性に対処されているのかを事前に確認することが出来るようになります.

事前に yum-plugin-changelog プラグインをインストールした上で利用します.

sudo yum install yum-plugin-changelog

以下のように実行します.

echo 'N' | sudo yum update --changelog kernel | less

echo 'N' としているのは, yum update を実行している為, changelog を出力した後に Is this ok [y/d/N]: というプロンプトが出てしまうので, 一旦, N でアップデートされることを回避する為の苦肉の策です. (ここで y を入力すると, そのままパッケージのアップデート処理が実行されます)

先のコマンドの実行結果は以下のように出力されます.

...
読み込んだプラグイン:changelog, priorities, update-motd, upgrade-helper
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:4.14.67-66.56.amzn1 を インストール
--> 依存性解決を終了しました。

Changes in packages about to be updated:


===============================================================================
  Amazon Linux AMI 2014.03 - ALAS-2018-1058: critical priority package update for kernel
===============================================================================
  Update ID : ALAS-2018-1058
    Release :
       Type : security
     Status : final
     Issued : 2018-08-10 20:26
    Updated : 2018-08-14 17:53       CVEs : CVE-2018-3615
            : CVE-2018-5391
            : CVE-2018-3620
            : CVE-2018-3646
Description : Package updates are available for Amazon Linux AMI that fix the
            : following vulnerabilities: CVE-2018-5391:
            :
            :
            : CVE-2018-3646:
            :
            :
            : CVE-2018-3620:
            :
            :
            : CVE-2018-3615:
   Severity : critical
...

これは Kernel をアップデートすることで CVE-2018-5391 等のIntel 製 CPU の投機的実行機能に対するサイドチャネル攻撃 (L1TF, L1 Terminal Fault)脆弱性に対応されることがひと目で判ります.

以上

メモでした. 今後, yum-plugin-changelog プラグインは予めインストールしておきたいと思います.