Sociálne siete

SecIT.sk na Facebooku SecIT.sk na Google+ SecIT.sk na Twitteri

Podporte nás


V prípade, že Vám obsah nášho portálu niekedy nejakým spôsobom pomohol, či bol pre Vás prínosom prosím podporte jeho chod ľubovoľnou čiastkou. Ďakujeme!

Štítky

Vyhľadávanie

You are here

Domov
Upozornenie: Obsah je licenčne chránený a bez písomných súhlasov autora článku a vlastníka webovej stránky nesmie byť v žiadnej forme ďalej kopírovaný a šírený v pôvodnom, či v akokoľvek upravenom stave.

BIOS rootkit

Rootkity napadající jádro operačního systému a bootkity se již staly celkem známým pojmem. Existují nástroje, které většinu této havěti nacházejícící se "in the wild" dokáží nalézt a zničit. Člověk by řekl, že je nyní na autorech malware, aby přišli opět s něčím unikátním. A opravdu - začíná se objevovat stále více informací o tzv. BIOS rootkitech - rootkitech, které se nainstalují do BIOSu a odtud se snaží kontrolovat celý počítač. V tomto článku se pokusíme zhodnotit obtížnost vytvoření takového rootkitu a probereme si výhody a nevýhody zákeřné modifikace BIOSu.

V tomto článku se budeme zabývat následujícími aspekty BIOS rootkitů:

  • Struktura BIOSu
  • Jak infikovat BIOS
  • Prostředí, ve kterém je kód BIOSu vykonáván
  • Obtížnost ladění

Struktura BIOSu

Běžně se říká, že BIOS (Basic Input Output System - základní systém pro vstup a výstup) je uložen v paměti ROM (Read-Only Memory - paměť, ze které lze pouze číst), čímž vzniká mýtus, že kód BIOSu přepsat nelze. To bohužel není pravda - paměť s BIOSem může zvládnout třeba jen omezený počet zápisů, ale zapisovatelná u dnešních strojů je.

BIOS je tvořen sadou modulů uložených v čipu na základní desce. Protože paměť tohoto čipu není velká (pohybuje se v rámci stovek kilobajtů), jednotlivé moduly jsou komprimovány.

Po zapnutí počítače se moduly jeden po druhém dekomprimují a provedou inicializaci hardwarových součástí. Po dokončení inicializace a provedení POST sekvence je načten první sektor zařízení, ze kterého se má podle nastavení bootovat, a předá se mu řízení. Následně je zaveden operační systém a s PC pak můžeme normálně pracovat.

Ne všechen kód BIOSu je komprimován. Například rutina, která zajišťuje dekompresi modulů, z principu komprimována být nemůže. A protože je navíc volána několikrát během inicializace hardwaru, je pro útočníka pěkným místem, kam může umístit svůj kód. Výhodou volby této rutiny je také fakt, že se její kód při updatech BIOSu málokdy mění.

Infekce

Infekci BIOSu lze tedy provést například následujícím postupem:

  • Dumpnout obsah BIOSu na disk
  • Upravit dekompresní rutinu
  • Náhrát upravený BIOS opět do čipu na základní desce

Splnění prvního a třetího bodu je závislé na hardwaru počítače, což přináší větší obtížnost celého problému. Existují však i opensource nástroje (například Flashrom), které umožňují dumpnout a flashnout (přepsání) BIOS na většině používaných hardwarových konfigurací. Útočník může využít zdrojových kódů těchto nástrojů a tím si věc velmi usnadní.

Úprava dekompresní rutiny podle mne nepředstavuje příliš tvrdý oříšek. Útočník musí pochopit, jak dekompresní rutina funguje, na což mu postačí techniky reverzního inženýrství. Úprava kódu bude v podobném duchu jako se dnes (u malware celkem běžně) modifikuje jádro systému, aby zajistilo "ochranu" záškodníka.

Prostředí

Kód BIOSu je vykonáván v reálném režimu procesoru. Může tedy bez problémů adresovat dolní megabajt fyzické paměti. Prostředí je téměř identické s prostředím operačního systému MS-DOS, jenž Windows dokáže slušně emulovat. Díky tomu je ladění kódu BIOS rootkitu o něco snadnější, protože lze všechny jeho části krom vlastního infekčního kódu testovat jako běžné DOSové aplikace. DOSové aplikace mohou s okolím komunikovat buď přes přerušení DOSu (INT 21h), které samozřejmě BIOS rootkit k dispozici mít nebude, nebo používat přímo služeb BIOSu. Služby BIOSu jsou navěšeny na několika přerušeních a obsahují například tyto funkce:

  • Práce s obrazovkou (INT 10h)
  • Standardizované rozhraní pro práci s pevnými disky (INT 13h)
  • Práce s klávesnicí (INT 16h, INT 9h)
  • Časovač (INT 8h, INT Ch)

