RSS
Blog
Xen記事画像シリーズパート3

Xen仮想化とクラウドコンピューティング#03:Xenの主な機能

15年2020月XNUMX日-MohsenMostafaJokar著

このシリーズの前回の記事では、仮想化を紹介し、Xenが仮想化を効率的に提供するように設計されていることを示しました。 ここでは、いくつかの興味深い機能とその重要性について詳しく説明します。 より大きなリストは、適切な場所にあります。 機能に関するプロジェクトページ。 この記事を書いている時点で、XenProjectの最新バージョンは4.13です。

セキュリティ関連の機能

メルトダウンとスペクター 最新のマイクロプロセッサの複雑なパフォーマンス向上機能を悪用するプロセッサの脆弱性は、オペレーティングシステムとアプリケーションの開発者に手ごわい課題を提示しています。 MeltdownとSpectreは、2018年XNUMX月に正式に発見されました。このセクションでは、これらの困難な脆弱性を軽減するためのXenのXNUMXつの機能強化について説明します。

Xenパンダマスコット

Meltdownは、Intel x86、IBM Power、および一部のARMマイクロプロセッサに影響を及ぼし、悪意のあるプロセスが現在のプロセスのメモリ空間にマップされている任意のアドレスからデータを読み取ることを可能にします。 事実上、プロセスは許可なくすべてのメモリを読み取ることができます。 悪意のあるプロセスは、個別に安全ないくつかのプロセッサ機能(キャッシュやパイプラインなど)の実行におけるタイミングの欠陥を見つけることによってこれを実現します。 開示の時点で、この脆弱性は多くの製品に影響を及ぼし、膨大な数のサーバーとクラウドプロバイダーに影響を及ぼしました。 企業はMeltdownの脆弱性をブロックするパッチを書き始め、5〜30%のパフォーマンス低下を引き起こしました。

Spectreは、最新のパフォーマンス機能も活用しています。 最新のマイクロプロセッサでは、デジタル回路は、プログラムの実行前に収集された情報を使用して、「if…else」ステートメントなどの条件付き演算の結果を推測しようとし、最も可能性の高い結果に備えます。 それ。 言い換えると、if-then-elseステートメントが正確に認識される前にその方法を推測しようとします。 この手法の名前は分岐予測です。 これは、x86などの最新のCPUアーキテクチャの重要なコンポーネントであり、より高いパフォーマンスを実現する上で重要な役割を果たします。 Spectreは、ブランチ予測システムを利用して、プログラムの割り当てられたメモリ内の任意の場所を読み取ります。 この攻撃はJavaScriptを使用してブラウザに実装できるため、ブラウザを最新の状態に保つことが重要です。

15年2018月8日、Intelは、MeltdownとSpectreからの保護を支援するためにCPUプロセッサを再設計すると報告しました。 2018年XNUMX月XNUMX日、Intelはこれらの攻撃を軽減するために、最新のプロセッサにファームウェアを追加しました。

MeltdownとSpectreを軽減するためのハイパーバイザーの変更

Xenハイパーバイザーは、他の製品と同様に、これらの脆弱性の影響を受けました。具体的には、次のとおりです。

  • 「RogueDataLoad」(別名SP3、「Variant 3」、Meltdown、CVE-2017-5754)
  • 「分岐ターゲットインジェクション」(別名SP2、「バリアント2」、Spectre CVE-2017-5715)
  • 「境界チェックバイパス」(別名SP1、「バリアント1」、Spectre CVE-2017-5753)

これらの脆弱性によるリスクを完全に防ぐ方法はありませんが、実行境界やその他のチェックをコードに追加すると、部分的に穴が塞がれる可能性があります。 したがって、脆弱性の「緩和」について説明します。

