Podrobno

Izkoriščanje kopice: zgodovinska in tehnična analiza izkoriščanj in blaženj
ID Breznik, Domen (Avtor), ID Pesek, Matevž (Mentor) Več o mentorju... Povezava se odpre v novem oknu, ID Juvan, Andraž (Komentor)

.pdfPDF - Predstavitvena datoteka, prenos (890,28 KB)
MD5: 0E30F7DADE2A9E6940C43E99DAD1326C

Izvleček
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.

Jezik:Slovenski jezik
Ključne besede:izkoriščanje kopice, glibc, ptmalloc2, uporaba po sproščanju, okvara pomnilnika, blaženja
Vrsta gradiva:Diplomsko delo/naloga
Tipologija:2.11 - Diplomsko delo
Organizacija:FRI - Fakulteta za računalništvo in informatiko
Leto izida:2026
PID:20.500.12556/RUL-184484 Povezava se odpre v novem oknu
COBISS.SI-ID:286280707 Povezava se odpre v novem oknu
Datum objave v RUL:08.07.2026
Število ogledov:127
Število prenosov:107
Metapodatki:XML DC-XML DC-RDF
:
Kopiraj citat
Objavi na:Bookmark and Share

Sekundarni jezik

Jezik:Angleški jezik
Naslov:Heap exploitation: a historical and technical analysis of exploitations and mitigations
Izvleček:
This thesis presents a historical and technical analysis of heap exploitation and the corresponding mitigation mechanisms in Linux systems, with a focus on the glibc allocator ptmalloc2. The goal of the thesis is to understand how heap exploitation has evolved over time and how defensive mechanisms changed the requirements for successful exploitation. We also want to show that memory vulnerabilities are still relevant today and that understanding the progression of heap exploitation and how allocator internals behave is crucial for writing safer low-level software. The work first reviews relevant background, including common heap vulnerability classes, major exploitation techniques, automatic exploit generation, and defensive approaches at the hardware, operating system, compiler and allocator levels and approaches such as patching, runtime-protection, and dynamic-analysis levels. It then explains the internal structure of the heap and the main glibc components relevant to exploitation, such as chunks, bins, arenas, hooks, exit handlers, and the thread control block. The core contribution of the thesis is a step-by-step analysis of how a single proof-of-concept exploit based on a use-after-free vulnerability must evolve as modern mitigations are introduced. Starting from an environment without major protections, the PoC is progressively adapted to account for non-executable memory, address space randomization and position-independent executable, safe-linking, and the removal of malloc hooks in recent glibc versions. The analysis demonstrates how exploitation techniques shifted from direct shellcode execution toward address leaking, code reuse, pointer mangling bypasses and abuse of alternative control flow targets. The results show that although modern mitigations significantly increase the complexity of heap exploitation, they do not eliminate the risk posed by memory corruption vulnerabilities. Instead, exploitation strategies evolve together with allocator internals and defensive mechanisms, making a detailed understanding of both offensive techniques and mitigations essential for software security research.

Ključne besede:heap exploitation, glibc, ptmalloc2, use-after-free, memory corruption, mitigations

Podobna dela

Podobna dela v RUL:
Podobna dela v drugih slovenskih zbirkah:

Nazaj