Samozřejmě si útočník musí dávat pozor na to, že jeho kód bude pravděpodobně vykonáván v době, kdy celý BIOS ještě nebyl inicializován, a tudíž některé služby nemusí být ještě k dispozici. Pokud však je infikována dekompresní rutina, může si útočník "počkat", až bude BIOS ve stavu "dostatečné inicializace". Jak jsme si již řekli, dekompresní rutina se volá několikrát během inicializace.

BIOS rootkit tedy může využívat poměrně silných prostředků. Využívání služeb BIOSu není sice pohodlné, na druhou stranu s dostatečnou dokumentací jej podle mého názoru zvládne téměř každý. Rootkit může například upravit obsah pevného disku s operačním systémem ještě dříve, než dojde k zavádění jádra systému. Představme si takový malý rootkit, který během inicializace BIOSu zapíše na pevný disk kód MBR rootkitu jako je například Sinoval. Uživatel se pak může snažit MBR rootkit odstranit běžnými postupy, které ovšem všechny selžou, protože se malware objeví znovu po každém restartu počítače a bude tak činit, dokud nedojde k přepsání BIOSu.

Zajímavou vlastností BIOS rootkitu je také nezávislost na operačním systému. Teoreticky by takový malware mohl obsahovat speciální kód pro infekci jak Windows, tak i třeba Linuxu či jiného OS. Schopnost přežití formátování disku či reinstalaci OS triviálně plyne z toho, že rootkit je uložen v BIOSu a jeho kód se vykonává těsně po zapnutí počítače.

Z příkladu popsaného výše vyplývá, že BIOS rootkity může být velmi těžké odstranit, protože nemusíme vůbec pojmout podezření. To je ovšem charakteristický znak rootkitů - víme-li, kde v systému se rootkit nachází, jeho odstranění je triviální záležitostí. Musíme však nejdříve pojmout podezření a potom rootkit vystopovat.

Detekce

Útok BIOS rootkitu může být detekován například při pokusu o přepsání BIOSu. Je pravda, že není mnoho softwarových balíků, které tuto událost dokáží zachytit. Mezi ně patří například produkt od společnosti Commodo Research Group. Přítomnost rootkitu v BIOSu půjde pravděpodobně detekovat analýzou obsahu paměti čipu na základní desce. Otázka je, zda rootkit nemůže zabránit flashování BIOSu. Pokud zní odpověď "ANO" (k čemuž se příkláním), nepůjde takový rootkit v podstatě odstranit jinak než výměnou čipu.

Závěr

V článku jsme si řekli základní informace o BIOS rootkitech a dozvěděli jste se mé názory na tuto problematiku. Myslím si, že implementace opravdového BIOS rootkitu na sebe již nedá dlouho čekat - na jaře tohoto roku byly schopnosti BIOS rootkitů demonstrovány, zdrojové kódy však myslím uvolněny nebyly (jako se stalo v případě výzkumu ohledně přepisu hlavního zaváděcího sektoru (MBR) a vzápětí se objevila vlna MBR rootkitů jako Sinoval).

Pokud stejně jako já získáte názor, že infekce BIOSu není v principu nic složitého (čímž nechci říci, že praktická implementace nezabere mnoho dní, ale pouze to, že se zde neskrývá žádné nečekané překvapení), můžete se začít ptát, zda obodbným způsobem nelze infikovat i firmware dalších zařízení, jako například videokarty či řadiče pevného disku. Podle neoficiálních informací se opět nejedná o principiálně složitý úkol. Pravděpodobně ale bude třeba více studovat dokumentace a specifikace týkající se zařízení, jehož firmwarem bychom se chtěli zabývat.

Otázkou samozřejmě zůstává, jak moc se zatím vyplatí vytvářet něco relativně nového (virus ničící BIOS už zde byl), když staré dobré techniky jsou díky povaze většiny uživatelů počítačů stále efektivní. Jak nám jeden přednášející řekl: "O peníze jde totiž až v první řadě."

Odkazy a zdroje

Core BIOS Presentation Flashrom Počítačový virus CIH - Černobyl


Podporte nás


Páčil sa Vám tento článok? Ak áno, prosím podporte nás ľubovoľnou čiastkou. Ďakujeme!


Security-portal.cz Hoax.cz Soom.cz