ITKST53 Ohjelmistoturvallisuus (3 op)

Arvosteluasteikko
0-5
Opetuskieli/-kielet
suomi

Osaamistavoitteet

osaa analysoida injektioita
ymmärtää web sovellusten yleisimmät tietoturvavirheet
ymmärtää työpöytäsovellusten yleisimmät tietoturvavirheet
osaa soveltaa tietoturvallisia ohjelmointitekniikoita

Suoritustavat

Kurssitehtävät + tentti TAI harjoitustyöt

Sisältö

Tällä kurssilla tutustutaan tietoturvaan ohjelmistokehittäjän näkökulmasta. Perehdymme tietoturvan perusasioihin ja perusongelmiin, eli opetellaan tunnistamaan tietoturvaongelmia ohjelmistoissa, havainnollistamaan hyökkäyksiä ja korjaamaan ongelmia. Käsittelemme esimerkiksi injektioita, merkistökoodausasioita, web-sovellusten tietoturvaa ja pohdimme syitä sille, miksi hyvin tunnettuja tietoturvaongelmia esiintyy uudestaan ja uudestaan eri ohjelmissa.

Kurssi jakautuu kahteen osaa, joista ensimmäinen (3op) on perinteinen luentokurssi, sisältäen luennot, harjoitustehtävät ja tentin. Toinen (5op) osa sisältää laajemmat ja käytännönläheisemmät harjoitukset.

Oppimateriaalit

Oppimateriaalit annetaan luennolla. Lisämateriaaliksi suositellaan MIT:n verkkokurssia 6.858.

Arviointiperusteet

Kurssin arvosana määräytyy tentin mukaan (3op vaihtoehto) tai kurssin laajempien harjoitusten mukaan (5op vaihtoehto)

Esitietovaatimukset

Laaja-alainen ohjelmointitaito. Osaat tulkita useimpia ohjelmointikieliä ja muokata esimerkiksi C:llä tai Pythonilla kirjoitettua ohjelmaa. Tiedät miten web-sovellukset toimivat pääpiirteittäin ja osaat työskennellä Linux-ympäristössä eikä komentorivi tai versionhallinta tuota sinulle ongelmaa. Pystyt itsenäisesti opiskelemaan monimutkaistenkin ohjelmien käytön (esim. gdb, strace, kvm, virtualbox). Ymmärrät käyttäjärjestelmien perusteet ja tiedät vähintään nimeltä matalan tason ohjelmoinnin asiat kuten mikä on pino, rekisteri tai puskuri. Tunnet myös verkkoprotokollat pääpiirteittäin.

Osaat lisäksi lukea tieteellisiä artikkeleita englannin kielellä ja matemaattinen yleissivistyksesi kattaa vähintään logiikan perusteet (→,∧,∨,⊢, jne).