Ús de QubesOS per treballar amb Windows 7

No hi ha molts articles sobre Habré dedicats al sistema operatiu Qubes, i els que he vist no descriuen gaire l'experiència d'utilitzar-lo. Per sota del tall, espero corregir-ho fent servir l'exemple d'utilitzar Qubes com a mitjà de protecció (contra) l'entorn Windows i, alhora, estimar el nombre d'usuaris de parla russa del sistema.

Ús de QubesOS per treballar amb Windows 7

Per què Qubes?

La història del final del suport tècnic per a Windows 7 i l'ansietat creixent dels usuaris va fer que calgués organitzar el treball d'aquest sistema operatiu, tenint en compte els requisits següents:

  • garantir l'ús de Windows 7 totalment activat amb la possibilitat que l'usuari instal·li actualitzacions i diverses aplicacions (inclòs a través d'Internet);
  • implementar l'exclusió completa o selectiva de les interaccions de la xarxa en funció de les condicions (funcionament autònom i modes de filtratge de trànsit);
  • ofereixen la possibilitat de connectar de manera selectiva mitjans i dispositius extraïbles.

Aquest conjunt de restriccions pressuposa un usuari clarament preparat, ja que es permet l'administració independent, i les restriccions no estan relacionades amb el bloqueig de les seves possibles accions, sinó amb l'exclusió de possibles errors o efectes destructius del programari. Aquells. No hi ha cap infractor intern en el model.

En la nostra recerca d'una solució, vam abandonar ràpidament la idea d'implementar restriccions mitjançant eines integrades o addicionals de Windows, ja que és bastant difícil restringir eficaçment un usuari amb drets d'administrador, deixant-li la possibilitat d'instal·lar aplicacions.

La següent solució va ser l'aïllament mitjançant la virtualització. Les eines conegudes per a la virtualització d'escriptori (per exemple, com la virtualbox) són poc adequades per resoldre problemes de seguretat i les restriccions enumerades les haurà de fer l'usuari canviant o ajustant constantment les propietats de la màquina virtual convidada (d'ara endavant referida a com VM), que augmenta el risc d'errors.

Al mateix temps, teníem experiència utilitzant Qubes com a sistema d'escriptori de l'usuari, però teníem dubtes sobre l'estabilitat de treballar amb Windows convidat. Es va decidir comprovar la versió actual de Qubes, ja que les limitacions indicades encaixen molt bé en el paradigma d'aquest sistema, especialment la implementació de plantilles de màquines virtuals i la integració visual. A continuació, intentaré parlar breument de les idees i eines de Qubes, fent servir l'exemple de resolució del problema.

Tipus de virtualització Xen

Qubes es basa en l'hipervisor Xen, que minimitza les funcions de gestió dels recursos del processador, la memòria i les màquines virtuals. Tota la resta de treballs amb dispositius es concentra a dom0 basat en el nucli Linux (Qubes per a dom0 utilitza la distribució Fedora).

Ús de QubesOS per treballar amb Windows 7

Xen admet diversos tipus de virtualització (donaré exemples per a l'arquitectura Intel, tot i que Xen en admet altres):

  • paravirtualització (PV): un mode de virtualització sense l'ús de suport de maquinari, que recorda la virtualització de contenidors, es pot utilitzar per a sistemes amb un nucli adaptat (dom0 funciona en aquest mode);
  • virtualització completa (HVM): en aquest mode, s'utilitza suport de maquinari per als recursos del processador i tots els altres equips s'emulen mitjançant QEMU. Aquesta és la manera més universal d'executar diversos sistemes operatius;
  • paravirtualització de maquinari (PVH - ParaVirtualized Hardware): un mode de virtualització que utilitza suport de maquinari quan, per treballar amb maquinari, el nucli del sistema convidat utilitza controladors adaptats a les capacitats de l'hipervisor (per exemple, memòria compartida), eliminant la necessitat d'emulació QEMU i augmentant el rendiment d'E/S. El nucli de Linux a partir de la 4.11 pot funcionar en aquest mode.

Ús de QubesOS per treballar amb Windows 7

A partir de Qubes 4.0, per motius de seguretat, s'abandona l'ús del mode de paravirtualització (inclòs a causa de vulnerabilitats conegudes a l'arquitectura Intel, que es veuen parcialment mitigades per l'ús de la virtualització completa); el mode PVH s'utilitza de manera predeterminada.

Quan s'utilitza l'emulació (mode HVM), QEMU es llança en una màquina virtual aïllada anomenada stubdomain, reduint així els riscos d'explotar possibles errors en la implementació (el projecte QEMU conté molt de codi, inclòs per a la compatibilitat).
En el nostre cas, aquest mode s'hauria d'utilitzar per a Windows.

Servei de màquines virtuals

A l'arquitectura de seguretat Qubes, una de les capacitats clau de l'hipervisor és la transferència de dispositius PCI a l'entorn convidat. L'exclusió de maquinari us permet aïllar la part host del sistema dels atacs externs. Xen admet això per als modes PV i HVM, en el segon cas requereix suport per IOMMU (Intel VT-d): gestió de memòria de maquinari per a dispositius virtualitzats.

Això crea diverses màquines virtuals del sistema:

  • sys-net, al qual es transfereixen dispositius de xarxa i que s'utilitza com a pont per a altres màquines virtuals, per exemple, les que implementen les funcions d'un tallafoc o un client VPN;
  • sys-usb, al qual es transfereixen controladors USB i altres dispositius perifèrics;
  • sys-firewall, que no utilitza dispositius, però funciona com a tallafoc per a màquines virtuals connectades.

Per treballar amb dispositius USB, s'utilitzen serveis proxy, que proporcionen, entre altres coses:

  • per a la classe de dispositiu HID (dispositiu d'interfície humana), enviant ordres a dom0;
  • per a suports extraïbles, redirecció dels volums del dispositiu a altres màquines virtuals (excepte dom0);
  • redirigir directament a un dispositiu USB (utilitzant USBIP i eines d'integració).

En aquesta configuració, un atac amb èxit a través de la pila de xarxa o els dispositius connectats pot provocar que només la VM del servei en execució es comprometi, i no tot el sistema en conjunt. I després de reiniciar la màquina virtual del servei, es carregarà en el seu estat original.

Eines d'integració de VM

Hi ha diverses maneres d'interactuar amb l'escriptori d'una màquina virtual: instal·lant aplicacions al sistema convidat o emulant vídeo mitjançant eines de virtualització. Les aplicacions convidades poden ser diverses eines universals d'accés remot (RDP, VNC, Spice, etc.) o adaptades a un hipervisor específic (aquestes eines solen anomenar-se utilitats convidades). També es pot utilitzar una opció mixta, quan l'hipervisor emula E/S per al sistema convidat i externament ofereix la possibilitat d'utilitzar un protocol que combina E/S, per exemple, com Spice. Paral·lelament, les eines d'accés remot acostumen a optimitzar la imatge, ja que impliquen treballar a través d'una xarxa, la qual cosa no té un efecte positiu en la qualitat de la imatge.

Qubes ofereix les seves pròpies eines per a la integració de VM. En primer lloc, es tracta d'un subsistema gràfic: les finestres de diferents màquines virtuals es mostren en un únic escriptori amb el seu propi marc de color. En general, les eines d'integració es basen en les capacitats de l'hipervisor: memòria compartida (taula de subvencions Xen), eines de notificació (canal d'esdeveniments Xen), emmagatzematge compartit xenstore i el protocol de comunicació vchan. Amb la seva ajuda, s'implementen els components bàsics qrexec i qubes-rpc i serveis d'aplicacions: redirecció d'àudio o USB, transferència de fitxers o continguts del porta-retalls, execució d'ordres i llançament d'aplicacions. És possible establir polítiques que us permetin limitar els serveis disponibles en una màquina virtual. La figura següent és un exemple del procediment per inicialitzar la interacció de dues màquines virtuals.

Ús de QubesOS per treballar amb Windows 7

Així, el treball a la VM es realitza sense utilitzar una xarxa, la qual cosa permet un ús total de VMs autònomes per evitar filtracions d'informació. Per exemple, és així com s'implementa la separació d'operacions criptogràfiques (PGP/SSH), quan s'utilitzen claus privades en màquines virtuals aïllades i no van més enllà d'elles.

Plantilles, aplicacions i màquines virtuals d'una sola vegada

Tot el treball dels usuaris a Qubes es fa en màquines virtuals. El sistema host principal s'utilitza per controlar-los i visualitzar-los. El sistema operatiu s'instal·la juntament amb un conjunt bàsic de màquines virtuals basades en plantilles (TemplateVM). Aquesta plantilla és una màquina virtual Linux basada en la distribució Fedora o Debian, amb eines d'integració instal·lades i configurades, i particions d'usuari i sistema dedicades. La instal·lació i actualització del programari la realitza un gestor de paquets estàndard (dnf o apt) des de repositoris configurats amb verificació de signatura digital obligatòria (GnuPG). L'objectiu d'aquestes màquines virtuals és garantir la confiança en les màquines virtuals d'aplicacions llançades sobre la seva base.

A l'inici, una VM d'aplicació (AppVM) utilitza una instantània de la partició del sistema de la plantilla de VM corresponent i, en finalitzar, suprimeix aquesta instantània sense desar els canvis. Les dades requerides per l'usuari s'emmagatzemen en una partició d'usuari única per a cada VM de l'aplicació, que es munta al directori d'inici.

Ús de QubesOS per treballar amb Windows 7

L'ús de màquines virtuals d'un sol ús (disposableVM) pot ser útil des del punt de vista de la seguretat. Aquesta màquina virtual es crea a partir d'una plantilla en el moment de l'inici i es llança amb un propòsit: executar una aplicació i completar el treball després de tancar-la. Les màquines virtuals d'un sol ús es poden utilitzar per obrir fitxers sospitosos el contingut dels quals podria provocar l'explotació de vulnerabilitats específiques d'aplicacions. La capacitat d'executar una màquina virtual única està integrada al gestor de fitxers (Nautilus) i al client de correu electrònic (Thunderbird).

La màquina virtual de Windows també es pot utilitzar per crear una plantilla i una màquina virtual única movent el perfil d'usuari a una secció separada. A la nostra versió, aquesta plantilla serà utilitzada per l'usuari per a tasques d'administració i instal·lació d'aplicacions. A partir de la plantilla, es crearan diverses màquines virtuals d'aplicacions, amb accés limitat a la xarxa (capacitats estàndard de firewall sys) i sense accés a la xarxa en absolut (no es crea un dispositiu de xarxa virtual). Tots els canvis i aplicacions instal·lades a la plantilla estaran disponibles per funcionar en aquestes màquines virtuals i, fins i tot si s'introdueixen programes d'adreces d'interès, no tindran accés a la xarxa per comprometre's.

Lluita per Windows

Les característiques descrites anteriorment són la base de Qubes i funcionen de manera bastant estable; les dificultats comencen amb Windows. Per integrar Windows, heu d'utilitzar un conjunt d'eines convidades Qubes Windows Tools (QWT), que inclou controladors per treballar amb Xen, un controlador de qvideo i un conjunt d'utilitats per a l'intercanvi d'informació (transferència de fitxers, porta-retalls). El procés d'instal·lació i configuració està documentat detalladament al lloc web del projecte, de manera que compartirem la nostra experiència d'aplicació.

La principal dificultat és essencialment la manca de suport per a les eines desenvolupades. Sembla que els desenvolupadors clau (QWT) no estan disponibles i el projecte d'integració de Windows està esperant un desenvolupador principal. Per tant, en primer lloc, calia avaluar el seu rendiment i entendre la possibilitat de donar-li suport de manera independent, si cal. El més difícil de desenvolupar i depurar és el controlador de gràfics, que emula l'adaptador de vídeo i la pantalla per generar una imatge a la memòria compartida, la qual cosa us permet mostrar tot l'escriptori o la finestra de l'aplicació directament a la finestra del sistema amfitrió. Durant l'anàlisi del funcionament del controlador, vam adaptar el codi per al muntatge en un entorn Linux i vam elaborar un esquema de depuració entre dos sistemes convidats de Windows. En l'etapa de construcció transversal, vam fer diversos canvis que ens van simplificar les coses, principalment pel que fa a la instal·lació "silenciosa" d'utilitats, i també vam eliminar la molesta degradació del rendiment quan es treballava en una màquina virtual durant molt de temps. Hem presentat els resultats del treball en un separat repositoris, per tant no per molt de temps inspirador Desenvolupador principal Qubes.

L'etapa més crítica pel que fa a l'estabilitat del sistema convidat és l'inici de Windows, aquí podeu veure la pantalla blava coneguda (o ni tan sols veure-la). Per a la majoria dels errors identificats, hi va haver diverses solucions: eliminar els controladors de dispositiu de blocs Xen, desactivar l'equilibri de la memòria VM, arreglar la configuració de la xarxa i minimitzar el nombre de nuclis. Les nostres eines per a convidats creen instal·lacions i s'executen a Windows 7 i Windows 10 totalment actualitzats (excepte qvideo).

Quan es passa d'un entorn real a un de virtual, sorgeix un problema amb l'activació de Windows si s'utilitzen versions OEM preinstal·lades. Aquests sistemes utilitzen l'activació basada en les llicències especificades a la UEFI del dispositiu. Per processar correctament l'activació, cal traduir una de les seccions ACPI completes del sistema host (taula SLIC) al sistema convidat i editar lleugerament les altres, registrant el fabricant. Xen permet personalitzar el contingut ACPI de taules addicionals, però sense modificar les principals. Un pedaç d'un projecte similar d'OpenXT, que es va adaptar per a Qubes, va ajudar amb la solució. Les correccions no només ens van semblar útils i es van traduir al repositori principal de Qubes i a la biblioteca Libvirt.

Els desavantatges evidents de les eines d'integració de Windows inclouen la manca de suport per a àudio, dispositius USB i la complexitat de treballar amb mitjans, ja que no hi ha suport de maquinari per a la GPU. Però l'anterior no impedeix l'ús de la VM per treballar amb documents ofimàtics, ni impedeix el llançament d'aplicacions corporatives específiques.

El requisit de canviar al mode operatiu sense xarxa o amb una xarxa limitada després de crear una plantilla de VM de Windows es va complir mitjançant la creació de les configuracions adequades de les VM d'aplicacions, i la possibilitat de connectar de manera selectiva mitjans extraïbles també es va resoldre amb les eines estàndard del sistema operatiu, quan es va connectar. , estan disponibles a la VM del sistema sys-usb, des d'on es poden "enviar" a la VM requerida. L'escriptori de l'usuari sembla una cosa així.

Ús de QubesOS per treballar amb Windows 7

La versió final del sistema va ser acceptada positivament (en la mesura que ho permeti una solució tan completa) pels usuaris, i les eines estàndard del sistema van permetre ampliar l'aplicació a l'estació de treball mòbil de l'usuari amb accés mitjançant VPN.

En lloc d'una conclusió

La virtualització en general us permet reduir els riscos d'utilitzar sistemes Windows sense suport: no força la compatibilitat amb el nou maquinari, us permet excloure o controlar l'accés al sistema a través de la xarxa o a través de dispositius connectats i us permet implementar un entorn de llançament únic.

Basat en la idea de l'aïllament mitjançant la virtualització, Qubes OS us ajuda a aprofitar aquests i altres mecanismes de seguretat. Des de fora, molta gent veu Qubes principalment com un desig d'anonimat, però és un sistema útil tant per als enginyers, que sovint fan malabars amb projectes, infraestructures i secrets per accedir-hi, com per als investigadors de seguretat. La separació d'aplicacions, les dades i la formalització de la seva interacció són els passos inicials de l'anàlisi d'amenaces i el disseny del sistema de seguretat. Aquesta separació ajuda a estructurar la informació i reduir la probabilitat d'errors a causa del factor humà: pressa, fatiga, etc.

Actualment, l'èmfasi principal en el desenvolupament està en l'ampliació de la funcionalitat dels entorns Linux. S'està preparant per al llançament la versió 4.1, que es basarà en Fedora 31 i inclourà les versions actuals dels components clau Xen i Libvirt. Val la pena assenyalar que Qubes és creat per professionals de la seguretat de la informació que sempre publiquen actualitzacions ràpidament si s'identifiquen noves amenaces o errors.

Paraula posterior

Una de les capacitats experimentals que estem desenvolupant ens permet crear màquines virtuals amb suport per a l'accés de convidats a la GPU basada en la tecnologia Intel GVT-g, que ens permet utilitzar les capacitats de l'adaptador gràfic i ampliar significativament l'abast del sistema. En el moment d'escriure, aquesta funcionalitat funciona per a versions de prova de Qubes 4.1 i està disponible a GitHub.

Font: www.habr.com

Afegeix comentari