Livepatchとは
Livepatchはその名の通り、Ubuntu(Linux系のos)でapt-get upgradeされた時に、kernelパッチを更新するためにーサーバーを再起動せずに適用できます。
Ubuntu Pro向けなのですが、3ホストまでは無料で利用できるので個人利用をする程度ならちょうど良いです。
live patchの仕組みはこちらのページの図がわかりやすいです。

起動中のkernelにパッチを適用するとなると、実行中のメモリの内容を変更することになってしまうけど、どうやっているのか不思議に思っていました。
上記のように、新たなコードを別のメモリに確保した上で、実行コードをすげ替えてしまうというやり方であれば納得です。
デメリットとしては抽象化のオーバーヘッドが増えるのと、パッチを適用していくとメモリのフラグメンテーションや無駄なメモリアロケーションが増える可能性がありそうです。
また、Livepatch自体も万能ではなくてこの用に抽象化された部分の変更でなければkernelの再実行=OSの再機動が必要になります。詳細
アカウント登録
利用する際に使うtokenはWebサイト上で発行されるのでアカウント登録をしてトークンを取得します。
ユーザ登録後、このページを開くとトークンが表示されます。

設定
Ubuntu 22.04で実行しています。
基本的に、上記のサイトで表示されているコマンドを1発実行すれば完了します。
matsu@dell ~/> sudo pro attach <token>[sudo] password for matsu:Enabling default service esm-appsUpdating package listsUbuntu Pro: ESM Apps enabledEnabling default service esm-infraUpdating package listsUbuntu Pro: ESM Infra enabledEnabling default service livepatchInstalling snapdUpdating package listsInstalling canonical-livepatch snapCanonical livepatch enabled.Unable to determine current instance-idThis machine is now attached to 'Ubuntu Pro - free personal subscription'
SERVICE ENTITLED STATUS DESCRIPTIONesm-apps yes enabled Expanded Security Maintenance for Applicationsesm-infra yes enabled Expanded Security Maintenance for Infrastructurelivepatch yes enabled Canonical Livepatch servicerealtime-kernel yes disabled Ubuntu kernel with PREEMPT_RT patches integrated
NOTICESOperation in progress: pro attach
Enable services with: pro enable <service>
Account: [email protected]Subscription: Ubuntu Pro - free personal subscriptionlive patchのステータス表示
matsu@dell ~/> sudo ua status[sudo] password for matsu:SERVICE ENTITLED STATUS DESCRIPTIONesm-apps yes enabled Expanded Security Maintenance for Applicationsesm-infra yes enabled Expanded Security Maintenance for Infrastructurelivepatch yes enabled Canonical Livepatch servicerealtime-kernel yes disabled Ubuntu kernel with PREEMPT_RT patches integratedusg yes disabled Security compliance and audit tools
Enable services with: pro enable <service>
Account: [email protected]Subscription: Ubuntu Pro - free personal subscriptionlivepatchがenabledになっているので設定は完了しているようです。
セキュリティのステータス表示
matsu@dell ~> sudo ua security-status997 packages installed: 853 packages from Ubuntu Main/Restricted repository 101 packages from Ubuntu Universe/Multiverse repository 25 packages from third parties 18 packages no longer available for download
To get more information about the packages, run pro security-status --helpfor a list of available options.
This machine is attached to an Ubuntu Pro subscription.
Main/Restricted packages are receiving security updates fromUbuntu Pro with 'esm-infra' enabled until 2032.
Universe/Multiverse packages are receiving security updates fromUbuntu Pro with 'esm-apps' enabled until 2032. You have received 13 securityupdates.考察
この設定が影響しているかどうかわからないのですが、Dockerが調子悪くなりました。。。docker killでコンテナを停止できなくなってしまったりしました。
スタートはできるからまぁ、ギリギリサービスは動くのですが。。。困りものです。
まとめ
- kernel関連のzero day attackに対して安全に運用できるようになりました。
- 仮想環境でサービスを運用しているホストに導入すると再機動の回数を減らせて良いです。