Základy digitální forenziky
4. Získávání a analýza efemérních informací informací
4.2. Analýza získávání paměti
Existují nástroje pro analýzu výpisů paměti, které jsou založeny pouze na obsahu paměti RAM. Tento obsah může být neúplný, protože části paměti jsou uloženy na disk, pokud nestačí k uložení všech dat. K překonání tohoto problému publikoval Nicholas Paul Maclean svou práci "Acquisition and Analysis of Windows Memory" (Získávání a analýza paměti systému Windows), jak funguje správa paměti v systémech Windows, a poskytl open-source nástroj vtop, který umožňuje kompletně rekonstruovat virtuální paměťový prostor procesu.
Pro analýzu výpisu paměti můžeme použít program Volatility, kde je možné provádět úkoly, jako je získání vysokoúrovňových informací o obraze, kde je identifikace operačního systému (Figure 35), servisního balíčku, hardwaru, architektury, adresy paměti a času, kdy byl Dump vytvořen.
Obrázek 35 - Získání informací o výpisu paměti
Příkazy užitečné pro provedení výpisu záznamů:
Export do textu:
C:\Regdmp.exe > e:\registryDump.txt
Najít výrazy v exportovaném souboru:
C:\Find/i "URL" registryDump.txt
Kopie používaných souborů registru:
C:\RawCopy.exe C:\WINDOWS\system32\config\SYSTEM E:\output -AllAttr
Další užitečné příkazy:
Pořiďte snímek obrazovky pracovní plochy:
C:\nircmd.exe savescreenshot screen1.png (Nirsoft.net)
Kontrola, zda je disk chráněn šifrováním (Figure 36)
C:\EDD.exe /accepteula /Batch > e:\EncryptedDiskDetector.txt
C:\Manage-bde -protectors c: -get
Obrázek 36 - Identifikace šifrovaného disku
4.2.1. Sintax programu Volatilita
První verze Volatility Framework byla zveřejněna na konferenci Black Hat. Software je založen na dlouholetém akademickém výzkumu v oblasti pokročilé analýzy paměti a forenzní analýzy. Volatility nyní umožňuje výzkumníkům analyzovat, v jakém stavu se stroj nacházel v době pořízení záznamu, a to na základě dat získaných z volatilní paměti.
Volatility Framework je založen na programovacím jazyce Python a je vyvinut v jeho nejvyspělejší verzi Python 2, kterou se budeme zabývat v tomto tématu. S příchodem Pythonu 3 vyvstala také potřeba aktualizovat verzi Volatility, využít výhod nové verze Pythonu a poskytnout jí více automatizace. Ve verzi 2 frameworku Volatility je prvním krokem při provádění analýzy paměti identifikace typu operačního systému. K tomu můžeme použít příkaz imageinfo programu Volatility (Figure 37). Tento příkaz je užitečný pro získání informací o obrazu na vysoké úrovni, uvádí pravděpodobnou identifikaci operačního systému (profil), service pack, hardwarovou architekturu, adresu paměti a čas výpisu.
Obrázek 37 - Volatilita - Příklad výstupu příkazu imageinfo
Později musíme obsah paměti předat do textových souborů, aby bylo možné provést analýzu jejího obsahu. Volatility k tomuto účelu poskytuje řadu zásuvných modulů.
Sintax: volatility -f <nome_da_imagem> -profile=< tipo_de_OS> <plugin> > <output>
· -f: Soubor, který je výsledkem pořízení systému
· -profile: pokyn k použití profilu operačního systému (dříve identifikovaného)
· plugin: plugin, který se má spustit
· výstup: soubor pro export výsledků
4.2.2. Zásuvné moduly Volatility - Extrakce
Zásuvné moduly, které volatilita používá, jsou specifické pro identifikaci příslušných informací v obsahu výpisu paměti RAM. Některými z těchto zásuvných modulů se budeme zabývat zde.
Pslist Seznam spuštěných procesů
Pstree Zobrazení procesů, které se liší svým původem (Obrázek 38)
Obrázek 38 - volatilita pluginu pstree
Psxview Porovnání procesů (Obrázek 39)
Obrázek 39 - Zásuvný modul Volatility psxview
Netscan Zobrazení síťových připojení
Cmdline Cmdline Porovnání procesů (Obrázek 40)
Obrázek 40 - Zásuvný modul cmdline Volatility
Cmdscan Porovnání procesů (Obrázek 41)
Obrázek 41 - Zásuvný modul cmdscan Volatility
Konzoly. Porovnání procesů (Figure 42)
Obrázek 42 - Zásuvný modul konzol Volatility
DumpregistryExtrahovat soubory protokolu
4.2.3. Volatilita zásuvných modulů - analýza
Soubory protokolu extrahované z paměti je možné analyzovat stejnými nástroji jako soubory protokolu extrahované z operačního systému. Příkladem je RegRipper, volatilita sama nebo RegistryReport, zobrazený na obrázku 43.
Obrázek 43 - Analýza souboru RegistryReport
Při analýze paměti je také možné získat soubory, které byly zpracovány. Existují programy s možností identifikace a extrakce souborů z paměti, jak ukazuje následující obrázek se softwarem Belkasoft, kde je možné ověřit, že identifikoval adresy procházení v prohlížečích, údaje o konverzaci v chatu, soubory elektronické pošty a obrazové soubory (Obrázek 44).
Obrázek 44 - Analýza souborů pomocí Belkasoft
SANS zveřejnila plakát (Obr. 45) s odkazem na analýzu paměti pomocí Volatility, který shrnuje mnoho zásuvných modulů užitečných pro tento typ analýzy.
Obrázek 45 - Plakát SANS - Cheat Sheet pro forenzní analýzu paměti v2.0
Vytvoření časové řady událostí v paměti
Z dat získaných z volatilní paměti je užitečné vytvořit časovou osu, která umožní datovat a třídit údaje v systému. Jedná se o proces zahrnující níže popsané postupy:
Timeliner vytvořit časovou osu
C:\> volatility_2.6_win64_standalone.exe -f IE8WIN7.dmp --profile=Win7SP1x86_23418 timeliner -- output=body > timeliner.body
Více informací na: https://volatility-labs.blogspot.com/2013/05/movp-ii-23-creating-timelines-with.html
Mftparser Obt (tabulka hlavních souborů).
C:\> volatility_2.6_win64_standalone.exe -f IE8WIN7.dmp --profile=Win7SP1x86_23418 mftparser -- output=body > mftparser.body
Spojte soubory týkající se zásuvných modulů timeliner a mftparser.
# cat timeliner.body mftparser.body >> timeline.log
Mactime[1] Generování časové osy z kombinace souborů
# mactime -d -b timeline.log > timeline.csv
Konečný výsledek postupů TimeLine (Obrázek 46)
Obrázek 46 - Obsah souboru timeline.csv
Pomocí této tabulky lze snadno identifikovat akce provedené v paměti zařízení, které doplní informace získané při analýze zařízení v rámci forenzní analýzy mrtvých schránek.
Příklad identifikace přístupu do sítě TOR
Jako příklad analýzy paměťových dat můžeme uvést použití prohlížeče Tor Browser, který neukládá navigační informace na pevný disk, ačkoli je možné je identifikovat a analyzovat prostřednictvím paměti.
Začneme potvrzením profilu systému (Obrázek 47).
Obrázek 47 - Zásuvný modul Volatility imageinfo
Ke kontrole spuštěných procesů jsme použili zásuvný modul pstree, který filtruje procesy podle názvu "firefox.exe" (Figure 48), protože tento proces používá prohlížeč Tor Browser, nebo přímo podle názvu "tor.exe". Pro získání dalších informací o procesech v analyzovaném zařízení máme ještě možnost použít pluginy pslist, psscan.
Obrázek 48 - Využití volatility ve výzkumu procesů
Getsidy Informace o zahájení procesu, které se vztahují k uživateli (Obrázek 49).
Obrázek 49 - Využití volatility při identifikaci procesu
netscan zobrazí síťová připojení
V tomto případě proces "tor.exe" indikuje dokončené připojení k cílové IP "54.37.17.235" na portu 9001 (Obrázek 50).
Obrázek 50 - Použití volatility při identifikaci sítě
Firefoxhistorie Seznam dotazovaných adres (URL) (Obrázek 51).
Obrázek 51 - Použití volatility k načtení adres URL z paměti
Zdroj: https://blog.superponible.com/2014/08/31/volatility-plugin-firefox-history/