QubesOS:n käyttö Windows 7:n kanssa

Habresta ei ole omistettu paljon Qubes-käyttöjärjestelmää käsitteleviä artikkeleita, eivätkä ne, jotka olen nähnyt, kuvaa paljoakaan sen käyttökokemuksesta. Leikkauksen alla toivon korjaavani tämän esimerkin avulla Qubesin käyttämisestä suojakeinona (Windows-ympäristöä vastaan) ja samalla arvioida järjestelmän venäjänkielisten käyttäjien määrää.

QubesOS:n käyttö Windows 7:n kanssa

Miksi Qubes?

Tarina Windows 7:n teknisen tuen päättymisestä ja käyttäjien kasvavasta ahdistuksesta johti tarpeeseen organisoida tämän käyttöjärjestelmän työ ottaen huomioon seuraavat vaatimukset:

  • varmistaa täysin aktivoidun Windows 7:n käyttö siten, että käyttäjä voi asentaa päivityksiä ja erilaisia ​​sovelluksia (mukaan lukien Internetin kautta);
  • toteuttaa verkkovuorovaikutusten täydellinen tai valikoiva poissulkeminen olosuhteiden perusteella (autonominen toiminta ja liikenteen suodatustilat);
  • tarjoavat mahdollisuuden liittää valikoivasti irrotettavat tietovälineet ja laitteet.

Tämä rajoitusjoukko edellyttää selkeästi valmistautunutta käyttäjää, koska itsenäinen hallinto on sallittua, eivätkä rajoitukset liity hänen mahdollisten toimintojensa estämiseen, vaan mahdollisten virheiden tai haitallisten ohjelmistovaikutusten poissulkemiseen. Nuo. Mallissa ei ole sisäistä rikollista.

Ratkaisua etsiessämme hylkäsimme nopeasti ajatuksen rajoitusten käyttöönotosta sisäänrakennetuilla tai ylimääräisillä Windows-työkaluilla, koska on melko vaikeaa rajoittaa tehokkaasti käyttäjää, jolla on järjestelmänvalvojan oikeudet, jättäen hänelle mahdollisuuden asentaa sovelluksia.

Seuraava ratkaisu oli eristäminen virtualisoinnin avulla. Tunnetut työpöydän virtualisointityökalut (esim. kuten virtualbox) soveltuvat huonosti tietoturvaongelmien ratkaisemiseen ja luetellut rajoitukset joutuvat käyttäjän tekemään jatkuvasti vaihtamalla tai säätämällä vierailijavirtuaalikoneen ominaisuuksia (jäljempänä kuten VM), mikä lisää virheriskiä.

Samaan aikaan meillä oli kokemusta Qubesin käyttämisestä käyttäjän työpöytäjärjestelmänä, mutta meillä oli epäilyksiä vieraiden Windowsin kanssa työskentelyn vakaudesta. Qubesin nykyinen versio päätettiin tarkistaa, koska esitetyt rajoitukset sopivat erittäin hyvin tämän järjestelmän paradigmaan, erityisesti virtuaalikoneen mallien ja visuaalisen integroinnin toteuttamiseen. Seuraavaksi yritän puhua lyhyesti Qubesin ideoista ja työkaluista käyttämällä esimerkkiä ongelman ratkaisemisesta.

Xen-virtualisoinnin tyypit

Qubes perustuu Xen-hypervisoriin, joka minimoi prosessoriresurssien, muistin ja virtuaalikoneiden hallinnan toiminnot. Kaikki muu työ laitteilla on keskittynyt dom0:aan, joka perustuu Linux-ytimeen (Qubes for dom0 käyttää Fedora-jakelua).

QubesOS:n käyttö Windows 7:n kanssa

