CPUの投機的実行の欠陥を利用した2つの新しい脆弱性が最近明らかにされた。Specter 1.1および1.2と呼ばれ、オリジナルのSpectre(Spectre-v1)脆弱性の変種である。Specter 1.1および1.2は、投機的ストアを利用して、Spectre-v1の軽減を逃れるための投機的バッファオーバーフローを作成する。
Vladimir Kiriansky氏とCarl Waldspurger氏は、自身の論文で次の通り述べている。
任意の投機的な書き込みを実行する機能は、任意の投機的な実行を含む影響の大きい新たなリスクをもたらします。残念ながら、これはSpectre1.0ガジェットがなくても、ローカル攻撃とリモート攻撃の両方を可能にします。また、攻撃者は、以前の投機的実行攻撃に対して推奨されていたソフトウェアによる軽減策を回避できます。
新しい脆弱性を公開したセキュリティ研究者は、次のコードでSpectre 1.1の概念実証(PoC)攻撃を提供している。
if (y < lenc)
c[y] = z;
上記のコードの問題は、投機的分岐実行中にCPUが境界チェックを無視する可能性があり、そのため攻撃者が任意にメモリを上書きする可能性を残してしまうことである。このメカニズムにより、続くSpectre-v1攻撃で使用されるデータを一時的に上書きすることができる。
Spectre 1.2は、ページテーブルエントリ(PTE)のユーザー/スーパーユーザー保護チェックの遅延実行を利用する。したがって、投機的なデータ攻撃は、コードポインタ、vtable、制御フロー軽減メタデータを含む読み取り専用データを上書きする可能性がある。
研究者は、投機的実行を完全に停止する投機的フェンスの使用を含む、ソフトウェアとハードウェアの両方の軽減策を説明した。例えば、マスキングではインデックス値を、領域外にするような試みが行われる前に、マスキングするため、配列内のその位置へのその後のアクセスは領域外メモリにアクセスしなくなる。また、新しい攻撃に対するソフトウェア防御は、古典的なバッファオーバーフローを防ぐ技術と同じであることを指摘した。
それらを防ぐための第一歩は、スタックオーバーフロー、ヒープオーバーフロー、整数オーバーフローなどに対する既存のチェックを強化することである。
Kiriansky氏とWaldspurger氏はIntel、ARM、AMD、Google、IBM、Microsoftに2つの新しいSpectre亜種を報告しているが、パッチはまだ提供されていない。
Rate this Article
- Editor Review
- Chief Editor Action