Trusteer: érzékeny adatok lophatók az ismert böngészők Javascript motorjainak hibáját kihasználva

Egy nemrégi figyelmeztető szerint az adathalászok képesek érzékeny adatokhoz - például banki információkhoz - jutni az ismert böngészőkben (Internet Explorer, Mozilla Firefox, Safari-ját, Chrome) dolgozó Javascript motorok sebezhetőségét kihasználva. A figyelmeztetőt a banki szolgáltatásokra specializálódott Trusteer biztonsági szolgáltatócég adta ki.

A vállalat arra figyelmeztet, hogy egy speciálisan elkészített weboldal képes kihasználni a böngészők Javascript motorjaiban levő egyik függvény hibáját.

A leírás szerint ha az áldozat böngészőjével kapcsolódik bankja online szolgáltatásához az egyik böngészőablakban és ezt az ablakot nyitva hagyja míg más oldalakat is meglátogat, akkor egy speciálisan előkészített, rosszindulatú weboldal képes lehet felismerni bankját, majd olyan ablakot feldobni, amely imitálja az áldozat bankjának logóját és megjelenését, majd felszólíthatja az áldozatot az ismételt bejelentkezésre. Ha az áldozat tapasztalatlan, vagy figyelmetlen, akkor adatokat szolgáltathat akaratán kívül a támadónak.

A figyelmeztető nem nevezi meg a sebezhető függvényt.

A részletek itt olvashatók.

Hozzászólások

van még valahol olyan netbank ami nem kér mondjuk telóra kiküldött jelszót ha nem is belépéskor de legalább valami érdemi dolog végrehajtásakor?

persze ettől függetlenül a hiba gáz, mert mondjuk ilyen módon más belépett státuszu weboldalakat is detektálni lehet ahol már a felhasználó nevében ügyködhet ezt-azt a kis script...

kíváncsian várom, h mikor fedik fel a hiba pontos kilétét és szívesen néznék valami poc kódot is...

> van még valahol olyan netbank ami nem kér mondjuk telóra kiküldött jelszót ha nem is belépéskor de legalább valami érdemi dolog végrehajtásakor?

persze, pl otp.

de 1) aki a bankjanak a jelszavat megjegyezteti a bongeszojevel az ugyis nagymertekben idiota 2) ha tenyleges tranzakcio tortenik akkor ugyis kapsz rola smst

Nekem pl. az az SMS, amit akkor kapok, amikor újfent irgalmatlanul sok pénz érkezett a számlámra, azért fizetni kell pár Ft-ot. Amikor azért kapok SMS-t, hogy notifikáljanak, hogy valaki belépett az online bankomba, na az ingyen van.

Az viszont fix feláras fizetős, ha SMS-ben kiküldött tranzakciós azonosítóval is autentikáltatni akarom magam.

Az OTP-nél ez utóbbi AFAIK ingyé van. Minden más viszont sokkal drágább, szóval ahogy vesszük...

:wq

Ez veletlenul nem az XMLHttpRequest fuggveny?Amit az Ajax-os megoldasok hasznalnak?

Mert el tudom azt is kepzelni - es ezzel nem akarok otletet adni - hogy egy banki oldalra belepve egyes URL cimek akkor elnek, ha az ugyfel be van lepve. Ha nincs belepve az ugyfel, akkor valoszinuleg a bejlentkezo oldalt lathatnak, vagy egy atiranyitast a bejelentkezo oldalra...

Namost ha a felhasznalo nem lep ki, es megnyit egy masik oldalt, akkor a masik oldal egy Ajax (XMLHttpRequest) keressel - egy listat hasznalva - vegigprobalja a bankok belso oldalait, hogy visszajon-e olyan html tartalom, ami azt jelentene, hogy be van lepve az ugyfel.
Ha be van lepve, akkor mar fel tudja dobni az ujra bejelentkezo ablakot a script...

Pl:
a Unicredit internetbanknal, a kovetkezo URL kiirja az Atteknto adatokat:
https://extra.unicreditbank.hu/eib_SPL/overview

Ha nincs bejelentkezve, akkor kiirja, hogy hibas bejelentkezes.

A kompromittalt weboldal egyszeruen egy ilyen URL cimekbol allo listat a hatterben vegighivogat, es ha valamelyik hasznos adatokkal valaszol, akkor maris kesz a baj...
Meg ha nem is dob fel semmit, "csak" ezeket az adatokat latja, mar az is erzekeny informacio lehet...

Tovabb gondolva, ez nem csak banki adatokra ervenyes! Ezzel az erovel iWiW-re bejelentkezve, egy masik oldal kigyujthetne az adott felhasznalo osszes kapcsolatat, avagy felvehet/torolhet kapcsolatokat, stb...

Nem tudom, hogy errol van-e szo, a fentieket nem probaltam ki, de elkepzelhetonek/kivitelezhetonek gondolom. Ha errol van szo, akkor ez nem biztos, hogy a Javascript hibaja....

Mindenesetre erdemes mindig kilepni MINDEN weboldalrol, ahova bejelentkeztunk.

..."hogy egy banki oldalra belepve egyes URL cimek akkor elnek, ha az ugyfel be van lepve. Ha nincs belepve az ugyfel, akkor valoszinuleg a bejlentkezo oldalt lathatnak, vagy egy atiranyitast a bejelentkezo oldalra..."

pontosan ezt említik valamelyik vonatkozó cikkben

megjegyzem az eljárás és ötlet egyáltalán nem új, korábban is láthattunk már ilyet

Valami olyasmit olvastam valami cikkben, hogy mint egy trójai, beül a program a böngésződbe, és amikor valami bankos (vagy akármi más érdekes) oldalra mész utána, akkor a kis program feldob egy ügyes bejelentkező képernyőt.

Szóval olyan az egész, mint egy phishing levél, csak levél nélkül, és nem másik weblapra visz, hanem te magad mész a jó lapra (és máshonnan származó tartalmat látsz mégis).

G

De ez megint inkább csak egy social engineering csupán, egy értelmes embernek feltűnik az hogy belépve a bank oldalára az megint feldobál bejelentkező ablakokat miközben még az oldalon vagy. Szoval megint csak a bal*asz felhasználóknál járhat sikerrel. Nagyon igaz, hogy a hiba általában a szék és a billentyűzet között van....

Tic-Tac, nekem ez a Tak-Tikám

bankra vonatkoztatva valszeg így van, de mondjuk be vagy lépve hup-ra, meglátogatsz egy ilyen frankó script-es oldalt /persze noscript kikapcsolva :) / az pedig csekkolja, h hup-on be vagy-e lépve... ha igen, akkor nesze neked, kapsz új random jelszót és email címet, mivel ezek változtatásához nincs szükség a régi jelszóra...

közben végzed a dolgod, nem is veszel észre belőle semmit, de amint lejár a session-öd v kilépsz nincs tovább

Ez nem így működik. X domain alól nem fogod a hup.hu formját kitölteni, elküldeni js-el. A hírben ismertett hiba csak arra jó, hogy megpróbáld X oldalon betölteni egy banki oldal logóját amit csak belépés után lát a user, ha sikerül, akkor tudod melyik banknál bankol, és feltudsz neki dobni egy kamu "lejárt a session lépj be újra" ablakot. Amihez nagyon naivnak kell lenni, mert pl.: FF is kiírja a popup ablak url-jét és nem lehet letiltani a kiírást.

Egyfelől az igazi bejelentkezést kellene ügyesen megfogniuk

Másfelől pl. az OTP egy idő után azt mondja, timeout, jelentkezz be újra.
Namost ezt mondhatja a gonosz script is az OTP helyett (és most ne mondd, hogy de feltűnik majd, hogy nem is telt el sok idő, mert az OTP pl. volt már, hogy elrontott valamit, és simán ugrált a timeout ablak (mondjuk lehet, hogy a lassú net kapcsolat miatt volt ez)).

G

Ezért szoktam a bankos oldalról MINDIG kilépni.

-- "Bízzál Istenben és tartsd szárazon a puskaport!" - Cromwell --
-- Sayusi Ando - http://sayusi.hu --

Biztos hülyének néztek miatta, de én a bankos oldalak meglátogatása előtt mindig bezárom a böngészőt, átnevezem a .mozilla könyvtárat (elmentem a profilt), majd a böngészőt elindítva egy teljesen új és üres profilt használva látogatom meg az oldalt, és csak azt.
A dolgok végeztével aztán törlöm ezt az üres profilt (a létrejött .mozilla könyvtárat), és visszanevezem a régit.
Tudom, hogy körülményes, meg minden, de szerintem a hasonló dolgok ellen jól véd.

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Nem tartom magam paranoiásnak, csak itt igyekszem megelőzni a problémákat. Arról nem is beszélve, hogy az egész "háttérművelet" nem különösebben időigényes vagy kényelmetlen. :)

Ui.: És még mielőtt valaki azt mondja, hogy egyszer véletlenül az "éles" profilt fogom letörölni a végén: FEBE

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Fenéket. Titkosított filerendszerre. Persze, hogy kiszűrd a keylogger-t, mindjárt úgy csináld, hogy egyből indítson valami titkosított megoldást, amin keresztül egy távoli gépről rájelentkezel. Jaj, de ott is LiveCD-ről bootolj. Ezt fokozhatod, amíg meg nem őrülsz :D

--
trey @ gépház

akkor összegezzük:
fogunk egy cd-r-t (merthát a readonly módban nem bízunk), amin a betöltött initrd felcsatol egy titkosított képfájlt, amiről bebootol a rendszer, és hálózati kapcoslat után rögtön felépít egy általunk hostolt vpn-szerveren át egy tunnelt. Természetesen az egész művelet külön számítógépen zajlik. A böngésző a ramdisken létrehozott encfs képfájlban lévő encfs képfájlban lévő encfs képfájlba ír.
Miután végeztünk, a gép generál egy véletlenszerű minimum 42 karakteres utf-8 jelszót, ami a következő cd belépési kódja lesz. Ezután bekér egy írható cd-t, megírja az újat, majd pedig megkér minket az új cd többszöri checksummolása után, hogy semmisítsük meg a régi cd-t meg a gép a művelet során felhasznált rammoduljait a kandallóban...

Kihagytam valamit?:)

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Ha egyáltalán nem kommunikálnak egymással, akkor nehezen. A külön profile és a -no-remote szerintem azt kellene eredményezze, hogy ne kommunikáljanak. De persze az implementációnak nem néztem utána.

De ennyi erővel az is lehet, hogy a ff nem csak az új és üres profilodba ír, hanem suttyomban a vinyó egyik eldugott bugyrába is elment ezt-azt, amit aztán a mindenes profilra visszaváltva majd jól elolvas, és elküldi a titkaidat a gonoszoknak. Elvégre ez is ugyanúgy az alkalmazás két példánya kategória.