•   Sovellusten hakkerointi ja haavoittuvuudet ICI012AS3A-3002 18.08.2025-10.10.2025  5   (CONTACT, ...) +-
    Osaamistavoitteet
    Opi tunnistamaan ja korjaamaan haavoittuvuuksia ohjelmissa.

    Kurssin käytyään opiskelija osaa
    - Etsiä yksinkertaisia haavoittuvuuksia sovelluksista
    - Korjata yksinkertaisia haavoittuvuuksia lähdekoodista
    - Tutkia alustavasti tuntemattoman ohjelman toimintaa, myös ilman lähdekoodia

    Kurssin käytyään opiskelijalla on käsitys sovellusten tietoturvan suhteesta uhkamalliin ja standardien hyödyntämisestä sovellusten tietoturvan kehittämisessä.
    Lähtötaso ja sidonnaisuudet muihin opintojaksoihin
    Kurssin alkaessa tulee osata

    - Ohjelmoinnin perusteet
    - Linuxin alkeet
    - Linuxin asennus virtuaalikoneeseen omalle läppärille

    Millä tahansa tavalla hankitut esitiedot kelpaavat. Tiedot on voinut hankkia esimerkiksi kursseilla "Linux palvelimet" tai "Ohjelmointi 1", mutta itse opeteltu sopii myös.

    Esitiedot tarkistetaan tarvittaessa kyselyllä, ja kurssille valittavat voidaan tarvittaessa valita alkutestin perusteella.

    Jos osaat aiheet jo, kertauspakettia ei tarvitse lukea. Lähtötasosta löytyy kertauspaketti https://terokarvinen.com/application-hacking/#kertauspaketti
    Sisältö
    - Standardit ja kehykset.
    - Weppiin tunkeutuminen ja sovelluksen korjaaminen.
    - Staattinen analyysi.
    - Dynaaminen analyysi.
    - Sulautetut järjestelmät.
    - Salakirjoitus.
    - Lipunryöstö
    Arviointikriteerit
    Arviointikriteeri - arvosana 1
    Pystyy mekaanisesti käyttämään yksinkertaisia sovellusten tutkimis- ja tunkeutumismenetelmiä helpossa kontekstissa.

    Pystyy paikkaamaan haavoittuvuuksia helpoista ja lyhyistä koodeista käyttämällä tunnettujen tunkeutumistapojen tavallisia korjaustapoja sellaisenaan, kun kielet ovat tuttuja.

    Osallistunut aktiivisesti opetukseen. Palauttanut kaikki pakolliset kotitehtävät.
    Arviointikriteeri - arvosana 3
    Pystyy soveltamaan tunkeutumis- ja tutkimusmenetelmiä uusiin tapauksiin. Pystyy suppeasti soveltamaan haavojen paikkausmenetelmiä.

    Pystyy osin toimimaan myös tuttujen ympäristöjen ja kielten ulkopuolella.

    Täyttää kaikkien alempien arvosanojen kriteerit.
    Arviointikriteeri - arvosana 5
    Pystyy tutkimaan sovelluksia ja tunnistamaan haavoittuvuuksia. Pystyy soveltamaan opittuja tekniikoita ja opettelemaan itsenäisesti uusia.

    Pystyy arvioimaan haavoittuvuuksien merkitystä tietoturvalle laajemmin.
    Lisätiedot
    Kurssin suunnittelussa on hyödynnetty palautetta kursseilta Tunkeutumistestaus ja valituilta ohjelmointikursseilta, kuten "Python weppipalvelu - ideasta tuotantoon". Noilla kummallakin kurssilla parhaan toteutuksen palaute on 5.0 /5, jokainen osallistuja jätti palautetta ja jokainen oli 5. Vanhojen kurssien palautteeseen voi perehtyä http://TeroKarvinen.com.

    Opintojaksojen contact-, online ja blended-toteutuksilla edellytämme läsnäoloa lukujärjestykseen merkityillä opetuskerroilla. Jos olet poissa opetuskerroilta yli 25 % arvosanasi laskee yhdellä numerolla. Jos olet poissa opetuskerroilta yli 50 %, opintojakso hylätään.

    Koska kurssilla opetellaan tunkeutumistekniikoita, osallistuminen edellyttää kurssin sääntöjen hyväksymistä.

    Opetusmenetelmät ja ohjaus

    Lähiopetus kerran viikossa, omat läppärit mukaan.

    Joka viikko kotitehtäviä, joissa voi olla mukana ohjelmointia ja teknisesti haastavia ohjelmien analyysitehtäviä. Analyyseista palautetaan täsmällinen kirjallinen raportti. Raporteista laaditaan ristiinarviointi.

    Kurssi edellyttää aktiivista osallistumista opetukseen ja kaikkien pakollisten kotitehtävien palauttamista viikottain. Koska kurssilla opetetaan tunkeutumismenetelmiä käytännössä, osallistuminen edellyttää kurssin sääntöjen hyväksymistä.

    Opit käytännössä ohjelmien tutkimista ja haavoittuvuuksien etsimistä. Tututstut joihinkin alan johtaviin työkaluihin, aina strings:istä NSA:n Ghidraan.

    Vanhojen toteutusten aikatauluja, läksyjä ja palautteita löytyy kurssin sivulta https://terokarvinen.com/application-hacking/

    Oppimateriaali ja suositeltava kirjallisuus

    Kurssin aikana jaettava ja linkitetty materiaali sisältää sovellusten virallisia oppaita, kolmannen osapuolen tekemiä ohjeita ja muita verkkomateriaaleja. Luettavat alueet kirjoista pyritään valitsemaan mahdolisuuksien mukaan niin, että ne ovat luettavissa Haaga-Helian kirjaston kautta opiskelijatunnuksilla.

    (Macintoshin käyttäjille: Apple Macintosh M1, M2, M3... ei sovi kurssin käyttöön, sillä se käyttää arm64-arkkitehtuuria. Kurssille kannattaa ottaa tavallinen PC-läppäri, koska monet harjoituksissa käytettävät sovellukset ja virtuaalikoneet on saatavissa vain tavallisimmalla amd64-arkkitehtuurilla. Käyttöjärjestelmäsi voi olla esimerkiksi Linux tai Windows, kunhan prosessorin arkkitehtuuri on se tavallisin amd64.)

    Työelämäyhteydet

    Kannustetaan materiaalin julkaisuun myös kurssin käytänteillä. Osoitetaan mahdollisuus oman harrastuneisuuden puitteissa osallistua tietoturvaskenen tapahtumiin ja lipunryöstöihin.

    Toimipiste

    Pasilan toimipiste

    Tenttien ajankohdat ja uusintamahdollisuudet

    Ei tenttiä.

    Opetuskieli

    Suomi

    Kansainvälisyys

    Käytetään kansainvälistä materiaalia ja sovelluksia. Mahdollisuus julkaista kurssin raportit suuren yleisön saataville Internetiin.

    Ajoitus

    18.08.2025 - 10.10.2025

    Oppimistehtävät

    - Aktiivinen osallistuminen oppitunteihin - Tuntitehtävät - Läksyt viikottain, voivat sisältää ohjelmointia. Analyysitehtävistä yksityiskohtaiset, toistettavat raportit. - Raporttien ristiinarviointi

    Ilmoittautumisaika

    14.05.2025 - 22.05.2025

    Aikataulu

    - Johdanto. Järjestäytyminen. Standardit ja kehykset.
    - Murtautuminen ja haavoittuvuuden korjaaminen lähdekoodista, esimerkkinä weppisolvellukset.
    - Staattinen analyysi. Ghidra. Srings, file...
    - Dynaaminen analyysi. Debuggerit ja gdb.
    - Sulautetut järjestelmät.
    - Salakirjoitus.
    - Lipunryöstö

    Aikataulu on alustava ja muuttuu kurssin aikana.

    Ryhmä
    • CONTACT
    • ITB5PASOF1
    • BLENDED
    • IT4PAICI1
    • IT5PASOF1
    • ITB4PAICI1
    Toteutuksen valinnaiset oppimistavat

    Opiskelijan halutessa suorittaa opintojakso AHOT-menettelyä käyttäen, tulee opiskelijan ilmoittautua normaalisti opintojaksolle ja ottaa kurssin alkaessa yhteyttä opintojakson opettajaan AHOT-menettelyn käynnistämiseksi. AHOT edellyttää nimenomaan kurssi- ja toteutuskuvauksessa mainittujen taitojen osaamista ennestään esimerkiksi työn ja harrastusten kautta.

    Opettaja

    Tero Karvinen, Lari Iso-Anttila

    Paikkoja

    15 - 30

    Arviointitavat

    - Akttivinen osallistuminen oppitunteihin
    - Läksyt ja ristiinarviointi
    - Lipunryöstö

    Koulutus

    TRATI Tradenomi tietojenkäsittely

    T&K-osuus

    0.00 op

    Virtuaaliosuus

    2.50 op

    Arviointiasteikko

    H-5