BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる

TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる

原文(投稿日:2018/06/26)へのリンク

TLBleedで知られるIntelプロセッサに影響を及ぼす新しいサイドチャネルの脆弱性は、Translation Look-aside Buffers (TLBs)でスヌーピングすることで情報を漏洩する可能性があると、VUsecセキュリティ研究者Ben Grasは書いている。

次のBlackhat 2018カンファレンスで自身の成果を発表するGras氏は、GPGで使われる暗号鍵を抜き出すことができると主張している。

我々はTLBleedからの抜き出し処理で、libgcrypt(例えばGPGで使用)から256ビットのEdDSAキーを漏洩できます。それは、共存するハイパースレッドの署名操作を1回だけ観察し、ちょうど17秒の分析時間で、98%の成功率です。

TLBは、頻繁に使用される仮想アドレスの物理メモリへの変換を高速化するために使用される一種のキャッシュである。TLBleedは、TLBを使って、ハイパースレッドが同じコア上で動作する別のハイパースレッドに属する情報にアクセスする方法を示している。これはCPUレジスタで価値のある情報が利用できるようになるときを検出するためのものである。この脆弱性はSpectre and Meltdownには関係しない。それら両方とも、推論実行の不具合を利用してCPUキャッシュから情報を漏らす。

この脆弱性の最も深刻な点は、実行されているコードパスではなく、データアクセスを使用しているということである。既知のサイドチャネル攻撃に対する既存の保護がTLBleedに対して効果的でないことを意味する。実際、Gras氏はTLBleedに基づく第2の攻撃について言及している。第2の攻撃とは、サイドチャンネル耐性RSA実装を含む最近のlibgcryptバージョンからビット列を漏洩することである。この第2のタイプの攻撃は、より効果的に行われるように機械学習技術を利用する。Gras氏らが著者であるホワイトペーパーにアクセスしたChris Williams氏は、暗号操作などの機密処理の実行を識別するために、TLBの待ち時間に基づいて、分類器を使用したと説明している。

インテルはこの脆弱性に対処しない。インテルは、他の種類のサイドチャネル攻撃を正しく防御するプログラムはTLBleedの影響を受けないと主張している。そのプログラムとは、例えば、暗号化キーを使用する場合とそうでない場合の両方で、データアクセスのパターンを同じに見せることである。これを理解しながらも、Gras氏は、libgcryptからのRSA鍵の漏洩が示すように、サイドチャネル攻撃を防ぐための完璧に書かれたプログラムはごくわずかしかないと主張している。

これはIntelプロセッサ用の同時マルチスレッド(SMT)の使用を無効にすることを決めたOpenBSD保守担当者の立場ではない。

現代の多くのマシンでは、BIOSセットアップでハイパースレッディングを無効にする機能が提供されていないため、我々が提供するスケジューラで追加のプロセッサスレッドの使用を無効にする方法を提供します。重大なリスクがあると思われるため、デフォルトでは無効にしています。

OpenBSDは将来このポリシーを他のCPUや他のアーキテクチャにも拡張する。

TLBleedに対するOSレベルの緩和により、同じコア上の異なるプロセスに属する2つのスレッドが同時に実行されるのを防ぐことができるが、常にOSスケジューラへの簡単な変更というわけにはいかない。

OSレベルでTLBleedに対処するために他のベンダーが何かを行うかどうか、またはクラウドプロバイダーが2つの異なる仮想マシンが同じコアを共有するのを防ぐものを提供するかどうかはまだ明確ではない。 InfoQは新しい情報が入り次第、報告する。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT