Menggunakan QubesOS untuk berfungsi dengan Windows 7

Tidak banyak artikel tentang Habré yang dikhaskan untuk sistem pengendalian Qubes, dan artikel yang saya lihat tidak menggambarkan banyak pengalaman menggunakannya. Di bawah potongan, saya berharap untuk membetulkan ini menggunakan contoh menggunakan Qubes sebagai cara perlindungan (terhadap) persekitaran Windows dan, pada masa yang sama, menganggarkan bilangan pengguna sistem berbahasa Rusia.

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Kenapa Qubes?

Kisah berakhirnya sokongan teknikal untuk Windows 7 dan peningkatan kebimbangan pengguna membawa kepada keperluan untuk mengatur kerja OS ini, dengan mengambil kira keperluan berikut:

  • memastikan penggunaan Windows 7 yang diaktifkan sepenuhnya dengan keupayaan untuk pengguna memasang kemas kini dan pelbagai aplikasi (termasuk melalui Internet);
  • melaksanakan pengecualian lengkap atau terpilih bagi interaksi rangkaian berdasarkan keadaan (operasi autonomi dan mod penapisan trafik);
  • menyediakan keupayaan untuk menyambung secara terpilih media dan peranti boleh tanggal.

Set sekatan ini mengandaikan pengguna yang bersedia dengan jelas, memandangkan pentadbiran bebas dibenarkan, dan sekatan itu tidak berkaitan dengan menyekat potensi tindakannya, tetapi mengecualikan kemungkinan ralat atau kesan perisian yang merosakkan. Itu. Tiada pesalah dalaman dalam model.

Dalam pencarian kami untuk penyelesaian, kami dengan cepat meninggalkan idea untuk melaksanakan sekatan menggunakan alat Windows terbina dalam atau tambahan, kerana agak sukar untuk menyekat pengguna dengan hak pentadbir dengan berkesan, menjadikannya keupayaan untuk memasang aplikasi.

Penyelesaian seterusnya ialah pengasingan menggunakan virtualisasi. Alat terkenal untuk virtualisasi desktop (contohnya, seperti kotak maya) kurang sesuai untuk menyelesaikan masalah keselamatan dan sekatan yang disenaraikan perlu dilakukan oleh pengguna dengan sentiasa menukar atau melaraskan sifat mesin maya tetamu (selepas ini dirujuk sebagai VM), yang meningkatkan risiko ralat.

Pada masa yang sama, kami mempunyai pengalaman menggunakan Qubes sebagai sistem desktop pengguna, tetapi mempunyai keraguan tentang kestabilan bekerja dengan Windows tetamu. Telah diputuskan untuk menyemak versi semasa Qubes, memandangkan batasan yang dinyatakan sangat sesuai dengan paradigma sistem ini, terutamanya pelaksanaan templat mesin maya dan penyepaduan visual. Seterusnya, saya akan cuba bercakap secara ringkas tentang idea dan alat Qubes, menggunakan contoh penyelesaian masalah.

Jenis virtualisasi Xen

Qubes adalah berdasarkan hypervisor Xen, yang meminimumkan fungsi mengurus sumber pemproses, memori dan mesin maya. Semua kerja lain dengan peranti tertumpu dalam dom0 berdasarkan kernel Linux (Qubes untuk dom0 menggunakan pengedaran Fedora).

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Xen menyokong beberapa jenis virtualisasi (saya akan memberikan contoh untuk seni bina Intel, walaupun Xen menyokong yang lain):

  • paravirtualization (PV) - mod virtualisasi tanpa menggunakan sokongan perkakasan, mengingatkan virtualisasi kontena, boleh digunakan untuk sistem dengan kernel yang disesuaikan (dom0 beroperasi dalam mod ini);
  • virtualisasi penuh (HVM) - dalam mod ini, sokongan perkakasan digunakan untuk sumber pemproses, dan semua peralatan lain dicontohi menggunakan QEMU. Ini adalah cara paling universal untuk menjalankan pelbagai sistem pengendalian;
  • paravirtualisasi perkakasan (PVH - Perkakasan ParaVirtualized) - mod maya menggunakan sokongan perkakasan apabila, untuk bekerja dengan perkakasan, kernel sistem tetamu menggunakan pemacu yang disesuaikan dengan keupayaan hypervisor (contohnya, memori dikongsi), menghapuskan keperluan untuk emulasi QEMU dan meningkatkan prestasi I/O. Kernel Linux bermula dari 4.11 boleh berfungsi dalam mod ini.

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Bermula dengan Qubes 4.0, atas sebab keselamatan, penggunaan mod paravirtualisasi telah ditinggalkan (termasuk disebabkan kelemahan yang diketahui dalam seni bina Intel, yang sebahagiannya dikurangkan dengan penggunaan maya penuh); Mod PVH digunakan secara lalai.

Apabila menggunakan emulasi (mod HVM), QEMU dilancarkan dalam VM terpencil yang dipanggil stubdomain, dengan itu mengurangkan risiko mengeksploitasi kemungkinan ralat dalam pelaksanaan (projek QEMU mengandungi banyak kod, termasuk untuk keserasian).
Dalam kes kami, mod ini harus digunakan untuk Windows.

Servis mesin maya

Dalam seni bina keselamatan Qubes, salah satu keupayaan utama hypervisor ialah pemindahan peranti PCI ke persekitaran tetamu. Pengecualian perkakasan membolehkan anda mengasingkan bahagian hos sistem daripada serangan luaran. Xen menyokong ini untuk mod PV dan HVM, dalam kes kedua ia memerlukan sokongan untuk IOMMU (Intel VT-d) - pengurusan memori perkakasan untuk peranti maya.

Ini mencipta beberapa mesin maya sistem:

  • sys-net, yang mana peranti rangkaian dipindahkan dan yang digunakan sebagai jambatan untuk VM lain, contohnya, yang melaksanakan fungsi tembok api atau klien VPN;
  • sys-usb, yang mana USB dan pengawal peranti persisian lain dipindahkan;
  • sys-firewall, yang tidak menggunakan peranti, tetapi berfungsi sebagai tembok api untuk VM yang disambungkan.

Untuk bekerja dengan peranti USB, perkhidmatan proksi digunakan, yang menyediakan, antara lain:

  • untuk kelas peranti HID (peranti antara muka manusia), menghantar arahan ke dom0;
  • untuk media boleh tanggal, ubah hala volum peranti ke VM lain (kecuali dom0);
  • mengubah hala terus ke peranti USB (menggunakan USBIP dan alat penyepaduan).

Dalam konfigurasi sedemikian, serangan yang berjaya melalui timbunan rangkaian atau peranti yang disambungkan boleh membawa kepada kompromi hanya perkhidmatan VM yang sedang berjalan, dan bukan keseluruhan sistem secara keseluruhan. Dan selepas memulakan semula perkhidmatan VM, ia akan dimuatkan dalam keadaan asalnya.

Alat penyepaduan VM

Terdapat beberapa cara untuk berinteraksi dengan desktop mesin maya - memasang aplikasi dalam sistem tetamu atau meniru video menggunakan alat virtualisasi. Aplikasi tetamu boleh menjadi pelbagai alat capaian jauh universal (RDP, VNC, Spice, dll.) atau disesuaikan dengan hipervisor tertentu (alat sedemikian biasanya dipanggil utiliti tetamu). Pilihan campuran juga boleh digunakan, apabila hipervisor meniru I/O untuk sistem tetamu, dan secara luaran menyediakan keupayaan untuk menggunakan protokol yang menggabungkan I/O, contohnya, seperti Spice. Pada masa yang sama, alat capaian jauh biasanya mengoptimumkan imej, kerana ia melibatkan kerja melalui rangkaian, yang tidak mempunyai kesan positif terhadap kualiti imej.

Qubes menyediakan alatannya sendiri untuk penyepaduan VM. Pertama sekali, ini ialah subsistem grafik - tetingkap daripada VM berbeza dipaparkan pada desktop tunggal dengan bingkai warnanya sendiri. Secara umum, alat penyepaduan adalah berdasarkan keupayaan hypervisor - memori dikongsi (jadual pemberian Xen), alat pemberitahuan (saluran acara Xen), xenstore storan kongsi dan protokol komunikasi vchan. Dengan bantuan mereka, komponen asas qrexec dan qubes-rpc, dan perkhidmatan aplikasi dilaksanakan - pengalihan audio atau USB, memindahkan fail atau kandungan papan keratan, melaksanakan arahan dan melancarkan aplikasi. Anda boleh menetapkan dasar yang membolehkan anda mengehadkan perkhidmatan yang tersedia pada VM. Rajah di bawah ialah contoh prosedur untuk memulakan interaksi dua VM.

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Oleh itu, kerja dalam VM dijalankan tanpa menggunakan rangkaian, yang membolehkan penggunaan penuh VM autonomi untuk mengelakkan kebocoran maklumat. Sebagai contoh, beginilah cara pengasingan operasi kriptografi (PGP/SSH) dilaksanakan, apabila kunci peribadi digunakan dalam VM terpencil dan tidak melampauinya.

Templat, aplikasi dan VM sekali sahaja

