Professional Documents
Culture Documents
Predlogprojekta 1
Predlogprojekta 1
Predlogprojekta 1
1 seL4
seL4[1] je mikrokernel koji se ističe po tome što je jako bezbedan zbog svog rigoroznog načina veri-
fikacije koda. Trenutno je to jedini mikrokernel koji je potpuno formalno verifikovan. Ipak, postignuti
ovo na nekom velikom i kompleksnom kernelu (kao što je Linux) je van domašaja, pa je zato ovaj
mikrokernel jako kompaktan, ali potpuno determinisan i većinom siguran.
2 Tajming napadi
Jedan od napada na koji ovaj sistem nije otporan je takozvani tajming napad (timing attack)[2],
gde napadač unosi različite unose u nadi da će da izvuče informacije koje inače ne bi smeo da ima, samo
po tome koliko je potrebno sistemu da odgovori na ulaz. Preko toga, može da sazna više o sistemu, što
može biti jako opasno ako je u pitanju neka enkripcija/dekripcija.
3 Resenja
Kao odgovor na ovaj problem, iskorišćeni su algoritmi koji su manje kompleksni radi manjeg uticaja
na efikasnost sistema - instruction-based scheduling i cache colouring[2]. Ovi algoritmi nisu još uvek
formalno verifikovani i trenutno su van domašaja, ali su trenutno najbolja resenja. Ono što je zajedničko
za algoritme koje ću testirati i ove algoritme jeste način ublažavanja efikasnosti tajming napada. Naime,
svaki put kada izbacimo izlaz u konačnom vremenskom periodu, dajemo neku informaciju napadaču
koju može da iskoristi, medjutim smatramo da je moguće smanjiti količinu informacija u nekoj količini
u zavisnosti od toga koliko želimo da se fokusiramo na bezbednost a koliko na performanse sistema.
Moguće rešenje bi bilo da imamo sistem koji uvek izbacuje izlaz sa istim kašnjenjem, medjutim to
znači da bi manji upiti koji troše mnogo manje vremena, čekali onoliko koliko bi bilo potrebno za
najveći upit i time znatno usporili sistem. Drugi način na koji možemo da ublažimo ove napade, jeste
black-box tehnikama. U ovim tehnikama je cilj da zamaskiramo naš sistem nekim drugim sistemima
koji bi pokvarili rezultate napadača. Jedan od načina da se to uradi jeste randomizacijom algoritma.
Primer - kada bismo rekli da će algoritam da izvršava upite sa nasumičnim kašnjenjima, rezultati bi
bili manje očigledni a uticaj na performanse sistema bi u najgorem slučaju bile iste brzine kao i sistem
sa konstantim kašnjenjem (kašnjenje bi u najgorem slučaju bilo uvek najveće), a mene zanima koliko
bi takvi algoritmi ublažili efikasnost napada po respektivnoj ceni performanse.
4 Problem verifikacije
Ovakvi algoritmi bi bili znantno teži za verifikaciju, većinom zbog nedeterminizma koji u sistem
donosi nasumičnost. Takodje, kompleksnost verifikacije i sistema raste jako brzo, što se kosi sa filozo-
fijom ovog mikrokernela(mali, kompaktan i potpuno bezbedan kernel koji je osnova za ceo sistem koji
se nalazi u korisničkom prostoru), pa bi ovakvo rešenje bilo privremeno ali i neophodno.
1
5 Metode Randomizacije
Još uvek nisam odlučio koje bih algoritme poredio, medjutim postoji dosta izbora i voleo bih da
probam da implementiram svako rešenje. Algoritmi koje sam predvideo kao moguće su: algoritmi sa
nasumičnim kašnjenjem i zastankivanjem, algoritmi sa nasumičnim ubacivanjem buke, algoritmi koji
podrazumevaju paralelizaciju ili nasumičnu paralelizaciju i sistem koji onemogućava neograničen broj
pokusaja.
Literatura
Literatura
[1] Gernot Heiser, The seL4 Microkernel – An Introduction, White paper, The seL4 Foundation, Re-
vision 1.2 of 2020-06-10.
[2] David Cock, Qian Ge, Toby Murray, Gernot Heiser, The Last Mile: An Empirical Study of Timing
Channels on seL4, 2014