si to představuji jako klasický boot virus.
Asi tak, že po zapnutí pc / inicializaci disku, je první dotaz systému na boot sector, na tento požadavek podvrhne firmware disku falešný/zavirovaný kod, který se spustí a usadí v RAM a tento kod následně volá standartní boot sector. Při tomto druhém a dalším čtení boot sectoru už disk dává korektní data.
Firmware disku také může při startu opakovaně přepisovat boot sector správným a špatným kodem, boot sector je relativně jednoduchá struktura, pamětníci vědí jak se daly snadno a rychle infikovat a opravit zavirované diskety. Stačí databáze cca 40 typických bootsectorů, od MS DOSu až po Grub.
Virus pak bude mít funkce klasického keylogeru, který bude na uživatele práskat aktivity. Data pak ven tečou klasicky přes internet v rámci systému.
Záznam url adres, emailových adres, hesel a co jste natukali do klávesnice má pár kb. Nebude přenášet ven vaše porno filmy, ale hesla, aby se podívali na vše co kam posílátea hlavně heslo do TrueCryptu.
Cca dva roky nazpět jsem testoval keylogger Ardamax, cca 5 MB kodu, a ono si to umí i zapnout mikrofon a ukládat zvuky, zapnout webovku a dělat opakovaně snímky , a všechny tyhle data na pozadí posílat na email, s nastavením z vašeho Outlooku. Nemáte šanci si toho všimnout, minimální datový provoz a ještě na obvyklé domény.
Keylogger ale běží v napadeném systému a využívá jeho služby, zatímco boot virus běží před spuštěním systému, a tak funguje jen na systémech, které se nepřepínají do chráněného režimu, protože by musel mít ovladače na veškerý HW, který chce používat a navíc řešit virtualizaci spuštěného (neznámého) systému.
Proč bych to dělal tak složitě? Linux zkompromituju třeba tak, že můj škodlivý kód v boot sektoru natáhne z boot partition image jádra a před jeho spustěním opatchuje nějakou dostatečně často volanou funkci kernelu (třeba kmalloc), kde si můžu dělat cokoliv v nejvyšší úrovni oprávnění. Windows půjde nabourat úplně stejně.
Tohle může dělat rovnou firmware disku a není potřeba na to podvrhávat boot sector. Navíc patchovat zkomprimované neznámé jádro asi nebude zrovna práce pro pár kilobajtů boot sectoru. Ale jo, teoreticky by to mohlo flashnout jiný firmware síťovky a vypnout IOMMU. Přestože by takový útok šel provést snáz rovnou dodáním příslušně upravené síťovky, tam alespoň víte, jaká síťovka tam je a jaký firmware potřebuje.
Patchovat neznáme jádro je triviální, protože linux s podporou modulů exportuje svoje symboly:
cat /proc/kallsyms | grep mempool_kmalloc
ffffffff810b61c2 T mempool_kmalloc
Jde to i bez symbolů, ale už složitěji, musí se použít nějaká heuristika. Komprese není problém, je to zkomprimované nějakým z běžných algoritmů a patchovalo by se až po dekompresi.
Jenze to, ze ti bezi zmenene jadro, se da pomerne snadno odhalit. Ve zpravicce je napsano, ze je to velmi obtizne odhalitelne prave proto, ze to nenapada system. I pomerne hloupe antiviraky pro widle si umi zkontrolovat systemove knihovny proti databazi hashu. A disk nemuze vedet, jestli danou knihovnu cte system, protoze ji chce spustit nebo antivirak, protoze ji kontroluje. Stejne tak se da prekontrolovat i kdyz je v pameti.