oma.abitti.fi hidastelee – ongelma on korjattu

Abitin verkkopalvelussa oma.abitti.fi:ssä on hitautta. Asiaa selvitellään parhaillaan ja väliaikatietoja päivitetään tälle sivulle.

Maanantai 30.5.

  • klo 11.10 Abitin verkkopalvelun taustalla oleva tietokanta on hidas. Selvitellään mistä kutsuista tulee kuormaa kannalle.
  • klo 11.45 Tietokannalle ajetaan huoltotoimenpide, jolla yritetään korjata kannan suorituskykyä.
  • klo 13.30 Huoltotoimenpide jatkuu edelleen.
  • klo 14.28 Huoltotoimenpide on valmis, mutta palvelussa on edelleen hitautta.
  • klo 16.20 Lue lisää tiedotteesta (ylioppilastutkinto.fi)
  • klo 16.30 Palvelu on kokonaan suljettu, ongelman selvittelyä jatketaan.
  • klo 18.00 Ongelman selvittelyä jatketaan edelleen.
  • klo 18.10 Abitin verkkopalvelu on nyt avattu, mutta siinä ilmenee edelleen hitautta. Olemme keskeyttäneet vian selvityksen tältä päivältä ja jatkamme aamuvarhaisella.

Tiistai 31.5.

  • klo 8.30 Palvelu on toiminut hyvin yön ajan. Ongelman juurisyyn etsimistä jatketaan.
  • klo 11.30 Abitin eilisten ongelmien syyksi paljastui järjestelmän taustalla toimivan tietokantapalvelimen liian hidas levy. Levyn nopeutta kasvatettiin, ja sen jälkeen palvelu on toiminut normaalisti.

Seuranta on päättynyt. Pahoittelemme kaikille Abitin käyttäjille palvelukatkosta johtunutta haittaa.

 

Abitista on korjattu kolme tietoturva-aukkoa

Abitista on korjattu kolme tietoturva-aukkoa. Kriittisin haavoittuvuuksista on mahdollistanut hyökkäyksen oma.abitti -verkkopalvelun käyttäjää (esim. opettajaa) vastaan. Kaksi muuta haavoittuvuutta liittyivät koetilanteeseen. Kaikki ilmoitukset perustuvat Ylioppilastutkintolautakunnan ulkopuoliselta henkilöltä saatuun ilmoitukseen.

Kokeen liitetiedostot oma.abitti.fi-verkkopalvelussa

Oma.abitissa kokeen arvostelija voi palauttaa arvioidut ja arvostellut koetehtävät kokeen suorittajille. Palautus tapahtuu siten, että kokeen suorituksen yhteydessä suorittajalle lähetetään sähköpostilinkki, jota klikkaamalla suorittaja voi katsella koesuoritustaan, koetehtäviään ja –aineistoja.

Aukkoa olisi voinut hyödyntää useilla eri tavoilla. Hyökkääjä olisi voinut laatia kokeeseen liitetiedoston, joka muistuttaisi Abitin kirjautumissivua. Tämän jälkeen hyökkääjä olisi voinut tekeytyä Abittia käyttävän opettajan opiskelijaksi ja houkutella opiskelijan avaamaan linkin. Tällöin opettaja olisi kokenut luonnollisena, että hänen on kirjauduttava Abittiin hyökkääjän petollisen kirjautumissivun kautta. Näin opettajan Abitti-käyttäjätunnus ja salasana olisi päätynyt hyökkääjälle.

Hyökkääjä olisi myös voinut upottaa koetehtäviin JavaScript-ohjelmakoodia, joka olisi lähettänyt mahdolliset autentikointievästeet tai kaikkien vahingollista koetta katselevan Abitti-käyttäjän arvosteluaineistot hyökkääjälle.

Tämä tietoturva-aukko on korjattu estämällä kaikkien vanhalla koe-editorilla tehtyjen koetehtävien ja liitetiedostojen katselu. Lisäksi jo aiemmin on ilmoitettu, että mahdollisuus vanhalla koe-editorilla tehtyjen kokeiden järjestämiseen päättyy syksyn 2022 ylioppilaskokeiden jälkeen.

Tämä haavoittuvuus koskee vain vanhalla koe-editorilla tehtäviä kokeita ja se on ollut käytettävissä Abitin julkaisusta alkaen. Bertta-editorilla tehtyissä MEX-kokeissa tällaista hyökkäysmahdollisuutta ei ole.

Tätä haavoittuvuutta ei ole voinut hyväksikäyttää ylioppilaskokeissa.

Kiellettyjen HTML5-ohjelmien käyttö matematiikan kokeen A-osassa

