Siirry suoraan sisältöön

Projekti 4 - Ohjelmistojen kyberturva (5 op)

Toteutuksen tunnus: TT00CG68-3001

Toteutuksen perustiedot


Ilmoittautumisaika
30.12.2024 - 26.01.2025
Ilmoittautuminen toteutukselle on päättynyt.
Ajoitus
01.01.2025 - 31.07.2025
Toteutus on käynnissä.
Opintopistemäärä
5 op
Lähiosuus
5 op
Toteutustapa
Lähiopetus
Yksikkö
Teknologia
Opetuskielet
suomi
Koulutus
Tieto- ja viestintätekniikan koulutus
Opettajat
Eero Huusko
Mikko Romppainen
Ryhmät
TTV23SRAA
TTV23SRAA
Opintojakso
TT00CG68

Toteutuksella on 18 opetustapahtumaa joiden yhteenlaskettu kesto on 143 t 0 min.

Aika Aihe Tila
To 20.03.2025 klo 09:00 - 16:00
(7 t 0 min)
Lähiopetus Raahessa Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 21.03.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 27.03.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 28.03.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 03.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 04.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 10.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 11.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 17.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 24.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 25.04.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 02.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 08.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 09.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 15.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 16.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
To 22.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Pe 23.05.2025 klo 08:00 - 16:00
(8 t 0 min)
Etäopetus Kajaanista_Projekti 4 - Ohjelmistojen kyberturva TT00CG68-3001
Raahe_Sira 3_ATK
Muutokset varauksiin voivat olla mahdollisia.

Tavoitteet

Kurssin päätteeksi opiskelija tunnistaa nimeltä yleisimmät tietoturvaongelmat, sekä osaa kertoa keinoja, joilla nämä ongelmat voidaan korjata tai niiden syntyminen voidaan estää. Opiskelija pystyy tunnistamaan yksinkertaisesta lähdekoodista potentiaalisia tietoturvaongelmia, havainnollistaa niiden toiminnan käytännössä, sekä korjata ne. Opiskelija osaa toteuttaa DecSecOps -prosessimallin mukaisen testauksen. Opiskelija osaa testata ohjelmakoodin sisältämät avoimen lähdekoodin riippuvuudet ja niihin mahdollisesti sisältyvät haavoittuvuudet.

Oppimistavoitteet:
• Ymmärtää, miten DevSecOps voidaan integroida ohjelmistokehitysprosessiin.
• Harjoitella GitLabin CI/CD-pipelinejen rakentamista ja optimointia.
• Oppia tietoturvatyökalujen, kuten SAST-, DAST-, ja konttiskannausten, käyttämistä osana projektia.
• Kehittää ongelmanratkaisu- ja automaatio-osaamista käytännön harjoitusten kautta.

Sisältö

Tarkat kurssin aihealueet vaihtelevat vuosittaisten kyberturvallisuuteen kohdistuvien tarpeiden mukaan, mutta käymme läpi tämänkaltaisia aiheita:

Projektin tarkoitus:
Tavoitteena on luoda GitLab-projekti, jossa harjoitellaan DevSecOps-periaatteita seuraavilla osa-alueilla:
1. Automaatiotyökalut ja CI/CD-putket: Kehitetään ja otetaan käyttöön CI/CD-pipeline, joka sisältää sekä kehityksen että tietoturvan tarkistukset.
2. Koodin tietoturva: Käytetään staattisen koodin analysointityökaluja (SAST) ja riippuvuuksien hallintaa (Dependency Scanning) tietoturvariskien tunnistamiseksi.
3. Docker-konttien tietoturva: Rakennetaan ja skannataan Docker-kontteja tietoturvaongelmien varalta.
4. Ylläpito ja monitorointi: Käytetään GitLabin monitorointi- ja auditointityökaluja turvallisuuden ja toiminnan valvontaan.

Aika ja paikka

Kajaanin amk:n luokkatilat ja Teams. Projektille varattu torstait ja perjantait 4. periodilla.

Oppimateriaalit

Ilmoitetaan kurssin alkaessa, kurssin opetusmateriaaleina käytetään toteutusajankohdan osaamisvaatimuksia tukevia materiaaleja.

Opetusmenetelmät

Luokka ja Teams-opetus, itsenäinen projektityöskentely.

Opiskelijan ajankäyttö ja kuormitus

Kurssin laajuus 5 op.

Sisällön jaksotus

Projektin rakenne ja projektityön jaksotus
1. Projektin pystyttäminen:
• Luo uusi GitLab-projekti.
• Määritä projektin hakemistorakenne (esim. src/, tests/, docs/).
• Ota käyttöön GitLab CI/CD ja määritä peruspipeline .gitlab-ci.yml-tiedostolla.
2. Kehitysvaiheet:
• Koodin analysointi: Lisää SAST-työkaluja pipelineen (esim. GitLabin sisäänrakennettu SAST tai muita avoimen lähdekoodin vaihtoehtoja, kuten SonarQube).
• Riippuvuuksien hallinta: Lisää Dependency Scanning -työkalu CI/CD-pipelineen.
• Konttien skannaus: Luo Dockerfile, rakenna kontti ja lisää Container Scanning pipelineen.
• Dynaaminen analyysi (DAST): Lisää työkaluja sovelluksen dynaamiseen tietoturvatestaukseen (esim. OWASP ZAP).
3. Automaatiot ja integraatiot:
• Automatisoi testit, tietoturvatarkastukset ja konttien luominen.
• Käytä GitLabin Issue Boardia ja Merge Request -prosesseja koodin tarkistamiseen ja dokumentointiin.
4. Monitorointi ja palautteen kerääminen:
• Määritä GitLab Audit Events -ominaisuus projektin tapahtumien seuraamiseksi.
• Käytä GitLabin monitorointityökaluja, kuten Prometheus-integraatiota, projektin tilan valvontaan.
5. Dokumentaatio ja oppimisen reflektointi:
• Luo README.md, joka dokumentoi projektin tavoitteet, pipelinejen rakenteen ja käytetyt työkalut.
• Kirjoita oppimispäiväkirja havaintojen ja haasteiden dokumentoimiseksi.

Arviointiasteikko

0 - 5

Arviointikriteerit, kiitettävä (5)

Kurssi arvioidaan tentin sekä kurssitehtävien laadun ja ajoissa palautettujen harjoitustehtävien mukaan. Mikäli suoritus perustuu harjoitustyöhön, arviointi tehdään sen perusteella.
Arvosanaan vaikuttaa myös tehtävien palautus ajoissa ja muut erityiset näytöt esimerkiksi yrityslähtöisessä harjoitustyössä.

Arvosana 5 annetaan opiskelijoille, joilla on yksityiskohtainen ymmärrys kurssilla esitellyistä tietoturvaongelmista ja jotka ovat käytännön ongelmissa ja ohjelmiston tietoturvatestauksesta suoriutuneet erinomaisesti.

Arviointikriteerit, hyvä (3)

Arvosana 3 tai 4 annetaan opiskelijoille, jotka ymmärtävät kurssilla esitellyt tietoturvaongelmat sillä tasolla, että kykenevät käytännössä korjaamaan niistä ainakin yksinkertaisimmat haavoittuvuudet ja osaavat esimerkkien avulla suorittaa CI/CD pipeline testauksen.

Arviointikriteerit, tyydyttävä (1)

Arvosana 1 tai 2 annetaan opiskelijoille, jotka lähinnä tunnistavat nimeltä kurssilla käsitellyt tietoturvaongelmat ja osaavat yleisellä tasolla kertoa, miten niiltä suojaudutaan. Lisäksi vaaditaan näyttöä edes vähäisestä asioiden käytäntöön viemisestä

Arviointikriteeri, hyväksytty/hylätty

Kurssin harjoitustehtävien tekemättä jättäminen, hylätty tenttitulos.

Arviointimenetelmät ja arvioinnin perusteet

Kurssi arvioidaan projekityön ja oppimispäiväkirjan perusteella asteikolla 0 - 5

Esitietovaatimukset

Osallistujan täytyy osata ohjelmoida C - , C# - ja Python ohjelmointikielillä ja osata lukea akateemista, englanninkielistä tekstiä.Käyttöjärjestelmien ja verkkoliikenteen osaaminen on ehdoton edellytys.

Siirry alkuun