Tim istraživača sa Univerziteta Wisconsin-Madison postavio je u Chrome web trgovinu proof-of-concept ekstenziju koja može ukrasti plaintext lozinke iz izvornog koda web stranice.
Ispitivanje polja za unos teksta u web pretraživačima otkrilo je da grubi model dozvola koji podupiru Chrome ekstenzije krši principe najmanjih privilegija i potpunog posredovanja.
Osim toga, istraživači su otkrili da brojne web stranice s milionima posjetitelja, uključujući neke Google i Cloudflare portale, pohranjuju lozinke u otvorenom tekstu unutar HTML izvornog koda svojih web stranica, omogućavajući ekstenzijama da ih dohvate.
Izvor problema
Istraživači objašnjavaju da se problem odnosi na sistemsku praksu davanja ekstenzijama pretraživača neograničenog pristupa DOM stablu sajtova na koje se učitavaju, što omogućava pristup potencijalno osetljivim elementima kao što su polja za unos korisnika.
S obzirom na nedostatak bilo kakve sigurnosne granice između ekstenzije i elemenata stranice, prvi ima neograničen pristup podacima vidljivim u izvornom kodu i može izdvojiti bilo koji njegov sadržaj.
Dodatno, ekstenzija može zloupotrijebiti DOM API za direktno izdvajanje vrijednosti unosa kako ih korisnik unese, zaobilazeći bilo kakvu obfuskaciju primijenjenu od strane stranice da zaštiti osjetljive ulaze i programski kradući vrijednosti.
Manifest V3 protokol koji je Google Chrome uveo, a koji je usvojila većina pretraživača ove godine, ograničava zloupotrebu API-ja, zabranjuje ekstenzijama da dohvate kod koji se nalazi na daljini koji bi mogao pomoći da se izbjegne otkrivanje, i sprječava korištenje eval izjava koje dovode do proizvoljnog izvršavanja koda.
Međutim, kako objašnjavaju istraživači, Manifest V3 ne uvodi sigurnosnu granicu između ekstenzija i web stranica, tako da problem sa skriptama sadržaja ostaje.
Učitavanje PoC-a na Web Store
Kako bi testirali Googleov proces pregleda Web Store-a, istraživači su odlučili kreirati proširenje za Chrome sposobno za napade hvatanjem lozinke i pokušati ga prenijeti na platformu.
Istraživači su kreirali ekstenziju koja se predstavlja kao pomoćnik zasnovan na GPT-u koji može:
- Snimiti HTML izvorni kod kada se korisnik pokuša prijaviti na stranicu pomoću redovnog izraza.
- Zloupotrijebiti CSS selektore za odabir ciljnih polja za unos i izdvajanje korisničkih unosa pomoću funkcije ‘.value’.
- Izvršiti izmjenu elemenata da zamijeni obfuscirana polja zasnovana na JS-u nesigurnim poljima lozinke.
Ekstenzija ne sadrži očigledan maliciozni kod, tako da izbjegava statičku detekciju i ne preuzima kod iz vanjskih izvora (dinamička injekcija), tako da je kompatibilna s Manifest V3.
Ovo je rezultiralo time da je ekstenzija prošla pregled i bila prihvaćena u Google Chrome web trgovini, tako da sigurnosne provjere nisu uspjele uhvatiti potencijalnu prijetnju.
Tim je slijedio etičke standarde kako bi osigurao da stvarni podaci nisu prikupljeni ili zloupotrijebljeni, deaktivirajući server za primanje podataka dok je server za ciljanje elemenata ostao aktivan.
Također, ekstenzija je stalno postavljena na “neobjavljena” kako ne bi skupila mnogo preuzimanja i odmah je uklonjena iz trgovine nakon odobrenja.
Potencijal za eksploataciju
Naknadna mjerenja su pokazala da od 10.000 najboljih web stranica (prema Tranco), otprilike 1.100 pohranjuje korisničke lozinke u obliku običnog teksta unutar HTML DOM-a.
Još 7.300 web stranica iz istog skupa smatrano je ranjivim na pristup DOM API-ju i direktno izdvajanje vrijednosti unosa korisnika.
Tehnički dokument koji su istraživači sa Univerziteta Wisconsin-Madison objavili ranije ove sedmice tvrdi da otprilike 17.300 ekstenzija u Chrome web trgovini (12,5%) osigurava potrebne dozvole za izdvajanje osjetljivih informacija sa web stranica.
Nekoliko njih, uključujući široko korištene blokatore oglasa i aplikacije za kupovinu, mogu se pohvaliti milijunima instalacija.
Značajni primjeri nedostatka zaštite na web stranicama istaknuti u izvještaju uključuju:
- gmail.com – plaintext lozinke na izvornom HTML kodu
- cloudflare.com – plaintext lozinke na HTML izvornom kodu
- facebook.com – korisnički ulazi se mogu izdvojiti preko DOM API-ja
- citibank.com – korisnički ulazi se mogu izdvojiti putem DOM API-ja
- irs.gov – SSN-ovi su vidljivi u obliku plaintext-a na izvornom kodu web stranice
- capitalone.com – SSN-ovi su vidljivi u obliku plaintext-a na izvornom kodu web stranice
- usenix.org – SSN-ovi su vidljivi u obliku plaintext-a na izvornom kodu web stranice
- amazon.com – detalji kreditne kartice (uključujući sigurnosni kod) i poštanski broj su vidljivi u obliku plaintext-a na izvornom kodu stranice
Konačno, analiza je pokazala da 190 ekstenzija (neke sa preko 100.000 preuzimanja) direktno pristupaju poljima lozinki i pohranjuju vrijednosti u varijabli, što sugeriše da neki izdavači možda već pokušavaju iskoristiti sigurnosni jaz.
BleepingComputer se obratio pomenutim kompanijama da pitaju planiraju li sanirati rizike istaknute u radu, a do sada smo dobili odgovore od Amazona i Googlea:
U Amazonu sigurnost kupaca je glavni prioritet i mi preduzimamo nekoliko koraka da je zaštitimo. Informacije o klijentima unesene na Amazon web stranice su sigurne.
Podstičemo programere pretraživača i proširenja da koriste najbolje sigurnosne prakse kako bi dodatno zaštitili klijente koji koriste njihove usluge. – Glasnogovornik Amazona
Glasnogovornik Google- a je potvrdio da istražuje slučaj i ukazao na FAQ o sigurnosti proširenja Chrome -a koji pristup poljima lozinki ne smatra sigurnosnim problemom sve dok su relevantne dozvole pravilno dobijene.
Izvor: BleepingComputer