Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Qubes үйлдлийн системд зориулсан Хабрегийн тухай нийтлэл тийм ч олон байдаггүй бөгөөд миний харсан зүйлүүд үүнийг ашиглах туршлагын талаар төдийлөн тайлбарлаагүй байна. Тасалгааны доор Qubes-ийг Windows орчныг хамгаалах (эсрэг) хэрэгсэл болгон ашиглах жишээг ашиглан үүнийг засч залруулж, системийн орос хэлээр ярьдаг хэрэглэгчдийн тоог тооцоолно гэж найдаж байна.

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Яагаад Qubes гэж?

Windows 7-ийн техникийн дэмжлэг дуусч, хэрэглэгчдийн түгшүүр нэмэгдэж байгаа түүх нь дараахь шаардлагыг харгалзан энэхүү үйлдлийн системийн ажлыг зохион байгуулах шаардлагатай болсон.

  • Хэрэглэгч шинэчлэлтүүд болон янз бүрийн програмуудыг (Интернетээр дамжуулан) суулгах боломжтой бүрэн идэвхжүүлсэн Windows 7-ийг ашиглахыг баталгаажуулах;
  • Нөхцөлд тулгуурлан сүлжээний харилцан үйлчлэлийг бүрэн буюу сонгон хасахыг хэрэгжүүлэх (бие даасан ажиллагаа, замын хөдөлгөөний шүүлтүүрийн горим);
  • зөөврийн зөөврийн хэрэгсэл болон төхөөрөмжүүдийг сонгон холбох боломжийг олгох.

Энэхүү хязгаарлалт нь тодорхой бэлтгэгдсэн хэрэглэгчийг шаарддаг, учир нь бие даасан удирдлага нь зөвшөөрөгддөг бөгөөд хязгаарлалт нь түүний боломжит үйлдлийг хаахтай холбоотой биш, харин болзошгүй алдаа эсвэл програм хангамжийн хор хөнөөлтэй нөлөөллөөс зайлсхийх явдал юм. Тэдгээр. Загварт дотоод гэмт хэрэгтэн байхгүй.

Шийдэл хайхдаа бид суулгасан эсвэл нэмэлт Windows хэрэгслийг ашиглан хязгаарлалт хийх санаагаа хурдан орхисон, учир нь администраторын эрх бүхий хэрэглэгчийг үр дүнтэй хязгаарлах нь нэлээд хэцүү тул түүнд програм суулгах боломжийг үлдээсэн.

Дараагийн шийдэл бол виртуалчлалыг ашиглан тусгаарлах явдал байв. Ширээний виртуалчлалын алдартай хэрэгслүүд (жишээлбэл, virtualbox гэх мэт) нь аюулгүй байдлын асуудлыг шийдвэрлэхэд тохиромжгүй байдаг бөгөөд жагсаасан хязгаарлалтыг хэрэглэгч зочны виртуал машины шинж чанарыг байнга сольж эсвэл тохируулах замаар хийх шаардлагатай болно (цаашид гэх мэт) VM гэх мэт), энэ нь алдааны эрсдэлийг нэмэгдүүлдэг.

Үүний зэрэгцээ бид Qubes-ийг хэрэглэгчийн ширээний систем болгон ашиглах туршлагатай байсан ч зочин Windows-тэй ажиллах тогтвортой байдлын талаар эргэлзэж байсан. Заасан хязгаарлалтууд нь энэ системийн парадигм, ялангуяа виртуал машины загваруудыг хэрэгжүүлэх, визуал интеграцчилалд маш сайн нийцэж байгаа тул Qubes-ийн одоогийн хувилбарыг шалгахаар шийдсэн. Дараа нь би асуудлыг шийдвэрлэх жишээн дээр Кубесийн санаа, арга хэрэгслийн талаар товч ярихыг хичээх болно.

Xen виртуалчлалын төрлүүд

Qubes нь процессорын нөөц, санах ой, виртуал машиныг удирдах функцийг багасгасан Xen гипервизор дээр суурилдаг. Төхөөрөмжүүдтэй хийх бусад бүх ажил Линукс цөм дээр суурилсан dom0 дээр төвлөрдөг (dom0-д зориулсан Qubes нь Fedora түгээлтийг ашигладаг).

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Xen нь хэд хэдэн төрлийн виртуалчлалыг дэмждэг (Би Intel архитектурын жишээг өгөх болно, гэхдээ Xen бусдыг дэмждэг):

  • paravirtualization (PV) - дасан зохицсон цөм бүхий системд (dom0 нь энэ горимд ажилладаг) контейнер виртуалчлалыг санагдуулам техник хангамжийн тусламжгүйгээр виртуалчлалын горимыг ашиглах боломжтой;
  • бүрэн виртуалчлал (HVM) - энэ горимд техник хангамжийн дэмжлэгийг процессорын нөөцөд ашигладаг бөгөөд бусад бүх төхөөрөмжийг QEMU ашиглан дуурайдаг. Энэ нь янз бүрийн үйлдлийн системийг ажиллуулах хамгийн түгээмэл арга юм;
  • Техник хангамжийн паравиртуалчлал (PVH - ParaVirtualized Hardware) - техник хангамжтай ажиллахын тулд зочин системийн цөм нь гипервизорын чадавхид тохируулсан драйверуудыг (жишээлбэл, хуваалцсан санах ой) ашигладаг бөгөөд QEMU эмуляцийн хэрэгцээг арилгадаг техник хангамжийг ашигладаг виртуалчлалын горим. болон I/O гүйцэтгэлийг нэмэгдүүлэх. 4.11-ээс эхлэн Линуксийн цөм энэ горимд ажиллах боломжтой.

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Qubes 4.0-аас эхлэн аюулгүй байдлын үүднээс паравиртуалчлалын горимыг ашиглахаа больсон (үүнд Intel-ийн архитектурт мэдэгдэж буй эмзэг байдлын улмаас бүрэн виртуалчлалыг ашигласнаар хэсэгчлэн багасгасан); PVH горимыг анхдагч байдлаар ашигладаг.

Эмуляцийг (HVM горим) ашиглах үед QEMU-г stubdomain гэж нэрлэгддэг тусгаарлагдсан VM-д ажиллуулдаг бөгөөд ингэснээр хэрэгжүүлэх явцад гарч болзошгүй алдааг ашиглах эрсдлийг бууруулдаг (QEMU төсөл нь нийцтэй байх зэрэг олон код агуулдаг).
Манай тохиолдолд энэ горимыг Windows-д ашиглах ёстой.

Виртуал машинуудын үйлчилгээ

Qubes аюулгүй байдлын архитектурт гипервизорын гол чадваруудын нэг нь PCI төхөөрөмжүүдийг зочны орчинд шилжүүлэх явдал юм. Техник хангамжийг хасах нь системийн хост хэсгийг гадны халдлагаас тусгаарлах боломжийг олгодог. Xen нь үүнийг PV болон HVM горимд дэмждэг бол хоёр дахь тохиолдолд IOMMU (Intel VT-d) - hardware memory management for virtualized devices-ийн дэмжлэгийг шаарддаг.

Энэ нь хэд хэдэн системийн виртуал машин үүсгэдэг:

  • сүлжээний төхөөрөмжүүдийг шилжүүлж, бусад VM-ийн гүүр болгон ашигладаг, жишээлбэл, галт хана эсвэл VPN үйлчлүүлэгчийн функцийг хэрэгжүүлдэг sys-net;
  • USB болон бусад захын төхөөрөмжийн хянагчуудыг шилжүүлдэг sys-usb;
  • sys-галт хана нь төхөөрөмж ашигладаггүй боловч холбогдсон VM-д зориулсан галт хана болж ажилладаг.

