Reverzné inžinierstvo a analýza malvéru
Kredity
2
Ukončenie:
klasifikované hodnotenie
Rozsah:
1C/14C
Semester:
zimný
Vyučujúci
N/A
O predmete
Predmet sa zameriava na systematický proces reverzného inžinierstva a analýzy malvéru, ktorého cieľom je odhaliť vnútornú architektúru, logiku a funkčnosť softvéru aj bez prístupu k pôvodnému zdrojovému kódu. Študenti sa postupne oboznámia so statickou analýzou, ktorá zahŕňa prácu s asemblérom či nástrojmi ako Ghidra, a následne aj s dynamickou analýzou na pozorovanie správania škodlivého kódu v kontrolovanom prostredí (sandbox). Dôležitou súčasťou kurzu je hĺbkové skúmanie operačných systémov Linux a Windows, ich pamäťových štruktúr, API volaní a binárnych formátov ELF a PE.. Pozornosť sa venuje aj pokročilým technikám, ktoré malvér používa na svoje ukrytie a sťaženie analýzy, ako sú polymorfizmus, obfuskácia, injektáž kódu do iných procesov či anti-debugovacie mechanizmy. Ďalším dôležitým blokom je bezpečnosť IoT zariadení a reverzné inžinierstvo firmvéru vo vnorených systémoch s ohľadom na špecifické architektúry ako ARM. Jednotlivé prednášky sú postavené spôsobom poskytovania nových faktov pričom sa dôležité aspekty matérie opakujú a postupne rozvíjajú s cieľom zabezpečiť komplexné pochopenie problematiky reverzného inžinierstva a analýzy malvéru zo strany študentov.
Cieľová skupina
Študenti magisterského štúdia programov informatiky a aplikovanej informatiky.
Ciele vzdelávania
- Pochopenie transformácie kódu: Pochopiť, ako sa logika z vyšších programovacích jazykov (napríklad C) transformuje do nízkoúrovňového asembléru, špecificky pri kompilácii (napr. GCC na Linuxe).
- Identifikácia skrytých mechanizmov: Naučiť sa v strojovom kóde identifikovať kryptografické rutiny a iné skryté funkcie.
- Analýza obranných techník malvéru: Schopnosť analyzovať a prekonávať pokročilé techniky, ktoré malvér využíva na svoje ukrytie a sťaženie analýzy, ako sú obfuskácia, anti-debugging a anti-VM (anti-virtualizačné) mechanizmy.
- Osvojenie si „dirty hands“ prístupu a nízkoúrovňových princípov: Naučiť študentov syntetizovať znalosti o interných štruktúrach jadra operačných systémov, architektúre procesorov a binárnych formátoch (ako sú ELF a PE), keďže spoliehať sa len na automatizované GUI nástroje pre modernú analýzu hrozieb nestačí.
- Zlepšenie zručností v hybridnej analýze: Zvládnuť kombinovanie statickej analýzy (napr. v nástroji Ghidra pre získanie prehľadu o štruktúre) s dynamickou analýzou (napr. ladenie pomocou Fridy pre sledovanie reálneho správania kódu a dešifrovanie kontextu v izolovanom prostredí).
- Skúmanie moderných a špecifických hrozieb: Získať zručnosti pre reverzné inžinierstvo a emuláciu firmvéru IoT a embedded zariadení a oboznámiť sa s modernými technikami útokov, ako sú eBPF rootkity či bezsúborový (fileless) malvér.
Stručná osnova predmetu
- Úvod do štúdia reverzného inžinierstva a analýzy malvéru.
- Analýza architektúry pamäte a exploitácia binárnych zraniteľností.
- Základné aspekty nízkoúrovňového jazyka (asembler) a nízkoúrovňová analýza strojového kódu.
- Prevod strojového kódu na inštrukcie a zdrojový kód — disassembling a dekompilácia.
- Dynamická analýza strojového kódu a správania programov.
- Pokročilá analýza kódu a dynamické ladenie strojového kódu.
- Rozšírené techniky reverzného inžinierstva v operačnom systéme Linux.
- Rozšírené techniky analýzy malvéru v prostredí operačného systému Linux.
- Základy reverznej analýzy kódu v OS Windows.
- Pokročilé techniky reverznej analýzy kódu a analýzy malvéru v operačnom systéme Windows.
- Získavanie firmvéru jednoúčelových zariadení a jeho analýza.
- Pokročilá reverzná analýza firmvéru jednoúčelových zariadení
Prednášky
- 1. Úvod do štúdia reverzného inžinierstva a analýzy malvéru
- 2. Analýza architektúry pamäte a exploitácia
- 3. Základné aspekty asembléru a nízkoúrovňová analýza
- 4. Prevod strojového kódu na inštrukcie a zdrojový kód
- 5. Dynamická analýza strojového kódu
- 6. Pokročilá analýza kódu a dynamické ladenie
- 7. Rozšírené techniky reverzného inžinierstva a analýzy malvéru v OS Linux
- 8. Rozšírené techniky analýzy malvéru v prostredí Linux
- 9. Základy reverznej analýzy kódu v OS Windows
- 10. Pokročilé techniky reverznej analýzy kódu a analýzy malvéru v operačnom systéme Windows
- 11. Získavanie firmvéru jednoúčelových zariadení a jeho analýza
- 12. Pokročilá reverzná analýza firmvéru jednoúčelových zariadení
Podmienky na absolvovanie predmetu
Forma ukončenia: klasifikované hodnotenie.
Záverečná skúška.
Metodológia predmetu
Odporúčaná literatúra
- SIKORSKI, Michael — HONIG, Andrew. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. San Francisco : No Starch Press, 2012.
- EAGLE, Chris — NANCE, Kara. The Ghidra Book: The Definitive Guide. San Francisco : No Starch Press, 2020.
- DENNIS, Andriesse. Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly. San Francisco : No Starch Press, 2019.
- HALE LIGH, Michael — CASE, Andrew — LEVY, Jamie — WALTERS, Aaron. The Art of Memory Forensics: Detecting Malware and Threats in Windows, Linux, and Mac Memory. Indianapolis : Wiley, 2014.
- SVAJCER, Vanja. Mastering Malware Analysis: The Complete Malware Analyst’s Guide to Combating Malicious Software, APT, Cybercrime, and IoT Attacks. 2nd ed. Birmingham : Packt Publishing, 2022.
- CHEN, Aditya — ZADDACH, Jonas — COSTIN, Andrei. Firmware Security: Vulnerabilities, Exploits, and Best Practices for IoT Devices. Hoboken : Wiley, 2025.
Akademické a výskumné platformy
- MITRE ATT&CK Framework: https://attack.mitre.org/
- MITRE CWE (Common Weakness Enumeration): https://cwe.mitre.org/
- VirusTotal: https://www.virustotal.com/