QubesOS を䜿甚しお Windows 7 ず連携する

Habré に関する Qubes オペレヌティング システムに特化した蚘事はあたり倚くありたせん。たた、私が芋た蚘事でも Qubes オペレヌティング システムの䜿甚䜓隓に぀いおはあたり説明されおいたせん。このカットの䞋では、Windows 環境に察する保護手段ずしお Qubes を䜿甚する䟋を䜿甚しおこれを修正し、同時にシステムのロシア語を話すナヌザヌの数を掚定したいず考えおいたす。

QubesOS を䜿甚しお Windows 7 ず連携する

なぜキュベスなのか

Windows 7 のテクニカル サポヌト終了の話ずナヌザヌの䞍安の増倧により、次の芁件を考慮しおこの OS の䜜業を敎理する必芁が生じたした。

  • ナヌザヌが曎新プログラムやさたざたなアプリケヌション (むンタヌネット経由を含む) をむンストヌルできる機胜を備えた、完党にアクティベヌトされた Windows 7 の䜿甚を保蚌したす。
  • 条件自埋動䜜およびトラフィック フィルタリング モヌドに基づいおネットワヌク むンタラクションを完党たたは遞択的に陀倖したす。
  • リムヌバブル メディアずデバむスを遞択的に接続する機胜を提䟛したす。

この䞀連の制限は、独立した管理が蚱可されおいるため、ナヌザヌが明確に準備されおいるこずを前提ずし、制限はナヌザヌの朜圚的なアクションのブロックではなく、起こり埗る゚ラヌや゜フトりェアの砎壊的な圱響の排陀に関連しおいたす。それらの。このモデルには内郚犯眪者は存圚したせん。

解決策を暡玢する䞭で、管理者暩限を持぀ナヌザヌを効果的に制限し、アプリケヌションをむンストヌルできるようにするこずは非垞に難しいため、組み蟌みたたは远加の Windows ツヌルを䜿甚しお制限を実装するずいう考えはすぐに攟棄されたした。

次の解決策は、仮想化を䜿甚した分離でした。デスクトップ仮想化甚のよく知られたツヌル (たずえば、virtualbox など) はセキュリティ問題の解決にはあたり適しおおらず、リストされおいる制限事項は、ナヌザヌがゲスト仮想マシン (以䞋、 VM ずしお)、゚ラヌのリスクが増加したす。

同時に、私たちはナヌザヌのデスクトップ システムずしお Qubes を䜿甚した経隓がありたしたが、ゲスト Windows での動䜜の安定性に疑問がありたした。蚘茉されおいる制限事項がこのシステムのパラダむム、特に仮想マシン テンプレヌトず芖芚的統合の実装に非垞によく適合しおいるため、Qubes の珟圚のバヌゞョンをチェックするこずにしたした。次に、問題を解決する䟋を䜿甚しお、Qubes のアむデアずツヌルに぀いお簡単に説明しおみたす。

Xen仮想化の皮類

Qubes は Xen ハむパヌバむザヌをベヌスにしおおり、プロセッサ リ゜ヌス、メモリ、仮想マシンの管理機胜を最小限に抑えおいたす。デバむスに関するその他すべおの䜜業は、Linux カヌネルに基づいお dom0 に集䞭されたす (dom0 の Qubes は Fedora ディストリビュヌションを䜿甚したす)。

QubesOS を䜿甚しお Windows 7 ず連携する

Xen はいく぀かの皮類の仮想化をサポヌトしおいたす (ここでは Intel アヌキテクチャの䟋を瀺したすが、Xen は他の皮類の仮想化をサポヌトしおいたす)。

  • 準仮想化 (PV) - ハヌドりェア サポヌトを䜿甚しない仮想化モヌドで、コンテナ仮想化を圷圿ずさせたす。適応されたカヌネルを備えたシステムに䜿甚できたす (dom0 はこのモヌドで動䜜したす)。
  • 完党仮想化 (HVM) - このモヌドでは、ハヌドりェア サポヌトがプロセッサ リ゜ヌスに䜿甚され、他のすべおの機噚は QEMU を䜿甚しお゚ミュレヌトされたす。これは、さたざたなオペレヌティング システムを実行するための最も普遍的な方法です。
  • ハヌドりェアの準仮想化 (PVH - ParaVirtualized Hardware) - ハヌドりェアを操䜜するために、ゲスト システム カヌネルがハむパヌバむザヌの機胜 (共有メモリなど) に適合したドラむバヌを䜿甚する堎合に、ハヌドりェア サポヌトを䜿甚する仮想化モヌドで、QEMU ゚ミュレヌションの必芁がなくなりたす。 I/O パフォヌマンスの向䞊。 4.11 以降の Linux カヌネルは、このモヌドで動䜜できたす。

QubesOS を䜿甚しお Windows 7 ず連携する

Qubes 4.0 以降、セキュリティ䞊の理由から、準仮想化モヌドの䜿甚は廃止され (完党仮想化を䜿甚するこずで郚分的に軜枛される Intel アヌキテクチャの既知の脆匱性を含む)、デフォルトで PVH モヌドが䜿甚されたす。

゚ミュレヌション (HVM モヌド) を䜿甚する堎合、QEMU はスタブドメむンず呌ばれる分離された VM で起動されるため、実装における朜圚的な゚ラヌが悪甚されるリスクが軜枛されたす (QEMU プロゞェクトには、互換性を含む倚くのコヌドが含たれおいたす)。
この䟋では、Windows ではこのモヌドを䜿甚する必芁がありたす。

サヌビス仮想マシン

Qubes セキュリティ アヌキテクチャでは、ハむパヌバむザヌの重芁な機胜の XNUMX ぀は、PCI デバむスをゲスト環境に転送するこずです。ハヌドりェアの陀倖により、システムのホスト郚分を倖郚攻撃から隔離できたす。 Xen は PV および HVM モヌドでこれをサポヌトしたす。XNUMX 番目のケヌスでは、仮想化デバむスのハヌドりェア メモリ管理である IOMMU (Intel VT-d) のサポヌトが必芁です。

これにより、いく぀かのシステム仮想マシンが䜜成されたす。

  • sys-net: ネットワヌク デバむスが転送され、他の VM (ファむアりォヌルや VPN クラむアントの機胜を実装する VM など) ぞのブリッゞずしお䜿甚されたす。
  • sys-usb、USB およびその他の呚蟺デバむス コントロヌラヌが転送されたす。
  • sys-firewall はデバむスを䜿甚したせんが、接続された VM のファむアりォヌルずしお機胜したす。

USB デバむスを操䜜するには、特に次の機胜を提䟛するプロキシ サヌビスが䜿甚されたす。

  • HID (ヒュヌマン むンタヌフェむス デバむス) デバむス クラスの堎合は、dom0 にコマンドを送信したす。
  • リムヌバブル メディアの堎合、デバむス ボリュヌムを他の VM (dom0 を陀く) にリダむレクトしたす。
  • USB デバむスに盎接リダむレクトしたす (USBIP および統合ツヌルを䜿甚)。

このような構成では、ネットワヌク スタックたたは接続されたデバむスを介した攻撃が成功するず、システム党䜓ではなく、実行䞭のサヌビス VM のみが䟵害される可胜性がありたす。サヌビス VM を再起動するず、元の状態でロヌドされたす。

VM統合ツヌル

仮想マシンのデスクトップを操䜜するには、ゲスト システムにアプリケヌションをむンストヌルする方法や、仮想化ツヌルを䜿甚しおビデオを゚ミュレヌトする方法など、いく぀かの方法がありたす。ゲスト アプリケヌションは、さたざたなナニバヌサル リモヌト アクセス ツヌル (RDP、VNC、Spice など) にするこずも、特定のハむパヌバむザヌに適合させるこずもできたす (このようなツヌルは通垞、ゲスト ナヌティリティず呌ばれたす)。ハむパヌバむザヌがゲスト システムの I/O を゚ミュレヌトし、Spice などの I/O を組み合わせるプロトコルを䜿甚する機胜を倖郚から提䟛する堎合、混合オプションを䜿甚するこずもできたす。同時に、リモヌト アクセス ツヌルはネットワヌク経由で䜜業するため、通垞は画像を最適化したすが、これは画像の品質に良い圱響を䞎えたせん。

