5

ECTS

30 sati

Predavanja

Team member six

Dizajn sigurnih programskih proizvoda

Status predmeta: Izborni

Saznajte više o predmetu:
Ciljevi predmeta:

Cilj predmeta Dizajn sigurnih programskih proizvoda je upoznati studente sa ključnim aspektima dizajna arhitekture i strukture sigurnog softvera i mobilnih programskih proizvoda te upravljanjem sigurnošću u procesu razvoja. Predmet uključuje prikaz najboljih praksi inženjerstva sigurnih sustava (softvera, mobilnih aplikacija) kroz sve faze razvoja programskog proizvoda s posebnim naglaskom na fazu dizajna. Kroz kurikulum su pokriveni aspekti sigurnosti koje odnose na sigurnost pojedinih podsustava, ali i njihove integracije i komunikacije te sustava u cjelini.

Ishodi učenja:

Na razini programa:

  1. Primijeniti iskustva dobre prakse prilikom uspostave sustava informacijske sigurnosti u poslovnom/informacijskom sustavu.
  2. Analizirati, preporučiti i odabrati sigurnosne zahtjeve prilikom dizajna, razvoja i uspostave sustava informacijske sigurnosti.
  3. Primijeniti metodologije procjene i umanjivanja sigurnosnih rizika, te postupke upravljanja rizicima u kontekstu informacijske
  4. sigurnosti.
  5. Analizirati i procijeniti utjecaj različitih čimbenika (tehničkih, organizacijskih, ljudskih, zakonskih) na sigurnosne rizike.
  6. Analizirati, procijeniti i unaprijediti odgovarajuća tehnološka rješenja u uspostavi sustava informacijske sigurnosti.
  7. Analizirati, razviti, primijeniti i vrednovati metode i načine zaštite resursa informacijskog sustava s ciljem sprečavanja narušavanja njegova integriteta, detekcije neovlaštenih aktivnosti i napada, te uspostave odgovarajućih zaštitnih mjera.

Na razini predmeta:

  1. Analizirati i prepoznati potencijalne prijetnje sigurnosti programskog proizvoda
  2. Ugraditi i primijeniti aspekte razvoja informacijske sigurnosti u procesu razvoja programskih proizvoda
  3. Izgraditi arhitekturu i dizajn programskog proizvoda s ugrađenim elementima sigurnosti
  4. Prepoznati, razumjeti i ukloniti sigurnosne prijetnje pri dizajnu i razvoju aplikacija za mobilne platforme
  5. Definirati proces testiranja i analize sigurnosti mobilnih programskih proizvoda
Sadržaj predmeta:

1.    Sigurnost programskih proizvoda
Aspekti sigurnosti programskih proizvoda. Aspekti sigurnosti u praksama programskog inženjerstva. Proaktivan pristup sigurnom razvoju programskih proizvoda. Životni ciklus razvoja sigurnih programskih proizvoda. Modeli zrelosti sigurnosti softvera. Aplikacijska sigurnost. Alati aplikacijske sigurnosti. Ranjivosti softvera.

2.    Integracija sigurnosti u životni ciklus proizvoda
Osnove DevSecOps principa: definiranje ovlasti i odgovornosti u postupku razvoja, puštanja u pogon, održavanja i povlačenja aplikacija i određivanje ovlasti za pristup produkcijskim podacima. Organizacija sigurnog razvoja programskih proizvoda: recenziranje koda, programiranje u paru, automatizirano testiranje prije implementacije, norme za sigurni razvoj i testiranje, norme za verifikaciju razine sigurnosti.

3.    Arhitektura sigurnih proizvoda
Koncepti sigurnosti u dizajnu arhitekture programskih i mobilnih proizvoda. Identifikacija sigurnosnih rizika i ranjivosti softvera na arhitekturnoj razini. Sigurne aplikacijske arhitekture. Sigurne distribuirane arhitekture. Arhitektura otvorenog softvera. Najbolje prakse u dizajnu arhitekture programskih proizvoda i mobilnih aplikacija.

4.    Principi dizajna sigurnih proizvoda
Koncepti dizajna sigurnih sustava: slojevi, apstrakcija, domene sigurnosti, otvoreni i zatvoreni sustavi. Enkapsulacija. Validacija podataka. Validacija ulaznih podataka. Enkripcija izlaznih podataka. Upravljanje iznimkama i logovima. Dobre prakse dizajna sigurnih programskih proizvoda i mobilnih aplikacija.

5.    Dizajn i razvoj sigurnih mobilnih aplikacija
Specifičnosti razvoja mobilnih programskih proizvoda. Sigurnosni aspekti u razvoju mobilnih aplikacija. Sigurnosni aspekti mobilnih aplikacijskih arhitektura i upravljanja podacima. Prakse dizajna i razvoja sigurnih mobilnih aplikacija. 

6.    Dizajn i razvoj sigurnih više-platformskih sustava
Sigurnost više-platformskih sustava. Sigurnosni aspekti u razvoju više-platformskih aplikacija. Sigurnosni aspekti više-platformskih aplikacijskih arhitektura i upravljanja podacima. Prakse dizajna i razvoja sigurnih više-platformskih sustava.

7.    Sigurnosni aspekti aplikacija za Android
Android operacijski sustav. Osnovni koncepti razvoja android aplikacija. Arhitektura android aplikacija. Aktivnosti, fragmenti, pozadinski servisi. Sigurnosni rizici android aplikacija. Prakse zaštite sigurnosti kod razvoja za Android. Biblioteke trećih strana.

8.    Sigurnosni aspekti aplikacija za iOS
Operacijski sustav iOS. Osnovni koncepti razvoja aplikacija za iOS. Arhitektura iOS aplikacija. Core OS, Core Services Layer, Media Layer, Cocoa Touch Layer. Sigurnosni rizici iOS aplikacija. Prakse zaštite sigurnosti kod razvoja za iOS. Biblioteke trećih strana.

9.    Integracija sigurnih sustava
Sigurnosni aspekti točaka integracije podsustava u cjelovito rješenje. Integracijski koncepti. Tipovi integracije. Analiza i uklanjanje sigurnosnih rizika.

10.    Testiranje i analiza sigurnosti
Priprema podataka za testiranje: generiranje podataka, anonimizacija, maskiranje. Prakse osiguranje kvalitete. Automatizirano testiranje. Kontinuirana sigurnost. Sigurnost vođena testiranjem. Testiranje u kontekstu DevSecOps-a.