Canonical Livepatch Serviceの利用方法
「Canonical Livepatch Service」の利用方法です。ここでは無料で利用してみます。
事前に「ソフトウェアの更新」等ですべてのアップデートを適用しておきましょう。
Ubuntu Oneのアカウントが必要
サービスを利用するには、「Ubuntu One」のアカウントが必要になります。「Ubuntu One」アカウントを持っていない人は、事前に「Ubuntu One」のアカウントを取得しておきましょう。
1.トークンの取得
「Canonical Livepatch Service」をブラウザーで開きます。無料でサービスを利用する場合は、「Ubuntu user」を選択します。
「Get your token」ボタンをクリックします。
2.トークンの確認
以下のようにトークンが表示されるので、トークンをクリップボードにコピーしておきます。3.canonical-livepatchのインストール
「端末」を起動し、以下のコマンドを実行します。
sudo snap install canonical-livepatch
4.canonical-livepatchサービスの有効化
以下のコマンドを実行します。
sudo canonical-livepatch enable トークン
以上で完了です。
簡単ですね。
canonical-livepatchサービスを無効化するには
canonical-livepatchサービスを無効化するには、以下のコマンドを実行します。
sudo canonical-livepatch disable
この状態でマシンを再起動すれば、パッチが適用されていない状態に戻ります。
ライブパッチの状態を確認するには
ライブパッチの状態を確認するには、以下のコマンドを実行します。
canonical-livepatch status --verbose
パッチの自動適用
ライブパッチがあれば、以下のようにパッチが自動的に適用されます。「state」の項目が「applying」になっており、ライブパッチ適用中であることが分かります。
「fixes」から「CVE-2016-5195」の修正を含んだパッチであることが分かります。
「USN-3106-1: Linux kernel vulnerability」に対応したものですね。
パッチの適用が完了すれば、「state」の項目が「applied」になります。
パッチといってもバイナリーデータを差分適用するのではなく、脆弱性の原因となっている関数(システムコール)を修正済みの関数で置き換えます。
カネールモジュールの一覧からパッチを探す
読み込まれているカーネルモジュールの一覧から、現在適用されているパッチを検索してみます。以下のコマンドを実行します。
lsmod | grep livepatch
現在適用されているパッチが検出されました。
カーネルモジュールとしてパッチが提供されていることが分かります。
Sysfsからパッチを探す
仮想ファイルシステムである「Sysfs」から登録済みのパッチを探すことが出来ます。以下のコマンドを実行します。
ls /sys/kernel/livepatch
登録済みのパッチが表示されます。
パッチが適用されている状態でソフトウェアの更新を起動すると・・・
「USN-3106-1: Linux kernel vulnerability」に対応した「Linux Kernel」は、「ソフトウェアの更新」を通じてPCにインストールすることが出来ます。同じ脆弱性に対応したライブパッチがすでに適用済みであっても、「ソフトウェアの更新」を起動すれば以下のように「Linux Kernel」のアップデートが可能です。