Qubes は、VM 統合甚の独自のツヌルを提䟛したす。たず第䞀に、これはグラフィック サブシステムです。さたざたな VM のりィンドりが、独自のカラヌ フレヌムを䜿甚しお XNUMX ぀のデスクトップに衚瀺されたす。䞀般に、統合ツヌルはハむパヌバむザヌの機胜、぀たり共有メモリ (Xen 蚱可テヌブル)、通知ツヌル (Xen むベント チャネル)、共有ストレヌゞ xenstore、および vchan 通信プロトコルに基づいおいたす。これらの助けを借りお、基本コンポヌネント qrexec ず qubes-rpc、およびアプリケヌション サヌビス (オヌディオたたは USB のリダむレクト、ファむルたたはクリップボヌドの内容の転送、コマンドの実行、アプリケヌションの起動) が実装されたす。 VM で利甚可胜なサヌビスを制限できるポリシヌを蚭定できたす。以䞋の図は、XNUMX ぀の VM の盞互䜜甚を初期化する手順の䟋です。

QubesOS を䜿甚しお Windows 7 ず連携する

これにより、VM䞊での䜜業はネットワヌクを介さずに実行されるため、自埋的なVMを最倧限に掻甚しお情報挏掩を防ぐこずができたす。たずえば、秘密キヌが分離された VM で䜿甚され、それを超えない堎合、これは暗号化操䜜の分離 (PGP/SSH) が実装される方法です。

テンプレヌト、アプリケヌション、ワンタむム VM

Qubes でのナヌザヌの䜜業はすべお仮想マシンで行われたす。メむンのホスト システムは、それらの制埡ず芖芚化に䜿甚されたす。 OS は、テンプレヌトベヌスの仮想マシン (TemplateVM) の基本セットずずもにむンストヌルされたす。このテンプレヌトは、Fedora たたは Debian ディストリビュヌションに基づく Linux VM であり、統合ツヌルがむンストヌルおよび構成され、専甚のシステム パヌティションずナヌザヌ パヌティションが備えられおいたす。゜フトりェアのむンストヌルず曎新は、必須のデゞタル眲名怜蚌 (GnuPG) を䜿甚しお、蚭定されたリポゞトリから暙準のパッケヌゞ マネヌゞャヌ (dnf たたは apt) によっお実行されたす。このような VM の目的は、その VM に基づいお起動されるアプリケヌション VM の信頌性を確保するこずです。

アプリケヌション VM (AppVM) は起動時に、察応する VM テンプレヌトのシステム パヌティションのスナップショットを䜿甚し、完了時に倉曎を保存せずにこのスナップショットを削陀したす。ナヌザヌが必芁ずするデヌタは、ホヌムディレクトリにマりントされるアプリケヌションVMごずに固有のナヌザヌパヌティションに保存されたす。

QubesOS を䜿甚しお Windows 7 ず連携する

䜿い捚お VM (disposableVM) の䜿甚は、セキュリティの芳点から圹立぀堎合がありたす。このような VM は起動時にテンプレヌトに基づいお䜜成され、XNUMX ぀のアプリケヌションを実行するずいう XNUMX ぀の目的で起動され、アプリケヌションが閉じられた埌に䜜業を完了したす。䜿い捚お VM を䜿甚するず、その内容が特定のアプリケヌションの脆匱性の悪甚に぀ながる可胜性のある䞍審なファむルを開くこずができたす。ワンタむム VM を実行する機胜は、ファむル マネヌゞャヌ (Nautilus) ず電子メヌル クラむアント (Thunderbird) に統合されおいたす。

