Cilj predmeta je upoznati studente sa sigurnošću te dati pregled problema u području računalne sigurnosti i načina na koji se ti problemi pokušavaju riješiti, odnosno ublažiti. Cilj je također da studenti usvoje način razmišljanja koji će im omogućiti da u svom profesionalnom radu stvaraju sigurnije sustave.
Repozitorij sadrži laboratorijske vježbe koje su se izvodile na predmetu u akademskoj godini 2023./2024.
Laboratorijske vježbe pisane su u programskom jeziku Java
. Na kolegiju "Sigurnost računalnih sustava" u akademskoj godini 2023./2024.
postojale su četiri laboratorijske vježbe čija su rješenja dostupna u repozitoriju. Laboratorijske vježbe provjeravale su se pred ispitivačima uz dodatna pojašnjenja rada koda te gradiva samog predmeta.
Prva laboratorijska vježba odnosi se na simetričnu kriptografiju. Potrebno je napraviti alat koji omogućava korisniku inicijalizaciju alata u smislu stvaranja prazne baze zaporki, pohranu para adresa, zaporka koju je potrebno zamijeniti sa zadanom u slučaju da je već pohranjena zaporka pod istom adresom te dohvaćanje pohranjene zaporke za zadanu adresu. Alat je potrebno ostvariti da radi iz komandne linije, a podatke se sprema na disk koristeći simetričnu kriptografiju. Podaci su zaštićeni pomoću glavne zaporke (master password) koju korisnik unosi prilikom svakog korištenja alata.
Pretpostavljamo model u kojem napadač ima pristup disku te može po volji čitati i mijenjati podatke. Potrebno je osigurati povjerljivost zaporki
u kojoj napadač ne može odrediti nikakve informacije o zaporkama čak niti njihovu duljinu, čak ni jesu li zaporke jednake za dvije adrese, čak ni je li nova zaporka jednaka staroj kada se promijeni. Zatim je potrebno osigurati povjerljivost adresa
gdje napadač ne može odrediti nikakve informacije o adresama, osim da zna koliko se različitih adresa nalazi u bazi. Konačno, potrebno je osigurati integritet adresa i zaporki
tako da nije moguće da korisnik dobije od alata zaporku za određenu adresu, ako nije prethodno unio zaporku za točno tu adresu.
Druga laboratorijska vježba obuhvaća autentifikaciju upotrebom lozinki. U sklopu vježbe potrebno je implementirati dva alata, jedan koji omogućava upravljanje lozinkama i korisničkim imenima i namijenjen je administratorima te drugi alat koji služi za prijavu korisnika.
- dodavanje korisničkog imena (operacija
add
) - promjena lozinke postojećeg korisničkog imena (operacija
passwd
) - forisiranje promjene lozinke korisničkog imena (operacija
forcepass
) - uklanjanje postojećeg korisničkog imena (operacija
del
)
- upisivanje korisničkog imena i lozinke pri čemu lozinka nije vidljiva tijekom upisa
- forsiranje izmjene lozinke nakon uspješne prijave - ako je administrator zatražio
- po uspješnoj prijavi, login pokreće proces ljuske
bash
Tajnost lozinki mora biti očuvana te se naredba login pokreće tako da će se prijavljivati samo legitimni korisnici. Napadači imaju vrlo napredne metode pogađanja lozinki i pristup značajnim količinama računalnih resursa.
Treća laboratorijska vježba proučava ranjivosti web aplikacija. Za izvođenje treće laboratorijske vježbe potrebno je ispravno podesiti mrežne postavke kako bi se mogli spojiti na virtualni stroj. Spajanjem na virtualni stroj, proučavaju se ranjivosti web aplikacija. Cilj je iskoristiti ranjivosti. Proučavale su se Command Injection
, SQL Injection
, XSS (Cross Site Scripting)
te File Inclusion
Četvrta laboratorijska vježba proučava sigurnost mrežnih protokola i vatrozid. U sklopu laboratorijske vježbe potrebno je provjeriti udaljenu dostupnost usluga
, skenirati alatom nmap
, konfigurirati vatrozid
te analizirati snimljeni mrežni promet
.