セクションを選択

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

URL をコピー

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

パッチとアップデートは別のものです。アップデートはパッケージの新しいマイナーバージョンで、バグ修正、パフォーマンス強化、新機能、コマンドラインの変更などの強化が含まれています。パッチはコードの一部 (通常は、パッケージやファイルのバージョン差分となるもの) で、既存のバージョンの脆弱性を修正します。こうしたパッチにより脆弱性は待ち時間を発生させることなく修正されるので、既存の実装はより安全に実行できるようになり、システム管理者は次の定期メンテナンスまで再起動をしなくて済みます。

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

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

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

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

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

Linux システムの運用は 2 つのセクションに区切られています。1 つはユーザー空間 (すべてのサービスやアプリケーションが実行される場所)、もう 1 つはカーネル空間 (コアシステムが動作する場所) です。カーネルは、アプリケーションが CPU やストレージなどのハードウェアリソースにアクセスするための仲介者の役割を果たします。管理者はカーネルそのものの他にカスタムのカーネルモジュールを作成して機能を拡張したり変更したりできます。こうしたカーネルモジュールは動的に読み込んで実行することが可能であり、それは起動処理が終わった後でも問題ありません。

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

図 1:カーネルライブパッチの仕組み

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

まず思い出していただきたいのは、パッチはセキュリティリスク対策として使用されているということです。システム管理者が抱えている課題の 1 つは、Linux システムにセキュリティパッチを適用しなければならないのと同時に、アップタイムの要件も満たさなければならないことです。これは、定期メンテナンスの時にしかシステムをオフラインにできない可能性があることを意味します。このプレッシャーは常に存在し、強くなる一方です。

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

カーネルの更新とパッチは 6 週間ごとにリリースされています。Red Hat Enterprise Linux のマイナーアップデートは 6 カ月ごとで、その間のセキュリティパッチをすべて含んでいます。Linux カーネルライブパッチを実施し、再起動せずにパッチを適用できることで、システム管理者はどちらのポリシーに従うかで頭を悩ませなくて済むようになります。

カーネルに関連する CVE は特に気を遣うものの 1 つで、2021 年に最もよく表示された CVE トップ 10 のうち 4 つはカーネル関連でした。

Linux カーネルにライブでセキュリティパッチを適用できることは、単に便利なだけではありません。ライブパッチは、セキュリティチームがプロアクティブにセキュリティ脆弱性に対応し、カーネルの機能が停止しないように保護し、システムの安全を守るための重要なツールなのです。

カーネルライブパッチはセキュリティ管理用ツールの 1 つですが、Red Hat Enterprise Linux で利用できるセキュリティ管理ツールはこれだけではありません。Red Hat Enterprise Linux にはセキュリティを管理するためのさまざまなツール (権限やアクセス制御を行う SELinuxや、設定やタスクを自動化するシステムロールなど) があります。

それだけで「セキュアな環境」を構築できる単一のツールなど存在しません。脅威は常に変化と進化を続けており、新たな攻撃方法は増え続け、さまざまなターゲットがピンポイントで狙われています。セキュリティはオペレーティングシステムのレベル (またはそのソースコード) から始まり、テクノロジースタックの上部へ、またライフサイクルの全体へと広がっていきます。だからこそ、多様なツールを持つことが欠かせないのです。

Red Hat Enterprise Linux Web コンソールからカーネルライブパッチを管理することで、重要なメンテナンスの実行における複雑さが大幅に軽減されます。この新しい Web コンソール機能は、高度なスキルを持つ管理者でも経験の浅い管理者でも、コマンドラインツールを使用せずにカーネルの更新を適用できる、シンプルなインタフェースをもたらします。

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

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

 

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

関連資料

記事

DevSecOps とは

DevOps によるアジリティと応答性を存分に利用したいのであれば、アプリケーションのライフサイクル全体を通じて重要な役目を果たす IT セキュリティが不可欠です。

記事

クラウドセキュリティの特徴とは

高度なセキュリティ問題は、従来の IT システムとクラウドシステムの両方に影響します。クラウドセキュリティの特徴をご覧ください。

記事

SOAR とは

SOAR とは、セキュリティチームが使用する 3 つの主要なソフトウェア機能を指します。すなわち、ケースおよびワークフロー管理機能、タスクの自動化機能、および脅威インテリジェンスへのアクセス、クエリ、共有を一元化する手段が含まれます。

セキュリティの詳細はこちら

製品

ユーザーの ID を管理し、通信の機密性維持を支援するセキュリティ・フレームワーク。

クラウドネイティブ・アプリケーションのより安全な構築、デプロイ、実行を可能にする、エンタープライズ向けの Kubernetes ネイティブのコンテナ・セキュリティ・ソリューション。

Red Hat インフラストラクチャのセキュリティ、パフォーマンス、可用性に対する脅威の特定と修復に役立つ予測分析サービス。

Kubernetes クラスタとアプリケーションを制御する、セキュリティポリシーを組み込んだ単一のコンソール。

リソース