Xenプロジェクトの最初の焦点は、Meltdown、次にSpectre Variant 2、最後にSpectre Variant 1の修正でした。SP1とSP2はIntelとAMDプロセッサに影響しますが、ARMプロセッサはモデルとメーカーによって異なります。 SP3はIntelプロセッサにのみ影響します。 Meltdownを軽減するために、Xen Projectは、Vixen、Comet、およびPTIという名前の1つのソリューションを公開しました。 残念ながら、SP1を軽減するための修正には、IntelおよびAMDからのマイクロコードの更新が必要です。 したがって、現在、SPXNUMXの緩和策はありません。 しかし、その攻撃対象領域は、CitrixがXenプロジェクトに提供したテクノロジーによって減らすことができます。 それは枝の硬化によって機能します。

  • SP2は、マイクロコード、コンパイラー、およびハイパーバイザーの変更を組み合わせることで軽減できます。
  • SP3は、ページテーブル分離(PTI)によって軽減できます。

これらの脆弱性とXenプロジェクトの対応に関する最新情報については、を参照してください。 私たちのアドバイザリー254.

コアスケジューリング

SuSE Linuxによって提供されたこのテクノロジーは、MeltdownまたはSpectre違反の悪影響を抑えるのに役立ちます。 通常、すべての仮想CPUは任意の物理CPUでスケジュールでき、効率的なスケジュールのために物理CPU間を移動できます。 これにより、都市間の移動によって感染がより早く広がるのと同じように、あるVMから別のVMに情報が漏洩するリスクが高まりました。 この脆弱性を完全に軽減する唯一の方法は、ハイパースレッディングを無効にすることです。これにより、パフォーマンスが大幅に低下します。

コアスケジューリング機能により、Xenは仮想CPUをグループ化し、限られた物理コアのセットでそれらをスケジュールできます。 このテクノロジーを使用すると、ユーザーはハイパースレッディングを有効に保つことができます。 初期のベンチマークでは、多くのワークロードでパフォーマンスが低下していることが示されています。 SUSEとCitrixはこの機能に取り組んでおり、今後のリリースでは、セキュリティとパフォーマンスの間のトレードオフが改善されることを期待しています。

ハイパーバイザーベースのメモリイントロスペクション(HVMI)

これは寄贈された技術です ビットディフェンダー Xenで実行されるオペレーティングシステムのマルウェアから保護するために、30年2020月XNUMX日にXenプロジェクトに追加されました。 HVMI ゲストオペレーティングシステムのマルウェア検出システムに比べて重要な利点があります。スマートマルウェアはゲスト全体を乗っ取り、ゲストの検出または防止メカニズムを無効にすることができますが、マルウェアは基盤となるハイパーバイザーに到達する方法がありません。

マルウェアは、いくつかの理由で非常に危険になり、戦うのが困難になっています。

  • システム上のXNUMX人の知らないユーザーが感染したWebサイトにアクセスしたり、信頼できる人から受け取ったファイルを開いたりすると、システムに侵入する可能性があります。
  • オペレーティングシステムの脆弱性を悪用して、スーパーユーザー権限を取得し、システム全体を乗っ取る可能性があります。 マルウェアをXNUMXつの領域に制限するために、特権を分割するオペレーティングシステムはほとんどありません。
  • ファイルやその他のトレースを管理者から隠し、それを阻止するために設計された対策を無効にするのに十分なほど洗練されています。

マルウェアの力を示す注目すべき物語は、 カルババクは、100か国の1以上の銀行に感染し、世界で2013億ドル相当の損害を与えました。 XNUMX年後半、キエフの銀行を調査したところ、Carbanakによって注入されたステルスマルウェアが銀行の内部システムを数か月間監視し、その経路をうまくカバーしていることが明らかになりました。 このマルウェアは、すべての従業員の活動を記録し、注意を引くことなく侵入者にビデオと画像を送り返しました。

ビットディフェンダー 名前はすべてのITスタッフによく知られています。 これは世界をリードするサイバーセキュリティ企業であり、世界中で500億を超えるシステムを保護しています。 BitdefenderとCitrixはで協力しました Citrixハイパーバイザー。 ご存知のとおり、ハイパーバイザーはVMを相互に分離し、各仮想マシンで使用されるメモリに関するクリーンで低レベルの情報を提供します。 このコラボレーションの結果、インフラストラクチャで発生しているすべてのことを確認できるが、マルウェアが到達できない新しいセキュリティレイヤーが作成されます。 BitdefenderのHypervisorIntrospection(HVI)テクノロジーは、生のメモリを直接操作することにより、疑わしいアクティビティを検出します。 このレベルでは、マルウェアは隠れることができません。

Bitdefender HVIは、システムがクリーンでないことを前提としており、ライブ仮想マシンにクリーニングツールを挿入するように命令できます。 HVIは、攻撃者が使用する脆弱性を知らなくても、Carbanak、Turla、APT28、NetTraveler、Wild Neutronなど、最も有名な攻撃をすでに検出してブロックしています。

BitdefenderがHVIをオープンソースとしてXenにリリースすることを決定したとき、彼らはそれをハイパーバイザーベースのメモリイントロスペクション(HVMI)と呼びました。 HVMIテクノロジは、実行中のLinuxおよびWindows VM内のメモリイベントを理解し、セキュリティロジックを適用します。 既知および未知の脆弱性を悪用するために使用されたメモリベースの攻撃手法の兆候がないか、リアルタイムでメモリを調べます。

これに加えて、Bitdefenderはその「薄い」ハイパーバイザーテクノロジーをオープンソース化しました。 ナポカ、Xenプロジェクトに寄付しました。 Napocaハイパーバイザーは、HVIテクノロジーの開発に使用されました。 Napocaの特徴的な機能は、すべてのハードウェアではなくCPUとメモリを仮想化するため、完全なハイパーバイザーを実行していないマシンでハイパーバイザーをイントロスペクトできることです。

管理関連機能

これらの機能により、ハイパーバイザーの管理の負担が軽減されます。

uCodeの読み込みが遅い

マイクロコード、多くの場合「uCode」(「u」はギリシャ語の文字muを表す)と略され、チップメーカーのファームウェアです。uCodeには通常、HWの脆弱性に対する緩和策が含まれており、通常、システムの初期化またはカーネルの起動中に更新されます。 以前は、更新には再起動と長いダウンタイムが必要でした。 Xen Project 4.13を使用すると、XenHypervisorは再起動せずにuCodeアップデートを展開できます。 この機能はIntelによって提供されました。

アップグレードされたライブパッチ

これは、実行中のハイパーバイザー内のコードの小さなセクションを置き換えるためのメカニズムであるため、ハイパーバイザーをシャットダウンして、ハイパーバイザーで実行されているすべてのVMを終了する必要はありません。 この機能は通常、重要なセキュリティ修正を展開するために使用されます。

ライブパッチ しばらくの間、いくつかのXenベースの製品に使用されており、Xen4.7以降の技術プレビュー機能として含まれています。 現在、x86アーキテクチャでサポートされている機能です。 パッチ適用では、すべてのアクティビティを一時停止する必要がありますが、この一時停止時間は短くする必要があります。 Amazonは、この機能をさらに改善するために取り組んでいます。 x86以外の他のアーキテクチャにも拡張する予定です。

ライブパッチの最近の改善には、インラインアセンブリコードにパッチを適用する機能、スタックモジュールの改善、モジュールパラメータのサポート、追加のフックと複製可能な適用/復帰アクション、自動化のための拡張Pythonバインディング、ライブパッチの追加検証が含まれます。

ライブパッチは、ローカライズされた小さなコード変更に限定されているため、ライブアップデートの最終目標ではありません。 Xenプロジェクトチームは、より広範なライブアップデート機能にも取り組んでいます。 終了すると、管理者はゲストを停止して再起動することなく、Xenハイパーバイザーとそのツールを新しいバージョンにアップグレードできます。

組み込みのセーフティクリティカルなアプリケーション機能

これらの機能は、ハイパーバイザーとVMを通常とは異なる方法で実行する必要がある特定の設定をサポートします。

OP-TEEサポート

