Windows 7 ile çalışmak için QubesOS'u kullanma

Habré hakkında Qubes işletim sistemine ayrılmış çok fazla makale yok ve benim gördüklerim de onu kullanma deneyiminin çoğunu anlatmıyor. Kesimin altında, Qubes'i Windows ortamına (karşı) koruma aracı olarak kullanma örneğini kullanarak bunu düzeltmeyi ve aynı zamanda sistemin Rusça konuşan kullanıcılarının sayısını tahmin etmeyi umuyorum.

Windows 7 ile çalışmak için QubesOS'u kullanma

Neden Qubes?

Windows 7 için teknik desteğin sona ermesinin öyküsü ve kullanıcıların artan kaygısı, bu işletim sisteminin çalışmasını aşağıdaki gereksinimleri dikkate alarak organize etme ihtiyacını doğurdu:

  • kullanıcının güncellemeleri ve çeşitli uygulamaları (İnternet aracılığıyla dahil) yükleme yeteneği ile tamamen etkinleştirilmiş Windows 7'nin kullanılmasını sağlamak;
  • koşullara (otonom çalışma ve trafik filtreleme modları) bağlı olarak ağ etkileşimlerinin tamamen veya seçici olarak hariç tutulmasını uygulamak;
  • çıkarılabilir medyayı ve cihazları seçici olarak bağlama yeteneği sağlar.

Bu kısıtlamalar dizisi, bağımsız yönetime izin verildiğinden ve kısıtlamalar kullanıcının potansiyel eylemlerinin engellenmesiyle değil, olası hataların veya yıkıcı yazılım etkilerinin hariç tutulmasıyla ilgili olduğundan, açıkça hazırlanmış bir kullanıcıyı gerektirir. Onlar. Modelde dahili suçlu yoktur.

Çözüm arayışımızda, yerleşik veya ek Windows araçlarını kullanarak kısıtlamalar uygulama fikrinden hızla vazgeçtik, çünkü bir kullanıcıyı yönetici haklarıyla etkili bir şekilde kısıtlamak ve ona uygulama yükleme yeteneği bırakmak oldukça zordur.

Bir sonraki çözüm sanallaştırma kullanılarak izolasyondu. Masaüstü sanallaştırmaya yönelik iyi bilinen araçlar (örneğin, sanal kutu gibi) güvenlik sorunlarını çözmek için pek uygun değildir ve listelenen kısıtlamaların kullanıcı tarafından konuk sanal makinenin (bundan böyle anılacaktır) özelliklerini sürekli değiştirerek veya ayarlayarak yapılması gerekecektir. VM olarak), bu da hata riskini artırır.

Aynı zamanda Qubes'u kullanıcının masaüstü sistemi olarak kullanma deneyimimiz vardı, ancak konuk Windows ile çalışmanın kararlılığı konusunda şüphelerimiz vardı. Belirtilen sınırlamalar, özellikle sanal makine şablonlarının uygulanması ve görsel entegrasyon gibi bu sistemin paradigmasına çok iyi uyduğundan Qubes'in mevcut sürümünün kontrol edilmesine karar verildi. Daha sonra problem çözme örneğini kullanarak Qubes'in fikirlerinden ve araçlarından kısaca bahsetmeye çalışacağım.

Xen sanallaştırma türleri

Qubes, işlemci kaynaklarını, belleği ve sanal makineleri yönetme işlevlerini en aza indiren Xen hipervizörünü temel alır. Cihazlarla yapılan diğer tüm çalışmalar Linux çekirdeğini temel alan dom0'da yoğunlaşmıştır (dom0 için Qubes, Fedora dağıtımını kullanır).

Windows 7 ile çalışmak için QubesOS'u kullanma

