「愚かすぎる」:リーナス・トーバルズ氏、オプトインのインテルCPUバグ緩和策を理由にLinuxカーネル5.8パッチを批判

Table of Contents

「愚かすぎる」:リーナス・トーバルズ氏、オプトインのインテルCPUバグ緩和策を理由にLinuxカーネル5.8パッチを批判

Linus Torvalds 氏は、L1 データ (L1D) CPU キャッシュに対する攻撃に対する追加のオプトイン緩和策を提供することを目的とした、Linux カーネルの次期リリースのパッチを削除しました。

AWSエンジニアのBalbir Singh氏によるパッチは、「コンテキストスイッチ時にL1Dキャッシュをフラッシュするためのオプトイン(prctl駆動型)メカニズム」を提供することを目的としていました。このパッチの目的は、「最近のスヌープ支援型データサンプリング脆弱性により警戒心が強いタスクが、スイッチアウト時にL1Dをフラッシュできるようにすることです。これにより、タスクがコンテキストスイッチアウトした後に、サイドチャネルを介したデータのスヌープや漏洩を防ぐことができます。」

スヌープ支援型L1データサンプリングは、Intelマイクロプロセッサに存在する脆弱性群の一つであり、マルウェアがキャッシュを検査することで個人情報や機密データを推測できる可能性があります。「スヌープ支援型L1Dサンプリングでは、スヌープが、フォールト/アシスト/アボートの発生しているロードと全く同じコアクロックサイクル内で、変更されたキャッシュラインをヒットする必要があります」とChipzillaは説明しています。

アクティブなスレッドまたはプロセスが切り替わるたびにキャッシュをクリアすると、この脅威やその他の潜在的な脅威を軽減できますが、パフォーマンスが低下します。

このパッチは次期リリースとなる5.8カーネルのコードに追加されましたが、トーバルズ氏によるレビュー後に削除されました。「これは基本的に、キャッシュのフラッシュ命令をユーザー空間にエクスポートし、プロセスに『一緒にスケジュールしている他のプロセスも遅くする』という指示を与えるもののように思えます」とトーバルズ氏は述べました。「言い換えれば、私の理解では、これは『IntelはバグのあるCPUを出荷しており、それが仮想化に問題を引き起こす』というおかしなコード(私はあまり気にしていませんでしたが)を、『誰でもこの病に感染する可能性があり、今ではそれを必要としないユーザーやCPU、そして全く意味のない構成にも影響を与える』というコードにすり替えているのです。」

「『ああ、私はとても特別で、かわいくて、繊細な花なので、どんな CPU を使っていても、エラッタがあってもなくても、タスクの切り替えごとに L1D をフラッシュしたい』というようなアプリケーションは望んでいません。カーネルには「愚かすぎる」と思われるようなことをしてほしくありません。」

チップセキュリティの図解

メルトダウン続編がインテルチップを襲う – データ干渉LVIの欠陥に対する完全な緩和策でパフォーマンスが大幅に低下

続きを読む

ここには多くのニュアンスがあります。Torvald氏の指摘の一つは、SMT(同時マルチスレッド、または「ハイパースレッディング」)が有効になっている場合、キャッシュをフラッシュするのは「馬鹿げている。攻撃者はタスクスイッチが発生する前に、兄弟コアに潜伏してL1コンテンツを攻撃するだけだからだ」ということです。このシナリオでは、「そんなことをするのはとんでもなく愚かで時間と労力の無駄です。哀れなssh開発者が『sshはとても特別なので、これを有効にすべきだ』と言って、実際には役に立たない何かに時間を浪費し始めるのが目に浮かびます」。さらに、コードが読みにくく、「コードの一部は怖い」と述べています。

もう一つの疑問は、すべてのプロセスが同じユーザーに属しているため、問題にならない可能性がある場合、この緩和策を低レベルで実施することに意味があるかどうかだ。「コンテキストスイッチ自体はセキュリティドメインの移行とはそれほど関係ありませんが、あるユーザーから別のユーザーへの切り替えが『ああ、ユーザーモードに戻るときは注意が必要かも』というサインになるという意味では関係があります」とトーバルズ氏は述べた。

シン氏はこう返答した。「よく分かりません。ユーザーは複数のタスクをホストすることができ、そのうちの1つが侵害された場合、漏洩を許してしまうのは良くありません。例えば、ブラウザのプラグインがセキュアセッションのセキュリティキーを漏洩させてしまうようなことがあれば、それは良くありません。」

この議論は、CPUバグに対してLinuxを安全に保つことの難しさ、そしてキャッシュ関連の攻撃が多種多様であるという事実に対するカーネルメンテナーのフラストレーションを明らかにしている。MDS(マイクロアーキテクチャ・データ・サンプリング)バグに対処するためにデータバッファをクリアするための過去のソフトウェアフォールバックに言及し、トーバルズ氏は次のように述べた。「この方法は、非常にコストがかかっただけでなく、そもそも信頼性が低く、実際には1つのマイクロアーキテクチャ向けにしか書かれていなかったのです。」

パブリッククラウドプロバイダーであるAmazonは、顧客が他の顧客のデータや仮想マシンホスト上のデータを盗み見ることができるという可能性を考慮し、これらのデータ窃取脆弱性に特に敏感です。AWSの別のエンジニアであるベンジャミン・ヘレンシュミット氏は、この議論に加わり、「これらのパッチは、SMTを実行している顧客のVM内で発生する問題を解決しようとするものではなく、同じシステム上の他のVMからVMを保護するものでもありません」と説明しました。AWSは幅広いサービスを提供しており、そのすべてがセキュリティ保護を必要としています。

トーバルズ氏は「私が間違っている理由を教えていただければ大変嬉しいです」としながらも、「今のところはデータ不足のため、パッチを撤回します」と述べた。AWSがパッチの価値を納得させれば、パッチは復活するかもしれない。®

Discover More