Semua kerja pengguna di Qubes dilakukan dalam mesin maya. Sistem hos utama digunakan untuk mengawal dan menggambarkannya. OS dipasang bersama set asas mesin maya berasaskan templat (TemplateVM). Templat ini ialah VM Linux berdasarkan pengedaran Fedora atau Debian, dengan alat penyepaduan dipasang dan dikonfigurasikan, serta sistem khusus dan partition pengguna. Pemasangan dan pengemaskinian perisian dijalankan oleh pengurus pakej standard (dnf atau apt) daripada repositori yang dikonfigurasikan dengan pengesahan tandatangan digital mandatori (GnuPG). Tujuan VM sedemikian adalah untuk memastikan kepercayaan terhadap VM aplikasi dilancarkan atas dasar mereka.

Pada permulaan, VM aplikasi (AppVM) menggunakan petikan partition sistem bagi templat VM yang sepadan dan apabila selesai memadamkan petikan ini tanpa menyimpan perubahan. Data yang diperlukan oleh pengguna disimpan dalam partition pengguna yang unik untuk setiap VM aplikasi, yang dipasang dalam direktori rumah.

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Menggunakan VM pakai buang (disposableVM) boleh berguna dari sudut pandangan keselamatan. VM sedemikian dicipta berdasarkan templat pada masa permulaan dan dilancarkan untuk satu tujuan - untuk melaksanakan satu aplikasi, menyelesaikan kerja selepas ia ditutup. VM pakai buang boleh digunakan untuk membuka fail yang mencurigakan yang kandungannya boleh membawa kepada eksploitasi kelemahan aplikasi tertentu. Keupayaan untuk menjalankan VM sekali sahaja disepadukan ke dalam pengurus fail (Nautilus) dan klien e-mel (Thunderbird).

Windows VM juga boleh digunakan untuk mencipta templat dan VM sekali dengan mengalihkan profil pengguna ke bahagian yang berasingan. Dalam versi kami, templat sedemikian akan digunakan oleh pengguna untuk tugas pentadbiran dan pemasangan aplikasi. Berdasarkan templat, beberapa VM aplikasi akan dibuat - dengan akses terhad kepada rangkaian (keupayaan sys-firewall standard) dan tanpa akses kepada rangkaian sama sekali (peranti rangkaian maya tidak dibuat). Semua perubahan dan aplikasi yang dipasang dalam templat akan tersedia untuk berfungsi dalam VM ini, dan walaupun program penanda halaman diperkenalkan, ia tidak akan mempunyai akses rangkaian untuk berkompromi.

Berjuang untuk Windows

Ciri-ciri yang diterangkan di atas adalah asas Qubes dan berfungsi dengan agak stabil; kesukaran bermula dengan Windows. Untuk menyepadukan Windows, anda mesti menggunakan satu set alat tetamu Qubes Windows Tools (QWT), yang termasuk pemacu untuk bekerja dengan Xen, pemacu qvideo dan satu set utiliti untuk pertukaran maklumat (pemindahan fail, papan keratan). Proses pemasangan dan konfigurasi didokumenkan secara terperinci di tapak web projek, jadi kami akan berkongsi pengalaman permohonan kami.

Kesukaran utama pada dasarnya adalah kekurangan sokongan untuk alat yang dibangunkan. Pembangun Utama (QWT) nampaknya tidak tersedia dan projek penyepaduan Windows sedang menunggu pembangun utama. Oleh itu, pertama sekali, adalah perlu untuk menilai prestasinya dan membentuk pemahaman tentang kemungkinan menyokongnya secara bebas, jika perlu. Yang paling sukar untuk dibangunkan dan nyahpepijat ialah pemacu grafik, yang meniru penyesuai video dan paparan untuk menjana imej dalam memori kongsi, membolehkan anda memaparkan keseluruhan desktop atau tetingkap aplikasi secara terus dalam tetingkap sistem hos. Semasa analisis operasi pemandu, kami menyesuaikan kod untuk pemasangan dalam persekitaran Linux dan membuat skema penyahpepijatan antara dua sistem tetamu Windows. Pada peringkat binaan silang, kami membuat beberapa perubahan yang memudahkan kami, terutamanya dari segi pemasangan utiliti "senyap", dan juga menghapuskan kemerosotan prestasi yang menjengkelkan apabila bekerja dalam VM untuk masa yang lama. Kami membentangkan hasil kerja secara berasingan repositori, dengan itu tidak lama memberi inspirasi Pemaju Qubes Utama.

Peringkat paling kritikal dari segi kestabilan sistem tetamu ialah permulaan Windows, di sini anda boleh melihat skrin biru yang biasa (atau tidak melihatnya). Bagi kebanyakan ralat yang dikenal pasti, terdapat pelbagai penyelesaian - menghapuskan pemacu peranti blok Xen, melumpuhkan pengimbangan memori VM, membetulkan tetapan rangkaian dan meminimumkan bilangan teras. Alat tetamu kami membina pemasangan dan berjalan pada Windows 7 dan Windows 10 yang dikemas kini sepenuhnya (kecuali qvideo).

Apabila beralih dari persekitaran sebenar kepada persekitaran maya, masalah timbul dengan mengaktifkan Windows jika versi OEM yang telah dipasang sebelumnya digunakan. Sistem sedemikian menggunakan pengaktifan berdasarkan lesen yang dinyatakan dalam UEFI peranti. Untuk memproses pengaktifan dengan betul, adalah perlu untuk menterjemah satu daripada keseluruhan bahagian ACPI sistem hos (jadual SLIC) kepada sistem tetamu dan mengedit sedikit bahagian lain, mendaftarkan pengilang. Xen membolehkan anda menyesuaikan kandungan ACPI bagi jadual tambahan, tetapi tanpa mengubah suai yang utama. Tampalan daripada projek OpenXT yang serupa, yang telah disesuaikan untuk Qubes, membantu penyelesaiannya. Pembaikan itu kelihatan berguna bukan sahaja kepada kami dan telah diterjemahkan ke dalam repositori Qubes utama dan perpustakaan Libvirt.

Kelemahan jelas alat penyepaduan Windows termasuk kekurangan sokongan untuk audio, peranti USB, dan kerumitan bekerja dengan media, kerana tiada sokongan perkakasan untuk GPU. Tetapi perkara di atas tidak menghalang penggunaan VM untuk bekerja dengan dokumen pejabat, dan juga tidak menghalang pelancaran aplikasi korporat tertentu.

Keperluan untuk beralih kepada mod pengendalian tanpa rangkaian atau dengan rangkaian terhad selepas mencipta templat Windows VM telah dipenuhi dengan mencipta konfigurasi VM aplikasi yang sesuai, dan kemungkinan menyambungkan media boleh alih secara terpilih juga telah diselesaikan oleh alat OS standard - apabila disambungkan , ia tersedia dalam sistem VM sys-usb, dari mana ia boleh "dimajukan" kepada VM yang diperlukan. Desktop pengguna kelihatan seperti ini.

Menggunakan QubesOS untuk berfungsi dengan Windows 7

Versi akhir sistem secara positif (setakat penyelesaian yang komprehensif sedemikian) diterima oleh pengguna, dan alatan standard sistem memungkinkan untuk mengembangkan aplikasi ke stesen kerja mudah alih pengguna dengan akses melalui VPN.

Daripada kesimpulan

Maya secara umum membolehkan anda mengurangkan risiko menggunakan sistem Windows yang dibiarkan tanpa sokongan - ia tidak memaksa keserasian dengan perkakasan baharu, ia membolehkan anda mengecualikan atau mengawal akses kepada sistem melalui rangkaian atau melalui peranti yang bersambung, dan ia membolehkan anda untuk melaksanakan persekitaran pelancaran sekali sahaja.

Berdasarkan idea pengasingan melalui virtualisasi, Qubes OS membantu anda memanfaatkan mekanisme ini dan lain-lain untuk keselamatan. Dari luar, ramai orang melihat Qubes terutamanya sebagai keinginan untuk tidak mahu namanya disiarkan, tetapi ia adalah sistem yang berguna untuk jurutera, yang sering menyesuaikan projek, infrastruktur dan rahsia untuk mengaksesnya, dan untuk penyelidik keselamatan. Pengasingan aplikasi, data dan pemformalan interaksi mereka adalah langkah awal analisis ancaman dan reka bentuk sistem keselamatan. Pemisahan ini membantu untuk menstruktur maklumat dan mengurangkan kemungkinan ralat disebabkan oleh faktor manusia - tergesa-gesa, keletihan, dsb.

Pada masa ini, penekanan utama dalam pembangunan adalah untuk mengembangkan kefungsian persekitaran Linux. Versi 4.1 sedang disediakan untuk keluaran, yang akan berdasarkan Fedora 31 dan termasuk versi semasa komponen utama Xen dan Libvirt. Perlu diingat bahawa Qubes dicipta oleh profesional keselamatan maklumat yang sentiasa mengeluarkan kemas kini dengan segera jika ancaman atau ralat baharu dikenal pasti.

afterword

Salah satu keupayaan percubaan yang kami bangunkan membolehkan kami mencipta VM dengan sokongan untuk akses tetamu kepada GPU berdasarkan teknologi Intel GVT-g, yang membolehkan kami menggunakan keupayaan penyesuai grafik dan meluaskan skop sistem dengan ketara. Pada masa penulisan, fungsi ini berfungsi untuk binaan ujian Qubes 4.1, dan tersedia pada github.

Sumber: www.habr.com

Tambah komen