You are here: TUTWiki>Tietoturva/Tutkielmat>QubesOS (revision 8)

Tapaustutkimus – Qubes OS

Johdanto

Qubes OS on puolalaisen Invisible Things Labin kehitteillä oleva avoimenkoodin käyttöjärjestelmä, joka on rakennettu Xen virtualisoinnin ja Linuxin yhdistelmänä. Käyttöjärjestelmä pyrkii tarjoamaan tietoturvaa eristämällä järjestelmän osia toisistaan. Ajatuksena tämän takana on taata etteivät edes mahdollisesti tietomurrolle altistuneet järjestelmän osat pääse vaikuttamaan muun järjestelmän eheyteen. Tässä tapaustutkimuksessa perehdytään keinoihin, joilla Qubes OS toteuttaa eristämistä järjestelmän osien välillä, sekä pyritään selvittämään keinojen hyötyjä ja haittoja.

Käyttöjärjestelmien ongelmia

Käyttöjärjestelmä hallinnoi tietokoneen resursseja, joten sen tietoturvallisuus on käyttäjän ja tämän tietojen kannalta erittäin olennaista. Käyttöjärjestelmät hyödyntävät paljon tietokoneen laitteiston, kuten prosessorin, toteuttamia ominaisuuksia lisäämään tietoturvaa, eikä Qubes OS ole poikkeus. Prosessorin avulla voidaan laitetasolla estää esimerkiksi laittomia muistiviittauksia ja tarjota tehokkaita ratkaisuja vaikkapa virtualisointiin.

Eräs useiden käyttöjärjestelmien ongelmista on, että ne ovat todella suuria ohjelmia ja niissä on etuoikeutettuun tilaan sisällytettynä myös paljon kolmansienosapuolten laiteajureita ja muita ohjelmistoja, joten niiden formaalisti oikeaksi todistaminen on vaikeaa, ellei mahdotonta. Lisäksi käyttöjärjestelmät käyttävät usein kaksitilaista järjestelmää (user mode/supervisor mode), jossa käyttöjärjestelmä käyttää etuoikeutettua tilaa. Jos hyökkääjä pääsee käyttämään tätä tilaa, mikä monoliittisissa käyttöjärjestelmissä on hyvinkin mahdollista, niin koko järjestelmä on haavoittuvainen.[1][2]

Mikroydinjärjestelmät ovat pyrkineet ratkaisemaan tätä ongelmaa hieman samalla tavalla kuin Qubes OS eli siirtämällä kaiken koodin, joka ei tarvitse etuoikeutettua tilaa, ulos ytimestä. Niiden suosio on kuitenkin jäänyt vähäiseksi heikoksi väitetyn tehokkuuden vuoksi. Tähänkin asiaan saattaa olla tulossa muutoksia tulevaisuudessa, kuten Tanenbaum, Herder ja Bos toteavat vuonna 2006 tehdyssä Computer lehden artikkelissa[3]. Artikkelissaan he ennustavat, että monoliittisista ytimistä ollaan siirtymässä mikroytimiin tai vastaaviin ratkaisuihin niiden rakenteen tuoman turvallisuuden vuoksi.

Arkkitehtuuri

Pääpiirteet

Qubes OS toteuttaa tietoturvaa eristämällä järjestelmän palasia toisistaan virtualisoinnin avulla. Virtualisointi toteutetaan ns. kevyillä virtuaalikoneilla, joita pyöritetään useita rinnakkain käyttäjän määrittämillä eri luottamustasoilla. Käyttöjärjestelmä pyrkii tarjoamaan parempaa tietoturvaa yksittäisten käyttäjien tietokoneisiin, eikä se siis ole kohdistettu palvelintoimintaan eikä myöskään useamman käyttäjän käyttöjärjestelmäksi.

Qubes OS:n toiminta perustuu Xen virtualisointiin, jonka avulla pyöritetään useita käyttäjän virtuaalikoneita, jotka toimivat toisistaan eristettyinä ja ovat käyttäjän määriteltävissä. Käyttöjärjestelmän taustalla on idea, että kaikki ohjelmat, jotka ovat liian suuria kunnolla tarkistettaviksi sisältävät jotain haavoittuvuuksia ja siksi ne tulee eristää. Tekijät keskittyvät vain kriittisten järjestelmänosien tarkistamiseen ja pyrkivät minimoimaan etuoikeutetun koodin määrän.

Xen ja virtualisointi

Xen koostuu kolmesta osasta: hypervisorista, etuoikeutetusta hallinnointialueesta (dom0) ja useasta etuoikeudettomasta alueesta (domU). Siinä missä yleisimmissä käyttöjärjestelmissä on useita miljoonia rivejä koodia on Xenin etuna ”vaivaset” muutama satatuhatta riviä koodia. Tekijät myöntävät, että Xen:in kokoista ohjelmaa ei voi formaalisti todistaa, joten he pyrkivät manuaalisesti auditoimaan sen ja pitämään sen mahdollisimman pienenä, jolloin mahdolliset haavoittuvuudet pysyvät mahdollisimman vähäisinä.

Xen hypervisor on suoraan tietokoneen laitteiston päällä toimiva ohjelmistokerros, joka korvaa käyttöjärjestelmän paikan laitteiston käyttäjänä ja mahdollistaa useamman eri käyttöjärjestelmän suorituksen samanaikaisesti.[4] Dom0 pidetään Qubes OS:ssä mahdollisimman pienenä, eikä siellä ole muuta ulkopuolelta käsiksi päästävää koodia kuin järjestelmän rekisteri ja graafisen käyttöliittymän koodi. Kaikki muut käyttöjärjestelmän toiminnot, kuten laiteajurit ovat siirretty domU aluesiin, jossa niiden toiminta on rajoitettua.

Virtualisointi itsessään ei tuo tietoturvaa, mutta sen käyttö on mahdollistanut sen, että koko järjestelmä on voitu suunnitella uusiksi edellä mainitulla tavalla ja silti sisällytetty mahdollisuus säilyttää yhteensopivuus kaikkiin ”tavallisiin” käyttöjärjestelmiin. Tällöin ei tarvitse luoda alusta alkaen kaikkia järjestelmän ohjelmia uudestaan vaan voidaan käyttää jo olemassa olevia ohjelmia, jotka eivät edes tajua olevansa eristetyssä muistialueessa. Tämä mahdollistaa Qubes OS:n tavoitteleman eristyksen järjestelmän osien välillä.[5]

Virtuaalikoneet[1]

Qubes OS käyttää Intelin VT-d tekniikaa, josta myöhemmin hiukan tarkemmin, suojaamaan Xen-järjestelmän ja tarjoamaan joillekin virtuaalikoneille väylän laitteille. Lisäksi järjestelmän palasia jaetaan omiin virtuaalikoneisiinsa, joita on kahden tyyppisiä: sovelluksien virtuaalikoneita (AppVM) ja systeemipalveluiden virtuaalikoneita (SystemVM).

SystemVM:t toimivat etuoikeudettomilla alueilla ja ovat käyttöjärjestelmän normaaleja rutiineita toimittavia palikoita, joilla on VT-d tekniikalla toteutettu suora yhteys laitteeseen, jota ne käyttävät. Eräs SystemVM on verkkoalue, jossa sijaitsee verkkokortin ajurit ja protokollapinot. Toinen on varastointialue, jolla on yhteys kovalevyihin, USB-muisteihin ja CD/DVD asemaan ja sisältää tiedostojärjestelmän ja levyajurit. Varastointialue on kriittinen osa järjestelmään, koska kaikkien virtuaalikoneiden tiedot kulkevat sen kautta, joten sen tietojen suojaksi otetaan käyttöön kryptografiaa, jolloin varastointialue ei pääse käsiksi muiden virtuaalikoneiden tietoihin. Lisäksi Intel TXT:n avulla estetään systeemin käynnistyslohkon muokkaus. Eli ideana on, että pahimmassakaan tapauksessa hyökkääjä ei pääse käsiksi käyttäjän tietoihin vaan saa korkeintaan aiheutettua saatavuudelle ongelmia.

AppVM:t ovat käyttäjän sovelluksille tarkoitettuja virtuaalikoneita, joille käyttäjä voi määritellä mieleisiänsä luottamustasoja ja joissa säilötään kaikki käyttäjän tiedostot. AppVM:t pystyvät jakamaan yhteisen käyttöjärjestelmän, jolla ne toimivat, tällä hetkellä vaihtoehtona on vain Linux, mutta suunnitteilla on lisätä tuki useammalle eri järjestelmälle. Käyttäjä voi tehdä useita virtuaalikoneita, joissa ajaa sitten eri luottamustason ohjelmia, jolloin yhden luottamustason vaarantuessa muut säilyvät turvassa. Eli esimerkiksi vaikka nettiselailuvirtuaalikoneen selaimeen asentuu troijalainen, ei se pääse tekemään MitB-hyökkäystä pankkimaksuvirtuaalikoneen selaimen pankkitransaktioon.

Intel VT-d ja TXT[6][7]

Intel Trusted Execution Technology (TXT) tarjoaa eristetyn suoritusympäristön keskusmuistista ja suljetun varaston, jossa voidaan säilyttää arkaluontoista tietoa kuten salausavaimia. Lisäksi TXT tarjoaa mahdollisuuden estää käynnistyslohkon muokkauksen ja näin varmistaa, että järjestelmän suoritus aloitetaan oikeasta paikkaa. TXT:n avulla voidaan toteutta myös esimerkiksi salaus näppäimistön ja tietokoneen välillä, jolloin nuuskinta estetään.

