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

  1. Úvod do štúdia reverzného inžinierstva a analýzy malvéru.
  2. Analýza architektúry pamäte a exploitácia binárnych zraniteľností.
  3. Základné aspekty nízkoúrovňového jazyka (asembler) a nízkoúrovňová analýza strojového kódu.
  4. Prevod strojového kódu na inštrukcie a zdrojový kód — disassembling a dekompilácia.
  5. Dynamická analýza strojového kódu a správania programov.
  6. Pokročilá analýza kódu a dynamické ladenie strojového kódu.
  7. Rozšírené techniky reverzného inžinierstva v operačnom systéme Linux.
  8. Rozšírené techniky analýzy malvéru v prostredí operačného systému 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

    1. SIKORSKI, Michael — HONIG, Andrew. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. San Francisco : No Starch Press, 2012.
    2. EAGLE, Chris — NANCE, Kara. The Ghidra Book: The Definitive Guide. San Francisco : No Starch Press, 2020.
    3. DENNIS, Andriesse. Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly. San Francisco : No Starch Press, 2019.
    4. 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.
    5. 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.
    6. CHEN, Aditya — ZADDACH, Jonas — COSTIN, Andrei. Firmware Security: Vulnerabilities, Exploits, and Best Practices for IoT Devices. Hoboken : Wiley, 2025.

     

    Akademické a výskumné platformy

    1. MITRE ATT&CK Framework: https://attack.mitre.org/
    2. MITRE CWE (Common Weakness Enumeration): https://cwe.mitre.org/
    3. VirusTotal: https://www.virustotal.com/