キューバとフィンランドの天才たちが、Intel x64 プロセッサに新たなサイドチャネル脆弱性を発見した。この脆弱性により、攻撃者は暗号キーやその他の機密情報を盗み出すことができる可能性がある。
10月初旬にインテルにこの欠陥が公表された後、フィンランドのタンペレ工科大学とキューバのハバナ工科大学の研究者らが本日、「PortSmash」と呼ぶ概念実証を公開した。
研究チームは、このPoCを利用して、TLSサーバーからOpenSSL(バージョン1.1.0h以下)のP-384秘密鍵を盗み出しました。(OpenSSLのそれ以降のバージョンは影響を受けません。)
この秘密の監視を実行するには、エクスプロイトコードを攻撃対象のシステム、具体的には侵入したいプロセスと同じCPUコア上で実行する必要があります。つまり、リモートからソフトウェアを盗聴したり、同じホスト上で簡単に盗聴したりすることはできませんが、他人のコンピュータに侵入した執念深い悪意のある人物やスヌープにとっては有用となる可能性があります。つまり、PortSmashを実行するには、基本的に、そのマシン上で既に悪意のあるコードを実行できる状態になっている必要があります。
タンペレ大学パーベイシブ・コンピューティング学部の助教授ビル・ブラムリー氏は、セキュリティ関連のメーリングリストへの投稿で、情報漏洩はインテルのハイパースレッディングと呼ばれる同時マルチスレッディングの実装によって可能になったと述べた。
SMTは、通常、2つの別々に実行中のプログラムがほぼ同時に同じCPUコアを共有できるようにすることで機能します。つまり、1つまたは複数のプロセス内の2つのスレッドが、1つのプロセッサコアで同時に実行できます。4つのコアがあり、コアごとに2つのSMTハードウェアスレッドがある場合、アプリケーションソフトウェアに関しては、実質的にプロセッサあたり8つのコアがあり、1秒あたりに実行できる処理量が増えることになります。したがって、SMTはワークロードの種類に応じて、パフォーマンスを向上させる場合もあれば、低下させる場合もあります。
欠点は、あるハードウェアスレッドのコードが、同じコア上の別のハードウェアスレッドのコードを覗き込み、相手が何をしているのかを推測できることです。これは、キャッシュへのアクセスパターンを調査したり、操作の完了にかかる時間を計測したりすることで可能です。そのため、特に暗号化ソフトウェアの開発者は、サイドチャネル盗聴を阻止するための防御策を組み込むことが推奨されています。
「我々はポート競合を検出し、同じ物理コア上で並行して実行されているプロセスから情報を抜き出すためのタイミングサイドチャネルを構築します」とBrumley氏は述べた。
TLBleed とは:Intel が心配する必要がないと考えている暗号キー漏洩 CPU 攻撃
続きを読む
つまり、この攻撃は、PortSmashプロセスを、選択された標的プロセスと並行して、同じCPUコア上で実行することで機能します。各プロセスは、コアの2つのSMTハードウェアスレッドのいずれかを使用します。PortSmashコードは、タイミングの差異を測定することで、他のプロセスが実行する操作を盗聴し、保護されているデータを徐々に判別します。
つまり、スパイ対象のプロセスが何らかの暗号化を実行している場合、同じCPUコアを共有するPortSmashプロセスが被害者のプログラムから復号鍵などの秘密情報を抽出できる可能性がある。
Brumley氏は、修正方法として、プロセッサチップのBIOSでSMT/ハイパースレッディングを無効にすることを提案している。OpenBSDはセキュリティ上の理由から、既にIntelのハイパースレッディングを無効にしている。
ブラムリー氏によると、このPoCはIntelのSkylakeとKaby Lakeではすぐに動作するが、他のIntel製チップではテストされていないという。コードを修正すれば、AMDのZen CPUファミリーなど、他のSMTアーキテクチャでも動作する可能性があるとブラムリー氏は示唆している。
CVE-2018-5407という脆弱性が提案されていますが、Intelはパッチを当てる価値はないと考えているようです。まず、この脆弱性は今年発生した投機的実行脆弱性(Spectre、Meltdownなど)とは全く関係がありません。
Intelの広報担当者は、 The Register宛ての電子メールで声明を発表し、SMTサイドチャネル攻撃に耐性のあるコードを書くなど、既存のソフトウェア保護によってリスクを軽減できると示唆した。Chipzillaは基本的に、この欠陥に関するメーリングリストの議論で示唆された、これは脆弱性というよりもSMTに起因する「完全に想定された設計特性」であるという見解をとっている。
「インテルは今回の研究について通知を受けました」と、チップメーカーの広報担当者は述べた。「この問題は投機的実行に依存しておらず、したがってSpectre、Meltdown、L1 Terminal Faultとは無関係です。インテルのプラットフォームに固有のものではないと考えています。サイドチャネル解析手法の研究は、多くの場合、共有ハードウェアリソースのタイミングなどの特性を操作および測定することに焦点を当てています。ソフトウェアまたはソフトウェアライブラリは、サイドチャネル対策開発手法を採用することで、このような問題から保護できます。」
インテルの広報担当者は、同社は顧客データの保護を真剣に受け止めており、最優先事項と考えているとの主張を繰り返した。
AMDの広報担当者は、調査中であると述べました。「AMDではセキュリティを最優先事項としており、新たなリスクが発生するたびにユーザーの安全を確保するために継続的に取り組んでいます。先日受領したPortSmashサイドチャネル脆弱性レポートを調査し、AMD製品の潜在的な脆弱性を把握しています。」®