Sažetak: Nevidljive prijetnje mogu lako pretvoriti Chromeovo proširenje u RCE na razini hosta

Otkad su uvedena, proširenja preglednika tretirana su kao lagani alati za produktivnost - bezopasni dodaci koji se nalaze negdje između oznaka i postavki. Instaliraju se ležerno, ažuriraju se tiho i rijetko se provjeravaju nakon što postanu dio svakodnevnog tijeka rada korisnika.

Štoviše, proširenja preglednika često se doživljavaju kao sigurnosni rizici niske razine jer su preglednikom u velikoj mjeri izolirana od temeljnog sustava i djeluju unutar izrazito izoliranog okruženja unutar granica web preglednika.

Ovo je zastarjela pretpostavka, jer ovo istraživanje pokazuje kako čak i ekstenzija bez ikakvih dozvola može zaobići sandbox preglednika i dovesti do instalacije zlonamjernog softvera izravno na računalo.

Istraživači LayerX-a otkrili su kako bilo koje proširenje preglednika, čak i jedan bez ikakvih dozvola pristupa uopće, može biti koristi se za instaliranje zlonamjernog softvera na ciljnom hostu. Sve što napadač treba učiniti je dodati nevidljivi scenarij na legitimno preuzimanje, koje se izvršava kada se pokrene preuzimanje. To rezultira time da se korisnici zaraze zlonamjernim softverom za udaljeno izvršavanje koda, a da to nikada ne primjećuju. 

Budući da ovaj vektor iskorištavanja zahtijeva bez posebnih dozvola od strane ekstenzija, može ga koristiti bilo koja zlonamjerna ekstenzija, izlaganje gotovo svakog korisnika ekstenzije do iskorištavanja.

Slijepa točka s kojom smo započeli

Chromeova proširenja rade pod zanemarenim sigurnosnim modelom. Skripte sadržaja, omogućene prema zadanim postavkama, dizajnirane su da vrlo dobro obavljaju jednu stvar: pristup i izmjenu web stranica. Ovo nije greška ili pogrešna konfiguracija, već je ključna za način rada proširenja. Svako proširenje koje se pokreće na stranici zapravo ima istu razinu pristupa kao i vlastiti JavaScript stranice.

Na prvi pogled, ovo se čini razumnim. Proširenja trebaju mijenjati stranice kako bi dodala značajke, ubrizgala elemente korisničkog sučelja ili poboljšala tijek rada. Zapravo, to je cijeli njihov cilj dizajna.

Međutim, ta ista mogućnost ima i ograničenje. Ako ekstenzija može učiniti sve što i web stranica, zlonamjerna ekstenzija može pretvoriti bilo koju legitimnu web stranicu u površinu za napad, nevidljivo i u velikim razmjerima. To je bila početna točka naše istrage.

Kada svako preuzimanje postane vektor napada

Postavili smo jednostavno pitanje: koja je najvrjednija radnja koju zlonamjerni akter može poduzeti unutar preglednika bez traženja dozvola koje bi izazvale sumnju?

Odgovor je, naravno, izvršavanje koda.

Zloupotrebom neograničene prirode skripti sadržaja, izgradili smo proširenje koje tiho mijenja svako preuzimanje datoteke pokrenuto s bilo koje web stranice. Korisnik klikne legitimnu poveznicu za preuzimanje na pouzdanoj domeni, koristeći preglednik kojem vjeruje. Datoteka se preuzima točno kako se očekuje.

Ali to nije jedino što se događa.

Bez prekida izvorne aplikacije, bez aktiviranja upozorenja i bez potrebe bilo koje dodatne dozvole, proširenje dodaje kod kojim upravlja napadač svakoj preuzetoj izvršnoj datoteci. Izvorni program i dalje radi normalno, a korisnik vidi točno ono što očekuje. Nakon toga, igra je gotova.



U našoj demonstraciji, korisni teret jednostavno otvara aplikaciju kalkulatora kao benigni vizualni indikator. U stvarnom scenariju, mogao bi omogućiti perzistenciju, lateralno kretanje, izvlačenje podataka ili potpuno daljinsko upravljanje strojem.

