Rootkit a hálókártyában

 ( trey | 2010. november 29., hétfő - 14:01 )

Guillaume Delugré biztonsági szakértő, aki a Sogeti European Security Expertise Center-nek (ESEC) dolgozik. Delugré nemrég előadást tartott hack.lu rendezvényen a Broadcom Ethernet NetExtreme hálókártya-család firmware-ének visszafejtéséről, módosításáról, az ehhez használható eszközökről, illetve saját firmware készítéséről.

A Broadcom adott ki ehhez a kártyacsaládhoz specifikációt, dokumentációt (ami ugyan nem teljes és itt-ott pontatlan), továbbá rendelkezésre áll a kártya linuxos eszközmeghajtó-programja (tg3). A szakember ezeket az erőforrásokat felhasználva létrehozott egy eszközkészletet, amelynek segítségével piszkálni tudta a hálókártya firmware-ét. Ezzel mi volt a célja? Hogy olyan rootkit-et készítsen, ami a megszokottaktól eltérően nem az operációs rendszeren belül működik, hanem a hálózati kártyában foglal helyet.

A dolog érdekessége, hogy úgy lehet a hálózati kártyába rootkit-en csempészni, hogy annak működése teljes mértékben észlelhetetlen az operációs rendszer számára.

Az alábbi demó azt mutatja be, hogy mit lehet kezdeni egy custom firmware-rel:

Az ötlet nem új, korábban is voltak már próbálkozások rootkit hasonló elrejtésére. További részletek itt. Az előadás diái itt.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

jönnek a halokartya firmware-be epitett webszerverek? :)

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Az intel AMT kb 4 eve tudja pont ezt, standby modban is. Ott mondjuk elegge hangsulyos vedelem van a 3rd party firmware-ek betoltese ellen, de varom, hogy mikor jon ki rootkit ra. :)
---
Internet Memetikai Tanszék

újszülöttnek minden vicc új :)

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Basszus errol olvastam mar, es el is felejtettem. :) Pedig de jol jott volna par honapja, ha bele tudtam volna debuggerrel nezni a firmware-be. Voltak ott kicsit furan implementalt metodusok a ws-man API-ban.

Amugy meg egyebkent egy 3rd party AMT firmware-rel eleg kenyelmes kis kernel es driver debuggert lehetne csinalni, szoval volna ennek bekes celu hasznalati esete is.
---
Internet Memetikai Tanszék

Mégis a wintel modell híveinek volt igazuk. :-)
Erős CPU-ra kell aggatni minden feladatot egyre butább perifériák mellett. Így minden kód a fő operációs rendszer részeként vagy felette fut és a védelmet is jobban meg lehet tervezni.

Ezek utan ki fog bizni olyan hw-ban, amihez elerheto a specifikacio, dokumentacio es a linuxos driver?

Nyilván ez a probléma gyökere.

Nekem nem baj, ha ezek leteznek, csak az uzenete egyeseknek az, hogy burkolozzunk inkabb a zart cuccokba :)

"Ezek utan ki fog bizni" -> "egyeseknek"

Azért ez már haladás :)

es tenyleg

A napnal is vilagosabb kell hogy legyen barkinek, aki egy kicsit is technikai gondolkodasu, hogy ha meg lehet piszkalni a egy HW FW-et, akkor az ilyen csunya dolgokra lehet kepes. Mi ezen a meglepo? Ha fontos a biztonsag, megbizhato helyrol kell HW-t beszerezni, esetleg ellenorizni a FW digitalis alairasat (felteve, hogy van neki). Mintha azt irta volna valaki, hogy miutan egy szerelo megpiszkalta a kocsin a fekeket, nem mukodott tobbe az ABS. Perszehogy minden tizedik autoszerelo meg tudja igy piszkalni a fekeket. Most ezert zarja a gyarto a fekrendszert wertheim zarral, hogy csak par kivalasztott tudja ellenorizni es javitani a fekeket?

