JavaScript-obfuszkáció
A Cisco Talos elemzése azt mutatja be, hogyan nehezítik meg a támadók a rosszindulatú JavaScript felismerését és elemzését obfuszkációval. Ez gyakori phishing oldalakon, malware loaderekben, kompromittált weboldalakon és rosszindulatú npm-csomagokban. A kód például feldarabolja vagy Base64/Unicode formában tárolja az URL-eket és függvényneveket, értelmetlen kódot ad hozzá, illetve lookup táblák mögé rejti az olyan műveleteket, mint a credentialök továbbítása.
A nehezebb esetekben a valódi kód csak futás közben áll elő. Az eval(), Function() vagy setTimeout() egy dekódolt vagy dinamikusan felépített payloadot hajt végre, miközben a script debugger-, sandbox- vagy headless-browser ellenőrzésekkel próbálhatja felismerni az elemzést. Ilyenkor nem az obfuszkált réteget érdemes kézzel kibogozni, biztonságos környezetben az eval(payload) jellegű végrehajtási pontot naplózásra lehet cserélni, így közvetlenül kinyerhető a ténylegesen futtatni kívánt JavaScript.
Node.js és npm esetében nagyobb a kockázat, mert a JavaScript nemcsak böngészőadatokhoz férhet hozzá. Egy rosszindulatú preinstall vagy postinstall script olvashat környezeti változókat, fájlokat, npm- és GitHub-tokeneket, SSH-kulcsokat vagy CI/CD credentialöket, és további folyamatokat indíthat. A Talos ezért az elemzést az eredeti minta megőrzésével, formázással, stringek kinyerésével, az eval-szerű végrehajtási pontok azonosításával és a generált payload izolált környezetben történő rögzítésével javasolja. Az AI segíthet a dekódolásban és a kód értelmezésében, de nem helyettesíti a sandboxot vagy a tényleges viselkedéselemzést.