A c/side kiberbiztonsági cég nemrég egy különösen rafinált kliensoldali támadást azonosított a parts[.]expert nevű Magento-alapú e-kereskedelmi weboldalon. Bár az oldal nem tartozik a leglátogatottabbak közé, az alkalmazott támadási módszer innovatív és kifejezetten aggasztó. A támadás kiváló példája annak, hogy a kiberbűnözők miként képesek a felhasználók és a biztonsági rendszerek bizalmát kihasználva „láthatatlanná” válni.
A támadás kiindulópontja a következő látszólag ártalmatlan Google OAuth URL:
https://accounts.google.com/o/oauth2/revoke?callback=…
Ez az URL normál esetben jogosultságok visszavonását szolgálja a Google-fiókokhoz kapcsolódó alkalmazásoknál. Azonban itt a támadó egy adott paramétert fegyverez fel. Ebben egy base64 kódolt JavaScript-et rejt el, amelyet a böngésző a megadott függvényen keresztül futtat le.
Ez a script első ránézésre nem tűnik gyanúsnak – az URL-ben nincs semmi, ami azonnal riasztana egy statikus elemző eszközt. Azonban a kód valódi célja csak bizonyos feltételek teljesülése esetén aktiválódik.
Mit csinál a script?
- WebSocket kapcsolat egy rosszindulatú szerverrel
Ha az oldal URL-je tartalmazza a “checkout” szót (pl. fizetési oldal), vagy a böngésző automatikusnak tűnik (pl. botanalízis), akkor a script WebSocket kapcsolatot létesít egy, már korábban is rosszindulatúként azonosított címre:
wss://livechatinc[.]network/chatpipe/029/
Ez a domain a VirusTotal szerint már egy ismert támadóinfrastruktúrához tartozik.
- Valós idejű, távoli kódfuttatás
A kapcsolat létrejötte után a böngésző base64-kódolt üzeneteket kap a támadó szerverétől. Ezeket a script dekódolja, majd a megfelelő függvénnyel futtatja, mintha a felhasználó saját maga gépelte volna be őket.
- Környezetérzékenység
A script csak akkor aktiválódik, ha valós esély van értékes adatok (pl. bankkártyaadatok) megszerzésére. Ez azt jelenti, hogy például böngészőautomata vagy bot esetén máshogy viselkedik, és csak a célzott pillanatokban hajt végre műveleteket ezzel nehezítve a lebukást.
Miért veszélyes ez a támadás?
Megbízható forrásnak tűnik
A támadás egy google.com domainhez tartozó URL-ről indul, amelyet szinte minden vírusirtó és tűzfal biztonságosnak ítél. Ezáltal sem a CSP (Content Security Policy), sem a DNS-szűrők nem képesek kiszűrni.
Obfuszkált és rétegzett logika
A támadó kód többrétegűen rejtőzik: először base64, majd további JavaScript alatt. Csak specifikus helyzetben, bizonyos oldalakon és viselkedések esetén aktiválódik, így a hagyományos statikus kódelemzők nem észlelik.
Valós idejű vezérlés
A WebSocket protokoll lehetővé teszi a támadók számára, hogy élőben irányítsák a támadást. Így akár dinamikusan is módosíthatják a weblapot, új űrlapokat injektálhatnak, vagy épp ellophatják a begépelt adatokat a fizetés pillanatában.
Hogyan védekezhetünk?
Az ilyen típusú támadások felismerése rendkívül nehéz a hagyományos eszközökkel. A legtöbb felhasználó nem használ olyan szintű scriptanalízist vagy hálózati viselkedéselemzést, ami szükséges lenne ezek kiszűrésére.
Javasolt védekezési stratégiák:
- Third-party scriptek korlátozása: Böngészőszintű eszközökkel, mint például a NoScript vagy uMatrix, megelőzhetjük az ismeretlen forrásból származó kódok futtatását.
- Haladó webalkalmazás-tűzfal (WAF): Ezek képesek lehetnek kiszűrni az ilyen kódok hálózati viselkedését, különösen WebSocket-forgalmat.
- Vállalati környezetben dedikált biztonsági termékek, mint a c/side, képesek még a kód lefutása előtt elemezni és blokkolni a rosszindulatú JavaScript scripteket.
A parts[.]expert esete jól mutatja, hogy a modern kliensoldali támadások egyre kifinomultabbak és nehezebben észlelhetők. A támadók már nem csak saját szerverekről dolgoznak, hanem megbízható szolgáltatók infrastruktúráját használják ki például a Google OAuth URL-jeit. Az ilyen technikák ellen csak összetett, több szinten működő védelmi rendszerek jelenthetnek valódi védelmet. A c/side rendszerének sikerült idejében észlelni és leállítani ezt a támadást, de ez nem jelenti azt, hogy más oldalak és felhasználók védve lennének. A jövőben hasonló támadások egyre gyakrabban jelenhetnek meg, ezért a felhasználók és webfejlesztők számára elengedhetetlen a biztonságtudatos szemlélet és a megfelelő védelmi eszközök használata.
(pcw)
(c/side)