Xen tukee useita virtualisointityyppejä (annan esimerkkejä Intel-arkkitehtuurista, vaikka Xen tukee muita):

  • paravirtualisointi (PV) - kontin virtualisointia muistuttavaa virtualisointitilaa ilman laitteistotukea voidaan käyttää järjestelmissä, joissa on mukautettu ydin (dom0 toimii tässä tilassa);
  • täysi virtualisointi (HVM) - tässä tilassa laitteistotukea käytetään prosessoriresursseille, ja kaikki muut laitteet emuloidaan QEMU:lla. Tämä on yleisin tapa käyttää erilaisia ​​käyttöjärjestelmiä;
  • laitteiston paravirtualisointi (PVH - ParaVirtualized Hardware) - laitteistotukea käyttävä virtualisointitila, jossa vierasjärjestelmän ydin käyttää laitteiston kanssa työskentelyyn ohjaimia, jotka on mukautettu hypervisorin ominaisuuksiin (esimerkiksi jaettu muisti), mikä eliminoi QEMU-emuloinnin tarpeen. ja I/O-suorituskyvyn lisääminen. Linux-ydin versiosta 4.11 alkaen voi toimia tässä tilassa.

QubesOS:n käyttö Windows 7:n kanssa

Qubes 4.0:sta alkaen paravirtualisointitilan käytöstä luovutaan turvallisuussyistä (mukaan lukien Intel-arkkitehtuurin tunnettujen haavoittuvuuksien vuoksi, joita täyden virtualisoinnin käyttö osittain lieventää); PVH-tilaa käytetään oletuksena.

Käytettäessä emulointia (HVM-tila) QEMU käynnistetään eristetyssä virtuaalikoneessa, jota kutsutaan stubdomainiksi, mikä vähentää riskiä mahdollisten virheiden hyödyntämisestä toteutuksessa (QEMU-projekti sisältää paljon koodia, myös yhteensopivuuden vuoksi).
Meidän tapauksessamme tätä tilaa tulisi käyttää Windowsille.

Huolla virtuaalikoneita

Qubesin tietoturva-arkkitehtuurissa yksi hypervisorin avainominaisuuksista on PCI-laitteiden siirto vierasympäristöön. Laitteiston poissulkemisen avulla voit eristää järjestelmän isäntäosan ulkoisilta hyökkäyksiltä. Xen tukee tätä PV- ja HVM-tiloissa, toisessa tapauksessa se vaatii tuen IOMMU:lle (Intel VT-d) - laitteistomuistin hallinta virtualisoiduille laitteille.

Tämä luo useita järjestelmän virtuaalikoneita:

  • sys-net, johon verkkolaitteita siirretään ja jota käytetään sillana muille VM:ille, esimerkiksi palomuuri- tai VPN-asiakkaan toimintoja toteuttaville;
  • sys-usb, johon USB- ja muut oheislaitteiden ohjaimet siirretään;
  • sys-firewall, joka ei käytä laitteita, mutta toimii palomuurina yhdistetyille virtuaalikoille.

USB-laitteiden kanssa työskentelyyn käytetään välityspalvelinpalveluita, jotka tarjoavat muun muassa:

  • HID-laiteluokalle (human interface device) komentojen lähettäminen osoitteeseen dom0;
  • irrotettavan tietovälineen osalta laitetaltioiden uudelleenohjaus muihin virtuaalikoneisiin (paitsi dom0);
  • uudelleenohjaus suoraan USB-laitteeseen (USBIP:n ja integrointityökalujen avulla).

Tällaisessa kokoonpanossa onnistunut hyökkäys verkkopinon tai yhdistettyjen laitteiden kautta voi johtaa vain käynnissä olevan palvelun VM:n vaarantumiseen, ei koko järjestelmään kokonaisuudessaan. Ja kun palvelu VM on käynnistetty uudelleen, se ladataan alkuperäisessä tilassaan.

VM-integrointityökalut

On olemassa useita tapoja olla vuorovaikutuksessa virtuaalikoneen työpöydän kanssa - asentamalla sovelluksia vierasjärjestelmään tai emuloimalla videota virtualisointityökalujen avulla. Vierassovellukset voivat olla erilaisia ​​universaaleja etäkäyttötyökaluja (RDP, VNC, Spice jne.) tai tiettyyn hypervisoriin mukautettuja (tällaisia ​​työkaluja kutsutaan yleensä vierasapuohjelmiksi). Sekavaihtoehtoa voidaan myös käyttää, kun hypervisor emuloi I/O:ta vierasjärjestelmälle ja tarjoaa ulkoisesti mahdollisuuden käyttää I/O:ta yhdistävää protokollaa, esimerkiksi Spice. Samanaikaisesti etäkäyttötyökalut yleensä optimoivat kuvan, koska niissä työskennellään verkon kautta, mikä ei vaikuta positiivisesti kuvan laatuun.

Qubes tarjoaa omat työkalunsa VM-integraatioon. Ensinnäkin tämä on grafiikkaalijärjestelmä - eri virtuaalikoneiden ikkunat näytetään yhdellä työpöydällä omalla värikehyksellään. Yleensä integrointityökalut perustuvat hypervisorin ominaisuuksiin - jaettu muisti (Xen-lupataulukko), ilmoitustyökalut (Xen-tapahtumakanava), jaettu tallennustila xenstore ja vchan-viestintäprotokolla. Niiden avulla toteutetaan peruskomponentit qrexec ja qubes-rpc sekä sovelluspalvelut - audio- tai USB-uudelleenohjaus, tiedostojen tai leikepöydän sisällön siirto, komentojen suorittaminen ja sovellusten käynnistäminen. On mahdollista asettaa käytäntöjä, joiden avulla voit rajoittaa virtuaalikoneella saatavilla olevia palveluita. Alla oleva kuva on esimerkki menettelystä kahden virtuaalikoneen vuorovaikutuksen alustamiseksi.

QubesOS:n käyttö Windows 7:n kanssa

Näin ollen työ VM:ssä suoritetaan ilman verkkoa, mikä mahdollistaa autonomisten virtuaalikoneiden täyden käytön tietovuodojen välttämiseksi. Esimerkiksi näin toteutetaan salaustoimintojen erottaminen (PGP/SSH), kun yksityisiä avaimia käytetään eristetyissä virtuaalikoneissa, eivätkä ne ylitä niitä.

Mallit, sovellukset ja kertakäyttöiset VM:t

Kaikki käyttäjien työ Qubesissa tehdään virtuaalikoneissa. Pääisäntäjärjestelmää käytetään niiden ohjaamiseen ja visualisointiin. Käyttöjärjestelmä asennetaan yhdessä mallipohjaisten virtuaalikoneiden (TemplateVM) perusjoukon kanssa. Tämä malli on Fedora- tai Debian-jakeluun perustuva Linux-virtuaalikone, jossa on integrointityökalut asennettuna ja konfiguroituna sekä erilliset järjestelmä- ja käyttäjäosiot. Ohjelmiston asennuksen ja päivityksen suorittaa vakiopakettien hallinta (dnf tai apt) määritetyistä arkistoista, joissa on pakollinen digitaalisen allekirjoituksen vahvistus (GnuPG). Tällaisten virtuaalikoneiden tarkoituksena on varmistaa luottamus niiden pohjalta käynnistettyihin sovellus-VM:eihin.

Käynnistettäessä sovelluksen VM (AppVM) käyttää tilannekuvaa vastaavan VM-mallin järjestelmäosiosta, ja kun se on valmis, se poistaa tämän tilannevedoksen tallentamatta muutoksia. Käyttäjän tarvitsemat tiedot tallennetaan kunkin sovelluksen VM:lle yksilölliseen käyttäjäosioon, joka on asennettu kotihakemistoon.

QubesOS:n käyttö Windows 7:n kanssa

Kertakäyttöisten VM:ien (disposableVM) käyttäminen voi olla hyödyllistä turvallisuuden kannalta. Tällainen virtuaalikone luodaan mallin perusteella käynnistyshetkellä ja käynnistetään yhtä tarkoitusta varten - yhden sovelluksen suorittamiseen ja työn suorittamiseen sen sulkemisen jälkeen. Kertakäyttöisiä virtuaalikoneita voidaan käyttää epäilyttävien tiedostojen avaamiseen, joiden sisältö voi johtaa tiettyjen sovellusten haavoittuvuuksien hyödyntämiseen. Mahdollisuus käyttää kertakäyttöistä virtuaalikonetta on integroitu tiedostonhallintaan (Nautilus) ja sähköpostiohjelmaan (Thunderbird).