Iako su ekstenzije preglednika navodno izolirane od temeljnog datotečnog sustava i zaštićene od strane preglednika, ova tehnika omogućuje ekstenziji da izađe iz sandboxa. U ovom trenutku preglednik više ne djeluje kao granica. Ekstenzija zapravo postaje trojanac za udaljeni pristup.

POC video:

Zašto je ovo posebno opasno

Ono što ovaj napad čini zabrinjavajućim je njegova nevidljivost:

  • Ne zahtijeva nikakve sumnjive dozvole.
  • Ne pokreće nikakva upozorenja preglednika.
  • Ne mijenja izvornu web stranicu ni na koji način vidljiv ljudima.
  • Preuzimanja korisniku izgledaju normalno.

Bilo koje proširenje, uključujući i prethodno legitimna, moglo bi uvesti ovo ponašanje u ažuriranju, a korisnici ne bi imali pouzdan signal da se išta promijenilo.

Ovaj napad ne oslanja se na phishing ili zbunjivanje korisnika. Iskorištava slabu kariku u lancu povjerenja preglednika. Korisnici vjeruju svom pregledniku i određenim web stranicama, ali ako ne mogu vjerovati njihovim proširenjima, ni preglednik ni web stranica ne mogu učinkovito zaštititi korisnika. Instaliranje nepouzdanog proširenja funkcionalno je ekvivalentno instaliranju zlonamjernog softvera.

Štoviše, ovaj napad ne može se otkriti alatima temeljenima na proxyju/VPN-u, budući da je domena kojoj se pristupa potpuno legitimna i ne kontaktira se udaljeni poslužitelj radi dohvaćanja zlonamjernog koda. Nadalje, napad je potpuno višepreglednički i može utjecati na bilo koji preglednik temeljen na Chromiumu ili Mozilli.

Objavljivanje i odgovor industrije

Naše smo nalaze prijavili Googleu i Mozilli putem njihovih programa za otkrivanje ranjivosti, u skladu s postupcima „odgovornog otkrivanja“.

Google je izjavio da „Napadi društvenog inženjeringa izvan su dosega modela prijetnji Chromea.“ 

Mozilla je odgovorila da „Kada proširenju odobrite pristup svim web-stranicama, ono može mijenjati sadržaj web-stranica, uključujući promjenu odredišta poveznica.“

Obje tvrdnje su tehnički točne, ali također ističu ključni problem koji ovo istraživanje želi osvijetliti: ekstenziji se, samim činom preuzimanja, dodjeljuje ogromna implicitna moć. 

Trenutni model sigurnosti ekstenzija ne objašnjava korisniku pravilno utjecaj nepouzdane ekstenzije na njihovo iskustvo pregledavanja i sigurnost cijelog sustava.

Postoje bezbrojni načini na koje se ekstenzije mogu iskoristiti kako bi se zaobišlo povjerenje korisnika.

Preglednik je tiho postao primarno okruženje za izvršavanje, distribucijski kanal i kontrolna ravnina, a pritom uglavnom ostao bez nadzora tradicionalnih sigurnosnih alata. Proširenja se nalaze na presjeku povjerenja korisnika i utjecaja na razini sustava.

Kako se korisnici i poduzeća mogu zaštititi

Ova vrsta iskorištavanja pokazuje ograničenja tradicionalnog pristupa sigurnosti ekstenzija, koji se temelji na vanjskoj analizi parametara ekstenzije, na temelju njezinih dozvola, reputacije itd. Budući da uopće nema dozvola, najvjerojatnije bi dobila nisku ocjenu rizika. 

Samo praćenjem stvarnog ponašanja proširenja moglo bi se otkriti njegova zlonamjerna namjera. To znači da korisnici i organizacije moraju prijeći sa statičke analize proširenja na aktivnu analizu temeljenu na ponašanju, baš kao što to čine za zlonamjerni softver.


Zasluge: Roy Paz i Aviad Gispan, koji su doprinijeli ovom istraživanju.