Abitissa on mahdollista laatia koe, jonka ensimmäisessä osassa symbolisen laskinohjelmien käyttö ei ole mahdollista. Tätä ominaisuutta käytetään matematiikan ylioppilaskokeen A-osassa.

A-osassa kiellettyjen ohjelmien käyttö on estetty poistamalla kokelaiden lukuoikeudet keskeisiin tiedostoihin. Ikävä kyllä HTML5-tekniikkaa käyttävien ohjelmien (GeoGebra 6 ja 4f-vihko) varsinainen ohjelmakoodi oli kokelaiden saatavilla ja suoritettavissa koeympäristön FireFox-selainta käyttäen.

Tämä tietoturva-aukko on korjattu versiosta ABITTI2216Z alkaen siten, että kokelaalta on poistettu lukuoikeudet aiempaa laajempaan joukkoon ohjelmakoodia.

Tämä haavoittuvuus on ollut Abitissa sen julkaisusta alkaen. Haavoittuvuus on ollut myös kaikissa Abitilla tehdyissä ylioppilaskokeissa.

Abitin kokelaan koeympäristöön vaikuttaminen kernelin init-parametria muuttamalla

Abitti perustuu Debian GNU/Linux -käyttöjärjestelmään. Ennen koetta kokelaan kone käynnistetään Linux-käyttöjärjestelmään, joka ladataan USB-muistilta tai koneen sisäiseltä massamuistilta. Linuxin käynnistämisen yhteydessä käyttöjärjestelmän ytimelle, kernelille, annetaan parametreja. Näitä parametrien muuttaminen mahdollistaa mm. kokelaan koeaikaisten käyttöoikeuksien korottamisen.

Tämä hyökkäystapa on ollut kehittäjien tiedossa ja sitä hallitaan koejärjestelmän teknisellä valvonnalla. Valvontaohjelmaa ajetaan kokelaan koneella kokeen aikana ja sen tulokset toimitetaan koesuoritusten siirron yhteydessä Ylioppilastutkintolautakunnalle. Abitti-harjoituskokeissa valvonta on hyvin suppeaa ja sen tarkoitus on varmistaa, että valvontamekanismi toimii. Kerättyjen tietojen perusteella julkaistaan tietoja Abitin kanssa käytetyistä tietokoneista (hwdata.abitti.fi).

Ilmoittaja huomautti, että teknistä valvontaa voidaan huijata eri tavoin, mm. manipuloimalla käyttöjärjestelmän ohjelmia (esim. cat, iptables), joihin valvonta perustuu.

Tämä tietoturva-aukko on korjattu versiosta ABITTI2216Z alkaen. Valvonnan luonteen vuoksi Ylioppilastutkintolautakunta ei avaa korjausta tämän tarkemmin. Samalla muistutamme harjoituskokeita järjestäviä lukioita, että harjoituskokeiden ylioppilaskokeita suppeampien teknisen valvonnan tietoja ei seurata Ylioppilastutkintolautakunnassa.

Tämä haavoittuvuus on ollut Abitissa sen julkaisusta alkaen. Hyväksikäyttö on edelleen mahdollista harjoituskokeissa. Haavoittuvuuden hyväksikäyttöä on seurattu kaikissa Abitilla tehdyissä ylioppilaskokeissa.

Kiitokset

Kiitämme Daniel Smalinia, joka toi nämä tietoturva-aukot tietoomme. Danielilta saamamme tiedot haavoittuvuuksista olivat yksityiskohtaisia ja helpottivat sekä Abitti-kehitystiimiä että tietoturvakumppaniamme ongelmien paikantamisessa ja parhaan korjauksen löytämisestä.

Ylioppilastutkintolautakunta on sitoutunut julkistamaan kaikki tietoon tulleet tietoturvapoikkeamat kolmen kuukauden kuluessa. Olemme tottuneet vastaanottamaan sekä yksinkertaisia sähköposteja että ammattimaisia hyökkäyskoodin sisältäviä ilmoituksia.

Haluamme tässä samassa yhteydessä kiittää sekä entisiä että tulevia tietoturva-aukkojen etsijöitä!

Lue lisää

Otteita tietoturvakumppanin lausunnosta

Olemme arvioineet Ylioppilastutkintolautakunnan pyynnöstä YTL:lle toimitettujen haavoittuvuuskuvausten havaintojen vaikuttavuutta sekä suositelleet korjausehdotuksia haavoittuvuuksien paikkaamiseen

