08.
jul
Zagovor diplomskega dela: Breznik Domen
ob 10:00

Naslov diplomskega dela: Izkoriščanje kopice: zgodovinska in tehnična analiza izkoriščanj in blaženj

 

Povzetek:

Diplomsko delo je zgodovinska in tehnična analiza izkoriščanj in blaženj kopice v Linux sistemih, s poudarkom na dodeljevalcu ptmalloc2, ki ga uporablja knjižnica glibc. Naš cilj je pokazati, kako so se tehnike izkoriščanja spreminjale kot odgovor na uvedbo novih zaščitnih mehanizmov. Hkrati želimo pokazati, da so ranljivosti kopice relevantne še danes in da je njihovo razumevanje ključno za pisanje varne programske opreme.

S pregledom raziskovalnih del najprej predstavimo relevantno ozadje, kar vključuje glavne tipe ranljivosti, tehnike izkoriščanja, samodejno generiranje izkoriščanj ter blaženja na ravni strojne opreme, operacijskega sistema, prevajalnika, alokatorja, nameščanja popravkov (angl. \textit{patching}), zaščite med izvajanjem in dinamične analize. Nato predstavimo osnovno zgradbo kopice in notranje delovanje knjižnice glibc, ki je pomembno za izkoriščanje, kot so pomnilniški bloki, koši, arene, sprožilci (angl. \textit{hooks}), mehanizem izhodnih funkcij ter strukturo TCB.

Osrednji del diplomskega dela je analiza, kako se mora posamezen primer izkoriščanja, ki temelji na ranljivosti uporabe po sproščanju, razvijati ob uvedbi sodobnih blaženj. Analiza se začne v okolju brez blaženj in se postopoma prilagaja uvajanju blaženj, kot so NX, ASLR/PIE, safe-linking mehanizem ter odstranitev \texttt{malloc} sprožilcev. V analizi pokažemo, kako so se tehnike izkoriščanja premaknile od neposrednega izvajanja vstavljene strojne kode k razkrivanju naslovov, ponovni uporabi kode, obhodom mehanizmov šifriranja kazalcev ter zlorabi alternativnih mehanizmov za preusmeritev izvajanja.

Rezultati kažejo, da sodobna blaženja povečajo zahtevnost izkoriščanja, vendar ga ne odpravijo v celoti. Zato je dolgoročno pomembno zmanjšati pojavitev napak, povezanih z upravljanjem s pomnilnikom, z varnejšimi programskimi praksami in kjer je to sprejemljivo, z uporabo jezikov s samodejnim upravljanjem s pomnilnikom.

 

Mentor: izr. prof. dr. Matevž Pesek

Somentor: asist. Andraž Juvan

 

Komisija za zagovor:

    - doc. dr. Alenka Kavčič, predsednik

    - doc. dr. Uroš Čibej, član

    - izr. prof. dr. Matevž Pesek, mentor

    - asist. Andraž Juvan, somentor

 

Prostor:  Diplomska soba in https://uni-lj-si.zoom.us/j/94207387617