Bromium共同創設者イアン・プラット、SpectreとMeltdownを語る

Ian Pratt, Bromium Co-Founder, Speaks on Spectre and Meltdown [Part I] and [Part II] by Ian Pratt / 2018年1月8日 より

Intelのチップの脆弱性に起因してSpectreとMeltdownと呼ばれる、情報漏えいに繋がる脆弱性が引き起こされました。
双方とも、一般ユーザー空間で実行された攻撃さえ、他のプロセスに属するデータの参照を可能にし、さらに特権がある場合はカーネル自体を含むプロセスの読み込みを可能にしてしまいます。
MeltdownはIntelのCPUにしか見られませんが、Spectreの脆弱性は、IntelやAMDをはじめとした大半の最新CPUや、ARMなどの異なるアーキテクチャでも存在します。
SpectreとMeltdownは共に、攻撃側はターゲットにするシステム上でコードを実行する必要があります。
マイクロ仮想化は、カーネル関係の脆弱性からでさえ、非常に効果的な保護になります。

SpectreとMeltdown、これらがコンピューティングにとって意味すること

この2つの脆弱性は、世界中の多くの団体、特にGoogleとグラーツ工科大学(Graz University of Tech)によるセキュリティ研究によって発見されました。彼らは20年前にPentium ProでCPUに導入された、マイクロアーキテクチャーの機能(投機的実行と分岐予測子)のセキュリティの影響調査を独自に開始し、パフォーマンス向上を追及し、洗練され続けていました。

情報漏えいに繋がる脆弱性の幾つかは、攻撃者が漏洩したものの多くを操作できなかったり、わずかなバイト数しか漏れないため、実際には大きな問題にはなりません。一方、SpectreとMeltdownは、攻撃側がメモリ領域を自由に読むには努力を要するとはいえ、潜在的にはメモリのどの領域も好きに読ませてしまう可能性があるため深刻です。

攻撃者はメモリ上のデータの変更や、実行状態を変更することはできません (したがって、権限を直接的に昇格させたり、システムを感染させることはできません)が、カーネルメモリを読むことで、興味深い秘密を取得できるかもしれ ません。たとえば、管理者アカウントのパスワードハッシュを知ることができれば、それを悪用して管理者としてログインし、マルウェアをシステムに好きなようにインス トールすることもできます。

SpectreとMeltdownの除去には、特にSpectreには多少の努力が必要

(この問題について)これまでに示されているデモンストレーションは、少々故意的な意図の上での証明であり、実際には、攻撃者がターゲットシステムに関する 多くの詳細な情報を習得する必要があるため、現実にはこうした攻撃の実行は、確かに困難になるでしょう。 もし、あなたが重要な顧客の機微な処理を実行している数十万の表面上同じシステムを持つ、大規模なクラウドプロバイダで あったとしたら、SpecterとMeltdownについて、非常に真剣に受け止める必要があります。誰かがあなたのシステムについて、十分な情報を得た上で、攻撃を仕掛けようと努力しているかもしれません。

典型的な業務用途のサーバーの場合、信頼できないコードの実行を許可するか否かを自問する必要があります。(Terminal Serverなど)これを必要とするアプリケーションがいくつかはありますが、大抵の場合はサーバー上で実行されるコードは制御されています。 このようなサーバーの場合、心配する必要はありません。

一方、企業組織内のデスクトップは通常、信頼できないユーザーがおり、Webページやドキュメントなど、信頼できない コードを実行し、危険にさらす事になりますが、SpectreとMeltdownに関しては、CISOの懸念事項リストの、特に上位にする必要はありません。 過去数ヶ月間には、SpectreやMeltdownよりも強力で、悪意の攻撃者により使用される可能性が高い、他の脆弱性も報告されています。 いつの日か、攻撃者が特権昇格に使用するSpectreまたはMeltdownを目にするかもしれませんが、その日が早々に来たら、私自身はむしろ驚くと思います。もちろん、セキュリティ研究者による、危険性に関してよりよい説明を耳にする事もあるでしょうが、それが攻撃者によって使用されているか否かは別の問題です。

Spectre と Meltdownについて、CPUやOSベンダーがしていること

CPUのバグはまれです。CPUは非常に複雑なハードウェアですが、ベンダーはセキュリティ上の脆弱性を回避し、正当な用途に向けての大量のテストを行う、素晴らしい仕事をしてい ます。

過去何年にもわたり、いくつかのバグが発見されています。CPUベンダーがファームウェアやOSのアップデートの一部と してインストールするマイクロコードアップデートを発行し、問題を修正する場合があります。他のケースでは、CPUベンダーは、OSやハイパーバイザーベンダーの助けを借りて問題の回避策を考え出す必要があります。 最悪のケースのシナリオは、CPUベンダーがリコールを実施し、全てのCPUを交換する必要がありますが、それは24 年前の悪名高いPentium FDIVバグ以降では起きたことはありません。

通常、CPUベンダーとOSベンダーは、問題を緩和するソフトウェアまたはマイクロコードによる対策を策定するとができます。 パフォーマンスの損失が見られる場合もあれば、見られない場合もあります。SpectreとMeltdownの場合、問題を緩和し、OSを安全にするために必要なソフトウェアとマイクロコードの回避策の、前例のない複雑な組み合わせが存在します。

マイクロソフトではこれまでこのような事をしたことがありません。つまり、Meltdownを回避するために仮想メモリシステムの動作方法に大きな変更を加えたのです。Spectreを軽減するためのカーネルへの変更は、小さいながらも広 範囲に及んでいます。 マイクロソフトは既にWindows 7、8、および10用のパッチの提供を開始しましたが、Intelや他のシステムベンダーは、新しいマイクロコードをインストールするためのファームウェ アアップデートはまだ準備されていません。

Intelに固有のMeltdown軽減パッチはパフォーマンスに影響します。この影響は、CPUの新しさと、PCID と呼ばれるものがサポートされているかどうかに依存します。PCIDは、TLBエントリフラッシュの発生の一部を回避し、オーバーヘッドを削減するものです。 パフォーマンスの影響は、アプリケーションがシステムコールを行う頻度に大きくします。ユーザー空間ですべての時間を費やすアプリケーションは、事実上 オーバーヘッドは見られません(例:ビットコインマイニング)。 一方、データベースのようなサーバーアプリケーションでは、IOとシステムコールが大量に発生するため数十パーセントのオーバーヘッドが発生する可能性があります。しかし、信頼されていないコードが実行されている可能性の低さから、データベースサーバがMeltdownの緩和を本当に必要とするか否かは明らかではありません。

仮想化ベースのセキュリティのファンの皆さんは、ほとんど気にする必要はありません

SpectreまたはMeltdownを使用して、OSカーネルから機密情報を盗むための攻撃が、Word文書のペイロードとして試みられたとします。 ユーザーがこのような文書をBromiumマシンで開いた場合、その文書はマイクロ仮想マシン(VM)内で開き、攻撃の対象はゲストカーネルに対しするものになります。Bromiumシステムでは、ゲストカーネルには、実際の重要な情報は含まれていません。ホストのパスワードハッシュや秘密鍵はそこには存在しないため、盗まれることは起こりえません。

Bromiumは、情報を盗むため、もしくは不正な特権取得などに、SpectreやMeltdown等を用いた攻撃者による、コード実行の可能性がある攻撃面においてホストシステムを保護します。Bromiumのハイパーバイザーを標的にしたカスタム攻撃を意図的に作成して、ゲスト側からホスト上の重要情報にアクセスを試みるような状況も気に掛ける必要はあります。

しかし幸いにも、CPU仮想化の拡張機構は強力な隔離を実現できるため、ゲストカーネルが脆弱かどうかにかかわらず、Meltdownがホストのメモリにアクセスする能力を完全に凌駕します。

Spectreに関する状況は、少し微妙です。

CPUの分岐予測ロジックが、ゲストとホスト間で共有されるため、攻撃者がゲストの中からSpectreを使用してホストメモリを読み込むためには、特別な攻撃方法を講じる必要があります。ハイパーバイザーが存在すると、間接性のレベルが 高まり、状況はより困難になります。

私たちはIntelとAMDと協力して、Bromiumハイパーバイザーに、いくつかの緩和策を追加しています。これにより、この脆弱性はさらに解消され、新たなマイクロコードとの連携でさらに強力な保護が可能になります。これを攻撃する難易度は既に非常に高いため、Bromiumでは重要なアップデートとは見なしていません。セキュリティコミュニティとの連携で、今後数週間での改善を予想しています。

長期的には、将来のIntel CPUはMeltdownを完全に回避し、また、CPU予測ロジックにタグを付与することでSpectreによる間接的な分岐攻撃をより困難にします。 チェックのバイパスに向かうSpectreは、OSとコンパイラのベンダーが、常に注意する必要があるものになるでしょう。

結論:マイクロ仮想化はSpectre、Meltdown、その他たくさんに役立つということです。

最も重要な事は、マイクロ仮想化は、企業のセキュリティチームの悩みの種である、はるかに多くの一般的なアプリケーションやOSのバグ、さらに人間の行動から発生する問題について強力に支援することです。Bromiumが、従来のセキュリティソリューションを利用する悪質な電子メールの添付ファイル、フィッシング、悪質なダウンロードからあなたを守る方法について、詳しくは、こちらをご覧ください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする