Korištenje QubesOS-a za rad sa sustavom Windows 7

Na Habréu nema puno članaka posvećenih Qubes operativnom sustavu, a oni koje sam vidio ne opisuju puno iskustva korištenja. U nastavku se nadam da ću to ispraviti pomoću primjera korištenja Qubesa kao sredstva zaštite (od) Windows okruženja i, u isto vrijeme, procijeniti broj korisnika sustava koji govore ruski.

Korištenje QubesOS-a za rad sa sustavom Windows 7

Zašto Qubes?

Priča o kraju tehničke podrške za Windows 7 i sve veća tjeskoba korisnika doveli su do potrebe za organizacijom rada ovog OS-a, uzimajući u obzir sljedeće zahtjeve:

  • osigurati korištenje potpuno aktiviranog sustava Windows 7 s mogućnošću da korisnik instalira ažuriranja i razne aplikacije (uključujući i putem interneta);
  • implementirati potpuno ili selektivno isključivanje mrežnih interakcija na temelju uvjeta (autonomni rad i načini filtriranja prometa);
  • pružaju mogućnost selektivnog povezivanja prijenosnih medija i uređaja.

Ovaj skup ograničenja pretpostavlja jasno pripremljenog korisnika, budući da je dopuštena neovisna administracija, a ograničenja se ne odnose na blokiranje njegovih potencijalnih radnji, već na isključivanje mogućih pogrešaka ili destruktivnih softverskih učinaka. Oni. U modelu nema unutarnjeg prijestupnika.

U našoj potrazi za rješenjem, brzo smo napustili ideju implementacije ograničenja pomoću ugrađenih ili dodatnih Windows alata, jer je prilično teško učinkovito ograničiti korisnika administratorskim pravima, ostavljajući mu mogućnost instaliranja aplikacija.

Sljedeće rješenje bila je izolacija pomoću virtualizacije. Poznati alati za virtualizaciju desktopa (primjerice, kao što je virtualbox) su slabo prikladni za rješavanje sigurnosnih problema i navedena ograničenja korisnik će morati provoditi stalnim prebacivanjem ili prilagođavanjem svojstava gostujućeg virtualnog stroja (u daljnjem tekstu kao VM), što povećava rizik od pogrešaka.

U isto vrijeme, imali smo iskustva s korištenjem Qubesa kao korisničkog stolnog sustava, ali smo sumnjali u stabilnost rada s gostujućim Windowsima. Odlučeno je provjeriti trenutnu verziju Qubesa, budući da se navedena ograničenja vrlo dobro uklapaju u paradigmu ovog sustava, posebice implementacija predložaka virtualnog stroja i vizualne integracije. Zatim ću pokušati ukratko govoriti o idejama i alatima Qubesa, koristeći primjer rješavanja problema.

Vrste Xen virtualizacije

Qubes se temelji na Xen hipervizoru koji minimizira funkcije upravljanja procesorskim resursima, memorijom i virtualnim strojevima. Sav ostali rad s uređajima koncentriran je u dom0 baziran na Linux kernelu (Qubes za dom0 koristi Fedora distribuciju).

Korištenje QubesOS-a za rad sa sustavom Windows 7

Xen podržava nekoliko vrsta virtualizacije (ja ću dati primjere za Intelovu arhitekturu, iako Xen podržava i druge):

  • paravirtualizacija (PV) - način virtualizacije bez upotrebe hardverske podrške, koji podsjeća na virtualizaciju spremnika, može se koristiti za sustave s prilagođenom jezgrom (dom0 radi u ovom načinu);
  • potpuna virtualizacija (HVM) - u ovom načinu rada hardverska podrška se koristi za resurse procesora, a sva ostala oprema emulira se pomoću QEMU. Ovo je najuniverzalniji način pokretanja različitih operativnih sustava;
  • paravirtualizacija hardvera (PVH - ParaVirtualized Hardware) - način virtualizacije koji koristi hardversku podršku kada za rad s hardverom jezgra gostujućeg sustava koristi upravljačke programe prilagođene mogućnostima hipervizora (na primjer, dijeljena memorija), eliminirajući potrebu za QEMU emulacijom i povećanje I/O performansi. Linux kernel počevši od 4.11 može raditi u ovom načinu rada.

Korištenje QubesOS-a za rad sa sustavom Windows 7

Počevši od Qubes 4.0, iz sigurnosnih razloga, napuštena je upotreba paravirtualizacijskog načina (uključujući i zbog poznatih ranjivosti u Intelovoj arhitekturi, koje su djelomično ublažene upotrebom potpune virtualizacije); PVH način rada koristi se prema zadanim postavkama.

Kada se koristi emulacija (HVM način rada), QEMU se pokreće u izoliranom VM-u koji se naziva stubdomain, čime se smanjuju rizici od iskorištavanja potencijalnih pogrešaka u implementaciji (projekt QEMU sadrži mnogo koda, uključujući kod za kompatibilnost).
U našem slučaju, ovaj način rada trebao bi se koristiti za Windows.

Servisirajte virtualne strojeve

U Qubes sigurnosnoj arhitekturi, jedna od ključnih mogućnosti hipervizora je prijenos PCI uređaja u gostujuću okolinu. Isključivanje hardvera omogućuje izolaciju glavnog dijela sustava od vanjskih napada. Xen to podržava za PV i HVM modove, u drugom slučaju zahtijeva podršku za IOMMU (Intel VT-d) - hardversko upravljanje memorijom za virtualizirane uređaje.

Ovo stvara nekoliko virtualnih strojeva sustava:

  • sys-net, na koji se prenose mrežni uređaji i koji se koristi kao most za druge VM-ove, primjerice one koji implementiraju funkcije vatrozida ili VPN klijenta;
  • sys-usb, na koji se prenose USB i drugi kontroleri perifernih uređaja;
  • sys-firewall, koji ne koristi uređaje, već radi kao vatrozid za povezane VM-ove.

Za rad s USB uređajima koriste se proxy usluge koje između ostalog omogućuju:

  • za klasu uređaja HID (human interface device), slanje naredbi dom0;
  • za prijenosne medije, preusmjeravanje volumena uređaja na druge VM (osim za dom0);
  • preusmjeravanje izravno na USB uređaj (koristeći USBIP i alate za integraciju).

U takvoj konfiguraciji, uspješan napad kroz mrežni stog ili povezane uređaje može dovesti do kompromitacije samo VM servisa koji radi, a ne cijelog sustava u cjelini. I nakon ponovnog pokretanja usluge VM, ona će se učitati u izvornom stanju.

Alati za VM integraciju

Postoji nekoliko načina za interakciju s radnom površinom virtualnog stroja - instaliranje aplikacija u sustav za goste ili emulacija videa pomoću alata za virtualizaciju. Gostujuće aplikacije mogu biti različiti univerzalni alati za daljinski pristup (RDP, VNC, Spice itd.) ili prilagođeni određenom hipervizoru (takvi se alati obično nazivaju guest utilities). Također se može koristiti mješovita opcija, kada hipervizor emulira I/O za gostujući sustav, a eksterno pruža mogućnost korištenja protokola koji kombinira I/O, na primjer, kao što je Spice. Istodobno, alati za daljinski pristup obično optimiziraju sliku, budući da uključuju rad putem mreže, što nema pozitivan učinak na kvalitetu slike.

Qubes nudi vlastite alate za VM integraciju. Prije svega, ovo je grafički podsustav - prozori iz različitih VM-ova prikazuju se na jednoj radnoj površini s vlastitim okvirom u boji. Općenito, alati za integraciju temelje se na mogućnostima hipervizora - zajednička memorija (Xen grant table), alati za obavještavanje (Xen event channel), zajednička pohrana xenstore i vchan komunikacijski protokol. Uz njihovu pomoć implementiraju se osnovne komponente qrexec i qubes-rpc, te aplikativni servisi - audio ili USB preusmjeravanje, prijenos datoteka ili sadržaja međuspremnika, izvršavanje naredbi i pokretanje aplikacija. Moguće je postaviti pravila koja vam omogućuju ograničavanje usluga dostupnih na VM-u. Slika ispod je primjer postupka za pokretanje interakcije dva VM-a.

Korištenje QubesOS-a za rad sa sustavom Windows 7

Stoga se rad u VM-u odvija bez korištenja mreže, što omogućuje potpuno korištenje autonomnih VM-ova kako bi se izbjeglo curenje informacija. Na primjer, ovako se provodi razdvajanje kriptografskih operacija (PGP/SSH), kada se privatni ključevi koriste u izoliranim VM-ovima i ne idu dalje od njih.

Predlošci, aplikacije i jednokratni VM-ovi

Sav rad korisnika u Qubesu obavlja se u virtualnim strojevima. Za njihovu kontrolu i vizualizaciju koristi se glavni host sustav. OS je instaliran zajedno s osnovnim skupom virtualnih strojeva temeljenih na predlošcima (TemplateVM). Ovaj je predložak Linux VM temeljen na distribuciji Fedora ili Debian, s instaliranim i konfiguriranim alatima za integraciju te namjenskim sistemskim i korisničkim particijama. Instalaciju i ažuriranje softvera provodi standardni paketni upravitelj (dnf ili apt) iz konfiguriranih repozitorija uz obaveznu provjeru digitalnog potpisa (GnuPG). Svrha takvih VM-ova je osigurati povjerenje u aplikacijske VM-ove pokrenute na njihovoj osnovi.

Prilikom pokretanja, aplikacijski VM (AppVM) koristi snimku sistemske particije odgovarajućeg VM predloška, ​​a nakon završetka briše ovu snimku bez spremanja promjena. Podaci koje zahtijeva korisnik pohranjuju se u korisničku particiju jedinstvenu za svaku aplikaciju VM, koja je montirana u matični direktorij.

Korištenje QubesOS-a za rad sa sustavom Windows 7

Korištenje jednokratnih VM-ova (disposableVM) može biti korisno sa sigurnosne točke gledišta. Takav VM kreira se na temelju predloška u trenutku pokretanja i pokreće se s jednom svrhom - da izvrši jednu aplikaciju, dovršavajući posao nakon njenog zatvaranja. Jednokratni VM-ovi mogu se koristiti za otvaranje sumnjivih datoteka čiji bi sadržaj mogao dovesti do iskorištavanja određenih ranjivosti aplikacije. Mogućnost pokretanja jednokratnog VM-a integrirana je u upravitelj datoteka (Nautilus) i klijent e-pošte (Thunderbird).

Windows VM također se može koristiti za stvaranje predloška i jednokratnog VM-a premještanjem korisničkog profila u zaseban odjeljak. U našoj verziji takav će predložak korisnik koristiti za administrativne zadatke i instalaciju aplikacije. Na temelju predloška izradit će se nekoliko aplikacijskih VM-ova - s ograničenim pristupom mreži (standardne mogućnosti sys-firewalla) i bez pristupa mreži uopće (ne stvara se virtualni mrežni uređaj). Sve promjene i aplikacije instalirane u predlošku bit će dostupne za rad u ovim VM-ovima, a čak i ako se uvedu programi za označavanje, oni neće imati mrežni pristup radi kompromisa.

Borba za Windows

Gore opisane značajke temelj su Qubesa i rade prilično stabilno; poteškoće počinju s Windowsima. Da biste integrirali Windows, morate koristiti skup gostujućih alata Qubes Windows Tools (QWT), koji uključuje upravljačke programe za rad s Xenom, qvideo upravljački program i skup uslužnih programa za razmjenu informacija (prijenos datoteka, međuspremnik). Proces instalacije i konfiguracije detaljno je dokumentiran na web stranici projekta, pa ćemo podijeliti svoje iskustvo s aplikacijom.

Glavna poteškoća je u biti nedostatak podrške za razvijene alate. Čini se da ključni programeri (QWT) nisu dostupni, a projekt integracije sustava Windows čeka glavnog programera. Stoga je prije svega bilo potrebno procijeniti njegovu učinkovitost i formirati razumijevanje o mogućnosti samostalnog podržavanja, ako je potrebno. Najteži za razvoj i otklanjanje pogrešaka je grafički upravljački program, koji emulira video adapter i zaslon za generiranje slike u zajedničkoj memoriji, omogućujući vam da prikažete cijelu radnu površinu ili prozor aplikacije izravno u prozoru glavnog sustava. Tijekom analize rada drajvera, prilagodili smo kod za asembler u Linux okruženju i razradili shemu otklanjanja pogrešaka između dva Windows gostujuća sustava. U fazi crossbuilda napravili smo nekoliko promjena koje su pojednostavile stvari za nas, uglavnom u smislu "tihe" instalacije uslužnih programa, a također su eliminirale dosadnu degradaciju performansi tijekom dugog rada u VM-u. Rezultate rada prikazali smo u zasebnom spremišta, dakle ne zadugo inspirativno Vodeći Qubes programer.

Najkritičnija faza u smislu stabilnosti gostujućeg sustava je pokretanje Windowsa, ovdje možete vidjeti poznati plavi ekran (ili ga čak i ne vidjeti). Za većinu identificiranih pogrešaka postojala su različita rješenja - eliminacija Xen blok upravljačkih programa uređaja, onemogućavanje balansiranja VM memorije, popravljanje mrežnih postavki i smanjivanje broja jezgri. Naši alati za goste se instaliraju i rade na potpuno ažuriranim Windows 7 i Windows 10 (osim qvideo).

Prilikom prelaska iz stvarnog okruženja u virtualno, javlja se problem s aktivacijom Windowsa ako se koriste predinstalirane OEM verzije. Takvi sustavi koriste aktivaciju na temelju licenci navedenih u UEFI-ju uređaja. Za ispravnu obradu aktivacije potrebno je jedan od cijelih ACPI odjeljaka host sustava (SLIC tablica) prevesti u gostujući sustav, a ostale malo urediti uz registraciju proizvođača. Xen vam omogućuje da prilagodite ACPI sadržaj dodatnih tablica, ali bez izmjene glavnih. Zakrpa iz sličnog OpenXT projekta, koja je prilagođena za Qubes, pomogla je u rješenju. Popravci su se činili korisnima ne samo nama i prevedeni su u glavni Qubes repozitorij i Libvirt knjižnicu.

Očigledni nedostaci alata za integraciju sustava Windows uključuju nedostatak podrške za audio, USB uređaje i složenost rada s medijima, budući da nema hardverske podrške za GPU. Ali navedeno ne sprječava korištenje VM-a za rad s uredskim dokumentima, niti sprječava pokretanje određenih korporativnih aplikacija.

Zahtjev za prebacivanjem u način rada bez mreže ili s ograničenom mrežom nakon izrade Windows VM predloška ispunjen je kreiranjem odgovarajućih konfiguracija aplikacijskih VM-ova, a mogućnost selektivnog povezivanja izmjenjivih medija također je riješena standardnim OS alatima - kada se poveže , dostupni su u sustavu VM sys-usb, odakle se mogu "proslijediti" na traženi VM. Radna površina korisnika izgleda otprilike ovako.

Korištenje QubesOS-a za rad sa sustavom Windows 7

Konačna verzija sustava je pozitivno (u onoj mjeri u kojoj takvo cjelovito rješenje dopušta) prihvaćena od strane korisnika, a standardni alati sustava omogućili su proširenje aplikacije na mobilnu radnu stanicu korisnika s pristupom putem VPN-a.

Umjesto zaključka

Virtualizacija vam općenito omogućuje smanjenje rizika korištenja Windows sustava bez podrške - ne nameće kompatibilnost s novim hardverom, omogućuje vam da isključite ili kontrolirate pristup sustavu putem mreže ili putem povezanih uređaja i omogućuje vam implementirati okruženje za jednokratno pokretanje.

Na temelju ideje o izolaciji putem virtualizacije, Qubes OS vam pomaže da iskoristite ove i druge mehanizme za sigurnost. Izvana, mnogi ljudi vide Qubes prvenstveno kao želju za anonimnošću, ali to je koristan sustav kako za inženjere, koji često žongliraju s projektima, infrastrukturom i tajnama kako bi im pristupili, tako i za sigurnosne istraživače. Razdvajanje aplikacija, podataka i formalizacija njihove interakcije početni su koraci analize prijetnji i projektiranja sigurnosnog sustava. Ovo odvajanje pomaže u strukturiranju informacija i smanjenju vjerojatnosti pogrešaka uzrokovanih ljudskim faktorom - žurba, umor itd.

Trenutačno je glavni naglasak u razvoju na proširenju funkcionalnosti Linux okruženja. Za izdavanje se priprema verzija 4.1 koja će se temeljiti na Fedori 31 i uključivati ​​trenutne verzije ključnih komponenti Xen i Libvirt. Vrijedno je napomenuti da su Qubes izradili stručnjaci za informacijsku sigurnost koji uvijek promptno objavljuju ažuriranja ako se otkriju nove prijetnje ili pogreške.

pogovor

Jedna od eksperimentalnih mogućnosti koje razvijamo omogućuje nam stvaranje VM-ova s ​​podrškom za gostujući pristup GPU-u na temelju Intel GVT-g tehnologije, što nam omogućuje korištenje mogućnosti grafičkog adaptera i značajno proširenje opsega sustava. U vrijeme pisanja, ova funkcionalnost radi za testne verzije Qubesa 4.1 i dostupna je na Github.

Izvor: www.habr.com

Dodajte komentar