Ksplice拡張クライアントでのkspliceコマンドの使用
概要
Ksplice拡張クライアントを管理するには、ksplice
コマンドを使用します。このコマンドは、従来のKsplice Uptrackクライアントで使用されるuptrack
コマンドのかわりに使用します。ksplice
コマンドでは、カーネルのパッチ適用に加えて、ユーザー・スペースのパッチ適用を実行できます。
使用方法
ksplice
コマンドは、次のサブシステムでアクションを実行します:
kernel
: アクションはカーネル・サブシステムでのみ実行されますuser
: アクションはユーザー・スペース・サブシステムでのみ実行されますall
: アクションはすべてのサブシステムで実行されます
サブコマンドの形式でのアクションは次のとおりです:
list-target
: クライアントがパッチを適用できる使用可能なターゲットをリストしますshow
: クライアントによってすでに適用されている更新を表示しますapply
: 更新パスで指定されたシステムに更新を適用しますundo
: 一意のKsplice識別子で指定されたシステムへの更新を元に戻しますupgrade
: 使用可能なすべてのKsplice更新でシステムを更新しますremove
: 指定したKsplice識別子によって更新を削除するか、--all
オプションを使用してすべての更新を削除します。
コマンド構文は次のとおりです。
ksplice [OPTIONS] SUBSYSTEM SUBCOMMAND
詳細は、ksplice(8)
マニュアル・ページを参照してください。
Kspliceサブコマンド
-
ターゲットのリスト
クライアントがパッチを適用できる実行中のすべてのユーザー・スペース・プロセスを表示するには、
ksplice all list-targets
コマンドを使用します。次に例を示します:sudo ksplice all list-targets
出力は次のようになります:
User-space targets: glibc-libm-2.34.100.0.1.ksplice1.el9_4.2: - crond (46435) - ksplice (51778) glibc-libc-2.34.100.0.1.ksplice1.el9_4.2: - crond (46435) - ksplice (51778) - less (51781) openssl-libssl-3.0.7.27.0.3.ksplice1.el9: - ksplice (51778) openssl-libcrypto-3.0.7.27.0.3.ksplice1.el9: - ksplice (51778) Kernel version: Linux/x86_64/5.15.0-206.153.7.el9uek.x86_64/#2 SMP Thu May 9 15:59:05 PDT 2024
このコマンドは、各Ksplice対応ライブラリについて、更新により影響を受ける実行中のプロセスをレポートします。このコマンドは、ロードされたカーネルの有効なバージョンもレポートします。
-
更新の表示
システムに適用された更新を表示するには、
ksplice all show
コマンドを使用します。sudo ksplice all show
出力は次のようになります:
Ksplice user-space updates: chronyd (705) httpd (1503) ├─ [h73qvumn]: CVE-2014-7817: Command execution in wordexp(). └─ [ml55ngz4]: CVE-2015-1781: Privilege escalation in gethostbyname_r(). Ksplice kernel updates: Installed updates: [nf9nfyzj] Enablement update for live patching. [fe2qyrtu] Denial-of-service when checking if an address is a jump label. [bvjiimlr] Enable livepatching of jump labels. [id9g0y8c] Known exploit detection. [aq4p03vt] Known exploit detection for CVE-2019-9213. [pjd4ekqc] Known exploit detection for CVE-2017-1000253. [syt1v7t7] Known exploit detection for CVE-2022-0847. [rpa4ixvy] Known exploit detection for CVE-2022-27666. [hisf1nu9] Known exploit detection for CVE-2016-5195. ... [gsf5wlo8] CVE-2024-36934: Information leak in QLogic BR-series Ethernet driver. [e12zrdy5] CVE-2024-36919: Denial-of-service in QLogic Fiber-Channel-over-Ethernet offload driver. [ednh9erf] CVE-2024-36904: Remote code execution in TCP/IP networking stack. [8vkhpraf] CVE-2024-27398: Denial-of-service in Bluetooth Classic (BR/EDR) features. Effective kernel version is 5.15.0-208.159.3.el9uek
このコマンドは、実行中のプロセスに適用された更新およびカーネルへの更新をレポートします。この出力例では、Kspliceは
CVE-2014-7817
およびCVE-2015-1781
の更新を一部のユーザー・スペース・プロセスに適用しました。ksplice
コマンドのスコープをユーザー・スペース更新またはカーネル更新に制限するには、コマンドでall
のかわりにuser
またはkernel
を指定します。PIDによって指定されたプロセスに適用された更新を表示するには、
ksplice user show
コマンドで--pid=$PID
オプションを使用します。sudo ksplice user show --pid=705
次のような出力が表示されます。
chronyd (705) ├─ [h73qvumn]: CVE-2014-7817: Command execution in wordexp(). └─ [ml55ngz4]: CVE-2015-1781: Privilege escalation in gethostbyname_r().
-
更新の削除
プロセスからすべての更新を削除するには、
remove
サブコマンドを使用します。次に例を示します:sudo ksplice user remove --all --pid=705
Kspliceがプロセスに適用した特定の更新を削除するには、
undo
サブコマンドを使用します。sudo ksplice user undo --pid=705 h73qvumn
ノート:
指定した実行可能ファイルおよびライブラリにKspliceがパッチ適用しないようにできます。Ksplice拡張クライアントがユーザー・スペースのプロセスおよびライブラリにパッチを適用しないようにするを参照してください。
Kspliceパッチは、
/var/cache/uptrack
ディレクトリに格納されます。Kspliceは再起動後、ネットワークが構成される前の起動プロセスの早期に、これらのパッチを自動的に再適用して、システムを堅牢化したうえでリモート接続を確立できるようにします。 -
使用可能な更新のリストとインストール
使用可能なすべてのKspliceの更新をリストするには、
upgrade
サブコマンドを使用します:sudo ksplice -n kernel upgrade
使用可能なすべてのKspliceの更新をインストールするには、次のように
upgrade
サブコマンドを使用します:sudo ksplice -y user upgrade
-
カーネル・バージョンの表示
Kspliceによって実行中のカーネルに更新が適用されると、カーネルは
uname -a
コマンドによって表示される元のブート・バージョンとは異なる有効なバージョンになります。カーネルの有効なバージョンを表示するには、
ksplice kernel uname -r
コマンドを使用します。sudo ksplice kernel uname -r
ksplice kernel uname
コマンドは、-a
や-r
などのよく使用されるuname
フラグをサポートし、カーネルへのパッチ適用をアプリケーションが検出できるようにします。有効なバージョンは、Ksplice Uptrackがカーネルに適用した最新のパッチのバージョン番号に基づきます。
例3-1 使用例
次の例は、Ksplice更新に関する情報を表示したり、システム上のKsplice更新を管理する方法を示しています。
実行中のカーネルにKsplice Uptrackによって適用された更新を表示します。
sudo ksplice kernel show
インストール可能な更新を表示します。
sudo ksplice kernel show --available
カーネルからすべての更新を削除します。
sudo ksplice kernel remove --all
/etc/uptrack/disable
を作成します。
touch /etc/uptrack/disable
または、システムの次回再起動時に、ブート・コマンドラインにパラメータとしてnouptrack
を指定できます。