Korišćenje QubesOS-a za rad sa Windows 7

Na Habréu nema mnogo članaka posvećenih Qubes operativnom sistemu, a oni koje sam vidio ne opisuju mnogo iskustva korištenja. Ispod reza, nadam se da ću ovo ispraviti na primjeru korištenja Qubesa kao sredstva zaštite (od) Windows okruženja i istovremeno procijeniti broj korisnika sistema koji govore ruski.

Korišćenje QubesOS-a za rad sa Windows 7

Zašto Qubes?

Priča o prestanku tehničke podrške za Windows 7 i sve veća anksioznost korisnika dovela je do potrebe da se rad ovog OS-a organizuje, uzimajući u obzir sljedeće zahtjeve:

  • osigurati korištenje potpuno aktiviranog 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čenje mrežnih interakcija na osnovu uslova (autonomni rad i načini filtriranja saobraćaja);
  • pružaju mogućnost selektivnog povezivanja prenosivih medija i uređaja.

Ovaj skup ograničenja pretpostavlja jasno pripremljenog korisnika, jer je nezavisna administracija dozvoljena, a ograničenja se ne odnose na blokiranje njegovih potencijalnih radnji, već na isključivanje mogućih grešaka ili destruktivnih efekata softvera. One. U modelu nema unutrašnjeg prestupnika.

U potrazi za rješenjem, brzo smo napustili ideju o implementaciji ograničenja korištenjem ugrađenih ili dodatnih Windows alata, jer je prilično teško efikasno ograničiti korisnika s administratorskim pravima, ostavljajući mu mogućnost instaliranja aplikacija.

Sljedeće rješenje bila je izolacija pomoću virtuelizacije. Poznati alati za virtualizaciju desktopa (na primjer, kao što je virtualbox) slabo su prikladni za rješavanje sigurnosnih problema i navedena ograničenja će korisnik morati izvršiti stalnim prebacivanjem ili prilagođavanjem svojstava gostujuće virtualne mašine (u daljem tekstu kao VM), što povećava rizik od grešaka.

Istovremeno, imali smo iskustva u korištenju Qubesa kao korisničkog desktop sistema, ali smo sumnjali u stabilnost rada sa gostujućim Windows-om. Odlučeno je da se provjeri trenutna verzija Qubesa, jer se navedena ograničenja vrlo dobro uklapaju u paradigmu ovog sistema, posebno implementaciju šablona virtuelnih mašina i vizuelnu integraciju. Zatim ću pokušati ukratko govoriti o idejama i alatima Qubesa, koristeći primjer rješavanja problema.

Vrste Xen virtuelizacije

Qubes je baziran na Xen hipervizoru, koji minimizira funkcije upravljanja resursima procesora, memorije i virtuelnih mašina. Sav ostali rad sa uređajima koncentrisan je u dom0 baziranom na Linux kernelu (Qubes za dom0 koristi Fedora distribuciju).

Korišćenje QubesOS-a za rad sa Windows 7

Xen podržava nekoliko tipova virtuelizacije (navest ću primjere za Intel arhitekturu, iako Xen podržava i druge):

  • paravirtualizacija (PV) - režim virtuelizacije bez upotrebe hardverske podrške, koji podseća na virtuelizaciju kontejnera, može se koristiti za sisteme sa prilagođenim kernelom (dom0 radi u ovom režimu);
  • puna virtuelizacija (HVM) - u ovom režimu se koristi hardverska podrška za procesorske resurse, a sva ostala oprema se emulira pomoću QEMU. Ovo je najuniverzalniji način za pokretanje različitih operativnih sistema;
  • paravirtualizacija hardvera (PVH - ParaVirtualized Hardware) - način virtuelizacije koji koristi hardversku podršku kada, za rad sa hardverom, jezgro gostujućeg sistema koristi drajvere 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šćenje QubesOS-a za rad sa Windows 7

Počevši od Qubes 4.0, iz sigurnosnih razloga, korištenje paravirtualizacijskog moda je napušteno (uključujući i zbog poznatih ranjivosti u Intel arhitekturi, koje su djelimično ublažene upotrebom potpune virtuelizacije); PVH režim se koristi podrazumevano.

Kada se koristi emulacija (HVM mod), QEMU se pokreće u izolovanom VM-u koji se zove stubdomain, čime se smanjuje rizik od iskorišćavanja potencijalnih grešaka u implementaciji (QEMU projekat sadrži mnogo koda, uključujući i radi kompatibilnosti).
U našem slučaju, ovaj mod treba koristiti za Windows.

Servis virtuelnih mašina

U Qubes sigurnosnoj arhitekturi, jedna od ključnih mogućnosti hipervizora je prijenos PCI uređaja u okruženje za goste. Izuzimanje hardvera vam omogućava da izolujete glavni dio sistema od vanjskih napada. Xen ovo podržava za PV i HVM režime, u drugom slučaju zahteva podršku za IOMMU (Intel VT-d) - upravljanje hardverskom memorijom za virtuelizovane uređaje.

Ovo stvara nekoliko sistemskih virtuelnih mašina:

  • sys-net, na koji se prenose mrežni uređaji i koji se koristi kao most za druge VM, na primjer, one koje 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, ali radi kao zaštitni zid za povezane VM.

Za rad sa USB uređajima koriste se proxy usluge koje između ostalog pružaju:

  • za klasu uređaja HID (uređaj s ljudskim sučeljem), slanje naredbi u dom0;
  • za prenosive medije, preusmjeravanje volumena uređaja na druge VM (osim dom0);
  • preusmjeravanje direktno 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 kompromitiranja samo VM-a koji radi, a ne cijelog sistema u cjelini. I nakon ponovnog pokretanja servisne VM, ona će biti učitana u svom originalnom stanju.

Alati za VM integraciju

Postoji nekoliko načina za interakciju sa radnom površinom virtuelne mašine - instaliranje aplikacija u gostujući sistem ili emulacija videa pomoću alata za virtuelizaciju. Aplikacije za goste mogu biti različiti univerzalni alati za daljinski pristup (RDP, VNC, Spice, itd.) ili prilagođeni specifičnom hipervizoru (takvi alati se obično nazivaju uslužni programi za goste). Može se koristiti i mješovita opcija, kada hipervizor emulira I/O za gostujući sistem, a eksterno pruža mogućnost korištenja protokola koji kombinira I/O, na primjer, kao Spice. Istovremeno, alati za daljinski pristup obično optimizuju sliku, jer podrazumevaju rad preko mreže, što ne utiče pozitivno na kvalitet slike.

Qubes pruža vlastite alate za VM integraciju. Prije svega, ovo je grafički podsistem - prozori iz različitih VM-a se prikazuju na jednoj radnoj površini s vlastitim okvirom u boji. Općenito, alati za integraciju su zasnovani na mogućnostima hipervizora - dijeljena memorija (Xen grant tablica), alati za obavještavanje (Xen kanal događaja), dijeljeno skladište xenstore i vchan komunikacijski protokol. Uz njihovu pomoć implementirane su osnovne komponente qrexec i qubes-rpc, te aplikacijski 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ćavaju da ograničite usluge dostupne na VM-u. Slika ispod je primjer procedure za inicijalizaciju interakcije dva VM-a.

Korišćenje QubesOS-a za rad sa Windows 7

Dakle, rad u VM-u se obavlja bez korištenja mreže, što omogućava potpunu upotrebu autonomnih VM-a kako bi se izbjeglo curenje informacija. Na primjer, ovako se implementira 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 se obavlja na virtuelnim mašinama. Glavni sistem domaćina koristi se za njihovu kontrolu i vizualizaciju. OS je instaliran zajedno sa osnovnim skupom virtuelnih mašina zasnovanih na šablonima (TemplateVM). Ovaj predložak je Linux VM baziran na Fedora ili Debian distribuciji, s instaliranim i konfiguriranim alatima za integraciju te namjenskim sistemskim i korisničkim particijama. Instalaciju i ažuriranje softvera vrši standardni paket menadžer (dnf ili apt) iz konfigurisanih spremišta uz obaveznu provjeru digitalnog potpisa (GnuPG). Svrha takvih VM-a je osigurati povjerenje u aplikacijske VM-ove pokrenute na njihovoj osnovi.

Prilikom pokretanja, aplikacija VM (AppVM) koristi snimak sistemske particije odgovarajućeg VM šablona, ​​a po završetku briše ovaj snimak bez spremanja promjena. Podaci koje traži korisnik pohranjuju se na korisničkoj particiji jedinstvenoj za svaku aplikacijsku VM, koja je montirana u kućni direktorij.

Korišćenje QubesOS-a za rad sa Windows 7

Upotreba VM-a za jednokratnu upotrebu (disposableVM) može biti korisna sa sigurnosne tačke gledišta. Takav VM se kreira na osnovu šablona u trenutku pokretanja i pokreće se za jednu svrhu - da izvrši jednu aplikaciju, dovršavajući rad nakon što je zatvorena. VM-ovi za jednokratnu upotrebu mogu se koristiti za otvaranje sumnjivih datoteka čiji sadržaj može dovesti do iskorišćavanja određenih ranjivosti aplikacija. Mogućnost pokretanja jednokratnog VM-a integrirana je u upravitelj datoteka (Nautilus) i klijent e-pošte (Thunderbird).

Windows VM se takođe može koristiti za kreiranje šablona i jednokratnog VM-a premještanjem korisničkog profila u poseban odjeljak. U našoj verziji, takav predložak će korisnik koristiti za administrativne zadatke i instalaciju aplikacije. Na osnovu šablona biće kreirano nekoliko aplikacijskih VM-ova - sa ograničenim pristupom mreži (standardne mogućnosti sistemskog zaštitnog zida) i bez pristupa mreži uopšte (virtuelni mrežni uređaj se ne kreira). Sve promjene i aplikacije instalirane u predlošku bit će dostupne za rad u ovim VM-ovima, pa čak i ako se uvedu programi za označavanje, oni neće imati pristup mreži radi kompromisa.

Borba za Windows

Gore opisane karakteristike su osnova Qubes-a i rade prilično stabilno; poteškoće počinju sa Windows-om. Da biste integrisali Windows, morate koristiti skup alata za goste Qubes Windows Tools (QWT), koji uključuje drajvere za rad sa Xen-om, qvideo drajver i skup uslužnih programa za razmjenu informacija (prijenos datoteka, međuspremnik). Proces instalacije i konfiguracije je detaljno dokumentiran na web stranici projekta, tako da ćemo podijeliti naše iskustvo u primjeni.

Glavna poteškoća je u suštini nedostatak podrške za razvijene alate. Čini se da su ključni programeri (QWT) nedostupni i projekat integracije Windowsa čeka glavnog programera. Stoga je, prije svega, bilo potrebno ocijeniti njegov učinak i formirati razumijevanje mogućnosti samostalnog podržavanja, ako je potrebno. Najteži za razvoj i otklanjanje grešaka je grafički drajver, koji emulira video adapter i ekran za generisanje slike u zajedničkoj memoriji, omogućavajući vam da prikažete celu radnu površinu ili prozor aplikacije direktno u prozoru glavnog sistema. Tokom analize rada drajvera, prilagodili smo kod za sklapanje u Linux okruženju i razradili šemu za otklanjanje grešaka između dva Windows gost sistema. U fazi crossbuild-a, napravili smo nekoliko promjena koje su nam pojednostavile stvari, uglavnom u smislu „tihe“ instalacije uslužnih programa, a također smo eliminisali dosadnu degradaciju performansi pri dugotrajnom radu u VM-u. Rezultate rada predstavili smo u posebnom spremišta, dakle ne zadugo inspirativno Vodeći Qubes Developer.

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

Prilikom prelaska iz stvarnog okruženja u virtuelno, javlja se problem sa aktivacijom Windows-a ako se koriste unaprijed instalirane OEM verzije. Takvi sistemi koriste aktivaciju na osnovu licenci navedenih u UEFI uređaja. Za ispravnu obradu aktivacije potrebno je prevesti jednu od čitavih ACPI sekcija host sistema (SLIC tabelu) u gostujući sistem i malo urediti ostale, registrujući proizvođača. Xen vam omogućava da prilagodite ACPI sadržaj dodatnih tabela, ali bez modifikacije glavnih. Zakrpa iz sličnog OpenXT projekta, koja je prilagođena za Qubes, pomogla je u rješavanju. Ispravke su se činile korisnim ne samo nama i prevedene su u glavno Qubes spremište i Libvirt biblioteku.

Očigledni nedostaci Windows integracijskih alata uključuju nedostatak podrške za audio, USB uređaje i složenost rada sa 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 onemogućuje pokretanje specifičnih korporativnih aplikacija.

Zahtjev da se nakon kreiranja Windows VM šablona pređe na radni način bez mreže ili sa ograničenom mrežom, ispunjen je kreiranjem odgovarajućih konfiguracija aplikacijskih VM-ova, a mogućnost selektivnog povezivanja prenosivih medija također je riješena standardnim OS alatima - kada je povezan , dostupni su u sistemu VM sys-usb, odakle se mogu "proslijediti" na traženi VM. Radna površina korisnika izgleda otprilike ovako.

Korišćenje QubesOS-a za rad sa Windows 7

Konačna verzija sistema je pozitivno (ukoliko takvo sveobuhvatno rešenje dozvoljava) prihvaćena od strane korisnika, a standardni alati sistema omogućili su proširenje aplikacije na mobilnu radnu stanicu korisnika sa pristupom preko VPN-a.

Umjesto zaključka

Virtuelizacija vam uopšteno omogućava da smanjite rizike korišćenja Windows sistema koji su ostali bez podrške – ne nameće kompatibilnost sa novim hardverom, omogućava vam da isključite ili kontrolišete pristup sistemu preko mreže ili preko povezanih uređaja, i omogućava vam da implementirati okruženje za jednokratno pokretanje.

Zasnovan na ideji izolacije kroz virtuelizaciju, Qubes OS vam pomaže da iskoristite ove i druge mehanizme za sigurnost. Izvana, mnogi ljudi Qubes vide prvenstveno kao želju za anonimnošću, ali to je koristan sistem kako za inženjere, koji često žongliraju projektima, infrastrukturama i tajnama kako bi im pristupili, tako i za istraživače sigurnosti. Razdvajanje aplikacija, podataka i formalizacija njihove interakcije su početni koraci analize pretnji i projektovanja bezbednosnog sistema. Ovo razdvajanje pomaže u strukturiranju informacija i smanjenju vjerovatnoće grešaka zbog ljudskog faktora - žurbe, umora, itd.

Trenutno je glavni naglasak u razvoju na proširenju funkcionalnosti Linux okruženja. Verzija 4.1 se priprema za izdavanje, koja će biti bazirana na Fedora 31 i uključivati ​​trenutne verzije ključnih komponenti Xen i Libvirt. Vrijedi napomenuti da Qubes kreiraju profesionalci za sigurnost informacija koji uvijek odmah objavljuju ažuriranja ako se otkriju nove prijetnje ili greške.

Posle reči

Jedna od eksperimentalnih mogućnosti koju razvijamo omogućava nam da kreiramo VM-ove sa podrškom za gostujući pristup GPU-u zasnovanom na Intel GVT-g tehnologiji, što nam omogućava da koristimo mogućnosti grafičkog adaptera i značajno proširimo opseg sistema. U vrijeme pisanja, ova funkcionalnost radi za testne verzije Qubesa 4.1 i dostupna je na GitHub.

izvor: www.habr.com

Dodajte komentar