Savremeni veb sajtovi postavljaju sve veće zahteve za računarskom snagom računara. Iz tog razloga, veb pretraživači takođe imaju pristup računarskim kapacitetima grafičke kartice (Graphics Processing Unit ili GPU) pored CPU-a računara već nekoliko godina.
Skriptni jezik JavaScript može da koristi resurse GPU-a preko programskih interfejsa kao što su VebGL i novi VebGPU standard. Međutim, ovo krije rizike. Koristeći veb lokaciju sa zlonamernim JavaScript-om, istraživači sa Instituta za primenjenu obradu informacija i komunikacije na Tehnološkom univerzitetu u Gracu (TU Graz) uspeli su da špijuniraju informacije o podacima, pritiskom na tastere i ključevima za šifrovanje na tuđim računarima u tri različita napada preko VebGPU-a.
VebGPU je trenutno još uvek u aktivnom razvoju, ali ga pretraživači kao što su Chrome, Chromium, Microsoft Edge i Firefok Nightli već podržavaju. Zahvaljujući većoj fleksibilnosti i modernizovanom dizajnu u poređenju sa VebGL-om, interfejs će biti široko korišćen u narednim godinama.
„Naši napadi ne zahtevaju od korisnika interakciju sa veb-sajtom i oni se odvijaju u vremenskom okviru koji im omogućava da se izvode tokom normalnog surfovanja internetom. Svojim radom želimo jasno da ukažemo proizvođačima pretraživača da moraju da se pozabave pristup GPU-u na isti način kao i drugim resursima koji utiču na bezbednost i privatnost“, kaže Lukas Giner sa Instituta za primenjenu obradu informacija i komunikacije pri TU Grac.
Istraživački tim je izvršio svoje napade na nekoliko sistema u kojima su instalirane različite grafičke kartice NVIDIA i AMD — korišćene su NVIDIA kartice iz GTKS 1000 serije i RTKS 2000, 3000 i 4000 serije, dok su korišćene AMD kartice iz Serija RKS 6000. Istraživački rad i prateći rad biće predstavljeni na ACM Asia Conference on Computer and Communications Securiti od 1. do 5. jula u Singapuru.
Za sve tri vrste napada, istraživači su koristili pristup keš memoriji računara dostupnoj preko VebGPU-a, koji je namenjen posebno brzom i kratkoročnom pristupu podacima od strane CPU-a i GPU-a. Ovaj sporedni kanal im je pružio meta-informacije koje su im omogućile da donesu zaključke o informacijama koje su relevantne za bezbednost.
Tim je mogao da prati promene u kešu tako što ga je sam popunjavao koristeći kod u JavaScript-u preko VebGPU-a i nadgledao kada su njihovi sopstveni podaci uklonjeni iz keša putem unosa. Ovo je omogućilo da se relativno brzo i precizno analiziraju tasteri.
Preciznijim segmentiranjem keša, istraživači su takođe mogli da iskoriste drugi napad da postave sopstveni tajni komunikacioni kanal, u kojem su popunjeni i nepopunjeni segmenti keša služili kao nule i jedinice i tako kao osnova za binarni kod. Koristili su 1.024 ovih segmenata keša i postigli brzinu prenosa do 10,9 kilobajta u sekundi, što je bilo dovoljno brzo za prenos jednostavnih informacija. Napadači mogu da koriste ovaj kanal za izdvajanje podataka do kojih su mogli da dođu koristeći druge napade u delovima računara koji su isključeni sa interneta.
Treći napad je bio usmeren na AES enkripciju, koja se koristi za šifrovanje dokumenata, veza i servera. I ovde su napunili keš memoriju, ali sa sopstvenom AES enkripcijom. Reakcija keša omogućila im je da identifikuju mesta u sistemu koja su odgovorna za šifrovanje i pristupe ključevima napadnutog sistema.
„Naš AES napad bi verovatno bio nešto komplikovaniji u uslovima u realnom vremenu jer mnoge enkripcije rade paralelno na GPU-u“, kaže Roland Černi iz Instituta za primenjenu obradu informacija i komunikacije pri TU Grac.
„Ipak, uspeli smo da pokažemo da takođe možemo veoma precizno da napadnemo algoritme. Naravno, unapred smo saopštili nalaze našeg rada proizvođačima pretraživača i nadamo se da će oni uzeti u obzir ovo pitanje u daljem razvoju VebGPU-a.“