Xen çeşitli sanallaştırma türlerini destekler (Xen diğerlerini desteklese de Intel mimarisi için örnekler vereceğim):

  • paravirtualization (PV) - uyarlanmış çekirdeğe sahip sistemler için konteyner sanallaştırmasını anımsatan, donanım desteği kullanmadan bir sanallaştırma modu kullanılabilir (dom0 bu modda çalışır);
  • tam sanallaştırma (HVM) - bu modda, işlemci kaynakları için donanım desteği kullanılır ve diğer tüm ekipmanlar QEMU kullanılarak taklit edilir. Bu, çeşitli işletim sistemlerini çalıştırmanın en evrensel yoludur;
  • donanımın paravirtualization'ı (PVH - ParaVirtualized Hardware) - konuk sistem çekirdeğinin donanımla çalışmak için hipervizörün (örneğin, paylaşılan bellek) yeteneklerine uyarlanmış sürücüleri kullandığı ve QEMU emülasyonu ihtiyacını ortadan kaldırdığı donanım desteğini kullanan bir sanallaştırma modu ve G/Ç performansını artırma. 4.11'den itibaren Linux çekirdeği bu modda çalışabilir.

Windows 7 ile çalışmak için QubesOS'u kullanma

Qubes 4.0'dan başlayarak, güvenlik nedenleriyle paravirtualizasyon modunun kullanımından vazgeçilmiştir (Intel mimarisindeki bilinen güvenlik açıkları nedeniyle tam sanallaştırma kullanılarak kısmen hafifletilmiştir); PVH modu varsayılan olarak kullanılır.

Öykünme (HVM modu) kullanıldığında, QEMU, stubdomain adı verilen yalıtılmış bir VM'de başlatılır, böylece uygulamadaki olası hatalardan yararlanma riski azalır (QEMU projesi, uyumluluk da dahil olmak üzere çok sayıda kod içerir).
Bizim durumumuzda bu mod Windows için kullanılmalıdır.

Hizmet sanal makineleri

Qubes güvenlik mimarisinde hipervizörün temel yeteneklerinden biri PCI cihazlarının konuk ortamına aktarılmasıdır. Donanım hariç tutma, sistemin ana bilgisayar kısmını harici saldırılardan yalıtmanıza olanak tanır. Xen bunu PV ve HVM modları için destekler; ikinci durumda, sanallaştırılmış cihazlar için donanım bellek yönetimi olan IOMMU (Intel VT-d) desteği gerektirir.

Bu, birkaç sistem sanal makinesi oluşturur:

  • ağ cihazlarının aktarıldığı ve diğer VM'ler için köprü olarak kullanılan, örneğin bir güvenlik duvarı veya VPN istemcisinin işlevlerini uygulayan sys-net;
  • USB ve diğer çevre birimi aygıt denetleyicilerinin aktarıldığı sys-usb;
  • Cihazları kullanmayan ancak bağlı VM'ler için güvenlik duvarı olarak çalışan sys-firewall.

USB cihazlarıyla çalışmak için, diğer şeylerin yanı sıra aşağıdakileri sağlayan proxy hizmetleri kullanılır:

  • HID (insan arayüz cihazı) cihaz sınıfı için dom0'a komutların gönderilmesi;
  • çıkarılabilir medya için, cihaz birimlerinin diğer VM'lere yeniden yönlendirilmesi (dom0 hariç);
  • doğrudan bir USB cihazına yönlendirme (USBIP ve entegrasyon araçlarını kullanarak).

Böyle bir konfigürasyonda, ağ yığını veya bağlı cihazlar üzerinden yapılan başarılı bir saldırı, bir bütün olarak sistemin tamamının değil, yalnızca çalışan hizmet VM'sinin tehlikeye atılmasına yol açabilir. Ve hizmet VM'sini yeniden başlattıktan sonra orijinal durumuna yüklenecektir.

VM entegrasyon araçları

Bir sanal makinenin masaüstüyle etkileşim kurmanın birkaç yolu vardır; konuk sisteme uygulamalar yüklemek veya sanallaştırma araçlarını kullanarak videoyu taklit etmek. Konuk uygulamaları çeşitli evrensel uzaktan erişim araçları (RDP, VNC, Spice, vb.) olabilir veya belirli bir hipervizöre uyarlanabilir (bu tür araçlara genellikle konuk yardımcı programları denir). Hiper yönetici konuk sistem için G/Ç'yi taklit ettiğinde ve harici olarak örneğin Spice gibi G/Ç'yi birleştiren bir protokolü kullanma yeteneği sağladığında karma bir seçenek de kullanılabilir. Aynı zamanda, uzaktan erişim araçları genellikle görüntüyü optimize eder, çünkü bunlar bir ağ üzerinden çalışmayı içerir ve bunun görüntü kalitesi üzerinde olumlu bir etkisi yoktur.

Qubes, VM entegrasyonu için kendi araçlarını sağlar. Her şeyden önce, bu bir grafik alt sistemidir - farklı VM'lerden gelen pencereler, kendi renkli çerçeveleriyle tek bir masaüstünde görüntülenir. Genel olarak entegrasyon araçları, hipervizörün (paylaşılan bellek (Xen hibe tablosu), bildirim araçları (Xen olay kanalı), paylaşılan depolama xenstore ve vchan iletişim protokolü) yeteneklerine dayanır. Onların yardımıyla, qrexec ve qubes-rpc temel bileşenleri ve uygulama hizmetleri uygulanır - ses veya USB yeniden yönlendirme, dosya veya pano içeriği aktarma, komutları yürütme ve uygulamaları başlatma. Bir VM'de mevcut olan hizmetleri sınırlamanıza olanak tanıyan politikalar ayarlamak mümkündür. Aşağıdaki şekil, iki VM'nin etkileşimini başlatma prosedürünün bir örneğidir.

Windows 7 ile çalışmak için QubesOS'u kullanma

Böylece VM'deki çalışma, bilgi sızıntısını önlemek için otonom VM'lerin tam kullanımına olanak tanıyan bir ağ kullanılmadan gerçekleştirilir. Örneğin, özel anahtarlar yalıtılmış VM'lerde kullanıldığında ve bunların ötesine geçmediğinde, şifreleme işlemlerinin ayrılması (PGP/SSH) bu şekilde uygulanır.

Şablonlar, uygulama ve tek seferlik VM'ler

Qubes'teki tüm kullanıcı çalışmaları sanal makinelerde yapılır. Ana ana bilgisayar sistemi bunları kontrol etmek ve görselleştirmek için kullanılır. İşletim sistemi, temel bir şablon tabanlı sanal makine seti (TemplateVM) ile birlikte yüklenir. Bu şablon, Fedora veya Debian dağıtımını temel alan, entegrasyon araçlarının kurulu ve yapılandırılmış olduğu ve özel sistem ve kullanıcı bölümlerine sahip bir Linux VM'sidir. Yazılımın kurulumu ve güncellenmesi, zorunlu dijital imza doğrulaması (GnuPG) ile yapılandırılmış depolardan standart bir paket yöneticisi (dnf veya apt) tarafından gerçekleştirilir. Bu tür VM'lerin amacı, kendi temelinde başlatılan uygulama VM'lerine güven sağlamaktır.

Başlangıçta, bir uygulama VM'si (AppVM), ilgili VM şablonunun sistem bölümünün anlık görüntüsünü kullanır ve tamamlandığında, değişiklikleri kaydetmeden bu anlık görüntüyü siler. Kullanıcının ihtiyaç duyduğu veriler, ana dizine monte edilen her uygulama VM'si için benzersiz bir kullanıcı bölümünde depolanır.

Windows 7 ile çalışmak için QubesOS'u kullanma

Tek kullanımlık VM'lerin (disposableVM) kullanılması güvenlik açısından yararlı olabilir. Böyle bir VM, başlatma sırasındaki bir şablona göre oluşturulur ve tek bir amaç için başlatılır - bir uygulamayı yürütmek, kapatıldıktan sonra işi tamamlamak. Tek kullanımlık VM'ler, içeriği belirli uygulama güvenlik açıklarından yararlanılmasına yol açabilecek şüpheli dosyaları açmak için kullanılabilir. Tek seferlik bir VM çalıştırma yeteneği, dosya yöneticisine (Nautilus) ve e-posta istemcisine (Thunderbird) entegre edilmiştir.

Windows VM, kullanıcı profilini ayrı bir bölüme taşıyarak şablon ve tek seferlik VM oluşturmak için de kullanılabilir. Bizim versiyonumuzda böyle bir şablon kullanıcı tarafından yönetim görevleri ve uygulama kurulumu için kullanılacaktır. Şablona dayalı olarak, ağa sınırlı erişime sahip (standart sistem güvenlik duvarı özellikleri) ve ağa hiç erişimi olmayan (bir sanal ağ cihazı oluşturulmaz) birkaç uygulama VM'si oluşturulacaktır. Şablonda yüklü olan tüm değişiklikler ve uygulamalar bu VM'lerde çalışmaya uygun olacak ve yer imi programları tanıtılsa bile, uzlaşma için ağ erişimine sahip olmayacaklar.

Windows için savaşın

Yukarıda anlatılan özellikler Qubes'in temelidir ve oldukça stabil çalışır; zorluklar Windows'la başlar. Windows'u entegre etmek için, Xen ile çalışmak için sürücüler, bir qvideo sürücüsü ve bilgi alışverişi için bir dizi yardımcı program (dosya aktarımı, pano) içeren bir dizi konuk aracı Qubes Windows Tools (QWT) kullanmanız gerekir. Kurulum ve konfigürasyon süreci proje web sitesinde ayrıntılı olarak belgelenmiştir, bu nedenle uygulama deneyimimizi paylaşacağız.

Temel zorluk, esas olarak geliştirilen araçlara yönelik desteğin bulunmamasıdır. Anahtar Geliştiriciler (QWT) kullanılamıyor gibi görünüyor ve Windows entegrasyon projesi bir lider geliştiriciyi bekliyor. Bu nedenle, öncelikle performansını değerlendirmek ve gerekirse onu bağımsız olarak destekleme olasılığına dair bir anlayış oluşturmak gerekiyordu. Geliştirilmesi ve hata ayıklaması en zor olanı, paylaşılan bellekte bir görüntü oluşturmak için video bağdaştırıcısını ve ekranı taklit eden, tüm masaüstünü veya uygulama penceresini doğrudan ana sistem penceresinde görüntülemenize olanak tanıyan grafik sürücüsüdür. Sürücünün çalışmasının analizi sırasında, kodu bir Linux ortamında montaj için uyarladık ve iki Windows konuk sistemi arasında bir hata ayıklama şeması geliştirdik. Çapraz oluşturma aşamasında, esas olarak yardımcı programların "sessiz" kurulumu açısından işleri bizim için basitleştiren ve aynı zamanda bir VM'de uzun süre çalışırken sinir bozucu performans düşüşünü de ortadan kaldıran birkaç değişiklik yaptık. Çalışmanın sonuçlarını ayrı bir dosyada sunduk. depolaryani uzun sürmeyecek ilham verici Lider Qubes Geliştiricisi.

Konuk sistem kararlılığı açısından en kritik aşama Windows'un başlatılmasıdır, burada tanıdık mavi ekranı görebilirsiniz (veya göremeyebilirsiniz). Tanımlanan hataların çoğu için çeşitli geçici çözümler mevcuttu: Xen blok aygıt sürücülerini ortadan kaldırmak, VM bellek dengelemeyi devre dışı bırakmak, ağ ayarlarını düzeltmek ve çekirdek sayısını en aza indirmek. Konuk araçlarımız, tamamen güncellenmiş Windows 7 ve Windows 10'da (qvideo hariç) kurulum yapar ve çalışır.

Gerçek bir ortamdan sanal ortama geçerken, önceden yüklenmiş OEM sürümleri kullanılıyorsa Windows'un etkinleştirilmesinde bir sorun ortaya çıkar. Bu tür sistemler, cihazın UEFI'sinde belirtilen lisanslara dayalı olarak etkinleştirmeyi kullanır. Etkinleştirmeyi doğru bir şekilde işlemek için, ana sistemin tüm ACPI bölümlerinden birini (SLIC tablosu) konuk sisteme çevirmek ve diğerlerini üreticiyi kaydederek hafifçe düzenlemek gerekir. Xen, ek tabloların ACPI içeriğini ana tabloları değiştirmeden özelleştirmenize olanak tanır. Benzer bir OpenXT projesinden Qubes'e uyarlanan bir yama çözüme yardımcı oldu. Düzeltmeler yalnızca bizim için yararlı görünmekle kalmadı, aynı zamanda ana Qubes deposuna ve Libvirt kitaplığına da çevrildi.

Windows entegrasyon araçlarının bariz dezavantajları arasında ses, USB aygıtları için destek eksikliği ve GPU için donanım desteği olmadığından medyayla çalışmanın karmaşıklığı yer alıyor. Ancak yukarıdakiler, VM'nin ofis belgeleriyle çalışmak için kullanılmasını veya belirli kurumsal uygulamaların başlatılmasını engellemez.

Bir Windows VM şablonu oluşturduktan sonra ağ olmadan veya sınırlı bir ağ ile çalışma moduna geçme gereksinimi, uygulama VM'lerinin uygun yapılandırmaları oluşturularak yerine getirildi ve çıkarılabilir medyayı seçici olarak bağlama olasılığı da standart işletim sistemi araçlarıyla (bağlandığında) çözüldü. , bunlar sistem VM sys-usb'sinde mevcuttur ve buradan gerekli VM'ye "iletilebilirler". Kullanıcının masaüstü buna benzer bir şeye benziyor.

Windows 7 ile çalışmak için QubesOS'u kullanma

Sistemin son versiyonu kullanıcılar tarafından olumlu bir şekilde (bu kadar kapsamlı bir çözümün izin verdiği ölçüde) kabul edildi ve sistemin standart araçları, uygulamanın VPN üzerinden erişim ile kullanıcının mobil iş istasyonuna genişletilmesine olanak sağladı.

Bunun yerine bir sonuca

Genel olarak sanallaştırma, desteksiz bırakılan Windows sistemlerini kullanma risklerini azaltmanıza olanak tanır; yeni donanımla uyumluluğu zorlamaz, ağ üzerinden veya bağlı cihazlar aracılığıyla sisteme erişimi hariç tutmanıza veya kontrol etmenize olanak tanır ve şunları yapmanızı sağlar: tek seferlik bir başlatma ortamı uygulayın.

Sanallaştırma yoluyla izolasyon fikrine dayanan Qubes OS, güvenlik için bu ve diğer mekanizmalardan yararlanmanıza yardımcı olur. Dışarıdan pek çok kişi Qubes'i öncelikle anonimlik arzusu olarak görüyor, ancak bu hem projelere, altyapılara ve sırlara erişmek için genellikle hokkabazlık yapan mühendisler hem de güvenlik araştırmacıları için yararlı bir sistemdir. Uygulamaların, verilerin ayrılması ve etkileşimlerinin resmileştirilmesi, tehdit analizi ve güvenlik sistemi tasarımının ilk adımlarıdır. Bu ayırma, bilginin yapılandırılmasına ve insan faktöründen (acele, yorgunluk vb.) kaynaklanan hata olasılığının azaltılmasına yardımcı olur.

Şu anda geliştirmedeki ana vurgu, Linux ortamlarının işlevselliğini genişletmektir. Fedora 4.1'i temel alacak ve Xen ve Libvirt temel bileşenlerinin güncel sürümlerini içerecek olan Sürüm 31 yayınlanmak üzere hazırlanıyor. Qubes'un, yeni tehditler veya hatalar tespit edildiğinde güncellemeleri her zaman derhal yayınlayan bilgi güvenliği uzmanları tarafından oluşturulduğunu belirtmekte fayda var.

Послесловие

Geliştirdiğimiz deneysel yeteneklerden biri, Intel GVT-g teknolojisine dayalı GPU'ya konuk erişimini destekleyen VM'ler oluşturmamıza olanak tanıyor, bu da grafik bağdaştırıcısının yeteneklerini kullanmamıza ve sistemin kapsamını önemli ölçüde genişletmemize olanak tanıyor. Yazma sırasında bu işlevsellik Qubes 4.1'in test yapılarında çalışmaktadır ve şu adreste mevcuttur: github.

Kaynak: habr.com

Yorum ekle