Intel VT-d puolestaan on I/O-laitteiden virtualisointiin tarkoitettu teknologia, joka tarjoaa tehostettua eristämistä eri I/O laitteiden välillä. Teknologian avulla yhdessä SystemVM:ssä oleva laiteajuri pääsee vain sille määriteltyyn laitteeseen ja muistialueeseen käsiksi, jolloin tehokkaasti estetään viallisen tai pahantahtoisen laiteajurin toiminta vain sen omaan virtuaaliavaruuteen. Tämä tarjoaa suojaa ja parempaa tehokkuutta laitteistopuolelta useiden virtuaalikoneiden pyörittämiseen ja sillä saavutetaan parempaa turvaa ja saatavuutta.

Vaatimukset

Qubes OS ei ole mitenkään kevyt käyttöjärjestelmä, ja vaatii markkinoiden uusimpia tekniikoita toimiakseen, mikä on ymmärrettävää virtualisoinnin kannalta, mutta onko se sitten hyväksyttävää käyttäjien kannalta jää nähtäväksi.

Minimi[8]:
  • 4GB RAM

  • 64-bit Intel tai AMD prosessori

  • Intel näytönohjain (core iX sarjaa suositellaan, Nvidia ja ATI toimivat, mutta ei tuettu)

  • 10GB kovalevytilaa (isoa SSD levyä suositellaan)

Hyödyt ja haitat

Tässä luvussa käydään läpi hieman mitä hyötyjä ja haittoja Qubes OS tuo mukanaan ja verrataan niitä hieman muihin virtualisointitekniikoihin ja tavallisiin käyttöjärjestelmiin.[9]

Hyödyt

  • Eristys virtuaalikoneiden välillä on tehokkaampaa kuin tavanomaisten käyttöjärjestelmien prosessien eristys

    • Laiteajurit eristetty omiin virtuaalikoneisiinsa, jolloin niiden koodin ei tarvitse olla luotettua järjestelmän eheyden kannalta. Tätä esimerkiksi KVM ei tue.

    • Eristää tehokkaasti epävakaat ja tietomurrolle altistuneet virtuaalikoneet.

    • Järjestelmän tietoturvasta vastaavat osat kuten palomuuri tai IDS voidaan sijoittaa omiin virtuaalikoneisiinsa, joihin haittaohjelma ei pääse käsiksi ja siksi sen toiminta voidaan havaita tai estää.

  • Paljon vähemmän täysillä oikeuksilla ajettavaa koodia kuin tavallisissa käyttöjärjestelmissä ja useimmissa virtualisointi ratkaisuissa kuten esimerkiksi KVM. Toisin sanoen pienempi TCB (Trusted Computing Base).

  • Mahdollistaa käyttäjälle virtuaalikoneiden jaon omiin tarpeisiin ja turvavaatimuksiin sopiviksi.

Haitat

  • Useiden virtuaalikoneiden ylläpito vaatii paljon keskusmuistia.

  • Paljon laitteistoriippuvaisia toiminnallisuuksia.

  • Ei tue 3D:tä AppVM:ssä, joten sitä tarvitsevat pelit ynnä muut eivät toimi.

  • Jos jokin SystemVM altistuu haittaohjelmalle, on palvelunestohyökkäyksen mahdollisuus ilmeinen.

Päätelmät

Qubes OS tarjoaa hyviä ratkaisuja käyttöjärjestelmiä vaivaaviin tietoturva ongelmiin ja antaa myös mahdollisuuden käyttäjälle jaotella toimintansa luottamustasoihin. Lisäksi käyttöjärjestelmä hyödyntää kehittyneitä laitteistotason suojauksia, uusinta tekniikkaa ja paljon kryptografiaa. Suunnittelu on alusta alkaen aloitettu tietoturvaa ajatellen ja on siten tulevaisuudessa varteenotettava vaihtoehto yrityksien työasemille ja yksityisille tietoturvastaan huolestuneille, mutta kuitenkin vaaditun suorituskyvyn ollessa suuri, rajoittuneet laitteistovalinnat ja vielä kehityksessä oleva järjestelmä voivat vaatia oman aikansa, joten jää nähtäväksi pystyykö Qubes OS lunastamaan antamansa lupaukset.

Lähteet

SivuTiedotLaajennettu edit

Vaativuus Jatko
Valmius Kehitteillä
Tyyppi Esitys
Luokitus Atk
Mitä Eheys
Miltä Useita
Missä Järjestelmä
Kuka Muu
Milloin Rakennettaessa
Miksi Muu
Print version |  PDF  | History: r11 | r9 < r8 < r7 < r6 | 
Topic revision: r8 - 29 Nov 2011 - 18:51:39 - JoonasRuohonen
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback