学術研究によると、インテルのCPUインターコネクトはマルウェアに悪用され、暗号化キーやその他の情報が漏洩する可能性がある。

Table of Contents

学術研究によると、インテルのCPUインターコネクトはマルウェアに悪用され、暗号化キーやその他の情報が漏洩する可能性がある。

アメリカのチップ破壊の天才たちが、インテルのプロセッサ設計上の選択を悪用して機密データを盗み出す新たな方法を考案した。

イリノイ大学アーバナ・シャンペーン校の博士課程学生リカルド・パッカネッラ氏、修士課程学生リチェン・ルオ氏、助教授クリストファー・フレッチャー氏は、CPUリングインターコネクトの仕組みを詳細に研究し、サイドチャネル攻撃に悪用される可能性があることを発見しました。その結果、あるアプリケーションが別のアプリケーションのプライベートメモリを推測し、ユーザーのキー入力を盗聴することが可能になりました。

「これは、Intel CPUのコア間相互接続における競合を悪用した初の攻撃です」とパッカネッラ氏はThe Registerに語った。「この攻撃は、メモリ、キャッシュセット、コア専用リソース、あるいは特定の非コア構造の共有に依存していません。そのため、既存のサイドチャネル防御では軽減が困難です。」

2018 年の Spectre や Meltdown の脆弱性のようなサイドチャネル攻撃は、最新のチップ マイクロアーキテクチャの特性を悪用して、共有コンピューティング コンポーネントまたはリソースとのやり取りを通じて秘密を公開または推測します。

8月に開催されるUSENIX Security 2021で発表される論文[PDF]「ロード オブ ザ リング: CPUオンチップ リング インターコネクトに対するサイド チャネル攻撃は現実的」の中で、Paccagnella、Luo、Fletcherの3人は、CPUコア間で情報を渡すIntelのリング インターコネクト、つまりバスの仕組みを解明した経緯を詳述している。

この理解を基に、研究チームは、サイドチャネル攻撃に対して既に脆弱であることが知られているRSAおよびEdDSA実装から暗号鍵ビットを漏洩できることを発見しました。また、キー入力のタイミングを監視できることも示しました。これは、以前の研究で入力されたパスワードを復元できることが示されています。

滅びの山を掘る

研究者たちが直面した課題は2つありました。まず、IntelはCPUリングバスの仕組みについて詳細な情報を提供していません。そのため、大規模なリバースエンジニアリングが必要になりました。

第二に、彼らの攻撃は競合を利用しており、この場合、異なるプロセスが同時にメモリにアクセスする際のレイテンシを監視する必要があります。このような監視は困難です。なぜなら、識別してフィルタリングする必要があるノイズが大量に存在するためです。また、プライベートキャッシュミス(システムが存在しないキャッシュ内のデータを探す)などの意味のあるイベントはそれほど頻繁に発生しません。

ボード上のロック。写真:Shutterstock

インテルのSGXクラウドサーバーのセキュリティは、30ドルのチップと電気系統の不正行為によって破られた

続きを読む

「非常に大まかに言えば、共有リング相互接続の帯域幅容量が限られているため、1 つのプロセスのメモリ アクセスが別のプロセスのメモリ アクセスを遅らせるという考え方です」と Paccagnella 氏は言います。

「リバースエンジニアリングから得た知識により、攻撃者/受信者は、被害者/送信者のメモリアクセスによって読み込みが確実に遅延されるように設定し、これらの遅延をサイドチャネルとして使用することができます。」

基本的に、これらの繰り返しのメモリロードにより遅延が発生し、観察者に秘密が明らかになる可能性があります。

パッカネラ氏によると、実演された2つの攻撃は、ローカルの攻撃者が被害者のマシン上で権限のないコードを実行するというものだ。例えば、ソフトウェアライブラリやアプリケーションに隠されたマルウェアなど、他のプログラムやユーザーを盗聴するコードだ。また、クラウドベースのシナリオでは、攻撃者が共有システムの管理者または共同テナントである可能性もあるが、実演攻撃は非仮想化環境で実行されており、他の状況ではテストされていないため、彼と同僚はそのような主張は控えたいと述べた。

さて、基本的なこと

この暗号攻撃は、同時マルチスレッド(SMT)が無効化されていること、マルチコアキャッシュベースの攻撃から防御するために最終レベルキャッシュ(LLC)が分割されていること、そしてセキュリティドメイン間のメモリ共有が無効化されていることを前提としています。また、キャッシュベースのプリエンプティブスケジューリング攻撃を防ぐため、システムがターゲットのキャッシュフットプリントをクリアするように設定されていることも前提としています。

  • Google は Chromium の ASLR セキュリティ防御のバイパスを調査したが、諦めてゴミ問題にパッチを当てない
  • Linuxのデータ漏洩を引き起こすSpectreの脆弱性は修正済みだと思っていましたか? もう一度考えてみてください。パッチは完璧ではありません
  • メルトダウン続編がインテルチップを襲う – データ干渉LVIの欠陥に対する完全な緩和策でパフォーマンスが大幅に低下
  • フォアシャドウが再び前面に:秘密を漏らす投機的実行のインテルの欠陥は依然として存在すると科学者らは言う

この攻撃は、クライアントクラスのCPUであるIntel Coffee LakeおよびSkylake CPUでテストされており、Xeon BroadwellなどのサーバーCPUでも動作するはずです。メッシュインターコネクトを採用した、より新しいIntelサーバーチップが影響を受けるかどうかは不明です。同様に、研究者たちは、異なるインターコネクト技術を採用しているARM CPUでこの手法がどのように機能するかについては検証していません。

全米科学財団とともにこの研究を支援したインテルは、CPU バスベースの干渉についてそれほど心配していない。

「インテルは私たちの攻撃を『従来型サイドチャネル攻撃』(TLBleed、Portsmashなど)に分類しました」とパッカネッラ氏は述べた。「インテルはこのクラスの攻撃を、『投機的実行/一時実行攻撃』(Spectre、Meltdownなど)とは異なる扱いをしています。つまり、インテルは従来型サイドチャネル攻撃を攻撃者にとって大きな価値を持つものとは考えておらず、ソフトウェアでサイドチャネル攻撃を軽減する方法に関するガイダンスを既にこちらとこちらで公開しています。」

Intel のアドバイスの一部には、タイミングベースの攻撃に対する防御として、定数時間プログラミング原則 [PDF] に頼ることが含まれています。

論文では、このような対策は、コードが一定時間ではないことを前提とする暗号攻撃に対する防御策となると指摘している。しかし、パッカネッラ氏は、それが必ずしも確実ではないと示唆している。

「真に定数時間で動作するコードを実際に実装するのは難しいかもしれません」と彼は述べた。「さらに、リングインターコネクト上で『ドメイン分離』を実現するには、追加のハードウェアサポートが必要になるでしょう。」

研究者たちは、3月7日日曜日に論文を発表した後、実験コードも公開する予定です。®

Discover More