ビデオ情報セキュリティの専門家によると、Intel のネットワーク技術に存在する興味深いサイドチャネルの脆弱性を悪用することで、ネットワーク経由でターミナルに入力された SSH パスワードを判別することが可能だという。
つまり、適切な位置にいる盗聴者は、Intel の脆弱なチップセットのいずれかを搭載したサーバーに接続し、同じサーバーに接続している被害者が個別に送信したデータ パケット (対話型ターミナル セッションでのキー入力など) のタイミングを観察できる可能性があるということです。
こうしたタイミングによって、被害者が押したキーの特定情報が漏洩する可能性があります。これは、人々がキーボード上で指を特定のパターンで動かし、各キーの押下の間には文字ごとに異なる顕著な休止期間があるためです。この休止期間を分析することで、ネットワーク経由で送信された特定のキー押下情報、さらにはパスワードやその他の機密情報もリアルタイムで明らかにできるとされています。
盗聴者は、一連のネットワークパケットをサーバーに繰り返し送信し、プロセッサのメモリキャッシュの1つを直接埋めることで、この監視を実行できます。被害者がパケットを送信すると、盗聴者のデータはこの受信トラフィックによってキャッシュから押し出されます。盗聴者はキャッシュを素早く埋め戻すため、データがまだ存在しているか、それともキャッシュから追い出されたかを検知し、被害者がデータを送信したという事実を漏らします。これは最終的に、被害者の受信パケットの間隔、ひいては被害者が押したキーと送信したキーを特定するために使用できます。
このセキュリティ上の欠陥を悪用するのは容易ではなく、Intel自身もこれを大した問題だとは考えていません。しかし、それでもなお、注意すべき魅力的な脆弱性であることは間違いありません。ただし、スヌーパーはIntelのData Direct I/O(DDIO)テクノロジーを使用してサーバーに直接接続している必要がある点に留意してください。また、これは中間者攻撃や暗号解読ではなく、キャッシュを観測するサイドチャネルリークです。また、大量のインタラクティブデータが流入する高負荷のシステムでは、確実に機能しない可能性があります。
仕組み
DDIOは、ネットワークインターフェースにシステムRAMをバイパスし、ホストプロセッサの最終レベルキャッシュに直接データを書き込む機能を提供します。実際には、これによりレイテンシが低減され、システム内外の情報の流れが高速化されます。また、Webホスティングから金融取引まで、I/Oがボトルネックとなりやすいアプリケーションのパフォーマンスが向上します。
残念ながら、オランダのアムステルダム自由大学のシステムおよびネットワークセキュリティグループであるVUSecの研究者たちが発見したように、CPUキャッシュへのこのリープはサイドチャネル攻撃の脆弱性を孕んでいます。今年初め、ホワイトハットチームはDDIOを悪用してネットワーク上の他のユーザーを監視する、前述の手法を発見・文書化しました。そして、この脆弱性をIntelに非公開で開示した後、本日、その調査結果を公表しました。
ちなみに、DDIO は 2012 年以降のすべての Intel サーバーグレード Xeon プロセッサでデフォルトで有効になっています。
NetCATと呼ばれるこの手法は、以下の図にまとめられています。Throwhammerに類似したこのエクスプロイト手法では、盗聴者が監視対象が使用しているDDIO対応マシンにRDMAベースのInfinibandネットワークで直接接続されたサーバーに侵入している必要があります。そのためには、盗聴者が組織のインフラストラクチャに足場を築いている必要があります。
スヌーピング技術のブロック図… クレジット: VUSec
スパイは接続されると、ネットワーク経由でプロセッサの最終レベルキャッシュを繰り返し満たし、事実上キャッシュを自身のデータで溢れさせます。スヌープは接続のレイテンシのわずかな変化を観察し、他のネットワークユーザーによってデータがキャッシュからRAMに追い出されたタイミングを検出します。この手法はプライム+プローブと呼ばれます。この追い出しのタイミングから、被害者のキー入力情報が漏洩します。
重要なのは、この最終レベルのキャッシュの一部がこの直接 IO 使用のために予約されているため、プライム + プローブ方式では、CPU コアを介して実行されるコードやアプリケーション データによる問題が起こらないことです。
つまり、基盤となるハードウェアが機密情報や秘密情報を不用意に漏洩する可能性があるということです。NetCATに関するより詳細な技術的情報は、来年5月に正式に公開される予定です。
「キャッシュ攻撃は従来、ローカル設定(例えば、攻撃者が制御する仮想マシンから、クラウド プラットフォーム上の CPU キャッシュを共有する被害者の仮想マシンへ)で機密データを漏洩させるために使用されてきた」と、この発見によりインテルからセキュリティ バグ報奨金を授与された VUSec チームは説明した。
「NetCAT により、この脅威がネットワーク上の信頼できないクライアントにまで及んでおり、ローカル アクセスのないリモート サーバーから SSH セッションのキーストロークなどの機密データが漏洩する可能性があることが示されました。
対話型のSSHセッションでは、キーを押すたびにネットワークパケットが直接送信されます。その結果、被害者がコンソール上の暗号化されたSSHセッション内で文字を入力するたびに、NetCATは対応するネットワークパケットの到着時刻を漏洩することで、イベントのタイミングを漏洩する可能性があります。
パケットのタイミングを入手した攻撃者は、観測された遅延をターゲットの入力パターンのモデルと比較することで、これらの間隔を特定のキーストロークに一致させることができる可能性があります。
最終結果は、以下に示すように、共有サーバーのみを使用して SSH セッションをリアルタイムでスパイする方法です。
YouTubeビデオ
FAQ の中で、学者たちは具体的に何が危険にさらされているかを次のように説明しています。
この設計上の欠陥の名前について疑問に思われた方は、
これらすべてが現実には複雑で実現不可能に思えるなら、それはその通りです。少なくともIntelによると、VUSecが提示したシナリオは、実用的な攻撃シナリオというよりは、概念実証に近いものです。
「Intelはこの調査の通知を受け、複雑さ、ユーザーインタラクション、DDIOとRDMAが通常使用されるシナリオで必要となる通常とは異なるレベルのアクセスを主な理由として、深刻度が低い(CVSSスコア2.6)と判断しました」とChipzillaの広報担当者はThe Registerに語った。
デジャヴー!Windows 搭載の Intel チップ、恐ろしい Spectre 亜種に脆弱になる可能性
続きを読む
追加の緩和策としては、定数時間型コードを用いたタイミング攻撃に耐性のあるソフトウェアモジュールの使用が挙げられます。学術コミュニティの皆様の継続的な研究に感謝します。
ほとんどのサイドチャネルリークと同様に、実際にバグを悪用するプロセスは面倒で起こりにくいものの、ハードウェアの再設計以外では対処が困難、あるいは不可能となる可能性のある根本的な欠陥を実証しています。
VUSec は、タイミング攻撃に対するソフトウェア保護を追加することで NetCAT ベースのスパイ行為を阻止できるという Intel の見解に同意していますが、脆弱性を排除する唯一確実な方法は、DDIO を完全に無効にして、パフォーマンス上の利点を失うことです。
「ネットワーク カードがキャッシュ内に明確なパターンを作成する限り、リモート サーバーで実行されているソフトウェアに関係なく、NetCAT は効果的です」と VUSec チームは述べています。®