ウェブサイト検索

AMDとIntelのCPUのセキュリティバグがLinuxのパッチをもたらす


2つの新しいチップの脆弱性、AMD InceptionとIntel Downfallが、トーバルズにLinuxのセキュリティパッチをリリースさせることになりました。

これは本当にLinuxの問題ではありませんが、しばしばそうであるように、Linuxカーネルの開発者たちはAMDやIntelの後始末をしなければなりませんでした。これは、チップメーカーの最新のCPU脆弱性、AMD InceptionとIntel Downfallの件でも再び起こりました。これを修正するために、Linuxの創作者であるリーナス・トーバルズは新しいパッチのセットを公開しました。

奇妙なことに、両方とも推測的サイドチャネル攻撃であり、特権データが特権のないプロセスに漏洩する可能性があります。トーバルズはそれらを「ユーザ空間がマイクロアーキテクチャ構造を毒する別の問題であり、その構造がサイドチャネルを通して特権情報を漏洩するために使用される可能性がある」と説明しました。

それは聞き覚えがありますか?Linuxのセキュリティ専門家には思い当たることでしょう。はい、これはIntelのMeltdownやSpectreがLinuxの界隈で有名になったようなセキュリティの脆弱性の一例です。幸いなことに、過去の2つのケースとは異なり、開発者たちは今回はシリコンに問題があることを事前にしっかり認識していたため、最新の脆弱性が報じられる前にパッチがリリースされました。

最近のマージでは、トーバルズとそのチームが、AMDのZen 3およびZen 4アーキテクチャに対する推測的リターンアドレススタック(RAS)オーバーフロー脆弱性に対抗するカーネル側の対策を取り入れました。この脆弱性により、ユーザースペースがマイクロアーキテクチャ構造を汚染することが可能となり、その後、サイドチャネルを介して特権情報を盗み取るために悪用される可能性があります。

AMDは、この脆弱性はそれほど大した問題ではないと語るでしょう:チップの巨人は、この脆弱性がダウンロードされたマルウェアなどのローカルでのみ「潜在的に」悪用される可能性があると考えています。それにもかかわらず、AMDは「顧客に最新のソフトウェアとマルウェア検出ツールを実行するなど、セキュリティのベストプラクティスを採用することを推奨します。」と述べています。

しかし、この欠陥を発見したETHチューリッヒのセキュリティ研究者たちは、あまり楽観的ではありません。彼らは、Inceptionがクラウドコンピューティングの攻撃者によって利用される可能性があると考えています。クラウドコンピューティングでは、顧客が一般的に同じ処理ハードウェアリソースを共有しています。

研究者たちは、Inceptionが一時的な実行攻撃の新しいクラスであり、一時的な実行におけるトレーニング(TTE)を使用することを述べています。一時的なウィンドウ内でデータを漏えいしようとする代わりに、TTE攻撃は一時的なウィンドウを悪用してブランチ予測器に新しい予測を挿入します。任意の命令から一時的なウィンドウを引き起こす方法であるファントムと組み合わせることで、Inceptionはプライベートデータを吸い取るための厄介な方法となる可能性があります。

面白いことに、Intelに所属するベテランLinuxカーネル開発者のピーター・ザイルストラがAMDのパッチを洗練させました。IntelのエンジニアがAMDの軽減コードのカーネルの改良を主導しているのを見るのは、いくらか皮肉です。オープンソースコミュニティの精神へようこそ!

Linuxカーネルの開発者たちは、Downfallとして知られるインテルのGather Data Sampling (GDS) 脆弱性にも対処しました。この特定の脆弱性は、6世代のSkylakeから11世代のTiger LakeまでのインテルCoreプロセッサに影響を与えます。要するに、あなたのPC、サーバー、クラウドプロセッサがすべて脆弱である可能性があります。

ダニエル・モギミによると、ダウンフォールを発見したGoogleの上級研究科学者は、「この脆弱性は、インテルプロセッサのメモリ最適化機能によって引き起こされ、内部のハードウェアレジスタがソフトウェアに無意識のうちに公開されます。これにより、信頼されていないソフトウェアが通常はアクセスできない他のプログラムによって保存されたデータにアクセスできるようになります。」

では、どのくらい悪いのでしょうか?モギミは、他のユーザーのセキュリティキーやパスワードを盗むために悪用できる方法があることを示しました。さらに悪いことに、そのような攻撃は「非常に実用的」であるとモギミは指摘しています。「OpenSSLから暗号化キーを盗むエンドツーエンド攻撃を開発するのに2週間かかりました。それは攻撃者と被害者が同じ物理プロセッサコアを共有することを必要とするだけで、これは現代のコンピュータでは頻繁に起こります。プレエンプティブマルチタスクと同時マルチスレッドを実装しています。」

インテルソフトウェアガード拡張(SGX)は、悪意のあるソフトウェアからユーザーのデータを保護するためにインテルCPUで利用可能なインテルのハードウェアセキュリティ機能ですが、この脆弱性に対しては無力です。

一部のユーザーにとって、修正は問題以上の手間に思えるかもしれません。インテルによると、いくつかのワークロードでは最大50%のオーバーヘッドが発生する可能性があります。それはかなりの遅延です。しかし、モギミは警告します。「これは悪いアイデアです。たとえあなたのワークロードがベクター命令を使用しなくても、現代のCPUはメモリのコピーやレジスタの内容の切り替えなど、一般的な操作を最適化するためにベクターレジスタに依存しています。」

しかし、Linuxでは、遅延はそれほどひどくないかもしれません。Linuxソフトウェアエンジニアであり、ハードコアLinuxサイトPhoronixの編集長であるマイケル・ララベルは、Downfallパッチのベンチマークを行いました。ララベルは、Meltdown、Spectre、その関連の修正がI/Oやユーザ空間とカーネルの相互作用に影響を与えたのとは異なり、Downfallの修正はユーザー空間に束縛されたソフトウェアのみを損なうことを発見しました。彼はまた、パフォーマンスへの影響はIntelが予測したほどひどくはなかったものの、依然としていくつかの重要な遅延があったことを見つけました。

Linuxのセキュリティパッチは、次期Linux 6.5カーネルのためにLinux Gitに組み込まれました。これらのパッチを組み込んだ最新の安定版ポイントリリースには、Linuxバージョン6.4.9、6.1.44、5.15.125、5.10.189、4.19.290、4.14.321が含まれています。これらのリリースは、現在のLinux 6.4安定シリーズおよびサポートされている長期サポート(LTS)シリーズカーネルを網羅しています。

これらのパッチは、CPUの投機的実行の脆弱性の状態の報告を容易にし、最新のCPUマイクロコードと合わせてその動作を変更するための新しい制御を導入します。もちろん、これらのパッチが機能するためには、AMDおよびIntelのマイクロコード更新もインストールする必要があります。

では、何をすべきか?新しいマイクロコードが利用可能になり次第、インストールの準備を整えましょう。そして、その後、パッチが利用可能になるにつれてLinuxシステムをパッチ適用します。これはLinuxデスクトップユーザーにとっては大したことではありませんが、サーバーやクラウドでLinuxを運用している方にとっては大きな問題となるでしょう。

関連記事: