新しい白書では、 ベンダーカーネル、バグ、安定性、インフラストラクチャソフトウェアと ロッキーリナックス 会社 CIQ Linux ベンダー カーネルは、バックポート修正によってエンジニアリング プロセスに欠陥があるため、セキュリティ上の脆弱性に悩まされているという説得力のある議論を提示しています。
これは一部の人にとっては衝撃的かもしれないが、Linuxコミュニティでは公然の秘密だ。Linuxの安定カーネルのメンテナーであり、カーネルセキュリティチームの主要メンバーであるGreg Kroah-Hartman氏は最近こう述べた。「安全であるためには、 常に使用する必要があります 最新の長期安定カーネル。 ここでのキーワードは「最新」です。 を使用するだけでは十分ではありません 長期保証可能な限り安全を確保するには、最新のリリースを使用する必要があります。
残念ながら、ほとんど誰もそうしません。しかし、Google LinuxカーネルエンジニアのKees Cook氏は、「では、ベンダーは何をすべきでしょうか?答えは簡単です。面倒な場合は、 最新のカーネルリリースに継続的に更新する、メジャーまたは安定のいずれかです。”
なぜ? Kroah-Hartman 氏が説明したように、「どんなバグもカーネル レベルでセキュリティ上の問題になる可能性があります。」
Linuxカーネル開発者でありLWN編集長でもあるジョナサン・コーベット氏も同意した。「 カーネルでは、十分に賢ければ、ほぼすべてのバグを悪用してシステムを危険にさらすことができる。。 カーネルはシステム内の独特な場所にあり、多くの通常のバグを脆弱性に変えます。」
CIQ エンジニアの Ronnie Sahlberg、Jonathan Maple、Jeremy Allison が行ったのは、この地位の背後に具体的な数字を設定することでした。 彼らの論文は、現在のエンジニアリング手法では、ほとんどすべてのベンダー カーネルが本質的に安全ではなく、それらのカーネルを保護することは不可能であることを示しています。
これは、Linux ベンダー カーネルが、特定の Linux リリースのスナップショットを取得し、上流の git ツリーで変更が発生したときに選択した修正をバックポートすることによって作成されているためです。 この方法は、ツリー外のデバイス ドライバーが普及していた時代に設計されており、バックポートへの変更を選択することで安定性とセキュリティを強化することを目的としています。 このペーパーでは、変更率とバグ数を分析することで、これが実際にどのように機能するかを検証します。 レッドハット エンタープライズ リナックス (RHEL) 8.8、カーネル バージョン 4.18.0-477.27.1、kernel.org のアップストリーム カーネルとの比較。
また: Red Hat が AI を活用してシステム管理者の業務を楽にする方法
プログラマーはRHEL 8.8を具体的に調査しましたが、これは一般的な問題です。 SUSE、 ウブントゥ、 または デビアン Linux。ローリングリリースLinuxディストリビューション、例えば アーチ、 ジェンツー、 そして OpenSUSE タンブルウィード 常に最新のアップデートをリリースしていますが、ビジネスでは使用されていません。
RHEL 8.8 カーネルの分析により、変更ログに 111,750 件のコミットが個別に記録されていることが明らかになりました。このデータは、コミットの内容やサイズの詳細は示していませんが、バックポート プロセスの概要を把握するのに役立ちます。当初はバックポートの速度は安定していましたが、2021 年 11 月頃に減少し、2022 年 11 月には RHEL 8.5 と RHEL 8.7 のリリースに合わせて再び大幅に減少しました。このパターンは、メジャー リリース サイクルが進むにつれて、安定性を高めるためにバックポートがより保守的になっていることを反映していると著者らは考えています。
調査の結果、RHEL 8.6 には 5,034 個の未修正のバグ、RHEL 8.7 には 4,767 個の未修正のバグ、RHEL 8.8 には 4,594 個の未修正のバグが見つかりました。
これらの数字は、アップストリーム修正が RHEL にバックポートされていない既知のバグを表しています。RHEL 8.6 および 8.7 でのバックポートの早期停止により、RHEL 8.8 と比較して未修正のバグが多くなっています。Red Hat はソースコードの変更全体を公開しないという慣行があるため、複雑さが増し、CIQ が処理する必要のあるデータに誤検知や誤検出が生じる可能性があります。これらの制限にもかかわらず、CIQ は手動チェックにより、不足している修正の特定に高い精度が見られると報告しています。
また: Ubuntu 24.04: この素晴らしい新しい Linux ディストリビューションは速いだけでなく、要塞です
バグはアップストリームですぐに修正されるという想定に反して、多くのバグは解決されるまでに長期間残ります。この遅延はカーネルの品質に影響を及ぼします。バックポート プロセスの遅延により、既知の未修正バグの数が増加し、時間の経過とともにカーネルの安定性とセキュリティが損なわれるためです。
Linuxカーネル開発者は 管理を引き継いだ Linux の共通脆弱性および暴露 (CVE) では、2024 年 3 月に 270 件、2024 年 4 月に 342 件の新しい CVE が報告されました。 これらは、安定した Linux カーネルの git ブランチですでに修正されています。
それでも、その膨大な数は、セキュリティを強化するために安定したアップストリーム カーネルを使用することの重要性を強調しています。 新しい CVE が大量に存在し、修正の禁輸期間がないため、組織はこれらの脆弱性を評価して対処する積極的なアプローチを必要としています。
さらに、RHEL 8.8 は 2022 年後半以降積極的に開発されていませんが、新たに発見されたすべてのバグの約 10% が依然として影響を受けています。 RHEL 8.8 の最後の主要なバグ修正セット 他の古い (ただしまだサポートされている) エンタープライズ Linux ディストリビューションにも同じことが当てはまります。 CIQ によると、さらに厄介な点は次のとおりです。「私たちが調査した不足している修正の一部は、ユーザー空間から悪用可能であることが明示的に明らかにされています。」
また: ライナス・トーバルズが邪悪な開発者、ハードウェアエラー、そして「陽気な」AI の誇大宣伝に挑む
したがって、CIQ チームは、選択的なバックポートを特徴とする従来のベンダー カーネル モデルには欠陥があると結論付けました。既知の未修正のバグの数が増えていることは、ベンダー カーネルがアップストリームの安定したカーネルよりも安全性が低いことを示しています。チームは、セキュリティとバグ管理を向上させるために、kernel.org の安定したカーネル ブランチを使用する方向への移行を提唱しています。
著者らによると、「これにより、セキュリティを重視する顧客がベンダー固有のカーネルではなく安定したカーネルを採用する強い動機が生まれる」という。著者らは、「顧客が可能な限り安全なカーネルを実行していることを知る唯一の現実的な方法は、安定したカーネル ブランチに切り替えることだと確信している」と主張している。
この文書は、専任の Linux ベンダー カーネル エンジニアを批判するものではありません。 むしろ、これは業界が最適な長期ソリューションとして kernel.org の安定したカーネルを支持するよう結集するよう呼びかけるものです。 このような移行により、エンジニアは労働集約的なバックポート プロセスではなく、顧客固有のバグの修正や機能の強化に集中できるようになります。
したがって、彼らは 4 つの重要な結論を導き出しました。
- ベンダーのカーネル モデルは壊れており、修復できません。
- ベンダー カーネルは本質的に安全ではなく、サイクル後半で安定化されたベンダー カーネルは特に脆弱です。
- 既知の未解決のバグが膨大な数にあるため、それらをすべて分析したり分類したりすることは非現実的です。
- アップストリームの安定したカーネルは、カーネル コードのセキュリティの脆弱性やバグに対して大幅に優れた保護を提供します。
また: このバックドアは Linux 全体に感染しそうになった: XZ Utils の危機一髪
では、ベンダーはこれを実行するでしょうか? 上流の安定したカーネルに移行することにはセキュリティ上の理由がありますが、それには反論があります。つまり、常に最新のカーネルにアップグレードしていると、安定性の問題に遭遇する可能性があるということです。4.18.0-477.27.1 カーネルで問題なく動作するプログラム 4.18.0-477.27.1.el8_8 では動作しない可能性がありますもちろん、この特定のケースでは、新しいカーネルによって重要なセキュリティ バグが修正されました。
結局は、セキュリティと安定性の間の微妙なバランスを取ることに尽きます。Linux カーネルのトップ開発者や CIQ の一部は、セキュリティを優先しています。Linux ベンダー コミュニティの残りのメンバーがどのような意見を述べるか、注目です。