GNU/Linux >> Linux の 問題 >  >> Linux

Linuxカーネルライブパッチの歴史

最新のLinuxカーネルをインストールすることは、「再起動なしのカーネル更新」が開発されるまで、再起動を意味していました。これは、サーバーを再起動せずにパッチを適用する方法です。この手法は10年以上前のものであるため、この記事ではその起源と現在の状態について簡単に説明します。

2001–2010:パテントトレイル

ホットパッチやライブシステムアップデートなどのキーワードを使用して特許アーカイブを調べてみると、多くのアプリケーションや拒否が殺到し、コンピュータシステムを停止せずにアップデートするというアイデアは新しいものではないことがわかります。一般的なものから具体的なものまでアイデアをたどる重要な日付は次のとおりです。

  • 2001:Hewlett Packardは、不足しているハードウェア機能を回避するためにソフトウェアを動的に更新する方法の特許を取得しています。
  • 2002:Microsoftは、システム(Windows)を中断せずに更新するアプローチでゲームに参加します。 (最初の申請は、HPの「先行技術」を理由に却下されます。)
  • 2008:Jeff Arnoldが、Linuxカーネルを中断することなく(つまり、再起動せずに)更新(パッチ適用)するためのソフトウェアであるKspliceを発表しました。
  • 2010:Microsoftの特許がついに上訴で認められました。

これらの興味深い点は、システムの継続的な実行に影響を与えることなく、またハードウェアを変更することなく、ソフトウェアの更新によってシステムのコアソフトウェアまたはハードウェアの障害を修正するという願望を共有していることです。おなじみですか? (手がかり:メルトダウン、スペクター。)

2009:リブートレスの誕生

Jeff Arnoldは、サーバーの1つを管理しているMITの学生でした。セキュリティパッチが必要でしたが、再起動するとユーザーに不便がかかるため、彼はそれを延期しました。システムを更新する前に、ハッキングされました。不名誉と(皮肉なことに)不便に苦しんだジェフは、システムの更新を遅滞なく、再起動せずに実行するという問題で、修士論文のトピックを見つけるようになりました。話は外典かもしれませんが、ライブパッチの手法は、利便性ではなくセキュリティの問題から生まれたことを思い出させてくれます。その役割は、それらを評価する必要があります。

Jeff Arnoldは、3人の学生の同僚と協力して、Linuxサーバーのカーネルを遅滞なく、システムのプロセスを中断することなく更新する方法の問題を研究しました。このソリューションは、Kspliceと呼ばれるソフトウェアの形で提供され、その技術的基盤は2009年の学術論文に記載されています。論文のタイトルには、リブートレスという言葉が含まれていました。これは、「中断のない更新」のLinuxの省略形ですが、Windowsドライバーの更新に適用するために2005年にMicrosoftによって最初に造られました。

卒業後、ジェフと彼のMITの同僚は、Ksplice Inc.を立ち上げ、2009年5月にMITの10万ドルの起業家精神コンペティション賞を受賞しました。同社は2010年に商用サービスを開始しました。物事は順調に進んでいました。

2011–2016:Oracleとニューウェーブ

2011年7月21日、オラクルはKsplice、Inc.を買収し、ソフトウェアを自社ブランドのLinux(Red Hatの派生物)に統合しました。その遺産にもかかわらず、OracleはRedHatのサポートを停止しました。オラクルによるKspliceの買収は、他の主要なLinuxベンダーの間で活発な活動を開始しました。

2011年から2014年の間に、SUSEとRed Hatは単独で(そしてお互いの目標を知らずに)独自のライブカーネル更新ソリューションをリリースしました。これはそれぞれKgraftとKpatchで行いました。 (わずかな先行スタートにもかかわらず、SUSEのKgraftは2016年にGA(つまり本番システムに適した)になりました。)

Red HatはKpatchコードをコミュニティと共有し、Red HatEnterpriseLinuxのサポートされている機能として統合しました。

2つの化身の違いは、オープンソースバージョンのプロジェクトページに記載されているメッセージから推測できます。

警告:注意して使用してください!
カーネルのクラッシュ、自発的な再起動、
データの損失が発生する可能性があります!

