ITKST53 Ohjelmistoturvallisuus (3 op)
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).