1. トピックス
  2. Linux
  3. Linux カーネルライブパッチとは

Linux カーネルライブパッチとは

CopiedFailedURL をコピー

Linux カーネルライブパッチとは、実行中の Linux カーネルに緊急および重要レベルのセキュリティパッチを適用する方法です。適用時に再起動したり実行中タスクを停止したりする必要がありません。

パッチとアップデートは別のものです。アップデートは、パッケージの新しい軽微なマイナーバージョンであり、バグ修正、パフォーマンスの向上、新機能、コマンドラインの変更、その他の機能強化が含まれます。パッチは、既存のバージョンの脆弱性を修正するコードの一部 (通常は、パッケージまたはファイルの 2 つのバージョン間の差分) です。これらのパッチは遅延なく脆弱性を修正するため、既存の実装をより安全に実行でき、システム管理者は次の定期的なメンテナンス期間まで再起動を延期できます。

理論上、ライブパッチは、定期的なバグ修正や機能強化など、実行中のカーネルのあらゆるパッチに使用できます。とはいえ実際は、ライブパッチは主に深刻なセキュリティ脆弱性への対策として使用されています。この種の修正はできる限り早く行う必要があるからです。Red Hat® Enterprise Linux® ではセキュリティパッチに注力しており、カーネルのライブパッチは (管理者にとっての管理上のメリットも持つ) セキュリティ機能として認識されています。

ライブパッチが使えない場合、対象のサービスまたはアプリケーションを再起動しないとパッチを適用できません。再起動しないとパッチ適用済みの新しいバージョンが読み込まれないからです。これは Linux カーネル自体に対するパッチの場合も同様なので、Linux システム管理者は難問を抱えることになります。必須のセキュリティ更新を適用する必要がありますが、そのために Linux サーバーで予定外の再起動を行うことになり、待ち時間やダウンタイムが発生してしまうからです。

当時 MIT の学生であり、システム管理者をしていた Jeff Arnold も、この難題に突き当たりました。セキュリティアップデートが保留されているシステムがあり、彼は脆弱性への対処を先延ばしすることにしました。しかしそのシステムはハッキングの対象となってしまったのです。2008 年に、Arnold はシステムの実行中にセキュリティパッチを適用して読み込む仕組み (彼はそれを「リブートレス・カーネル・セキュリティ・アップデート」と呼びました) を作成してその問題に対処することにしました。この最初のプロジェクト (ksplice) が、Linux カーネルライブパッチの概念が生まれる端緒となりました。

ステートレスやステートフルなサービス、持続性、データ管理、トランザクション、コマンドの実行など、サービスやアプリケーションの運用の基礎ともいえる部分を取り扱うという複雑なことをしなくてはならないため、コンピューティングにおいて動的なソフトウェア更新は難しい課題です。

Arnold と後続の Linux カーネルライブパッチのプロジェクトが行ったのは、カーネル空間でツールを使用してカーネルモジュールを読み込むことでした。

Red Hat のリソース

Linux システムの運用は、ユーザー空間 (すべてのサービスとアプリケーションが実行される場所) とカーネル空間 (コアシステムが動作する場所) の 2 つのセクションに分割されています。カーネルは、すべてのアプリケーションにとって、CPU やストレージなどのハードウェアリソースにアクセスするための仲介者として機能します。管理者は、カーネル自体に加えて、機能を拡張または変更するためのカスタム・カーネル・モジュールを作成できます。これらのカーネルモジュールは、起動処理が終わった後でも動的にロードおよび実行できます。

カーネル・ライブパッチ・ツールは、パッチ適用済みコードからカーネルモジュールを作成し、ftrace (function trace) ツールを使用して、古い関数から新しく差し替える関数、パッチモジュール、パッチ済み関数へのルーティングを行います。

図 1.カーネルライブパッチの仕組み
Diagram of how kernel live patching works. Process described in more detail by surrounding text.

Linux カーネルライブパッチを行う最初のプロジェクトは ksplice でした。しかし ksplice は Oracle に売り渡され、次第にクローズドソースのツールへと変化していきました。ksplice を置き換えるオープンソースのプロジェクトを構築しようと他の開発チームが活動を始め、2014 年には多少の違いを持つ 2 つのプロジェクトがリリースされました。それが Red Hat の kpatch と SuSE の kgraft です。最終的には、Red Hat と SuSE の開発者は Linux カーネルコミュニティのことを考えて共同で開発を進めることにし、livepatch を作り上げました。livepatch は Linux カーネル内の共通レイヤーで、誰もが互換性のあるカーネル・ライブパッチ・ツールを開発できるようにするものです。

ここで覚えておくべき重要な点は、パッチはとりわけセキュリティリスク対策として使用されているということです。システム管理者が抱えている課題の 1 つとして、Linux システムのセキュリティパッチ適用に対処すると同時に、アップタイムの要件も満たす必要があります。つまり、あらかじめ設定されているメンテナンス期間以外は、システムをオフラインにできない可能性があります。  この 2 つの要件を両立させることは、ますます難しくなっています。

Red Hat のセキュリティ・リスク・レポートによると、特定されたセキュリティ問題 (共通脆弱性識別子、CVE) の数は 2019 年から 2020 年にかけて大幅に増加しており、約 55% の増加 (1,313 件から 2,040 件) となっています。2021 年にはわずかに減少しましたが (1,596 件)、それでも 2019 年よりも 22% 増えています。増加分のほとんどは重大度が中程度の脆弱性によるもので、重要レベルの脆弱性はほぼ変わらず、緊急レベルの脆弱性は減少しています。