Toimeksiannon aloituspalaverissa meille toimitettiin YTL:än saamat kuvaukset haavoittuvuuksista sekä haavoittuvuuksiin liittyvistä hyväksikäyttömenetelmistä. Haavoittuvuuskuvauksia hyödynnettiin arviointia tehdessä, mutta arvioinnin yhteydessä havaittiin myös laajempia haavoittuvuuksien hyväksikäyttömahdollisuuksia. Havaittuja hyväksikäyttömenetelmiä ovat esimerkiksi liitetiedostojen hyödyntäminen tietojen kalasteluun, jossa käytetään hyväksi oma.abitti.fi -domainin luotettavaa asemaa.

Haavoittuvuusanalyysia suoritettaessa YTL oli jo korjannut laskinten luvatonta käyttöä koskevan haavoittuvuuden, joten tämä arviointi keskittyi XSS- ja CSRF-haavoittuvuuteen sekä INIT-parametriin liittyvään haavoittuvuuteen.

XSS & CSRF -haavoittuvuus (Kokeen liitetiedostot oma.abitti.fi-verkkopalvelussa)

Cross-site scripting (XSS) on hyökkäysmenetelmä, jossa tyypillisesti hyökkääjän JavaScript-pohjaista haittakoodia suoritetaan uhrin selaimessa. JavaScriptillä on mahdollista suorittaa verkkosovelluksille tyypillisiä toiminnallisuuksia. XSS-haavoittuvuuksissa voidaan myös näyttää uhrille mielivaltaista sisältöä, jonka tarkoituksena voi olla esimerkiksi erehdyttää käyttäjää syöttämään käyttäjätunnuksia tai asentamaan haittaohjelmia päätelaitteelleen. Cross-site request forgery (CSRF) -haavoittuvuudessa lähetetään uhrin tietämättä HTTP-kutsuja kohdepalvelimille esiintyen uhrina.

Yhdistämällä XSS- ja CSRF-haavoittuvuudet hyökkääjän on mahdollista suorittaa mielivaltaisia kutsuja kohdejärjestelmälle, hyödyntäen esimerkiksi kirjautuneen käyttäjän istuntoevästeitä. Tässä tapauksessa sisäänkirjautunut käyttäjä suorittaa tietämättään HTTP-kutsuja palvelimelle. Tyypillisesti kutsujen vastauksia, sekä muuta tietoa verkkosivulta, on myös mahdollista lähettää eteenpäin hyökkääjän komentopalvelimelle.

oma.abitti.fi: XSS & CSRF

Haavoittuvuus koskee oma.abitti.fi kokeeseen lisättävien html-liitteiden käsittelyä. Oma.abitti.fi Kokeeseen on mahdollista lisätä haitallista koodia sisältävä html-liitetiedosto. Liitetiedosto on kutsuttavissa suoralla osoitteella, liitetiedoston avaaminen ei vaadi kirjautumista Abitti-järjestelmään.

Liitetiedoston avulla hyökkääjä voi rakentaa hyökkäyksen ketjumaiseksi käyttäen ulkopuolista sivustoa. Kun käyttäjä vierailee sivustolla, ohjataan hänet oma.abitti.fi -liitetiedosto sivulle, joka pitää sisällään haitallista koodia. Haitallisen koodin suorituksen jälkeen käyttäjä ohjataan takaisin alkuperäiselle sivustolle. Käyttäjä ei ehdi havainnoida oma.abitti.fi -sivustolla käyntiä, koska toimenpide on hyvin nopea.

Haitallisella koodilla on mahdollisuus suorittaa toimenpiteitä oma.abitti.fi -sivuston API-rajapintaa vasten käyttäjän oikeustasojen mukaisesti.

Abitti -järjestelmän rajapintojen kautta on mahdollista saada tietoa kokeista, kokeiden sisältö, pisteytys, kokeen suorittajan tiedot (etunimi, sukunimi, sähköpostiosoite), koevastauksien pisteytys sekä itse kokeen pisteet.

Hyökkäyksen avulla voidaan muokata sellaisien koevastauksien pisteitä, jotka ovat opettajan arvioitavissa.

CVSS, eli common vulnerability scoring system, on työkalu haavoittuvuuksien kriittisyyden arvioimiseen. CVSS v3.0 -asteikko jakaa haavoittuvuudet viiteen eri kriittisyysluokkaan numeraalisen pisteytyksen avulla. Haavoittuvuuden hyväksikäytettävyyteen, kompleksisuuteen sekä hyväksikäytöstä aiheutuviin mahdollisiin seurauksiin peilaten haavoittuvuuden CVSS-pisteytys on 8.3 eli havainnon vakavuusaste on korkea.

oma.abitti.fi: Phishing ja Social Engineering

Phishingillä tarkoitetaan tyypillisesti tietojen kalastelua. Hyökkäysmenetelmän päämääränä on yleensä erehdyttämällä saada uhri luovuttamaan henkilötietoja, käyttäjätunnuksia tai muuta arkaluontoista tietoa. Social engineering on vakiintunut termi päämäärätietoiselle manipuloinnille, jonka tarkoituksena on saada uhri suorittamaan jotain tiettyjä toimenpiteitä, esimerkiksi erehdytetään käyttäjä asentamaan ”päivitys” joka todellisuudessa on hyökkääjälle uhrin päätelaitteelle takaoven avaava haittaohjelma.

Vihamielisen tahon on mahdollista luoda oma.abitti.fi:ssä liitetiedosto-toiminnallisuuden avulla aidolta vaikuttava tietojenkalastelusivusto oma.abitti.fi -osoitteen alaisuuteen. Tästä johtuen ”huijaussivun” osoite herättää luottamusta ja edesauttaa uhrin erehdyttämistä.

Kappaleen esimerkissä on luotu liitetiedostona aitoa oma.abitti.fi:n kirjautumissivua muistuttava sivu. Uhrin yrittäessä kirjautua sisään, hänen käyttäjätunnuksensa ja salasana lähetetään hyökkääjän hallinnoimalle palvelimelle.

Vaihtoehtoisesti vihamielisen tahon on mahdollista käyttää oma.abitti.fi:n liitetiedosto-ominaisuutta myös haittaohjelmien levittämiseen ja säilyttämiseen.

Kiellettyjen HTML5-ohjelmien käyttö matematiikan kokeen A-osassa

Abitti kokelaan levykuvassa ABITTI2216Z ei ole oikeuksia Geogebran ja 4FNotesin kansioihin. Abitin versiotiedoissa ei ollut mainintaa muutoksesta.

Abitin kokelaan koeympäristöön vaikuttaminen kernelin init-parametria muuttamalla

YTL:lle ilmoitettu haavoittuvuus koskee kokelaan Abitti-levykuvan suojatun GRUB-käynnistyslataajan ohittamista. GRUB-käynnistyslataajan ohittamisella mahdollistetaan muun muassa kokelaan käyttöoikeuksien korottaminen, Abitti-levykuvan muokkaaminen sekä ulkopuolisien ohjelmien asentaminen.

Abitti-levykuvan GRUB-käynnistyslataajan ohitus tapahtuu käyttämällä koneelle asennettua paikallista käynnistyslataajaa. Paikallisella käynnistyslataajalla ohitetaan Abitti kokelaan levykuvan oma suojattu käynnistyslataaja tai kokonaan muokattu Abitti-ohjelmisto.

GRUB-käynnistyslataajaan ohittamisesta löytyi julkisista lähteistä keskustelua ja ohjeistuksia, joten kyseessä on jo tiedossa ollut heikkous.

 

Kuvakaappaus ei toimi vanhalla editorilla tehdyissä kokeissa (korjattu)

Uusimmassa Abitti-versiossa (ABITTI2216Z) olevan virheen vuoksi kuvakaappaukset eivät toimi niissä vanhalla editorilla tehdyissä kokeissa, joita ei ole pystytty konvertoimaan uudeksi MEX-formaatiksi. Nämä kokeet voi tunnistaa vanhan editorin esikatselunäkymästä. Jos esikatselussa näkyy teksti “Kokeen ulkoasu ei vastaa ylioppilaskokeita”, kuvakaappaukset eivät toimi uusimmalla Abitti-versiolla.

Kuvakaappaukset toimivat Bertalla tehdyissä kokeissa ja niissä kokeissa, jotka on voitu konvertoida MEX-formaattiin. Jälkimmäisessä tapauksessa vanhan editorin esikatselussa ei ole em. varoitustekstiä.

Ongelmaan on tulossa korjaus lähipäivinä. Sitä odoteltaessa asian voi kiertää jollain seuraavista tavoista:

  • Muuttaa vanhalla editorilla tehty koe Bertta-kokeeksi kopioimalla vanhan editorin koetehtävät Berttaan tehtävän kopiointityökalulla
  • Poistaa vanhalla editorilla tehdyistä kokeista muotoiluja, kunnes“Kokeen ulkoasu ei vastaa ylioppilaskokeita” -teksti poistuu esikatselusta
  • Käyttää vanhempaa Abitti-versiota

Päivityksiä:

  • Korjaus tähän ongelmaan tullaan jakamaan koepakettien kautta. Jakamisen ajankohta ei ole vielä tiedossa. (Lisätty 13.5. klo 10.40)
  • Korjaus on jakelussa koepakettien kautta. Korjaus tarttuu ma 16.5. klo 12 jälkeen ladattuihin koepaketteihin ja siirtyy koetilan palvelimen kokelaiden koneille. (Lisätty 16.5. klo 14.05)

Vanhan koeformaatin kokeiden kopioinnissa ollut ongelma on korjattu

Vanhalla editorilla tehdyissä kokeissa oli viikonloppuna ja alkuviikosta ongelma, jonka seurauksena kokeiden suorittajat eivät saaneet liitettyä kuvakaappauksia kokeen vastauslaatikkoon. Vikaa ei ilmennyt Bertalle tehdyissä kokeissa.

Ongelma on korjattu tänään klo 12.00. Tätä ennen oma.abitista ladatut koepaketit on ladattava uudelleen, jotta vastausruudut toimivat halutulla tavalla.

Olemme erittäin pahoillamme tästä ohjelmavirheestä kaikille Abitin käyttäjille aiheutuneesta lisätyöstä.

Bertta on saavuttanut suuren suosion

Abitin uusi Bertta-tehtäväeditori on otettu hyvin vastaan. Se on edistänyt merkittävästi ylioppilaskokeissa käytettävän MEX-formaatin käyttöä harjoituskokeissa.

Yksi Bertan näppärimpiä ominaisuuksia on mahdollisuus kopioida uusiin kokeisiin yksittäisiä koetehtäviä vanhoista Abitti-kokeista. Tätä ominaisuutta on paranneltu huomattavasti viimeisen kuukauden aikana. Jos et ole saanut lempikokeesi parhaita tehtäviä kopioitua alkuvuodesta, kokeile nyt uudelleen!

Vanhat kokeet säilyvät

Monet Abitin käyttäjät ovat olleet huolissaan vanhalla editorilla ja koeformaatilla tehtyjen kokeiden kohtalosta.

Ylioppilastutkintolautakunnan tavoitteena on saada Abitilla järjestetyt kokeet kokonaan MEX-formaattiin, jotta palvelin- ja kokelastikuilta voidaan poistaa ylioppilaskokeista kadonnut vanha koeformaatti. Vanhaa koodia ei enää ylläpidetä ja huoli on, että se voisi aiheuttaa ongelmia tulevissa ylioppilaskokeissa.

Siirtymä MEX-formaattiin näyttää etenevä hyvin (ks. alla oleva graafi):

  • Yhä useampi Abitin käyttäjä tekee kokeensa Bertalla (sininen alue)
  • Vanhalla formaatilla tehtyjen kokeiden osuus laskee jatkuvasti (keltainen alue)
  • Parannettu automaattinen kokeiden muuttaja (vihreä alue) muuntaa parhaimmillaan joka kolmanneksen vanhalla editorilla tehdyistä kokeista

Jo nyt yli puolet järjestetyistä kokeista hyödyntää uutta koeformaattia ja osuus kasvaa jatkuvasti. Bertan helppokäyttöisyys, tehtävän kopiointitoiminto ja mahdollisuus muokata vanhoja Examinasta tuotuja yo-kokeita näyttäisivät saavan aikaan MEX-siirtymän ihan itsestään.

Edellisessä Berttaa käsittelevässä blogissa oleva maininta vanhan editorin säilyminen ainakin kesään 2022 on tulkittu siten, että se poistuu kesällä 2022. Tämä tulkinta ei pidä paikkaansa.

Julkaisemme syksyn ylioppilaskokeiden jälkeen Abitti-version. Tämän ison Debian-versiopäivityksen yhteydessä poistamme mahdollisuuden käyttää sellaisenaan vanhalla formaatilla tehtyjä Abitti-kokeita. Osa vanhan formaatin kokeista toimii, koska Abitin automaattinen muuttaja osaa konvertoida ne uuteen formaattiin.

Loka-marraskuun Abitti-version julkaisemisen jälkeen:

  • Abitin vanha editori on käytössä
  • Vanhalla formaatilla tehdyt kokeet ovat käytettävissä esim. Bertan tehtävän kopiointitoiminnolla
  • Bertalla tehtyjä kokeita voi ladata siirrettäväksi koetilan palvelimelle
  • Vanhalla editorilla tehtyjä kokeita voi ladata siirrettäväksi koetilan palvelimelle, ellei vanhan editorin esikatselussa oikeassa marginaalissa näy varoitustekstiä “Kokeen ulkoasu ei vastaa ylioppilaskokeita”

Osallistu Bertta-demoihin

Meiltä on toivottu koulutusta Bertta-editorista. Toivomme Bertan ohjeiden olevan avuksi peruskäytössä. MEX-formaatin hienouksia kuvataan verkosta löytyvästä dokumentista ja vertaistukea voi hakea MEX-formaatin keskustelupalstalta.

Edellisten, jo verkosta löytyvien tukimateriaalien lisäksi järjestämme kaksi etädemoa seuraavina ajankohtina:

  • ke 6.4. klo 15.00-16.00 Ilmoittaudu
  • ma 11.4. klo 15.00-16.00 Ilmoittaudu (peruttu sairastumisen vuoksi)
  • ke 13.4. klo 15.00-16.00 Ilmoittaudu Tallenne

Esittelyistä pyritään julkaisemaan tallenteet. Demona arrangeras på finska men frågor kan ställas naturligtvis även på svenska.

Korjaus kokeen valintaongelmaan julkaistu

Nyt jaossa olevasta koetilan palvelinversiosta SERVER21265 on löytynyt kokelaiden kirjautumisnäkymään vaikuttava ongelma. Virhe ilmenee siten, että valittavasta koelistauksesta puuttuu kokeita.

Virheen ilmeneminen vaatii koepaketin, jossa on sekä suomen- että ruotsinkielisiä MEX-muotoisia kokeita ja näiden lisäksi vanhan MEB-formaatin mukainen koe. Kokeen kieli valitaan oma.abitin tehtävänlaadintasivulla ja sen tarkoitus on vaikuttaa kirjautumisnäkymään. MEB-formaatin mukaisia kokeita syntyy yleensä käytettäessä tehtävänlaadintaa helpottavia selainlisäosia.

Virhettä ei ilmene seuraavissa tapauksissa:

  • Koepaketissa on vain vanhan MEB-formaatin kokeita
  • Koepaketissa on suomenkielisiä MEX-kokeita ja MEB-formaatin kokeita
  • Koepaketissa on ruotsinkielisiä MEX-kokeita ja MEB-formaatin kokeita

Korjaus ongelmaan on asennettavissa lataamalla palvelimelle koe, jonka purkukoodi on “korjaus”. Tämä päivittää virtuaali- tai tikkupalvelimen. Tämän jälkeen palvelimelle voi ladata halutun koepaketin. Korjauksen asentamisen jälkeen MEB-formaatin kokeet näkyvät kirjautumisikkunassa suomenkielisinä kokeina.

Kokeen latauslinkki: https://static.abitti.fi/tuki/exam_korjaus-2021-08-26.mex

Kielivalinta tehtäväeditoriin

Abitin koe-editoriin on lisätty tänään kokeen kielen valinta. Kokeen kieli voi olla joko suomi tai ruotsi. Kokeen laadinnassa tehty kielivalinta määrittelee koesivun vakiotekstien kielen.

Muutos liittyy syksyn ylioppilaskokeessa käyttöön tulevaan helpotettuun kirjautumissivuun. Uudessa yo-kirjautumisessa kokelas valitsee oman lukion opetuskielen, jonka jälkeen näytetään vain nämä kokeet. Uudelleensuunnittelun tavoitteena on vähentää väärien kokeiden valintaa.

Abitista on korjattu kaksi tietoturvahaavoittuvuutta

Abitista on korjattu kaksi vakavaa tietoturva-aukkoa. Ensimmäinen, merkitykseltään vähäisempi haavoittuvuus koskee kokelaan tikkua. Tämä on korjattu versiossa ABITTI2118E. Huomattavasti vakavampi haavoittuvuus koskee palvelintikkua. Tämä haavoittuvuus on korjattu versiossa SERVER21174.

Molemmat haavoittuvuudet ovat olleet kevään 2021 ylioppilaskokeissa käytetyissä tikkuversioissa. Ylioppilastutkintolautakunta ei ole löytänyt merkkejä siitä, että näitä haavoittuvuuksia olisi hyödynnetty kevään kokeissa.

Kokelaan tikun haavoittuvuus

Kokelaan tikusta on löytynyt haavoittuvuus, jonka avulla kokeen suorittaja voi saada pääkäyttäjän oikeudet. Tämä mahdollistaa esimerkiksi palomuurin muokkaamisen ja siten vapaan internetin käytön sekä tietokoneen omalla levyllä olevien aineistojen ja ohjelmien hyödyntämisen. Lisäksi haavoittuvuus helpottaa koetilanteen häiritsemistä.

Haavoittuvuus perustuu siihen, että pääkäyttäjän oikeuksien kontrolloituun käyttöön tarvittavan pkexec-ohjelman määrittelytiedostot olivat jääneet asentamatta tikulle. Tämän seurauksena pkexec-ohjelmalla saattoi ajaa mitä tahansa ohjelmia, kun normaalitilanteessa ohjelman käyttö on rajoitettu esimerkiksi näytön kirkkauden säätöön.

Haavoittuvuus on ollut Abitissa versiosta ABITTI20451 alkaen. Vika johtui siitä, että Debian Buster –versioon siirryttäessä tikun rakentamisessa käytetyissä skripteissä ei ajettu rajoitukset lisääviä koodeja.

Kiitämme yhteydenotosta Tuure Luostoa, joka toi asian tietoomme.

Palvelintikun haavoittuvuus

Palvelintikulta on löytynyt erittäin vakava haavoittuvuus, joka mahdollistaa murtautumisen koeverkosta koetilan palvelimelle ja siellä mielivaltaisten komentojen ja ohjelmakoodin suorittamisen. Hyökkääjä voi esimerkiksi hakea kaikkien kokeisiin osallistuneiden henkilötiedot tai koesuoritukset tai muuttaa niitä.

Tätä mahdollisuutta hyödyntämällä hyökkääjä voi asentaa koetilan palvelimelle päivityspaketin, joka asennetaan kaikkien koeverkkoon liittyvien kokelaiden Abitti-ympäristöön. Tämä kokelaiden tikulle asennettava ohjelmakoodi voidaan ajaa pääkäyttäjän oikeuksin, joten se voisi esimerkiksi pyyhkiä kokelaan tietokoneen oman käyttöjärjestelmän tai asentaa tietokoneelle pysyviä haittaohjelmia.

Haavoittuvuuden hyödyntäminen vaatii sitä, että kokeen suorittajalla on kokelaan koeympäristön pääkäyttäjän oikeudet. Tämänkin jälkeen hyväksikäyttäminen vaatii ennalta runsasta suunnittelua sekä ennakoivaa valmistautumista ja teknistä osaamista. Runsaasta valmistautumisesta huolimatta on todennäköistä, että hyökkääjä jää kiinni jossain vaiheessa hyökkäystä. Hyökkäys on kuitenkin helposti toistettava, mikäli “pohjatyö” on jo kerran tehty. Tarkka selvitys hyväksikäytön mahdollistaneista tietoturva-aukoista löytyy tämän viestin lopusta.

Tämän useita tietoturva-aukkoja yhdistävän hyökkäystavan löysivät Mikael Hannolainen, Ruben Mkrtumyan ja Eemil Sinkko. Heidän yhteydenottonsa lautakuntaan oli poikkeuksellisen ammattimainen ja mahdollisti ongelman nopean korjaamisen. Useita haavoittuvuuksia ketjuttaneen tietoturva-aukon löytäminen osoittaa laaja-alaista tietotekniikan hallintaa ja poikkeuksellista omistautumista tietoturvalle.

Haavoittuvuus tuli tietoomme kevään ylioppilastutkinnon koepäivien aikana. Koska emme halunneet vaarantaa koejärjestelyjä laajalla päivityksellä kesken tutkintoa mutta silti reagoida asiaan mahdollisimman nopeasti, aloitettiin toimenpiteet lisäämällä Abitti-kokeisiin päivityspaketin, joka asensi koetilan palvelimille hyökkäykseltä suojaavan ohjelmakoodin. Ikävä kyllä päivitys ei aivan kaikissa tilanteissa asennu palvelimelle ja siksi kaikki Abitti-palvelimet on päivitettävä.

Vapaaehtoisten ilmoitukset ovat tärkeitä YTL:lle

Abitin kehittäminen alkoi poikkeuksellisissa merkeissä: vuonna 2013 silloinen DigabiOS lanseerattiin Hackabi-hakkerointikisalla. Vuosien varrella meille on tullut useita ilmoituksia erilaisista haavoittuvuuksista. Tyypillinen ilmoittaja on lukioikäinen tietotekniikan tuntija, joka on käyttänyt runsaasti aikaa Abitin tutkimiseen.

Vapaaehtoisten harrastajien ilmoitusten lisäksi tietoturvahaavoittuvuuksia etsivät tietoturva-ammattilaiset. Haavoittuvuuksia etsitään aina, kun avaamme jonkin uuden palvelun tai palveluun tehdään merkittäviä muutoksia. Ammattilaiset hyödyntävät erilaisia skannereita ja työkaluja, jotka tekevät perustutkinnasta tehokasta. Kun tyypilliseen tietoturvakartoitukseen käytetään noin viikko, voi vapaaehtoinen motivoitunut lukiolainen etsiä puutteita kuukausikaupalla. Opiskelijoiden etuna on myös se, että koetilanteen ja lukion konteksti on heille tuttu. Ei ole yllätys, että vielä uransa alkuvaiheessa olevat vapaaehtoiset löytävät puutteita.

Tietoturva-aukkoja ei ole tilastoitu, mutta korjauksiin päätyneistä havainnoista hiukan yli puolet on löytynyt ammattilaisten toimesta ja loput yleisöltä. Ylioppilastutkintolautakunta on sitoutunut julkistamaan kaikki tietoon tulleet tietoturvapoikkeamat kolmen kuukauden kuluessa. Olemme tottuneet vastaanottamaan sekä yksinkertaisia sähköposteja että ammattimaisia hyökkäyskoodin sisältäviä ilmoituksia.

Kiitokset kaikille entisille, nykyisille ja tuleville Abitin tietoturva-aukkojen etsijöille!

YTL:n tietoturva-asiantuntijoiden kuvaus palvelinhaavoittuvuuden mahdollistaneista tietoturva-aukoista

Tarkasteltu tietoturvahavainto koskee kolmea haavoittuvuutta Abitti-järjestelmässä, joita ketjuttamalla saavutetaan root-tason oikeudet koetilan palvelimella.

(Redirect, Server side request forgery (SSRF)) Ensimmäinen haavoittuvuus liittyy koetilan palvelimen suorittamaan NSA-valvontaan, jossa lähetetään valvontakutsu kokeeseen osallistuvan laitteelle. Valvontakutsu vastaanotetaan omalla palvelulla, josta palautetaan koetilan palvelimelle uudelleenohjauspyyntö (307). Uudelleenohjauspyyntö ohjautuu koetilan palvelimen paikalliseen palveluun, joka on paikallisessa osoitteessa 127.0.0.1 portissa 8021. Kyseiseen palveluun ei ole suoraa yhteyttä ulkopuolisilta laitteilta. Palvelimen sisäinen uudelleenohjaus aiheuttaa sen, että ulkopuolelta tullut käsky ajetaan sisäisessä järjestelmässä.

(Command injection) Toinen haavoittuvuus on koetilan palvelimen rajapinnassa, jolla on tarkoitus tallentaa koevastaukset. Kyseiseen järjestelmään ei ole mahdollista ajaa koetilan palvelimen ulkopuolelta käskyjä, mutta uudelleenohjauspyyntö ohjaa kutsun paikallisesti, jolloin kutsu ohjataan haavoittuvaan paikalliseen rajapintaan. Haavoittuvuus kyseisessä rajapinnassa on siinä, että siihen on mahdollista liittää mielivaltaisia komentoja argumentiksi ja rajapinta suorittaa komennot palvelimella.

(Privilege escalation) Kolmas haavoittuvuus liittyy “koetila” -käyttäjän sudo-oikeuksiin. Koetila:lla on oikeus luoda, sekä ajaa sudo-oikeuksilla (pääkäyttäjänä) skripti /tmp/ktp-update-work/ktp-update.sh. Tämä tarkoittaa sitä, että koetila-käyttäjä pystyy korottamaan oikeutensa pääkäyttäjätasolle luomalla oman skriptinsä kyseiseen hakemistoon ja ajamalla skriptinsä sudo /bin/bash /tmp/ktp-update-work/ktp-update.sh komennolla.

Ketjuttamalla kolme haavoittuvuutta hyökkääjä pystyy etänä suorittamaan haitallista koodia koetilan palvelimella (Remote code execution) pääkäyttäjänä.

Saatuaan järjestelmään pääsyn hyökkääjä pystyy ajamaan pääkäyttäjänä koodia koetilan palvelimella sekä tietyissä olosuhteissa myös kokelaiden päätelaiteilla. Tällöin vaarantuu tiedon eheys, luotettavuus ja saatavuus, niin palvelimella kuin kokelaiden järjestelmissä. Kokelaiden päätelaitteilla root-tasoisena koodin ajaminen altistaa myös tietyissä tapauksissa kokelaiden alkuperäisen käyttöjärjestelmän hyökkäyksille tai väärinkäytölle. Mielivaltaisen koodin ajaminen kokelaslaitteilla vaatii sen, että kokelaslaite hakee päivityksen palvelimelta. Kokelaslaite hakee päivityksen palvelimelta kokelaslaitteen käynnistyksen tai uudelleenkäynnistyksen yhteydessä.

Koetilan palvelimen koodissa haavoittuva funktio (Command injection) on ollut vuodesta 2015 lähtien, mutta sen hyödyntäminen SSRF-haavoittuvuuden avulla on ollut mahdollista vasta 1.10.2019 eteenpäin. Haavoittuvuudet ovat paikattu 4/2021.