
Pisanje sigurnog koda
- Predavanje 15
- Vježbe 30
- Samostalni rad 105
Naziv predmeta
Pisanje sigurnog koda
Oznaka predmeta
22-02-540
Semestar
2
ECTS
5
Nastavnici i suradnici
Sadržaj i cilj
Ovaj modul upoznaje studente s uobičajenim sigurnosnim slabim točkama i problemima te ih uči kako pisati sigurni kod koji minimalizira moguće vektore napada.
Ovaj je modul namijenjen studentima koji već znaju pisati kod i zainteresirani su za učenje o sigurnosnim izazovima i kako ih ublažiti pisanjem sigurnijeg koda. Vještine stečene na ovom modulu značajno će doprinijeti razvoju studenta kao profesionalca u odgovarajućim područjima.
Stdenti će naučiti:
• O sigurnosnim slabim točkama i sigurnosnim prijetnjama.
• Kako izvršiti statičku analizu koda s trenutnim alatima kako bi se otkrili problemi.
• Kako osigurati komunikaciju između klijenta i poslužitelja web aplikacija.
• O tehnikama prevencije napada ubacivanjem.
• O zaštitnim mjerama za sprečavanje potencijalnih napada koji proizlaze iz nesigurne deserializacije.
• O metodama provjere autentičnosti korisnika kako bi se spriječio neovlašten pristup povjerljivim podacima.
Modul se predaje na programskom jeziku Java. Provjera znanja modula temelji se na rješavanju niza manjih praktičnih zadataka i na pojedinačnim studentskim projektima. U tim projektima studenti moraju stvoriti sigurne aplikacije prema zadanim specifikacijama.
Literatura
Obvezna literatura:
1. Long, F. et al (2013) Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs. 1st edn. Boston: Addison-Wesley Professional.
Preporučena literatura:
1. Long, F. et al (2011) CERT Oracle Secure Coding Standard for Java. 1st edn. Boston: Addison-Wesley Professional.
Minimalni ishodi učenja
- Analizirati sigurnosne slabe točke i prijetnje postojećim softverskim rješenjima pomoću određenih alata.
- Koristiti alat za analizu statičkog koda za otkrivanje problema i generiranje izvješća o tim problemima.
- Provesti zaštitu komunikacije između klijenta i poslužitelja web aplikacija pomoću standardiziranih tokena.
- Koristiti tehnike sprječavanja napada ubacivanjem kako bi se proveli zaštitni mehanizmi u web aplikaciji u svrhu spriječavanja ove vrste napada.
- Primijeniti zaštitne mjere za sprečavanje potencijalnih napada koji proizlaze iz nesigurne deserializacije.
- Koristiti najbolje prakse za primjenu provjere autentičnosti korisnika kako bi se spriječio neovlašteni pristup povjerljivim podacima.
Željeni ishodi učenja
- Analizirati sigurnosne slabe točke i prijetnje postojećim klijent-poslužitelj softverskim rješenjima pomoću određenih alata.
- Koristiti alat za analizu statičkog koda za otkrivanje problema, generiranje izvješća o tim problemima i predlaganje tijeka radnji.
- Provesti zaštitu komunikacije između klijenta i poslužitelja web aplikacija pomoću standardiziranih tokena, uključujući osvježavanje tokena.
- Detektirati potrebu i upotrijebiti tehnike sprječavanja napada ubacivanjem kako bi se proveli zaštitni mehanizmi u web aplikaciji u svrhu spriječavanja ove vrste napada.
- Detektirati potrebu i primijeniti zaštitne mjere za sprečavanje potencijalnih napada koji proizlaze iz nesigurne deserializacije.
- Koristiti najbolje prakse za primjenu autorizacije korisnika kako bi se spriječio neovlašteni pristup povjerljivim podacima.