カーネルのアップデートとパッチは 6 週間ごとにリリースされています。Red Hat Enterprise Linux のマイナーアップデートは 6 カ月ごとで、その間のセキュリティパッチをすべて含んでいます。ライブパッチサービスは、再起動せずに Linux カーネルに対して実行できるため、システム管理者はどちらのポリシーに従うかを決める必要がなくなります。

カーネルバージョンの確認方法はこちら

カーネル関連の CVE は最も重要な懸念事項の 1 つであり、2021 年に最も注目された上位 10 件の CVE のうち 4 件がカーネルに関連しています。

Linux カーネルへのセキュリティパッチをライブで適用できることは、単に便利なだけではありません。ライブパッチは、セキュリティチームがセキュリティの脆弱性にプロアクティブに対処し、カーネル機能の稼働を継続し、システムの安全性を維持するための重要なツールです。

Linux セキュリティパッチを適用して脆弱性に対処する方法の詳細はこちら

 

パッチ適用プロセスや Red Hat Enterprise Linux での各種要素のセットアップ方法がとても気に入っています。一度に 1,000 個のパッケージをインストールする場合でも、パッチのセッションが失敗したことはありません。

Bruce Lundberg

Linux HPC Systems Administrator

その他のレビューを読む

セキュリティはオペレーティングシステムのレベル (またはそのソースコード) から始まり、テクノロジースタックの上部へ、またライフサイクルの全体へと広がっていきます。だからこそ、多様なツールを持つことが欠かせないのです。 Red Hat Enterprise Linux には、次のようなセキュリティ管理ツールが含まれています。

サイバーセキュリティを取り巻く状況は、Anthropic の Mythos などの AI による脆弱性発見ツールの進化によって、重要な転換点に達しています。脆弱性の発見および悪用の方法における構造的な変化により、防御側はもはや従来の手作業によるパッチ適用サイクルに頼ることはできなくなっています。Mythos のようなモデルは、人間では到底及ばない速度でソースコードとシステム構成を分析し、新たな脆弱性を発見して大量の CVE を生み出しています。

Red Hat Enterprise Linux Web コンソールからカーネルライブパッチを管理することで、重要なメンテナンスの実行における複雑性が大幅に軽減されます。この Web コンソール機能のシンプルなインタフェースにより、高度なスキルを持つ管理者でも経験の浅い管理者でも、コマンドラインツールを使用せずにカーネルのアップデートを適用できます。 Red Hat Enterprise Linux インフラストラクチャをアップグレードすると、最新の修正を継続的に利用できるため、セキュリティポスチャの維持に役立ちます。 

Red Hat Lightspeed は、あらゆる Red Hat Enterprise Linux サブスクリプションで利用でき、セキュリティ上の懸念に対処するための統合管理エクスペリエンスを提供します。これには以下が含まれます。

  • インフラストラクチャ全体をカバーするビジュアルダッシュボード (脆弱なシステムとパッチステータスが表示され、Red Hat Satellite Server への個別のサブスクリプションを必要とせずに重大なバグを検出し修正することができます)
  • 関連 CVE とその他の更新
  • Linux のセキュリティパッチ適用を自動で行うための Playbook
  • システム構成を管理するための、定義済みセキュリティプロファイルとカスタムプロファイル
  • ベースライン構成の使用と、ベースラインから外れたシステムのフラグ付け

Linux カーネルライブパッチは、ニーズが認識され、組織やコミュニティメンバーが協力しながら取り組むオープンなプロジェクトが立ち上げられ、コミュニティにとってのメリットとなるソリューションを作ることで生み出されました。このオープンな働き方は、Red Hat のサブスクリプション原則の価値観 (コラボレーション、透明性、テクノロジーとユーザーエクスペリエンスの向上への注力) の中核になっています。  

Red Hat Enterprise Linux を使用すると、企業は次のことが可能になります。 

  • Red Hat Lightspeed を利用して、セキュリティリスクにさらされる期間を短縮し、新たに検出された脅威について迅速に通知を受け、修復を行う
  • SELinux と fapolicyd によるプロセスの分離とアクセス制御によって、強力な多層防御を確立する
  • 透明性のあるソフトウェア・サプライチェーンでリスクを軽減し、信頼を確立する 
  • Red Hat Enterprise Linux の事前強化とイメージモードで「シフトレフト」アプローチを採用する
  • FIPS コンプライアンスを単純化する
  • 自動化とオーケストレーションによって時間を節約し、効率を向上させる 
  • クローズドループの修復で平均修復時間を大幅に短縮する
     

    Red Hat Enterprise Linux のセキュリティ機能を見る

Red Hat 公式ブログ

Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

IBM Cloud で Linux を実行する理由

IBM CloudでRed Hat Enterprise Linuxを実行すると、高可用性や障害復旧、最適化した管理機能、ハイブリッドクラウド戦略の導入に役立つ拡張可能な環境を利用できます。

ARM プロセッサーとは?をわかりやすく解説

ARMプロセッサーはRISC(縮小命令セットコンピュータ)アーキテクチャに基づくCPU。ARMとx86は共に高パフォーマンスを維持しますが、性能と電力効率の実現方法が異なります。

AWS 上の Red Hat Enterprise Linux を選ぶ理由

Red Hat Enterprise Linux と AWS は、クラウドベースの未来に向けて IT 環境と運用を変革するために役立つソリューションを提供します。

Linuxリソース