USB төхөөрөмжтэй ажиллахын тулд прокси үйлчилгээг ашигладаг бөгөөд үүнд дараахь зүйлс орно.

  • HID (хүний ​​интерфейсийн төхөөрөмж) төхөөрөмжийн ангиллын хувьд dom0 руу тушаал илгээх;
  • зөөврийн зөөвөрлөгчийн хувьд төхөөрөмжийн эзлэхүүнийг бусад VM-д дахин чиглүүлэх (dom0-аас бусад);
  • USB төхөөрөмж рүү шууд чиглүүлэх (USBIP болон нэгтгэх хэрэгслийг ашиглан).

Ийм тохиргоонд сүлжээний стек эсвэл холбогдсон төхөөрөмжөөр амжилттай халдлага хийснээр бүхэл бүтэн систем биш зөвхөн ажиллаж байгаа VM үйлчилгээ эвдэрч болзошгүй. Үйлчилгээний VM-г дахин эхлүүлсний дараа түүнийг анхны төлөвөөр нь ачаалах болно.

VM нэгтгэх хэрэгслүүд

Виртуал машины ширээний компьютертэй харилцах хэд хэдэн арга байдаг - зочны системд програм суулгах эсвэл виртуалчлалын хэрэгслийг ашиглан видеог дууриах. Зочин аппликейшн нь төрөл бүрийн алсын хандалтын хэрэгсэл (RDP, VNC, Spice гэх мэт) эсвэл тодорхой гипервизорт тохируулагдсан байж болно (ийм хэрэгслүүдийг ихэвчлэн зочны хэрэгсэл гэж нэрлэдэг). Гипервизор нь зочны системд I/O-г дуурайж, гаднаас жишээ нь Spice гэх мэт I/O-г хослуулсан протоколыг ашиглах боломжийг олгох үед холимог сонголтыг бас ашиглаж болно. Үүний зэрэгцээ алсын зайнаас хандах хэрэгслүүд нь ихэвчлэн сүлжээгээр ажилладаг тул дүрсийг оновчтой болгодог бөгөөд энэ нь зургийн чанарт эерэг нөлөө үзүүлэхгүй.

Qubes нь VM-ийг нэгтгэх өөрийн хэрэгслээр хангадаг. Юуны өмнө энэ бол график дэд систем юм - өөр өөр VM-ийн цонхнууд нь өөрийн өнгөт хүрээ бүхий нэг ширээний компьютер дээр харагдана. Ерөнхийдөө интеграцийн хэрэгслүүд нь гипервизорын боломжууд дээр суурилдаг - хуваалцсан санах ой (Xen grant хүснэгт), мэдэгдлийн хэрэгсэл (Xen үйл явдлын суваг), хуваалцсан хадгалах xenstore болон vchan холбооны протокол. Тэдгээрийн тусламжтайгаар qrexec ба qubes-rpc үндсэн бүрэлдэхүүн хэсгүүд, хэрэглээний үйлчилгээнүүд хэрэгждэг - аудио эсвэл USB дахин чиглүүлэх, файл эсвэл санах ойн агуулгыг дамжуулах, тушаалуудыг гүйцэтгэх, програмуудыг эхлүүлэх. VM дээр байгаа үйлчилгээг хязгаарлах боломжийг танд олгох бодлогыг тохируулах боломжтой. Доорх зураг нь хоёр VM-ийн харилцан үйлчлэлийг эхлүүлэх процедурын жишээ юм.

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Тиймээс VM дээрх ажил нь сүлжээ ашиглахгүйгээр хийгддэг бөгөөд энэ нь мэдээлэл алдагдахаас зайлсхийхийн тулд бие даасан VM-ийг бүрэн ашиглах боломжийг олгодог. Жишээлбэл, хувийн түлхүүрүүдийг тусгаарлагдсан VM-д ашигладаг бөгөөд тэдгээрээс хэтрэхгүй байх үед криптографийн үйлдлүүдийг (PGP/SSH) салгах нь ийм байдлаар хэрэгждэг.

Загварууд, програмууд болон нэг удаагийн VM

Qubes дахь хэрэглэгчийн бүх ажлыг виртуал машин дээр хийдэг. Гол хост систем нь тэдгээрийг хянах, дүрслэн харуулахад ашиглагддаг. OS нь загварт суурилсан виртуал машинуудын (TemplateVM) үндсэн багцын хамт суурилагдсан. Энэхүү загвар нь Fedora эсвэл Debian түгээлт дээр суурилсан Linux VM бөгөөд интеграцийн хэрэгслүүд суулгаж тохируулсан, систем болон хэрэглэгчийн зориулалтын хуваалтуудтай. Програм хангамжийг суулгах, шинэчлэх ажлыг заавал дижитал гарын үсгийн баталгаажуулалт (GnuPG) бүхий тохируулсан репозиторуудаас стандарт багц менежер (dnf эсвэл apt) гүйцэтгэдэг. Ийм VM-ийн зорилго нь тэдгээрийн үндсэн дээр эхлүүлсэн програмын VM-д итгэх итгэлийг хангах явдал юм.

Аппликешн VM (AppVM) нь эхлүүлэх үед харгалзах VM загварын системийн хуваалтын агшин зургийг ашигладаг бөгөөд дууссаны дараа өөрчлөлтийг хадгалахгүйгээр энэ хормын хувилбарыг устгадаг. Хэрэглэгчийн шаардлагатай өгөгдөл нь үндсэн лавлахад суурилагдсан VM програм бүрийн хувьд өвөрмөц хэрэглэгчийн хуваалтад хадгалагддаг.

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Нэг удаагийн VM (нэг удаагийн VM) ашиглах нь аюулгүй байдлын үүднээс ашигтай байж болно. Ийм VM нь эхлүүлэх үед загвар дээр тулгуурлан бүтээгдсэн бөгөөд нэг зорилгоор ажиллуулдаг - нэг програмыг ажиллуулж, хаагдсаны дараа ажлыг дуусгах. Нэг удаагийн VM-ийг агуулга нь тодорхой програмын сул талыг ашиглахад хүргэж болзошгүй сэжигтэй файлуудыг нээхэд ашиглаж болно. Нэг удаагийн VM ажиллуулах чадварыг файлын менежер (Nautilus) болон имэйл клиент (Thunderbird)-д нэгтгэсэн.

Windows VM нь хэрэглэгчийн профайлыг тусдаа хэсэг рүү зөөж загвар болон нэг удаагийн VM үүсгэхэд ашиглаж болно. Манай хувилбарт ийм загварыг хэрэглэгч удирдлагын даалгавар болон програм суулгахад ашиглах болно. Загвар дээр үндэслэн сүлжээнд нэвтрэх хязгаарлагдмал (стандарт sys-галт ханын боломжууд) болон сүлжээнд огт нэвтрэх боломжгүй (виртуал сүлжээний төхөөрөмж үүсгэгдээгүй) хэд хэдэн програмын VM-ийг үүсгэх болно. Загварт суулгасан бүх өөрчлөлт, программууд нь эдгээр VM-д ажиллах боломжтой бөгөөд хавчуургын програмуудыг нэвтрүүлсэн байсан ч тэд буулт хийх сүлжээнд нэвтрэх эрхгүй болно.

Windows-ийн төлөө тэмц

Дээр дурдсан функцууд нь Qubes-ийн үндэс суурь бөгөөд нэлээд тогтвортой ажилладаг тул хүндрэлүүд нь Windows-ээс эхэлдэг. Windows-ийг нэгтгэхийн тулд та Xen-тэй ажиллах драйвер, qvideo драйвер, мэдээлэл солилцох хэрэгслүүд (файл дамжуулах, санах ой) агуулсан Qubes Windows Tools (QWT) зочны хэрэгслийг ашиглах ёстой. Суулгах, тохируулах үйл явцыг төслийн вэб сайтад дэлгэрэнгүй баримтжуулсан тул бид өөрсдийн хэрэглээний туршлагаа хуваалцах болно.

Гол бэрхшээл нь үндсэндээ боловсруулсан хэрэгслүүдэд дэмжлэг үзүүлэхгүй байх явдал юм. Түлхүүр хөгжүүлэгчид (QWT) боломжгүй мэт харагдаж байгаа бөгөөд Windows-ийн нэгтгэх төсөл тэргүүлэх хөгжүүлэгчийг хүлээж байна. Тиймээс юуны өмнө түүний гүйцэтгэлийг үнэлж, шаардлагатай бол бие даан дэмжих боломжийн талаар ойлголтыг бий болгох шаардлагатай байв. Хөгжүүлэх, дибаг хийхэд хамгийн хэцүү нь график драйвер бөгөөд видео адаптер болон дэлгэцийг дуурайж, хуваалцсан санах ойд дүрс үүсгэж, бүх ширээний компьютер эсвэл програмын цонхыг хост системийн цонхонд шууд харуулах боломжийг олгодог. Драйверын үйл ажиллагаанд дүн шинжилгээ хийх явцад бид Линукс орчинд угсрах кодыг тохируулж, Windows зочин хоёр системийн хооронд дибаг хийх схемийг боловсруулсан. Хөндлөн бүтээх үе шатанд бид хэд хэдэн өөрчлөлтийг хийсэн бөгөөд энэ нь голчлон хэрэгслүүдийг "чимээгүй" суурилуулах, мөн VM дээр удаан хугацаагаар ажиллах үед гүйцэтгэлийн ядаргаатай доройтлыг арилгасан. Бид ажлын үр дүнг тусад нь танилцуулсан агуулахууд, тиймээс удаан биш урам зоригтой Тэргүүлэх Qubes хөгжүүлэгч.

Зочны системийн тогтвортой байдлын хувьд хамгийн чухал үе шат бол Windows-ийг эхлүүлэх явдал бөгөөд эндээс та танил цэнхэр дэлгэцийг харж болно (эсвэл бүр үүнийг харахгүй байна). Ихэнх илэрсэн алдаануудын хувьд янз бүрийн арга замууд байсан - Xen блок төхөөрөмжийн драйверуудыг арилгах, VM санах ойн тэнцвэрийг идэвхгүй болгох, сүлжээний тохиргоог засах, цөмийн тоог багасгах. Манай зочны хэрэгслүүд нь бүрэн шинэчлэгдсэн Windows 7 болон Windows 10 (qvideo-аас бусад) дээр суулгаж, ажилладаг.

Бодит орчноос виртуаль руу шилжих үед урьдчилан суулгасан OEM хувилбаруудыг ашигласан тохиолдолд Windows-г идэвхжүүлэхэд асуудал үүсдэг. Ийм системүүд нь төхөөрөмжийн UEFI-д заасан лиценз дээр үндэслэн идэвхжүүлэлтийг ашигладаг. Идэвхжүүлэлтийг зөв боловсруулахын тулд хост системийн ACPI хэсгүүдийн аль нэгийг (SLIC хүснэгт) зочны систем рүү хөрвүүлж, үйлдвэрлэгчийг бүртгүүлж бусад хэсгийг бага зэрэг засах шаардлагатай. Xen нь нэмэлт хүснэгтүүдийн ACPI агуулгыг өөрчлөх боломжийг олгодог боловч үндсэн хүснэгтүүдийг өөрчлөхгүйгээр. Qubes-д тохируулсан ижил төстэй OpenXT төслийн нөхөөс нь шийдэлд тусалсан. Засварууд нь зөвхөн бидэнд хэрэг болсон мэт санагдсан бөгөөд Кубесийн үндсэн сан болон Либвирт номын санд орчуулагдсан.

Windows-ийн интеграцийн хэрэгслүүдийн илэрхий сул талууд нь аудио, USB төхөөрөмжүүдийн дэмжлэг байхгүй, GPU-д техник хангамжийн дэмжлэг байхгүй тул медиатай ажиллахад төвөгтэй байдаг. Гэхдээ дээр дурдсан зүйл нь VM-ийг оффисын баримт бичигтэй ажиллахад саад болохгүй, мөн корпорацийн тусгай програмуудыг ажиллуулахад саад болохгүй.

Windows VM загварыг үүсгэсний дараа сүлжээгүй эсвэл хязгаарлагдмал сүлжээтэй ажиллах горимд шилжих шаардлагыг хэрэглээний VM-ийн зохих тохиргоог бий болгосноор биелүүлсэн бөгөөд зөөврийн зөөвөрлөгчийг сонгон холбох боломжийг стандарт үйлдлийн системийн хэрэгслээр шийдсэн. , тэдгээр нь VM sys-usb системд байдаг бөгөөд тэндээс шаардлагатай VM руу "дамжуулах" боломжтой. Хэрэглэгчийн ширээний компьютер иймэрхүү харагдаж байна.

Windows 7-тэй ажиллахын тулд QubesOS ашиглаж байна

Системийн эцсийн хувилбарыг хэрэглэгчид эерэгээр хүлээн зөвшөөрсөн (ийм цогц шийдэл нь боломжтой бол) системийн стандарт хэрэгслүүд нь VPN-ээр дамжуулан хэрэглэгчийн гар утасны ажлын станц руу програмыг өргөжүүлэх боломжийг олгосон.

Оронд дүгнэлтийг

Виртуалчлал нь ерөнхийдөө дэмжлэггүйгээр үлдсэн Windows системийг ашиглах эрсдлийг бууруулах боломжийг олгодог - энэ нь шинэ техник хангамжтай нийцэхгүй, сүлжээгээр эсвэл холбогдсон төхөөрөмжөөр дамжуулан системд нэвтрэх эрхийг хасах эсвэл хянах боломжийг олгодог. нэг удаагийн хөөргөх орчинг хэрэгжүүлэх.

Виртуалчлалаар тусгаарлах санаан дээр үндэслэн Qubes OS нь эдгээр болон бусад аюулгүй байдлын механизмуудыг ашиглахад тусалдаг. Гаднаас нь харахад олон хүмүүс Кубесийг голчлон нэрээ нууцлах хүсэл гэж үздэг ч энэ нь ихэвчлэн төсөл, дэд бүтэц, нууцад нэвтрэхийн тулд жонглёр хийдэг инженерүүд болон аюулгүй байдлын судлаачдад хэрэгтэй систем юм. Аппликейшн, өгөгдлийг салгах, тэдгээрийн харилцан үйлчлэлийг албан ёсны болгох нь аюул заналын шинжилгээ, аюулгүй байдлын системийн дизайны эхний алхамууд юм. Энэхүү тусгаарлалт нь мэдээллийг бүтэцжүүлэх, хүний ​​хүчин зүйлээс шалтгаалсан алдаа гарах магадлалыг бууруулахад тусалдаг - яарах, ядрах гэх мэт.

Одоогийн байдлаар хөгжүүлэлтэд гол анхаарал хандуулж байгаа зүйл бол Линукс орчны үйл ажиллагааг өргөжүүлэх явдал юм. Fedora 4.1 дээр суурилсан, Xen болон Libvirt гол бүрэлдэхүүн хэсгүүдийн одоогийн хувилбаруудыг багтаасан 31 хувилбарыг гаргахаар бэлтгэж байна. Qubes-ийг мэдээллийн аюулгүй байдлын мэргэжилтнүүд бүтээдэг бөгөөд хэрэв шинэ аюул заналхийлэл, алдаа илэрсэн тохиолдолд шинэчлэлтүүдийг байнга гаргадаг гэдгийг тэмдэглэх нь зүйтэй.

Дараах үгс

Бидний хөгжүүлж буй туршилтын боломжуудын нэг нь Intel GVT-g технологи дээр суурилсан GPU-д зочлон нэвтрэх дэмжлэг бүхий VM үүсгэх боломжийг бидэнд олгодог бөгөөд энэ нь график адаптерийн чадварыг ашиглах, системийн хамрах хүрээг ихээхэн өргөжүүлэх боломжийг олгодог. Бичиж байх үед энэ функц нь Qubes 4.1-ийн туршилтын хувилбаруудад зориулагдсан бөгөөд одоо ашиглах боломжтой github.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх