Opiskelijan koneen tutkiminen

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

Opiskelijan koneen rakennetta on helppo tutkia ja samalla oppia ymmärtämään se, miten Abitti-järjestelmä toimii. Tällä sivulla annetaan ohjeet tutkimisen aloittamiseen ja kerrotaan lyhyesti opiskelijan koneen rakenteesta. Korostamme, että opiskelijan koneen rakenteen tutkimisessa ei ole mitään lain tai edes hyvän tavan vastaista.

## Alkutoimenpiteet

Seuraavilla toimenpiteillä saat tehtyä ympäristön koetilan palvelimen tutkimiseen:

* Lataa verkosta AbittiUSB-ohjelmalla opiskelijan tikun levykuva ja tee tästä USB muistitikku.AbittiUsb-ohjelma toimii Windows-käyttöjärjestelmässä.
* Tarvitset tutkimisessa Linux-käyttöjärjestelmää, asenna joku Linux-paketti koneelleesi, vaikkapa olemassa olevan käyttöjärjestelmän rinnalle. Jos et halua asentaa Linux-käyttöjärjestelmää koneellesi, voit tehdä kaiken tämän myös USB-muistilta käynnistetyltä Linuxilta.
* Linux-käyttöjärjestelmää käyttäen muokkaa tietokoneen kovalevyn partitiota siten, että teet kiintolevyllesi uuden ext4-tyyppiä olevan levyosion (partition) nimeltään *persistence*, osion koko 4GB. Tämä osion teko onnistuu esim *gparted*-työkalulla. Vaihtoehtoisesti persistence-partiton voi tehdä opiskelijan koneen USB-muistitikun vapaana olevaan muistialueeseen, tällöin on kuitenkin huomioitava, että persistence-partitio sisältöineen tuhoutuu aina, kun tikku kirjoitetaan uudelleen AbittiUSB-ohjelmalla.
* Laita muistitikku kiinni koneeseesi ja tee uusi tiedosto *persistence.conf*-tiedosto juuri luomasi uuden *persistence*-partition juureen seuraavasti:

**/persistence.conf**

```
/etc union
/home union
/var union

```

* Uudelleenkäynnistä koneesi ja käynnistä tikulla oleva opiskelijan ohjelmisto YTL:n ohjeiden mukaan.
* Heti käynnistymisen jälkeen sammuta tietokone normaalisti. Sinun ei tarvitse hyväksyä käyttöehtoja, ladata koetetäviä tai tehdä mitään muuta.

Käynnistyksen aikana opiskelijan ohjelmisto kirjoitti paljon tiedostoja persistence-osioon, ja näitä tiedostoja tutkimme seuraavaksi.

## Administraattorin oikeudet

Seuraavilla toimenpiteillä saat administraattorin oikeudet koetilan palvelimelle

* Käynnistä Linux ja editoi alkutoimenpiteissä luomallesi persistence-partitiolle ilmestyneeseen etc/password-tiedostoon uusi admistraattoritunnus.

**Administraattorin lisääminen**

```
echo "new\_root::0:0:root:/root:/bin/bash" >> etc/passwd

```

* Nyt voit käynnistää koneen uudelleen tikulla olevaan koetilan palvelimen ohjelmistoon YTL:n ohjeiden mukaan.
* Pääset administraattoriksi painamalla Alt·Ctrl·F1 ja kirjautumalla sisään new\_root-tunnuksella.

Nyt voitkin tutustua tarkemmin kaikkeen siihen, mitä koetilan palvelimella tapahtuu.

## Muistitikun levypartitiot

Palvelintikulla on kolme levyosiota, seuraavassa on kerrottu kustakin levyosiosta tarkemmin

### EFI

Tätä levyosiota käytetään koneen käynnistyksen yhteydessä, levyosio sisältää GRUB2-ohjelman ja sen konfigurointitiedostot. GRUB2-ohjelma ladataan ensimmäisenä tietokoneen muistiin käynnistyksessä ja GRUB2 huolehtii koetilanteessa käytettävän DigabiOS-käyttöjärjestelmän lataamisesta, alustamisesta ja käynnistämisestä.

Olennainen tiedosto tässä osiossa on *grub/grub.cfg*, tiedoston ohjeiden mukaan näkyy että DigabiOS-käyttöjärjestelmä käynnistetään erilaisissa ympäristöissä. Muokkaamalla käynnistysparametreihin mukaan optio "persistence" saadaan käynnistettävä DigabiOS tallettamaan kaikki tiedostomuutokset persistence-osiossa (muista myös persistence.conf-tiedosto persistence-osiossa).

### ABITTI1536X

Huom: Levyosion nimi vaihtuu DigabiOS-käyttöjärjestemän version mukaan, nimen loppuosan numeroyhdistelmä kertoo käyttöjärjestelmän version.

Olennaisin levyosion sisältö on DigabiOS-käyttöjärjestelmän ydin (*vmlinuz*), käyttöjärjestelmän alustuksessa tarvittava levykuva (*initrd.img*) ja varsinainen levykuva (*filesystems.squashfs*). Lisäksi tässä levyosiossa on eri käynnistysmenetelmillä tarvittavia aputiedostoja.

Mielenkiintoisin tutkittava on tiedosto "*live/filesystems.squashfs*". Tämä kannattaa kopioida omalle koneelle ja purkaa *unsquashfs*-komennolla: "*sudo unsquasfs filesystems.squashfs*". Puretusta levykuvasta voit tutkia kaikkia DigabiOS:n tiedostoja.

### DAT452CBDF

Tämä osio otetaan järjestelmäkäynnistyksen yhteydessä käyttöön ja liitetään /var/lib/digabi-koe/digabi\_data hakemistoksi. Liittäminen tapahtuu ajettaessa käynnistyskomento *service digabi-koe start* (tiedosto /etc/rc?.d/S01digabi-koe).

## digabi-koe

DIiabit-koe on ylioppilaslautakunnan tekemä järjestelmä, joka keskustelee koetilan palvelimella olevan ktpjs-ohjelmiston kanssa, katso tarkemmin Koetilan palvelimen tutkiminen-sivulta. Alussa opiskelija kirjautuu kokeeseen tämän järjestelmän välityksellä, jonka jälkeen koekysymykset tuodaan koetilan palvelimelta opiskelijalle. Opiskelijan vastaukset tallennetaan koetilan palvelimelle tämän järjestelmän kautta.

Järjestelmä on toteutettu javascript-kielellä ja se käyttää json-määritteitä kommunikoinnissa. Järjestelmä muodostaa kunkin opiskelijan koneelle oman www-palvelimen, jota opiskelija käyttää nettiselaimen avulla. Kommunikointi koetilan palvelimen ja opiskelijan koneen välillä on https-salattua.

### Käynnistyskomento

Opiskelijan koneen koepalvelin käynnistetään komennolla "*service digabi-koe start*".

Palvelinohjelmat sijaitsevat kansion */var/lib/digabi-koe* alaisuudessa. Javascript-koodia on helppo muokata omien tarpeiden mukaan.

KESKEN

## Lokitusjärjestelmä

Lokitusjärjestelmällä kerätään opiskelijoiden koneiden systeemilokeista mielenkiintoiset asiat ja lähetetään nämä edelleen koetilan palvelimelle tallennettaviksi. Lokitusjärjestelmä muodostuu kahdesta osasta, ensin paikalliset järjestelmät tallettavat lokitiedot /var/log-hakemistoon ja sitten toisessa vaiheessa rsyslogd-palvelin lukee uudet lokiviestit tästä kansiosta ja lähettää viestit koetilan palvelimelle.

### Rsyslog

Rsyslog on järjestelmä, joka lähettää määriteltyjä lokiviestejä lähiverkon yli toiselle koneelle

DigabiOS:ssa tiedosto */etc/rsyslog.d/digabi.conf* määrittelee, mitä tietoja lähetetään koetilan palvelimelle. Tällä hetkellä rsyslogd seuraa kahta tiedostoa, /var/log/digabi-koe.log ja /var/log/digabi-koe.err, ja lähettää näihin kirjoitetut rivit koetilan palvelimelle.

Lokien lähettäminen voidaan estää muuttamalla konfiguraatiotiedostoja tai samuttamalla rsyslogd-palvelin. Väärennetyn lokitiedon lähettäminen palvelimelle on erittäin yksinkertaista...

## Verkon nopeusrajoitus

Palvelunestohyökkäyksien estämiseksi YTL on tehnyt opiskelijan koneelle lähtevään verkkoliikenteeseen nopeusrajoituksen. Tämän nopeusrajoituksen asettava koodi löytyy tiedostosta /usr/local/bin/digabi-force-network.