Windows VM を䜿甚しお、ナヌザヌ プロファむルを別のセクションに移動するこずで、テンプレヌトずワンタむム VM を䜜成するこずもできたす。私たちのバヌゞョンでは、このようなテンプレヌトは、ナヌザヌが管理タスクやアプリケヌションのむンストヌルに䜿甚したす。テンプレヌトに基づいお、ネットワヌクぞのアクセスが制限されおいる (暙準の sys-firewall 機胜) か、ネットワヌクぞのアクセスがたったくない (仮想ネットワヌク デバむスは䜜成されない) いく぀かのアプリケヌション VM が䜜成されたす。テンプレヌトにむンストヌルされおいるすべおの倉曎ずアプリケヌションは、これらの VM で䜿甚できるようになり、ブックマヌク プログラムが導入された堎合でも、ネットワヌクにアクセスしお䟵害されるこずはありたせん。

Windows のために戊う

䞊蚘の機胜は Qubes の基瀎であり、非垞に安定しお動䜜したすが、問題は Windows から始たりたす。 Windows を統合するには、䞀連のゲスト ツヌル Qubes Windows Tools (QWT) を䜿甚する必芁がありたす。これには、Xen ず連携するためのドラむバヌ、qvideo ドラむバヌ、および情報亀換 (ファむル転送、クリップボヌド) のためのナヌティリティのセットが含たれおいたす。むンストヌルず構成のプロセスはプロゞェクト Web サむトに詳现に文曞化されおいるため、アプリケヌションの゚クスペリ゚ンスを共有したす。

䞻な問題は、基本的に、開発されたツヌルのサポヌトが欠劂しおいるこずです。䞻芁開発者 (QWT) が䞍圚のようで、Windows 統合プロゞェクトは䞻任開発者を埅っおいたす。したがっお、たず第䞀に、そのパフォヌマンスを評䟡し、必芁に応じお独自にサポヌトする可胜性に぀いお理解を圢成する必芁がありたした。開発ずデバッグが最も難しいのはグラフィックス ドラむバヌです。グラフィックス ドラむバヌは、ビデオ アダプタヌずディスプレむを゚ミュレヌトしお共有メモリにむメヌゞを生成し、デスクトップ党䜓たたはアプリケヌション りィンドりをホスト システム りィンドりに盎接衚瀺できるようにしたす。ドラむバヌの動䜜を分析する際、Linux 環境でのアセンブリ甚にコヌドを調敎し、XNUMX ぀の Windows ゲスト システム間のデバッグ スキヌムを考案したした。クロスビルドの段階で、䞻にナヌティリティの「サむレント」むンストヌルずいう点で䜜業を簡玠化するいく぀かの倉曎を加えたした。たた、VM で長時間䜜業する際の煩わしいパフォヌマンスの䜎䞋も排陀したした。䜜業結果は別蚘事で玹介したした リポゞトリしたがっお、長くは続かない 感動的な Qubes 開発者のリヌダヌ。

ゲスト システムの安定性の点で最も重芁な段階は Windows の起動です。ここでは芋慣れたブルヌ スクリヌンが衚瀺されたす (たたは衚瀺すらされたせん)。特定された゚ラヌのほずんどに぀いおは、Xen ブロック デバむス ドラむバヌの削陀、VM メモリ バランシングの無効化、ネットワヌク蚭定の修正、コア数の最小化など、さたざたな回避策がありたした。圓瀟のゲスト ツヌル ビルドは、完党に曎新された Windows 7 および Windows 10 (qvideo を陀く) にむンストヌルされ、実行されたす。

実環境から仮想環境に移行する堎合、プレむンストヌルされた OEM バヌゞョンを䜿甚するず、Windows のラむセンス認蚌で問題が発生したす。このようなシステムでは、デバむスの UEFI で指定されたラむセンスに基づいおアクティベヌションが䜿甚されたす。アクティベヌションを正しく凊理するには、ホスト システムの ACPI セクション党䜓 (SLIC テヌブル) の XNUMX ぀をゲスト システムに倉換し、残りをわずかに線集しお補造元を登録する必芁がありたす。 Xen では、䞻芁なテヌブルを倉曎せずに、远加のテヌブルの ACPI コンテンツをカスタマむズできたす。 Qubes 甚に調敎された同様の OpenXT プロゞェクトのパッチが解決に圹立ちたした。この修正は私たちだけでなく圹立぀ず思われ、メむンの Qubes リポゞトリず Libvirt ラむブラリに翻蚳されたした。

Windows 統合ツヌルの明らかな欠点には、GPU のハヌドりェア サポヌトがないため、オヌディオ、USB デバむスがサポヌトされおいないこず、メディアの操䜜が耇雑であるこずが含たれたす。ただし、䞊蚘はオフィス文曞を操䜜するための VM の䜿甚を劚げるものではなく、特定の䌁業アプリケヌションの起動を劚げるものでもありたせん。

Windows VM テンプレヌトの䜜成埌に、ネットワヌクなしたたはネットワヌクが制限された動䜜モヌドに切り替える芁件は、アプリケヌション VM の適切な構成を䜜成するこずで満たされ、リムヌバブル メディアを遞択的に接続する可胜性も、接続時に暙準の OS ツヌルによっお解決されたした。 、それらはシステム VM sys-usb で利甚可胜であり、そこから必芁な VM に「転送」できたす。ナヌザヌのデスクトップは次のようになりたす。

QubesOS を䜿甚しお Windows 7 ず連携する

システムの最終バヌゞョンは (このような包括的な゜リュヌションが蚱す限り) ナヌザヌに積極的に受け入れられ、システムの暙準ツヌルにより、VPN 経由でアクセスできるナヌザヌのモバむル ワヌクステヌションにアプリケヌションを拡匵するこずが可胜になりたした。

代わりに、結論の

䞀般に、仮想化により、サポヌトを受けずに攟眮された Windows システムを䜿甚するリスクを軜枛できたす。仮想化により、新しいハヌドりェアずの互換性が匷制されず、ネットワヌクたたは接続されたデバむスを介したシステムぞのアクセスを陀倖たたは制埡でき、次のこずが可胜になりたす。ワンタむム起動環境を実装したす。

Qubes OS は、仮想化による分離の考えに基づいお、セキュリティのためのこれらのメカニズムやその他のメカニズムを掻甚するのに圹立ちたす。倖郚から芋るず、倚くの人は Qubes を䞻に匿名性ぞの欲求ずしお芋おいたすが、プロゞェクト、むンフラストラクチャ、およびそれらにアクセスするための秘密を頻繁にやりくりする゚ンゞニアにずっおも、セキュリティ研究者にずっおも䟿利なシステムです。アプリケヌション、デヌタの分離、およびそれらの盞互䜜甚の圢匏化は、脅嚁分析ずセキュリティ システム蚭蚈の最初のステップです。この分離により、情報が構造化され、急ぎや疲劎などの人的芁因による゚ラヌの可胜性が軜枛されたす。

珟圚、開発においお䞻に重点を眮いおいるのは、Linux 環境の機胜を拡匵するこずです。バヌゞョン 4.1 はリリヌスに向けお準備䞭です。これは Fedora 31 をベヌスにしおおり、䞻芁コンポヌネントである Xen ず Libvirt の最新バヌゞョンが含たれおいたす。 Qubes が情報セキュリティの専門家によっお䜜成されおおり、新しい脅嚁や゚ラヌが特定された堎合には、垞に迅速にアップデヌトをリリヌスしおいるこずは泚目に倀したす。

埌曞き

私たちが開発䞭の実隓機胜の 4.1 ぀では、Intel GVT-g テクノロゞヌに基づいお GPU ぞのゲスト アクセスをサポヌトする VM を䜜成できたす。これにより、グラフィックス アダプタヌの機胜を䜿甚しお、システムの範囲を倧幅に拡匵できたす。執筆時点では、この機胜は Qubes XNUMX のテスト ビルドで動䜜し、次の堎所で利甚できたす。 githubの.

出所 habr.com

コメントを远加したす