Následující příspěvek na blogu představuje koncept alternativního datového toku a způsob, jakým byl v minulosti i v současnosti používán: jako technika sloužící ke skrytí škodlivého užitečného zatížení v souborovém systému. Ačkoli ji lze považovat za starou techniku, je stále aktuální a ve volné přírodě běžná.
Co je Alternate Data Stream (Alternativní datový tok)
Alternate Data Stream (ADS) je schopnost souborového systému NTFS (hlavní formát souborového systému v systému Windows) ukládat různé datové toky kromě výchozího toku, který se pro soubor běžně používá. Když byla tato funkce vytvořena, jejím hlavním účelem bylo poskytnout podporu hierarchickému souborovému systému (HFS) systému macOS.
Souborový systém NTFS obsahuje soubory s atributy. Relevantním atributem pro náš rozsah je atribut $DATA, který se používá k ukládání datových toků souboru.
V minulosti bylo běžné ukládat škodlivý payload do ADS legitimního souboru. Dnes však mnoho bezpečnostních řešení detekuje a skenuje ADS‘. V tomto příspěvku vám však ukážeme, že ADS lze stále použít ke spuštění payloadu, přičemž může být skrytý před uživatelem i různými bezpečnostními produkty.
Pro zjednodušení pojmů, které jsou v tomto článku prezentovány, jsou všechny příklady založeny na nativních nástrojích v systému Windows.
Jak používat ADS
Ve starých dobrých časech systému Windows Vista byly alternativní datové proudy (ADS) běžnou metodou vývojářů malwaru, jak skrýt svůj škodlivý kód. Alternativní datový proud se účinně používal k tomu, aby se přítomnost škodlivých poškozujících souborů vtěsnala do legitimního souboru. Vložením malwaru do alternativního datového toku by soubor systému Windows obsahoval informace a pokyny pro legitimní soubory, ale také pro škodlivý soubor. Aby mohl hacker spustit škodlivý kód, který uložil do Alternate Data Stream, chtěl by vytvořit symlink pomocí příkazu mklink. K tomu je však nutné mít v počítači administrátorská práva. Vzhledem k tomu, že běžné chování uživatele nevyžaduje spuštění operačního systému jako správce, hackeři mají tendenci přistupovat ke svým cílům s předpokladem, že přistáli na krabici bez administrátorských práv.
Výčet – Hlavní proud pod $DATA je prázdný řetězec (tedy: „“, nazývaný také nepojmenovaný proud). Tento proud obsahuje běžný proud souboru.
Následující příklad výčtu datových proudů souboru pomocí prostředí PowerShell:
K výčtu ADS souboru / rekurzivně na adresáři můžete použít také dir /R nebo SysInternals\streams.exe
Jak vidíte výše, soubor obsahuje pouze nepojmenovaný proud.
Někdy však můžete najít ADS v legitimním souboru, protože existuje několik legitimních použití této techniky.
Níže je uveden příklad výčtu datových proudů souboru s ADS pomocí prostředí PowerShell:
Toto je také příklad legitimního použití ADS: Zóna. Identifikátor. Toto pole představuje úroveň důvěryhodnosti zdroje souboru. Jedná se o použití prohlížeče k uložení Jeho odpovídajícím MacOS je „karanténní bit“.
Tvorba – I když může existovat legitimní použití ADS, ADS může být také použit k uložení škodlivého užitečného zatížení. Útočníci mohou dát přednost tomuto způsobu před uložením užitečného zatížení do nepojmenovaného streamu, protože jeho přítomnost bude před uživatelem skryta – není přístupný z explorer.exe (a zobrazená velikost souboru nezahrnuje velikost ADS). Navíc se ve výchozím nastavení nezobrazuje příkazem „dir“ (příznak /R však ADS zobrazuje a uplatňuje se od systému Windows Vista).
Vytvoření ADS je poměrně jednoduché.
Příklad vytvoření ADS příkazem typu:
Do systému Windows XP bylo možné ADS spustit příkazem start. Od novějších verzí systému Windows to však již není možné.
Přístup k datům – Zneužití ADS je stále relevantní hrozbou, protože existuje více způsobů, jak číst a spouštět ADS.
Prvním použitím je přístup k datům. K obsahu ADS lze přistupovat snadno. Následuje příklad s prostředím PowerShell:
Vykonání – Kromě čtení dat je možné je také vykonat. Ačkoli není možné spustit ADS pomocí příkazu „start“, přesto jej lze spustit z jiných programů. Například pomocí WMI:
„wmic process call creates“ – spustí proces pomocí WMI. Může také spustit ADS. Příklad:
Existují další legitimní nativní nástroje systému Windows, které lze použít k přímému spuštění ADS. Například knihovna DLL může být uložena uvnitř ADS a vyvolána pomocí DllMain prostřednictvím souboru rundll32.exe; také HTA může být uložena uvnitř ADS a vyvolána prostřednictvím souboru mshta.exe; a tak dále.
Škodlivé kampaně zneužívající ADS
Může se zdát, že systém Windows si s hrozbami, které se nacházejí uvnitř ADS, poradil. Ve volné přírodě však stále existuje mnoho rodin malwaru, které zneužívají ADS.
Dalším příkladem z roku 2017 je ransomware BitPaymer, který v sekvenci útoku používal dva ADS, aby dodal akcím skrytost a skryl škodlivou činnost. První ADS byl vytvořen za účelem spuštění příkazu „net view“ k získání síťových sdílení, druhý ADS pak zakódoval data na disku a síťová sdílení.
Na závěr lze říci, že zneužití ADS je technika, která je v dnešní době stále aktuální. Poslední verze systému Windows totiž omezily a zpřísnily funkčnost ADS. Nicméně základní ovládání nativních nástrojů systému Windows, jako jsou Power-Shell a WMI, nebo určitá znalost příkazového řádku systému Windows umožňuje aktérům hrozeb pokračovat a využívat službu ADS při svých útocích. Zajímavé je, že nedávné kampaně využívající ADS jsou považovány za poměrně sofistikované a mají tendenci minimalizovat používání trvalých souborů na disku.
.