TrustZoneはARMプロセッサのセキュリティ機能であり、特権ユーザーがプロセスを実行できるようにすることで、他のプロセスによるアクセスからメモリを遮断します。 各チップには信頼できるゾーンがXNUMXつしかないため、 複数のVM間で共有することは困難です。 したがって、Xenは元々ゲストVMへのTrustZoneアクセスを提供していませんでした。 によって提供された機能のおかげで EPAM、Xen 4.13以降、すべてのゲストが競合することなくArmTrustZoneでアプリケーションを同時に実行できます。 ただし、この機能についてはさらに作業を行う必要があります。

ルネサスR-CARIPMMU-VMSAドライバー

自動車はますますソフトウェアに依存しています。 彼らの複数の同時ソフトウェアプロセスは、自動車に必要なハイステークスセキュリティを保護するために仮想化を必要とします。 したがって、多くの自動車システムはXenハイパーバイザーを使用します。 GPUへのアクセスは、車が動いているときに必要なリアルタイムパフォーマンスを実現するために、仮想プロセスにとって価値がありますが、これにはARMの仮想メモリシステムアーキテクチャ(VMSA)へのアクセスが必要です。 ルネサスは、Xen 4.13のARMベースのチップにこのVMSAサポートを追加し、EPAMがXenプロジェクトに提供したドライバーにより、自動車のコンピューティングシステムでそのアクセスを利用できるようになりました。

Dom0なしのパススルーとImageBuilder

このシリーズの以前の記事では、Xenにおける特権ドメインDom0の中心的な役割について説明しました。 Dom0の存在により、各VMのロードにかなりの時間が(秒単位で測定可能)追加されるため、一部の組み込みシステム開発者はDom0のないアーキテクチャを求めています。 多くの組み込みシステムでは、ユーザーがシステムを起動してから0秒以内に複数のVMを起動して実行する必要があります。 Dom2018のないアーキテクチャを実装するためのコードは、XNUMX年にザイリンクスによって提供されました。この機能は準仮想化ではまだ機能しませんが、他の形式のXen仮想化では機能します。

Dom0のないXenには特権プロセスやユーザースペースツールがないため、それを使用するシステムは、を使用してゲストをロードする必要があります。 オープンソースのブートローダーであるU-Boot。 ゲストイメージには、オペレーティングシステムカーネルやramdiskなど、必要なすべてのバイナリが含まれている必要があります。 したがって、という名前の新しいツール ImageBuilder、誰の コードはGitLabにありますは、U-BootのDom0なしの構成の構築を自動化するために提供されています。

図4は、Dom0のないアーキテクチャを示しています。

図4.Dom0なしで実行されているXen
図4.Dom0なしで実行されているXen

このシリーズの次のコンポーネントでは、Xenと他のいくつかの形式の仮想化(特にコンテナー)との興味深い関係を検証します。

前の投稿を読む

Mohsen Mostafa Jokarについて:

モーセンモスタファジョカール


Mohsen Mostafa Jokarは、Linux管理者および仮想化エンジニアです。 His interest in virtualization goes back to school days, when he saw Microsoft Virtual PC for the first time.彼の仮想化への関心は、Microsoft VirtualPCを初めて見た学生時代にまでさかのぼります。 He installed it on a PC with 256 MB of RAM and used it for Virtualize Windows 98 and DOS.彼はそれをXNUMXMBのRAMを搭載したPCにインストールし、Virtualize WindowsXNUMXとDOSに使用しました。 After that, Mohsen became interested in virtualization and got acquainted with more products.その後、モーセンは仮想化に興味を持ち、より多くの製品に精通しました。

仮想化とともに、モーセンはGNU / Linuxに精通しました。 彼は最初のLinuxディストリビューションとしてLindowsOSをインストールし、後にFedora Core、Knoppix、RedHat、およびその他のディストリビューションに精通しました。 Linux OSを使用して、彼はbochsに精通しましたが、遅すぎることに気付き、いくつかの調査の結果、Qemuが発見されました。 Qemuはbochsよりも高速であり、KQEMUモジュールをインストールすることで、仮想化をさらに高速に行うことができました。 Qemuの後、MohsenはInnotek VirtualBoxに精通し、それをメインの仮想化アプリケーションとして選択しました。 Innotek VirtualBoxは優れたGUIを備えており、使いやすかったです。

「」