Windows VM:llä voidaan myös luoda malli ja kertakäyttöinen virtuaalikone siirtämällä käyttäjäprofiili erilliseen osioon. Meidän versiossamme käyttäjä käyttää tällaista mallia hallintatehtäviin ja sovellusten asentamiseen. Mallin perusteella luodaan useita sovellus-VM:itä - joilla on rajoitettu pääsy verkkoon (normaalit sys-palomuuriominaisuudet) ja ilman pääsyä verkkoon ollenkaan (virtuaaliverkkolaitetta ei luoda). Kaikki malliin asennetut muutokset ja sovellukset ovat käytettävissä toimimaan näissä virtuaalikoneissa, ja vaikka kirjanmerkkiohjelmat otetaan käyttöön, niillä ei ole verkkoyhteyttä.

Taistele Windowsin puolesta

Yllä kuvatut ominaisuudet ovat Qubesin perusta ja toimivat melko vakaasti, vaikeudet alkavat Windowsista. Windowsin integroimiseksi sinun on käytettävä joukko vierastyökaluja Qubes Windows Tools (QWT), joka sisältää ohjaimia Xenin kanssa työskentelyyn, qvideo-ohjain ja joukko apuohjelmia tiedonvaihtoon (tiedostonsiirto, leikepöytä). Asennus- ja konfigurointiprosessi on dokumentoitu yksityiskohtaisesti projektin verkkosivuilla, joten jaamme sovelluskokemuksemme.

Suurin vaikeus on olennaisesti tuen puute kehitetyille työkaluille. Key Developers (QWT) ei näytä olevan käytettävissä, ja Windowsin integrointiprojekti odottaa johtavaa kehittäjää. Siksi oli ensinnäkin tarpeen arvioida sen suorituskykyä ja muodostaa käsitys mahdollisuudesta tukea sitä tarvittaessa itsenäisesti. Vaikein kehittää ja virheenkorjaus on grafiikkaohjain, joka emuloi videosovitinta ja näyttöä kuvan luomiseksi jaettuun muistiin, jolloin voit näyttää koko työpöydän tai sovellusikkunan suoraan isäntäjärjestelmän ikkunassa. Ajurin toiminnan analysoinnin aikana sovitimme koodin Linux-ympäristöön kokoonpanoa varten ja kehitimme virheenkorjausjärjestelmän kahden Windows-vierasjärjestelmän välille. Crossbuild-vaiheessa teimme useita muutoksia, jotka yksinkertaistivat asioita, pääasiassa "hiljaisen" apuohjelmien asennuksen suhteen, ja eliminoimme myös ärsyttävän suorituskyvyn heikkenemisen, kun työskenneltiin VM:ssä pitkään. Esitimme työn tulokset erillisessä kappaleessa arkistoteli ei kauaa inspiroivaa Johtava Qubes-kehittäjä.

Vierasjärjestelmän vakauden kannalta kriittisin vaihe on Windowsin käynnistys, täällä näet tutun sinisen näytön (tai et edes näe sitä). Suurimmalle osalle tunnistetuista virheistä oli olemassa erilaisia ​​​​kiertotapoja - Xen-lohkolaiteajurien poistaminen, VM-muistin tasapainotuksen poistaminen käytöstä, verkkoasetusten korjaaminen ja ytimien määrän minimointi. Vierastyökalumme rakentavat asennuksia ja toimivat täysin päivitetyissä Windows 7:ssä ja Windows 10:ssä (paitsi qvideo).

Kun siirrytään todellisesta ympäristöstä virtuaaliseen, Windowsin aktivoinnissa ilmenee ongelma, jos käytetään esiasennettuja OEM-versioita. Tällaiset järjestelmät käyttävät aktivointia laitteen UEFI:ssä määritettyjen lisenssien perusteella. Aktivoinnin käsittelemiseksi oikein on tarpeen kääntää yksi isäntäjärjestelmän kokonaisista ACPI-osista (SLIC-taulukko) vierasjärjestelmään ja muokata hieman muita rekisteröimällä valmistaja. Xenin avulla voit mukauttaa lisätaulukoiden ACPI-sisältöä muuttamatta kuitenkaan päätaulukoita. Vastaavan OpenXT-projektin korjaustiedosto, joka oli sovitettu Qubesille, auttoi ratkaisussa. Korjaukset tuntuivat hyödyllisiltä paitsi meille, ja ne käännettiin Qubesin pääarkistoon ja Libvirt-kirjastoon.

Windowsin integrointityökalujen ilmeisiä haittoja ovat äänen, USB-laitteiden tuen puute ja median kanssa työskentelyn monimutkaisuus, koska grafiikkasuorittimelle ei ole laitteistotukea. Mutta yllä oleva ei estä VM:n käyttöä toimistoasiakirjojen kanssa työskentelyyn, eikä se estä tiettyjen yrityssovellusten käynnistämistä.

Vaatimus siirtyä käyttötilaan ilman verkkoa tai rajoitetulla verkolla Windows VM-mallin luomisen jälkeen täyttyi luomalla sopivat sovellus-VM-konfiguraatiot, ja mahdollisuus liittää irrotettavat tietovälineet valikoivasti ratkaistiin myös tavallisilla käyttöjärjestelmätyökaluilla - kun yhteys , ne ovat saatavilla järjestelmässä VM sys-usb, josta ne voidaan "välittää" vaadittavalle VM:lle. Käyttäjän työpöytä näyttää suunnilleen tältä.

QubesOS:n käyttö Windows 7:n kanssa

Järjestelmän lopullinen versio hyväksyttiin positiivisesti (sikäli kuin tällainen kokonaisratkaisu mahdollistaa) käyttäjien keskuudessa, ja järjestelmän vakiotyökalut mahdollistivat sovelluksen laajentamisen käyttäjän mobiilityöasemalle VPN:n kautta.

Sen sijaan johtopäätös

Yleisesti virtualisoinnin avulla voit vähentää ilman tukea jääneiden Windows-järjestelmien käytön riskejä - se ei pakota yhteensopivuutta uusien laitteistojen kanssa, sen avulla voit sulkea pois tai valvoa pääsyä järjestelmään verkon tai liitettyjen laitteiden kautta ja sen avulla voit ottaa käyttöön kertaluonteisen käynnistysympäristön.

Virtualisoinnin kautta tapahtuvan eristämisen ideaan perustuen Qubes OS auttaa sinua hyödyntämään näitä ja muita turvallisuuden mekanismeja. Ulkopuolelta monet näkevät Qubesin ensisijaisesti anonymiteetin haluna, mutta se on hyödyllinen järjestelmä sekä insinööreille, jotka usein jongleeraavat projekteja, infrastruktuureja ja salaisuuksia päästäkseen niihin käsiksi, että tietoturvatutkijoille. Sovellusten, tietojen erottelu ja niiden vuorovaikutuksen formalisointi ovat uhka-analyysin ja turvajärjestelmän suunnittelun alkuvaiheita. Tämä erottelu auttaa jäsentämään tietoa ja vähentämään inhimillisistä syistä johtuvien virheiden todennäköisyyttä - kiirettä, väsymystä jne.

Tällä hetkellä kehitystyön pääpaino on Linux-ympäristöjen toiminnallisuuden laajentamisessa. Versio 4.1 valmistellaan julkaistavaksi, joka perustuu Fedora 31:een ja sisältää nykyiset versiot avainkomponenteista Xen ja Libvirt. On syytä huomata, että Qubesin luovat tietoturva-ammattilaiset, jotka julkaisevat aina viipymättä päivitykset, jos uusia uhkia tai virheitä havaitaan.

loppusanat

Yksi kehittelemistämme kokeellisista ominaisuuksista antaa meille mahdollisuuden luoda virtuaalikoneita, jotka tukevat Intel GVT-g -teknologiaan perustuvaa GPU:n vierailijakäyttöä, mikä antaa meille mahdollisuuden käyttää grafiikkasovittimen ominaisuuksia ja laajentaa merkittävästi järjestelmän laajuutta. Kirjoitushetkellä tämä toiminto toimii Qubes 4.1:n testiversioissa ja on saatavilla GitHub.

Lähde: will.com

Lisää kommentti