» »

Zla koda v grafičnih procesorjih

Slashdot - Z razvojem grafičnih procesorjev do te mere, da lahko z njimi obdelujemo kakršnekoli podatke (GPGPU), se povečuje tudi možnost njihove uporabe za skrivanje zle kode in uporabo zmogljivosti grafičnih procesorjev v botnetih, ugotavljajo raziskovalci v članku GPU-Assisted Malware.

Z uporabo prevajalnikov, kot je Nvidiin CUDA, se mora le majhen del izvršilne kode izvajati v centralnem procesorju in domovati v centralnem pomnilniku. Tipično gre za odsek kode z navodili za kopiranje v grafični pomnilnik in zagon sekvence za dekodiranje, medtem ko je vsa ostala koda prevedena in izvedena v grafičnem procesorju. GPU in CPU si po potrebi podajata nadzor nad podatki. Program lahko ima tudi ustrezne podprograme za različne vrste grafičnih kartic - samo s podporo za Nvidia CUDA in ustrezni AMD-jev SDK je moč zajeti praktično celoten trg.

Tradicionalni pripomočki za lovljenje zle kode so optimizirani za platformo IA-32, mnogo slabše pa se odrežejo pri iskanju izvajajoče se kode v grafičnem procesorju. Obremenitev centralnega procesorja lahko spremljamo v realnem času, s čimer lahko zaznamo sumljivo aktivnost, medtem ko za grafične procesorje te možnosti ni. Nadalje mora zla koda uporabljati že poznane trike, s katerimi se izogiba prepoznavi - razpakiranje (unpacking) in zagonski polimorfizem (runtime polymorphism). Če je koda v izvršilni datoteki šifrirana in se po zagonu razpakira z uporabo nekega algoritma, jo je težko odkriti, če ni aktivna. Tudi aktivna koda pa se lahko skriva tako, da program postopoma dešifrira odseke, ki jih izvaja, in sproti šifrira nepotrebne dele programa. Ključe lahko zla koda skrije v GPU. Še več, obstajajo tudi algoritmi, ki se na grafičnem izvajajo občutno hitreje kot na centralnem procesorji, tako da je iskanje tako zamaskiranih programov s klasičnimi postopki neučinkovito (saj koristijo CPU).

V prihodnosti se torej moramo zaščititi pred zlo kodo, ki bo na nas prežala iz grafičnih procesorjev. Avtorji v članku razmišljajo, kje vse se bodo našle uporabe teh tehnik. Z razvojem GPGPU bodo namreč grafične kartice še zmogljivejše. Tako bo moč zgraditi zelo zmogljiv botnet za razbijanje gesel, saj je to področje, kjer so GPU-ji zelo hitri. Še bolj prenikava je ideja ugrabljanja framebufferja, kamor je neposredno pisanje za zdaj še prepovedano. Ko bo to omogočeno (zaradi večje zmogljivosti v igrah), bo lahko zlobna koda na ravni GPU-ja prikazovala neškodljivo kodo v naslovni vrstici brskalnika, medtem ko boste v resnici obiskovali škodljivo stran, s čimer bo ribarjenje dobilo povsem novo dimenzijo. Za razliko od centralnega procesorja GPU podpira le sekvenčno obdelovanje podatkov in ni večopravilen. Tako bi se lahko ob izvajanju zlobne kode, ki bi zasedla vse cikle, zgodilo tudi, da bi zaslon enostavno mrknil.

6 komentarjev

Izi ::

Ampak GPU-ji niso tako združljivi med seboj kot centralni procesorji. GPU-ji delujejo prek driverjev, ki pa so različni za vsako firmo kartic.
Torej bomo imeli 3 različne zlobne kode za GPU. Za Nvidio, Intel in AMD (bivši ATI), vsaka zlobna koda se bo lahko izvajala samo na enem izmed GPU-jev. Podobno kot CUDA ali fizika v igrah.
Ali bo v primeru, da zlobna koda ne bo GPU strojno podprta lahko ta bolj počasi izvedla na CPU? :D

Senitel ::

Pa saj imaš DirectCompute in OpenCL... Zakaj bi rabil 3 različne verzije?

WarpedOne ::

Hmm, divja ideja: kak pa če bi raje tut antivirusi laufal na GPUjih? Naj vsake tolk skopirajo cel ram na grafično in se potem ubadajo z vsebino tam. Če pa kej najde pa naj užge paniko preko kazga HW interupta in potegne ročno. Nenadoma antivirus ne obremenjuje več glavnega dela in glavni razlog zakaj folk ne mara tega laufat nonstop -odpade.
What do you Think to Know?
Why do you Think you Know it?

FireSnake ::

WarpedOne: moram reči, da se mi tvoja ideja zelo dopade :D

Imet giga hitrega RAMA, ki je zaseden le takrat ko igraš igre, pa še takrat ni povsem zaseden.
" In The Sound Of Silence Time Is Standing Still" " You Have To Learn To Crawl Before You Learn To Walk"

RejZoR ::

Teorija je eno, praksa pa drugo. In lahko vam zagotovim, da tega ne bo šel nihče delat. Ker je enostavno preveč spremenljivk in premajhen userbase.
Kaj ti bo malware, ki ne bo delal na 3/4 sistemih? Še niste dojel zakaj je tolk mal sranja na Linux in Mac platformi. Ker sta v taki manjšini, da se zanju ne splača pisat stvari, ker ven ne dobiš željenega rezultata.
Linux ne, ker ga itaq furajo entuziasti in vejo kako se stvarem streže, Mac je pa neka X platforma, ki živi sama zase. Edino kjer je računica je masovni svet Windowsev, kjer najdeš vse od noobov, povprečnih userjev pa do profijev.
Ampak še vedno, dokler ima not x86 CPU bo koda delala na vseh računalnikih, pa naj bo to zastareli Celeron 333MHz ali pa najnovejši Core i7. Edino kar mora pisec pazit je združljivost z OS-om, kar za večino ni problem. Vseeno lažje kot pa bit odvisen od strojne opreme. In tud če spišeš nekaj kar teče samo na WinXP je userbase še vedno tako ogromen, da se splača.

Skratka v teoriji se sliši oh in sploh, nekdo bo izdal kaj konceptnega, dlje od tega pa ne bo šlo dokler se GPGPU ne razširi in povsem standardizira. Pa še potem je vprašljivo.
RejZoR's Flock of Sheep @ rejzor.wordpress.com

denial ::

+1 @RejZoR. Zakaj komplicirat dokler phishing odlično deluje :D. Podobne zadeve se ponavadi ne propagirajo izven laboratorijskih okvirov.
SELECT finger FROM hand WHERE id=3;


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Microsoft dobil patent za z GPU pospešeno enkodiranje videa (strani: 1 2 )

Oddelek: Novice / Industrijska lastnina
575152 (3439) Jst
»

Zla koda v grafičnih procesorjih

Oddelek: Novice / Grafične kartice
61828 (775) denial
»

Manjši tudi Xbox 360?

Oddelek: Novice / Konzole
82221 (860) PIPI
»

Intel v Wii 2, Cell odhaja iz PlayStationov

Oddelek: Novice / Konzole
133073 (2049) PIPI
»

AMD in Intel uspešnejša od nVidie

Oddelek: Novice / Rezultati
112875 (1903) SavoKovac

Več podobnih tem