Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Nástroj a principy forenzní analýzy v okamžiku rychlé reakce - analýza prchavého stavu
listopad 04
Nástroj a principy forenzní analýzy v okamžiku rychlé reakce - analýza prchavého stavu

To je hodně divný název, že? Tak to je můj překlad anglických termínů jako je forensic analysis, first response a first responder a volatile state.

Prchavý stav a první odpověď

O co jde? Na nějakých zařízeních (v našem případě postavených na Windows), byl nahlášen nějaký bezpečnostní incident (IS incident). Podle normy ISO/IEC 27035 by se to mělo spíše jmenovat událost (IS event), protože to nahlásil pracovník (tedy BFU) a hodnocení na incident může přijít teprve později, až to kvalifikovaně vyhodnotíme.

V takovém okamžiku nastupuje forenzní pracovník skupiny rychlého nasazení (forensic expert of first response). Norma ISO/IEC 27035 to nazývá ISIRT (information security incident response team).

Nebo možná jen kvalifikovaný systémový správce (system administrator), který má za úkol následující úplně prvotní věci:

  • zajistit místo události (suspected crime scene) tak, aby nedošlo poškození jeho důkazní kvality. To znamená zejména zabránit dalšímu kontaktu nekvalifikovaných osob nejen s výpočetním prostředím, ale také s jeho blízkým fyzickým prostředím. To jsou například stoly a věci na nich položené a v zásuvkách uložené, kabeláž i elektrická silová. Prostě ideálně celá kancelář.
  • vyhodnotit rozsah události a případně zajistit i vzdálenější místa, která s událostí souvisí. Pod tím bych si představoval například serverovnu, pokud je podezření, že událost ovlinila i vzdálená data.
  • všechno vyfotit, nejprve z dálky přehledně, potom z větší blízkosti. Pořád ještě ale bez těsných detailů zařízení. Ideálně to také točit na kameru. Kamerku na hlavu si pořídíte za pár korun.
  • a potom se zastavit a zamyslet se

Zamyslet se nad tím, jak moc chce zasahovat do místa činu (crime scene). Nejjednodušší, a bez přemýšlení, je možné prostě všechny počítače korektně vypnout. To znamená slušný, vyžádaný shutdown. Samozřejmě pokud to jde. Minimální zásah samozřejmě vylučuje nějaké zkoušení prolomit zamknutou obrazovku apod.

Prostě vidím, jestli počítač žije a můžu kliknout "vypnout". Pokud nemůžu, protože je třeba zhasnutá obrazovka, lehce zamyšuju bez klikání, třeba se rozsvítí. Pokud na mě vyskočí zamknutá plocha, nebo přihlašovací obrazovka, možná je tam čudlík shutdown. Pokud to vyžaduje přihlásit, požádám majitele počítače, aby se přihlásil. Pokud já jsem policie a on je podezřelý a neudělá mi tu radost, nebudu tam něco zkoušet zadávat a prostě to zkusím vypnout čudlíkem na bedně. Pokud ani to nejde, tak holt natvrdo vytrhnout z napájení.

Následuje detailní zaprotokolování důkazů (tomu se budu věnovat někdy příště). A buď rovnou na místě vytvoření bitových kopií úložišť, nebo odvoz do labu.

Jenže tímto přicházíte o paměťový stav (volatile state) toho počítače. Přijdete o seznam běžících procesů, o obsah jejích pamětí (ne všechno je ve stránkovacím souboru a ten se možná také smaže při vypínání). Mnoho konfigurací také nemusí být trvalých (persistent), jako jsou routey, nahozená TCP a VPN spojení, IPv6 tunely, seznam DNS a NetBIOS překladů apod.

Podle 27035 článku 8.2.1.3 (Incident information update) má člen ISIRT tedy zvážit a případně provést toto: "After the initial discovery of the incident, all volatile data should be collected before the affected IT system, service and/or network is shut down, for a complete information security forensics investigation. Information to be collected includes contents of memory, cache and registers, and detail of any activities running, and the following."

Bez zásahu do scény to nepůjde

K předchozímu odstavci norma připomíná, že "Two or more persons should be present when information security forensics duplication is performed, to assert and certify that all activities have been carried out in accordance with relevant legislation and regulation."

Což je důležité. Pokud chcete z počítače odnést jeho volatile data, musíte do něho nějak více zasáhnout a něco k němu připojit.

Pokud se rozhodnete k tomuto kroku, je důležité si uvědomit, že se zvětšuje prostor pro problémy, které můžete mít s takovými důkazy u soudu, pokud by k němu došlo. Protistrana bude chtít, aby soud vaše důkazy nepřipustil. To samozřejmě bude chtít vždycky, ale když budete do místa činu zasahovat, budete to muset umět soudu vysvětlit.

Podstatné je dokázat, že jste svým zásahem nevnesli do scény falešné důkazy, které by žalovanou stranu neprávem inkriminovaly. Celou situaci výrazně vylepší také to, že tento zásah do místa činu prováděla nezaujatá třetí strana - možná nějaký cizí specialista.

I v případě ohledání místa činu po vraždě tam forensní tým vnáši věci, které tam předtím nebyly. Ale snaží se minimalizovat škody. Mají ochranné obleky, aby z nich moc nepadaly chlupy. Mají rukavice, takže když už nějaké otisky pomatlají, tak alespoň nezanechají svoje. Jestli chcete naložit tlouštíkovo tělo na nosítka, uděláte mu nejspíš nějaké otlaky.

Taky si uvědomte, že na místě činu už nejspíš předtím docela dlouho působili uživatelé, ještě než si sami uvědomili, že se možná něco děje.

Nástroje pro sběr volatile forensic data

Na internetu se dá stáhnout hromada různých nástrojů. Polovina z nich vypadá, jako že se jedná o samotné hekovače, screenshoty jako z keygenu. Druhá polovina funguje jenom na některých typech systémů. Další polovina vyžaduje instalaci Oracle databáze. Osmdesát procent z nich není ani digitálně podepsáno. Devadesát procent z nich nesbírá to všechno, co bych si já představoval. A u sto procent z nich nevíte vůbec, co dělají a jak fungují.

To se vám u mého forensního PowerShell nástroje nestane. Máte celý jeho zdroják. Který je digitálně podepsaný a obsahuje log SHA1, MD5 heší všech svých součástí. Pokud máte PowerShell 3.0 a novější, počítá i SHA256 heše. Používá jenom PowerShell, WMI a zabudované Windows nástroje. Navíc používá tři utilitky přímo od firmy Microsoft, také digitálně podepsané a 100% zdokumentované. Běží všude, kde máte alespoň PowerShell 2.0. Což je dneska už skoro všude.

Pokud budou pochybnosti o jeho chování, umím vysvětlit každé písmeno jeho kódu.

Program vygeneruje sadu textových a CSV souborů, ve kterých jsou výstupy rozličných WMI tabulek a výstupy Windows programů, jako je třeba netsh. Program ze systému pouze čte. Zapisuje pouze do svého výstupního adresáře.

Pokud si o to řeknete, provede pomocí procdump programu (od Microsoftu, staženo ze SysInternals) dump paměti všech procesů. Výstupy také uloží do svého výstupního adresáře. Umí také spustit autorunsc a posbírat i jeho textový výstup - to ale není už moc prchavý stav. Autoruns se dá zjistit kompletně i z offline imidže.

Nakonec celý obsah výstupu znovu přepočítá na SHA1, MD5 a případně SHA256. Soudci chtějí vždycky slyšet, že jste všechno hešovali, protože tak se to má dělat. Jenom si neuvědomují, že to není ochrana proti záměrné změně.

Pokud se chcete pojistit proti záměrné změně, můžete si zadat také heslo, které znáte jenom vy. Program vám všechen inventář podepíše HMAC-SHA256. Takže jenom vy, pokud budete znát heslo, si můžete ověřit pravost těch signatur.

Jediná modifikace

Skript umí, na požádání, také změnit jedno nastavení v registru (ClearPageFileAtShutdown). To říká, jestli se bude při vypínání mazat pagefile. Smazat ho ideálně nechcete, protože může obsahovat zajímavé informace o obsahu pamětí různých procesů.

Skript to udělá jenom když ho o to požádáte. Navíc v každém případě dopředu zaudituje předchozí stav té registrové hodnoty.

Jak takový software do počítače přinesete a jak potom odnesete výsledky?

Nastává otázka, jak tenhle nástroj do důkazního počítače (evidence computer) dostat. Jak už jsem říkal, všechny programy, nebo hardware na fyzický dump RAM paměti, tam budete muset nějak dostat. Pokud je tam tedy vůbec dostávat chcete. I když ty programy spustíte z příkazové řádky ručně, zanecháte něco navíc v systému. I když tam budete přistupovat vzdáleně přes síť tam něco zanecháte.

Pokud už budu vnášet například USB flash do scény, měl bych dodržovat následující:

  • médium zakoupené pouze pro tento případ, u kterého známe přesně jeho dlouhodobé uložení, pokud bylo ve skladu
  • čistě naformátované medium, přejeté ideálně sdelete tak, aby nemohlo obsahovat žádné nežádoucí a falešné důkazy
    • k tomu mám v nástroji rovnou baťáček sdelete-free-space.bat
  • kopie mého nástroje, která je digitálně podepsaná a ohešovaná
  • do papírového protokolu zapíšete čas příchodu na místo a čas začátku sběru prchavých dat
    • hodiny počítače se mohou lišit, možná i záměrně
  • na všechno si seženete svědka, který to bude celou dobu sledovat s vámi
  • ideálně to točíte na kameru a fotíte jako zběsilí
  • zastrčíte do volného USB portu, určitě nic jiného nevytahujete
  • spustíte volatile-forensics.bat. Nezapomenete ho spustit s právy administrátora, pokud to jde. Pokud nejde, zase až tak se moc neděje. Nepůjde zjistit seznam SMB spojení a nepojedou dumpy paměti.
  • může se stát, že ani tento volatile-forensics.bat nepůjde spustit, protože PowerShell execution policy to blokuje na úrovni group policy. Schválně jsem skript udělal tak, že můžete jeho obsah komplet na Ctrl-A, Ctrl-C, right-click překopírovat (copy/paste) do spuštěného okna PowerShellu
    • pokud script spouštíte tímto způsobem (copy/paste), ujistěte se, že aktuální adresář v příkazovém řádku PowerShellu je nastaven opět na tu USB flashku
  • zaznamenejte si do papírového protokolu všechny odpovědi na otázky, které vám skript kladl
  • výstupní soubory se objeví v Out podadresáři aktuálního adresáře. Tedy ideálně opět na USB klíčence. Bez zásahu do harddisku důkazního počítače.
  • jakmile program skončí, zeptá se vás na heslo pro HMAC-SHA256, které si zapamatujte. Svědek ho znát nemusí, spíše by ani neměl.
  • až program úplně skončí, dejte vypnout důkazní stroj (evidence machine) a nechte všechno tak jak je. Včetně vaší flash USB klíčenky.
  • až se všechno vypne, zaprotokolujte a posbírejte všechny počítače a související věci jako důkazy. Včetně vaší forensní USB pen klíčenky. To je teď taky důkaz.

O USB disk takto vlastně přicházíte. Budete ho muset nechat jako součást důkazů. Budete ho také muset předat protistraně, která má právo vidět všechny důkazy a udělat si na ně svoje vlastní posudky. Takže i z vaší klíčenky budete normálně dělat sektorový imidž (sector-by-sector image, bitwise image). A pracovat budete teprve s tímto imidžem.

Všechno je k dispozici zde ve formě ZIP a také ve formě jednotlivých souborů.

Comments

CO?

Co? Nejak som to nepochopil.
Ondrej Zilinec on 4.11.2014 20:10

Re: Nástroj a principy forenzní analýzy v okamžiku rychlé reakce - analýza prchavého stavu

Ani já jsem to úplně nepobral. Možná jen myšlenky předběhly psaní.
Borek on 7.11.2014 0:37

Re: Nástroj a principy forenzní analýzy v okamžiku rychlé reakce - analýza prchavého stavu

Tak von to neni uplne entrylevel clanek. Ale po vasich stiznostech sem si to po sobe znovu precet a me to hlavu dava :-)
Ondass on 7.11.2014 5:14

Jasny

Ja to chapu :) Dal jsem si to jako pohadku na dobrou noc, snad to zabere ;)
Bortelino on 28.11.2014 0:10

Re: Nástroj a principy forenzní analýzy v okamžiku rychlé reakce - analýza prchavého stavu

Skvělá práce!
Karel Jičínský on 19.12.2014 9:29

Dobra uvaha ale...

V pripade sudu by sa asi protistrana snazila dokazat pri volatile datach , ze nie su to tie data, ktore boli z RAM vytiahnute, bez ohladu na to aky nastroj bol pouzity = ziskane udaje nie je s cim porovnat. Pocitac je uz davno vypnuty a aj keby nebol hash z RAM "asi" nikdy nebude rovnaky. Aj ked v takomto pripade sa pravdepodobne ako dalsi dokaz doklada analyza disku, ktora by mohla ciastocne podporit doverihodnost udajov z RAM (spustanie prikazov, otvaranie suborov atd.).

btw. v com je pre vas napr. FTK Imager nevyhovujuci pre zber dat napr. z RAM?

V kazdom pripade vdaka za poskytnutie nastrojov.
Mico on 19.2.2015 21:57

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments