BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 動的プロセス分離はクラウドシステムでSpectreの対処に役立つ

動的プロセス分離はクラウドシステムでSpectreの対処に役立つ

原文(投稿日:2021/10/24)へのリンク

Cloudflare で開発された動的プロセス分離は、Spectre のような攻撃から効果的な保護を提供し、複数のテナント間の Spectre 攻撃を完全に軽減して、システムを保護する技術であると、先ごろ Cloudflare と Graz University の共同研究が示した。

Cloudflare のエンジニアである Kenton Varda 氏が説明するように、Spectre 攻撃はプロセッサのマイクロアーキテクチャの欠陥を利用しようと「病理学的パフォーマンスシナリオ」の作成を試みることを考慮に入れると、動的プロセス分離の背後にあるアイデアの理解がしやすくなる。

この影響は、CPU パフォーマンスカウンタなどのメトリックスに現れる傾向がある。部分的な緩和策が展開されている場合、攻撃者は試行回数を増やす必要がある。そのような攻撃を検出した時、影響を受けたワーカをプロセスに再スケジュールして、攻撃を打ち負かすことができる。

ワーカを分離するということは、基本的に V8 JavaScript エンジンで使用される手法である「分離」された外のメモリにアクセスできないようにすることを意味する。マルチテナントシナリオでは、複数の顧客が同じプロセスを共有し、顧客は独自の分離を使用して、一定レベルの保護を確保する。

現在、プロセスは OS またはカーネルレベルで Spectre 攻撃に対して強化できますが、同じプロセス内での分離は同レベルの保護を提供できない。つまり、疑わしいワーカを独自のプロセスに再スケジュールするほかない。

上で説明したように、オーバーヘッドが高すぎるため、すべてのワーカでこれを行うことはできません。しかし、プロセスを処理することはまったく問題ありません。防御的に、ほんの少しのワーカを分離します。ワーカが正当な場合、オーバーヘッドは少し増えますが、正常に動作し続けます。[...] ワーカが分離されると、たとえば、ほとんどのデスクトップ Web ブラウザが現在行っているように、オペレーティングシステムの Spectre 防御に依存できます。

Cloudflare が1年前にこのアプローチを説明して以来、動的プロセス分離はプロダクションに完全にデプロイされている。彼らの新しいアプローチの有効性を評価するために、Cloudflare は Technical University Graz のチームと協力して、Spectre のような攻撃を開発し、動的プロセス分離を使用して保護されているシステムに対して攻撃を始めた。

分岐の予測ミスの測定に基づく検出器を開発しました。Spectre バリアント 1 攻撃 (最も速くて簡単な種類の Spectre 攻撃) は、CPUの分岐予測をだまして、投機的なコード実行をトリガすることで機能します。このような攻撃が、私たちの環境で実行されている場合、ノイズフロアを克服するための統計を適用するのに十分なデータを取得するために、ループ内で繰り返し予測ミスをトリガする必要があります。

この検出手法は、2.83% の誤検出率を達成し、プロダクション環境でのトータルのオーバーヘッドは 50% だった。ワーカが消費する CPU 時間のしきい値を設定することに基づく代替の手法では、合計 2% のオーバーヘッドで 0.61% の偽陽性率を達成し、実行可能なソリューションになった。

研究者によると、しきい値を超えるワーカに動的プロセス分離を適用すると、よいパフォーマンスで厳密なプロセス分離と同じ保証が提供される。

動的プロセス分離は、Cloudflare が強力な条件下でシステムに適用する汎用的な手法だ: V8 の分離に依存しているため、JavaScript/WebAssembly コードのみを実行できる。つまり、彼らのアプローチを別のプラットフォームに適用するのはそれほど簡単ではないかもしれない。Cloudflare で動的プロセス分離がどのようにデプロイされているかをよりよく理解するには、Varda 氏による元の記事を見逃さないように。

この記事に星をつける

おすすめ度
スタイル

BT