Polymorfní malware

Co je polymorfní malware?

Polymorfní malware (polymorphic malware) je škodlivý software, který při každé infekci nebo v pravidelných intervalech mění podobu svého kódu, aniž by se změnila jeho funkce. Každá kopie tak vypadá jinak, ale dělá přesně totéž. Název vychází z řeckého slova polymorphos, tedy mnohotvarý.

Cílem polymorfismu je zkomplikovat odhalení škodlivého kódu. Tradiční antivirové programy rozpoznávají malware podle signatur, tedy charakteristických řetězců bajtů nebo otisků souborů. Pokud se kód s každou kopií mění, signatura vytvořená pro jednu variantu u další nefunguje. Polymorfismus přitom není samostatným typem malwaru, ale technikou, kterou mohou využívat viry, červi, trojské koně, ransomware i nástroje pro odcizení dat. S rozvojem generativní umělé inteligence získává tento přístup novou podobu, protože jazykové modely dokážou přepisovat kód a usnadnit tak tvorbu polymorfního malwaru i méně zkušeným útočníkům.

Podstata polymorfního malwaru

Klasický polymorfní malware se skládá ze dvou částí. První je zašifrovaný škodlivý kód, druhou je dešifrovací rutina, která kód před spuštěním v paměti počítače nebo serveru dešifruje. Při každém šíření zvolí malware nový šifrovací klíč, takže zašifrovaná část vypadá pokaždé jinak. Současně se mění i dešifrovací rutina, aby rovněž nemohla být rozpoznána antivirovým programem. O tyto změny se stará takzvaný mutační (polymorfní) engine, který rutinu při každé kopii sestaví jinak, ale se stejnou funkcí.

Mutační engine využívá několik základních úprav kódu. Mění pořadí instrukcí tam, kde na něm nezáleží, nahrazuje instrukce jinými se stejným výsledkem, mění použité registry procesoru nebo vkládá nadbytečné instrukce, které výsledek nijak neovlivní. Výsledkem je prakticky neomezené množství variant, které nemají žádný společný řetězec bajtů vhodný pro signaturu.

Slabinou polymorfismu je fakt, že škodlivé jádro zůstává po dešifrování vždy stejné. Spuštěný malware se v paměti objeví v nezměněné podobě, a to umožňuje jeho odhalení. Využívají toho některé detekční metody, jako například emulace kódu nebo prohledávání paměti.

Vedle klasického polymorfismu na straně klienta existuje také polymorfismus na straně serveru (server-side polymorphism). V tomto případě se kód nemění sám, ale nové varianty generuje útočníkův server. Mutační engine tak zůstává mimo dosah bezpečnostních analytiků, kteří mají k dispozici pouze jednotlivé varianty.

Historie a vývoj polymorfního malwaru

Za první známý polymorfní virus je považován virus 1260, který v roce 1990 vytvořil Mark Washburn. Vycházel ze zveřejněného zdrojového kódu staršího viru Vienna a přidal k němu šifrování s náhodně obměňovanou dešifrovací rutinou. Zašifrované tělo viru tak vypadalo při každé infekci jinak, přestože funkce zůstávala stejná.

Zásadní změnu přinesl rok 1992, kdy bulharský autor virů vystupující pod přezdívkou Dark Avenger zveřejnil takzvaný Mutation Engine (MtE). Šlo o modul, který mohli další autoři připojit ke svým virům, a získat tak polymorfismus bez vlastního vývoje. Polymorfismus se tím stal dostupnou technikou a tvůrci antivirových programů museli začít vyvíjet nové metody detekce, založené například na emulaci kódu.

S rozvojem internetu se polymorfismus přesunul od virů šířených na disketách k červům a trojským koním šířeným e-mailem a prostřednictvím webových stránek. Příkladem je červ Storm, který se objevil na začátku roku 2007 a šířil se v přílohách e-mailů s titulky o aktuálních událostech. Jeho kód se podle tehdejších analýz měnil zhruba každých 30 minut. Výrazně to omezovalo účinnost antivirových programů i systémů pro detekci průniku. Infikované počítače tvořily rozsáhlý botnet řízený prostřednictvím peer-to-peer sítě.

V následujících letech se polymorfní techniky staly běžnou výbavou široké škály malwaru, včetně bankovních trojských koní a ransomwaru. Součástí ekosystému kyberkriminality jako služby (Cybercrime as a Service, CaaS) se staly takzvané kryptory, které škodlivý soubor automaticky upravují tak, aby jej antivirové programy nerozpoznaly. Jejich provozovatelé nabízejí i opakovanou úpravu v případě pozdější detekce. Polymorfismus se tak proměnil v komerčně dostupnou službu.

Techniky polymorfismu a příbuzné typy malwaru

Schopnost měnit vlastní kód má několik stupňů, které se liší tím, jak velká část kódu se mění a jakým způsobem:

  • Zašifrovaný malware používá pro každou kopii jiný klíč, dešifrovací rutina ale zůstává stále stejná. Antivirové programy ji proto mohou použít jako signaturu.
  • Oligomorfní malware má k dispozici omezený počet předem připravených dešifrovacích rutin a při každé infekci náhodně vybere jednu z nich. Pro detekci stačí znát všechny varianty.
  • Polymorfní malware používá mutační engine, který pokaždé nově vygeneruje dešifrovací rutinu. Počet možných variant je prakticky neomezený, ale škodlivé jádro po dešifrování zůstává stejné.
  • Metamorfní malware nepotřebuje šifrování, protože v každé kopii přepíše celý svůj kód, včetně škodlivého jádra. Neobsahuje tak žádnou stálou část, dokonce ani v paměti po spuštění. Jeho vývoj je výrazně náročnější a detekce pro obránce obtížnější.

V praxi se pojem polymorfní malware často používá šířeji, pro jakýkoli malware, který mění svou podobu s cílem vyhnout se detekci. Polymorfismus se přitom kombinuje s dalšími technikami: obfuskací, která komplikuje čitelnost kódu, komprimací spustitelného souboru takzvanými packery nebo změnou názvů souborů, cest a dalších identifikátorů. Pokročilé varianty dokážou také rozpoznat, že běží v analytickém prostředí nebo virtuálním stroji, a v takovém případě se chovat neškodně.

Polymorfní malware a umělá inteligence

Generativní umělá inteligence snižuje nároky na tvorbu nových variant škodlivého kódu. Zatímco vývoj klasického mutačního enginu vyžadoval hluboké znalosti, velké jazykové modely (LLM) dokážou různými způsoby zapsat kód se stejnou funkcí. Lze proto očekávat, že polymorfní varianty budou vznikat rychleji, levněji a budou dostupné i méně zkušeným útočníkům.

Bezpečnostní výzkumníci už popsali první případy malwaru, který se za běhu obracel na jazykový model s žádostí o změnu vlastního kódu. Dosud zdokumentované případy ale ukazují, že AI zatím spíše zrychluje a zlevňuje tvorbu malwaru, než aby vytvářela kvalitativně nový typ hrozby.

Automatizace průběhu útoku

Polymorfismus je součástí širšího trendu, kterým je automatizace celého průběhu útoku. Pro jeho popis se často používá model Cyber Kill Chain, který v roce 2011 publikovala společnost Lockheed Martin. Převzala jej z vojenské doktríny a útok v něm rozdělila do sedmi fází: průzkum, příprava zbraně, doručení, zneužití zranitelnosti, instalace, řízení a kontrola (command and control), dosažení cíle. Obráncům model pomáhá přerušit útok v co nejranější fázi.

Jednotlivé fáze se dlouho automatizovaly odděleně, například skenování zranitelností, rozesílání phishingových zpráv nebo právě generování polymorfních variant malwaru. Rozhodování mezi fázemi ale zůstávalo na lidech. S nástupem agentní AI se tato hranice začíná posouvat. Už byly zdokumentovány kampaně, ve kterých AI samostatně vykonala většinu operací útoku a lidé zasahovali jen v několika rozhodovacích bodech. Plně autonomním útokům zatím brání chyby a takzvané halucinace modelů.

Automatizace útoku zkracuje dobu mezi prvotním průnikem a dosažením cíle a umožňuje útočníkům vést více kampaní současně. V kombinaci s polymorfním malwarem, jehož varianty se mění rychleji, než je obránci stihnou popsat, tak vzniká tlak na nasazení stejně rychlé automatizované obrany.

Detekce a obrana polymorfního malwaru

Proti polymorfnímu malwaru nestačí detekce založená na signaturách, protože každá nová varianta vypadá jinak. Obrana se proto nezaměřuje na to, jak kód vypadá, ale co dělá. Funkce malwaru se totiž, na rozdíl od jeho podoby, mění jen málo.

  • Behaviorální analýza sleduje chování programů a hledá podezřelé vzorce, například hromadné šifrování souborů, vkládání kódu do jiných procesů, změny nastavení systému nebo neobvyklou síťovou komunikaci.
  • Heuristická analýza a emulace zkoumají strukturu kódu a jeho chování v kontrolovaném prostředí. Emulace může polymorfní malware přimět k dešifrování, a odhalit tak jeho stálé jádro.
  • Prohledávání paměti využívá nutnosti dešifrování škodlivého kódu před jeho spuštěním v paměti.
  • Sandboxing spouští podezřelé soubory v izolovaném prostředí a vyhodnocuje jejich chování dříve, než se dostanou k uživateli.
  • Strojové učení dokáže rozpoznat společné rysy různých variant, které se nedají zachytit jednoduchou signaturou.
  • Nástroje EDR a XDR kombinují tyto metody na koncových zařízeních i v celé infrastruktuře a umožňují na zjištěné chování rychle reagovat, například izolací napadeného zařízení.

Technickou detekci je třeba doplnit preventivními opatřeními, která omezují možnosti šíření malwaru bez ohledu na jeho podobu. Patří mezi ně pravidelné aktualizace systémů a aplikací, filtrování e-mailů a webového provozu, povolování jen schválených aplikací, princip minimálních oprávnění, vícefaktorová autentizace a segmentace sítě. Pokud malware přesto do systému pronikne, omezují tato opatření jeho dopad a mohou zabránit eskalaci oprávnění. Důležitou roli hraje také vzdělávání uživatelů, protože velká část malwaru se stále šíří prostřednictvím phishingu.

Je-li použita automatizovaná reakce na incidenty, může obrana reagovat stejně rychle jako automatizovaný útok. Rychlost odhalení a izolace napadeného zařízení bývá totiž u polymorfního malwaru důležitější než rozpoznání konkrétní varianty.

Budoucí vývoj polymorfního malwaru

Polymorfismus se z techniky vyhrazené zkušeným tvůrcům malwaru stává běžnou vlastností škodlivého kódu. Přispívají k tomu kryptory nabízené formou služby i generativní AI, která dokáže rychle a levně vytvářet nové varianty. Lze proto očekávat další nárůst počtu jedinečných variant malwaru, které se objeví jen jednou nebo několikrát a pak zcela zmizí.

Útočníci se přitom vydali směrem k propojení polymorfního kódu s automatizací celého průběhu útoku pomocí AI agentů. Na straně obrany bude dále klesat schopnost detekce podle signatur a poroste význam behaviorální analýzy, strojového učení a automatizované reakce.