同じ期間を通じて、SUSEとRed Hatの取り組みと並行して、ライブパッチをサポートするための基本的なABI基盤がLinuxカーネルバージョン4.0のソースコードに統合されていました。アイデアは、KpatchとKgraftの両方から最高のアイデアを取り入れ、それらをメインラインの共通のアプローチに移植することでした。これはライブパッチと呼ばれ、2016年10月、Canonicalは、それに基づいた独自の商用カーネル更新サービスを導入すると発表しました。これは、CanonicalLivepatchServiceと呼ばれると予想されます。最初はUbuntu16.04LTSでのみ使用可能でしたが、後で14.04LTSもカバーするように拡張されました。 Ubuntu 18.04では、LTS Livepatchはインストールオプションであり、組み込みのソフトウェア管理ツールから構成できます。これは、標準のソフトウェアディストリビューションでの重要性が増していることを示しています。

2014:ブロック上の新しい子供

主要ベンダーが実行可能なライブパッチソリューションを最初に立ち上げたため、Linuxベースのウェブホスティングオペレーティングシステムの主要プレーヤーであるCloudLinuxは、3月のベータ版が成功した後、2014年5月にKernelCareを立ち上げました。

彼らは、最も多くのLinuxプラットフォームにわたって最も幅広い機能セットを提供し、Linuxカーネル開発とカスタマーサポートで高い評価を得て市場を驚かせました。もう1つの衝撃は、手頃な価格であり、KernelCareのサーバーあたりのコストが、主要な競合他社のサイトあたりのコストよりも管理しやすく、スケーラブルであると考えるWebサイトのホスティング業者にアピールしました。

最近では、KernelCareとImunify360をバンドルすることで、セキュリティを重視する高飛車のシステム管理者の新しい戦隊のレーダーに登場しました。

結論:2019年の主要な問題

世界が自動化されたセキュリティに移行するにつれて、自動ライブカーネルパッチ管理ソフトウェアが人気のあるLinuxディストリビューションにこれまで以上に緊密に統合されていることがわかります。現在、市場には5つの異なるベンダーしかありません。機能比較表に、主なセールスポイントを示します。さらに読むセクションには、ドキュメントのソースと背景記事があります。

アクティブなカーネルをいじくり回すのは面倒です。これは、企業やサーバーを実行している人が、テストされていない、サポートされていないソフトウェアを信頼したいと思っているものではありません。セキュリティの名の下に行われる場合、それはLinuxで支払う価値のある多くのアプリケーションのひとつであり、絶対に正しく行われなければならない数少ないアプリケーションの1つです。

Microsoftの2002年の特許出願により、当時の議論は、テクノロジの長期的な実行可能性に対する懸念を明らかにしています。 lkml.org2008年4月およびlwn.net2011年7月を参照してください。

MITニュース:「再起動のないアップデートを世界にもたらす」(2014年)。

2016年1月以降、KspliceはOracleのUEKおよびOracle Linux 6&7製品の一部としてのみ利用可能になっています。その年の11月に、彼らはRedHatのアップストリームKpatchコードを削除しました。

Linuxカーネルライブアップデートサービス:機能比較表

機能

Ksplice

Kgraft

Kpatch

ライブパッチ

KernelCare

簡単なインストール/構成

はい

該当なし

はい

はい

はい

ロールバック

はい

はい

はい

はい

はい

修正されたパッチ

はい

いいえ

いいえ

いいえ

はい

ファイアウォール対応

はい

いいえ

いいえ

いいえ

はい

オフラインアップデート

はい

いいえ

いいえ

いいえ

はい

パッチアクセス制御

はい

いいえ

いいえ

はい

はい

完全自動化

はい

いいえ

いいえ

いいえ

はい

管理GUI

はい

いいえ

いいえ

はい

はい

24時間年中無休の無料サポート

いいえ

いいえ

いいえ

いいえ

はい

プラットフォームの数

2

1

1(4)

1

9

瞬時のパッチ適用

はい

いいえ

はい

はい

はい

無料トライアル(日)

30

60

いいえ

いいえ

30

API(REST)

はい

いいえ

いいえ

いいえ

はい

最新でないオーバーライド

はい

いいえ

いいえ

いいえ

はい

カスタムカーネル

いいえ

いいえ

はい

いいえ

はい

詳細については、比較ノートを参照してください。

さらに読む

一般記事

  • Livepatch:再起動せずにLinuxカーネルを更新(2018年6月27日)linux-audit.com
  • ライブパッチ適用メルトダウン– SUSEエンジニアの調査プロジェクト(パート1)(2018年5月2日)suse.com
  • ライブカーネルパッチの更新(2017年9月27日)lwn.net
  • Red Hat Enterprise Linux 7.2以降(2016年11月10日)redhat.comでのkpatchのガイド
  • Canonical Livepatch Serviceを使用してUbuntuカーネルをホットフィックスします! (2016年10月18日)blog.dustinkirkland.com
  • LinuxとUnixのホットパッチ–転換点に到達しましたか? (2016年5月20日)forrester.com
  • ライブパッチの大まかなパッチ(2015年2月25日)lwn.net
  • ライブカーネル更新ツール(2014年9月)admin-magazine.com
  • KernelCare:新しい再起動なしのLinuxパッチシステム(2014年5月6日)zdnet.com

ドキュメント

  • Kspliceデータシート(PDF)、ユーザーガイド
  • Kpatchガイド
  • Kgraftデータシート(PDF)、ドキュメント
  • KernelCareの機能、ドキュメント
  • 正規のLivepatchサービスデータシート(PDF)

比較ノート

簡単なインストール/構成

  • Ksplice-Uptrackのインストール
  • KgraftにはSUSELinuxEnterpriseServer12がプリインストールされています
  • kpatchツールのインストール
  • KernelCareのインストール

ロールバック

  • Kspliceuptrack-削除
  • Kgraftパッチの削除
  • kpatchホットフィックスの削除
  • KernelCare-パッチをアンロードします

ファイアウォールに優しい

  • Kspliceファイアウォールとプロキシの構成
  • KernelCareファイアウォールとプロキシ設定

オフラインアップデート

  • Kspliceオフラインクライアント
  • ePortalを介して企業のお客様が利用できるKernelCareオフラインアップデート

パッチアクセス制御

  • Kspliceアクセスポリシー
  • KernelCareの構成と場所

完全自動化

  • Kspliceの自動更新
  • KernelCareの基本的な管理

管理GUI

  • UbuntuまたはFedoraデスクトップエディションでのみKspliceGUI
  • 正規のLivepatchサービス-LandscapeのみのGUI、Ubuntuのシステム管理ツール、有料サポートオプション
  • KernelCare ePortal

24時間年中無休の無料サポート

  • Kpatchサポート(有料)
  • Kgraftサポート(有料)
  • Ubuntuアドバンテージ(有料)
  • KernelCareサポート(含まれています)

プラットフォームの数

  • Kspliceがサポートするカーネル(Red Hat Enterprise Linux、Oracle Linux)
  • Kgraftデータシート(SUSE Linux Enterprise Server 12/15)
  • Kpatch(RedHat)のサポート範囲(Red Hat Enterprise Linux)
  • Kpatch(github.com)(Debian、CentOS、Ubuntu、Gentoo)
  • 正規のLivepatchサービスデータシート(PDF)(Ubuntu 14.04 LTS、16.04 LTS)
  • KernelCareパッチサーバー(Ubuntu、RHEL、CentOS、CloudLinux OS、Debian、Oracle Linux、Proxmox VE、Virt-SIG / Xen4CentOS、Virtuozzo / OpenVZ)

無料トライアル

  • Kspliceの30日間無料トライアル(Oracle SSOアカウントが必要)
  • KgraftFree60日間トライアル
  • KernelCareの30日間無料トライアル

API(REST)

  • Ksplice API
  • KernelCare Nagios / Zabbix API

最新でないオーバーライド

  • Ksplice(特定の有効なバージョン)
  • KernelCareスティッキーパッチ

著者PaulJacobs

Paulは、CloudLinuxのテクニカルエバンジェリスト兼コンテンツライターです。彼は、ITにおける25年以上の万華鏡のような経験を利用して、Linux Webホスティングとセキュリティの複雑さを分析、解明、説明しています。


Linux
  1. Linux –カーネル:名前空間のサポート?

  2. Linux –カーネルIP転送?

  3. Linuxのコマンドライン履歴

  1. Linux履歴コマンド

  2. initrd イメージを作成せずに Linux カーネルを起動することはできますか?

  3. 再起動せずにカーネルを更新

  1. なしでは生きていけないLinuxカーネルモジュール

  2. Ubuntu20.04LTSでのLinuxカーネルライブパッチ

  3. Linuxサーバーで自動リブートレスカーネルアップデートを設定する方法