Ezt lehetne mondjuk arra használni, hogy ha ellopják a laptopomat, akkor megtaláljam? Mert akkor kellene, amíg el nem lopják :D

Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش

Ez így nem valami meglepő.

Az IOMMU, ami képes virtuális memóriát kezelni a PCIe chipek felé, hogy áll a mai gépekben? Mert az bizony elejét venne annak, hogy ezzel könnyű legyen ring0- backdoor-t telepíteni.

Újabb procikban már van rá támogatás. Intel VT-d (Virtualization Technology for Directed I/O) elnevezéssel illeti, az AMD meg AMD-Vi-ként.

Az IOMMU az nem chipset specifikus?

Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش

is

AMD procin tudtommal nem. És gondolom olyan Intelen sem már, amiben benne van a memóriavezérlő.

--
Wir sind erfaßt, sind infiziert,
Jedes Gespräch wird kontrolliert.

"Hogy olyan rootkit-et készítsen, ami a megszokottaktól eltérően nem az operációs rendszeren belül működik, hanem a hálózati kártyában foglal helyet."

Bravó, csak minél több segítséget a szemét, tetű embereknek! +!%{;><+!% >-(

Nem neztem meg a slideokat de a videon kb csak az latszik, hogy a firmware ha megadott ttl-t kap icmpn akkor valaszoljon es nyilvan ne engedje az OSnek at a framet. A rootkit az lenne, ha packet triggerre tudna a firmware kodot futtatni az OS-en, nem fw contextben, nem?

--
http://bsdbased.com

ez Proof of Concept, azaz demonstráció.
nyilván nem fog támadó kódot írni neked.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

nemfeltetlenul kell progit futtatni az OS gepen, boven eleg, ha pl az ftp/ssh/pop3/akarmi login packeteket elkuldi egy megadott helyre

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Veheheh, nemi kezugyesseggel akarmit el lehet kuldeni mashova is.
Sot, bejovo es sikeres smb/ftp/egyeb credentialok lemasolasaval elkezdheti a firmware lekerdezni a gepet, s az adatot attolni egy masikra, igy kivulrol ugy nez ki, mintha az aldozat maga toltene fel az adatokat :)

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

Ez azért annyira nem para, egyébként is nagyon kevés olyan hely van, ahol érdemes megbízni a hálózatban. Amihez hálózaton cleartext jelszóval hozzá lehet férni, az nem is fontos.

Az aggasztóbb, hogy a DMA-val kb a teljes főmemóriához hozzáférése van a firmware-nek, ha nincs aktív IOMMU.

azt vágod, hogy egy rakat protokoll challenge-et meg hash-eket küld, hogy azé' mégse cleartext-et küldjön, de amint te kicsit megpiszkalod a klienst hogy az altalad megadott hasht kuldje, maris helyben vagy? (mysql, ntlm például)

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

AKA. man in the middle
---
Internet Memetikai Tanszék

Ezek szerint minden kártya ami a gépbe van dugva és áramot kap, képes a PCI-bus minden adatforgalmát olvasni, akkor is, ha az oprendszer nem használja és nincs mondjuk a modulja betöltve sem? Basszus, kiadhat a merevlemeznek is olvasásra parancsot, nem?
Ez nagyon csúnya összeesküvés elméleteket táplálna.

Tűzfal egy részét, mondjuk amit kapásból ki akarok zárni, nem lenne érdemes a hálókártyába pakolni?

hat a PCI busz mar csak ilyen... az AGP-s kartya meg meg a rendszer RAM-ot is tudta irni-olvasni.

sot ha jol emlexem par eve a firewire-rol derult ki hasonlo.

A'rpi

aha, a firewire azert volt anno olyan gyors, mert kozvetlenul pampogott a memoriavezerlonek... egy egszeru firewire eszkozzel ki tudod olvasni a teljes fizikai memoriat a hoston.

--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.

wow.

Ez volt már valamely filmben is.

Ez meglep. Filmekben általában teljesen inkompetens baromságok szoktak lenni. Kedvencem a Swordfish. :-)