JSCeal malware visszafejtése
A Check Point Research a JSCeal nevű, elsősorban kriptovaluta-felhasználókat célzó információlopó malware visszafejtésére dolgozott ki új módszert. A JSCeal elemzését az teszi különösen nehézzé, hogy a készítők először erősen obfuszkálják a JavaScript forráskódot, majd V8 bytecode-dá fordítják, és .jsc fájlként terjesztik egy saját Node.js futtatókörnyezettel. A végső payload Brotli-tömörítést is kap, ezért az elemző már nem az eredeti JavaScriptet, hanem egy verziófüggő V8 code cache-t lát.
A kutatók a korábbi View8 V8-decompilerre építettek egy teljesen statikus elemzési folyamatot, amelyhez nem kell elindítani a kártevőt.
A rendszer először V8 pszeudokódot állít elő, majd fokozatosan eltávolítja az obfuszkációs rétegeket, rekonstruálja a változók értékeit, visszafejti az RC4-gyel védett szövegeket, helyreállítja a control-flow flattening miatt összekevert végrehajtási sorrendet, valamint feloldja a valódi függvényhívásokat elfedő proxy- és wrapperfüggvényeket. A stringek visszaállítása önmagában komoly feladat: a 23 vizsgált mintában átlagosan mintegy 130 ezer kódolt stringdarab és 10 ezer dekóderkonfiguráció szerepelt. A módszer mind a 23 mintából elemezhető pszeudokódot állított elő.
A visszafejtett kód alapján a JSCeal nem egyszerű kriptostealer. Böngészők jelszavait, cookie-jait és OAuth-tokenjeit gyűjti, keyloggingot és képernyőmentést végez, kriptovaluta-szolgáltatásokat keres, valamint helyi MITM proxyval HTTPS-forgalmat is elfoghat.
Az újabb változatok frissebb Node.js/V8 környezetet, további payload-titkosítást és már macOS-támogatást is alkalmaznak. A Check Point a teljes deobfuszkációs eszközkészletet nyilvánosan elérhetővé tette, így a módszer más, V8 bytecode-ba fordított JavaScript-malware-ek vizsgálatánál is használható.