Tietoturvahaavoittuvuus DigabiOS-käyttöjärjestelmässä

Saimme tietoomme helmikuussa 2015 haavoittuvuuden, joka mahdollistaa DigabiOS-käyttöjärjestelmän toiminnan muuttamisen ennen sen käynnistämistä.

Ylioppilastutkinnon sähköistämisen tietoturvallisuus on Digabi-hankkeen keskeinen tavoite. Esimerkkinä tästä järjestimme Digabi-hankkeen alussa elokuussa 2013 Hackabi-hakkerointikilpailun, jossa keräsimme tietoturvayhteisöltä havaintoja erilaisista järjestelmän haavoittuvuuksista. Haluamme toimia jatkossakin vastuullisesti ja avoimesti tutkinnon tietoturva-asioissa. Tästä johtuen toivomme, että tietoturvatutkijat ja -yhteisö ilmottaisivat mahdollisista havainnoistaan Digabi-hankkeelle etukäteen ennen havaintojen julkistamista. Tavoitteenamme on julkistaa meille ilmoitetut tietoturvahaavoittuvuudet viimeistään kolmen kuukauden kuluttua ilmoituksesta.

Mistä on kyse?

Pääosa DigabiOS‑käyttöjärjestelmästä sijaitsee USB-muistitikulla olevassa squashfs-pakatussa tiedostojärjestelmässä, joka puretaan käynnistyksen aikana. Hyökkäys perustuu tämän tiedostojärjestelmän purkamiseen, sisällön muokkaamiseen ja uudelleenpakkaamiseen. Onnistunut hyökkäys mahdollistaa käyttöjärjestelmän ulkopuolisten ohjelmien suorittamisen sekä käyttöoikeuksien laajentamisen DigabiOS:ssä.

Haavoittuvuuden hyödyntäminen vaatii valmistautumista ennen koetilannetta, sillä tietokone täytyy aluksi käynnistää koneen kovalevyllä olevaan käyttöjärjestelmään. Käytännössä kokeen suorittaja odottaa valvojan antamaa USB-muistia koneen ollessa käynnissä, ajaa etukäteen laatimansa USB-muistia muokkaavan ohjelman ja käynnistää sen jälkeen koneen DigabiOS:iin. Toimenpide vie nopeimmillaan noin minuutin.

Abitti-kokeissa hyödyntämistä voitaisiin vaikeuttaa seuraavilla toimenpiteillä:

  • USB-muisteja ei jaeta kokeen suorittajille etukäteen
  • kokeen suorittajia valvotaan koneen käynnistyksen yhteydessä ja varmistetaan, että USB-muisti liitetään sammutettuun koneeseen ja kone käynnistetään välittömästi DigabiOS-käyttöjärjestelmään
  • epäselvissä tilanteissa kokeen suorittajan USB-muisti vaihdetaan käyttämättömään ja kone käynnistetään uudelleen valvotusti
  • kokeen suorittajia valvotaan perinteisin menetelmin (mm. näyttöjen silmäily)
  • kokeen suorittajat käyttävät lukion tietokoneita, mikä ei kuitenkaan ole resurssisyistä yleensä mahdollista

Ylioppilaskokeissa haavoittuvuuden hyödyntämisen estämiseen on käytettävissä edellisten lisäksi myös muita mahdollisuuksia, joista tiedotamme kokeen järjestäjiä tarpeen mukaan.

Yleistä tietoturvasta sähköisessä ylioppilastutkinnossa

Ylioppilaskoe on perinteisesti ollut aina tarkasti valvottu, eikä tämä muutu oleellisesti kokeen sähköistyessä. Myös sähköisen ylioppilaskokeen järjestelyjä ja tietoturvaa voidaan valvoa. Kokeen järjestävän koulun näkökulmasta sähköisen kokeen turvaaminen merkitsee sitä, että kokeen valvojat tarkkailevat tutkintotilanteessa perinteisen valvonnan ohella myös kokeen teknisen suorittamisen tunnusmerkkejä. Nyt havaitun teknisen heikkouden hyödyntäminen huomaamatta valvotussa koetilanteessa lienee teknisesti mahdollista mutta hyvin riskialtista, koska koetilannetta voidaan valvoa erilaisin teknisin keinoin. Koneen pääkäyttäjän oikeuksien saaminen ei sinänsä vielä riitä vilpillisen hyödyn saavuttamiseen, vaan kokelaan on vielä käytettävä oikeuksia esim. verkkoliikenteen muodossa. Sähköisessä ylioppilaskokeessa kokelaiden toimintaa koneella tullaan seuraamaan monin eri tavoin. Kokelaan näkökulmasta koevilppi voi johtaa kokeen keskeyttämiseen ja kokonaan hylkäämiseen.

Haavoittuvuuden tekninen kuvaus

Kyseisen hyökkäysvektorin täydellisesti poistaminen ei ole käytännössä mahdollista, koska DigabiOS-käyttöjärjestelmän sisältävä USB-muisti annetaan kokeessa fyysisesti kokelaan haltuun ja se käynnistetään kokelaan omistamassa laitteessa. Hyvä käytäntö fyysisiltä uhkilta suojautumiseen olisi käyttää ns. secure chip ja secure boot -tyyppisiä turvaratkaisuja, mutta näiden käyttöönottoa ei toistaiseksi ole suunniteltu sähköisissä ylioppilaskokeissa.

Haavoittuvuuden hyödyntämisestä voidaan tehdä teknisesti työläämpää sekä lisätä koetilanteessa tapahtuvaa valvontaa ja sitä kautta koevilppiin liittyvää kiinnijäämisen riskiä. Heikkouden hyödyntämisen mahdollistamat toiminnot poikkeavat Digabi OS:n normaalikäytännöistä ulkonäöltään ja toiminnallisuuksiltaan huomattavasti ja ne voidaan havaita teknisen valvonnan keinoilla.

Haavoittuvuuden CVSS-analyysi:

  • Access Vector: Paikallinen (L), hyökkääjällä tulee olla fyysinen pääsy kohdekoneeseen
  • Access Complexity: Keskitaso (M), hyökkääjän tulee ensin käynnistää kohdekone omaan käyttöjärjestelmäänsä, jossa Digabi OS:ää muokataan ennen siihen käynnistämistä
  • Authentication: Käyttäjän tunnistamista ei tarvita haavoittuvuuden hyödyntämiseen (N)
  • Confidentiality Impact: Hyökkäyksellä ei voi saavuttaa pääsyä muiden kokeentekijöiden tietoihin (N)
  • Integrity Impact: Hyökkääjän on mahdollista muuttaa mitä tahansa osaa järjestelmästä (C)
  • Availability Impact: Hyökkäys ei vaikuta kohdejärjestelmän tehokkuuteen, mutta sitä voidaan käyttää muita järjestelmiä vastaan hyökkäämiseen (P)

CVSS-pisteytys: 5.4 (vakavuus: keskitaso)

Kiitokset ja lisätietoja

Kiitämme omasta toiveestaan nimettömäksi jäänyttä asiantuntijaa haavoittuvuuden löytämisestä ja asian esiin tuomisesta.

Lisätietoja sähköisen ylioppilaskokeen järjestämisestäja Digabi-projektista antaa projektipäällikkö Matti Lattu (matti.lattu@ylioppilastutkinto.fi).