JavaScript Obfuscator - JavaScript deobfuscator - JavaScript malware

Зошто напаѓачите ги злоупотребуваат алатките за обфускатор на JavaScript (и како да ги детектираат)

Што прави JavaScript обфускатор?

JavaScript Obfuscator е дизајниран да зема чист, човечки читлив код и да го трансформира во нешто едвај читливо, што го отежнува разбирањето или обратното инженерство. Овие алатки ги преименуваат променливите и функциите, отстрануваат празни места, ги израмнуваат структурите на кодот и применуваат техники како што се разделување на низи, хексадецимално кодирање или израмнување на контролниот тек. Иако целта е често да се заштити интелектуалната сопственост или да се намали големината на датотеката, резултирачката сложеност, исто така, обезбедува идеална заштита за JavaScript малициозен софтвер. Затоа многу безбедносни тимови се свртуваат кон алатките за деобфускатор на JavaScript за да анализираат трансформиран код и да откријат скриено однесување.

На пример, нешто едноставно како:

function greet(name) { return `Hello, ${name}`; } Might become: function _0x1a2b(_0x3c4d){return'Hello, '+_0x3c4d;} 

За програмерите кои испорачуваат логика од клиентска страна (замислете SaaS базиран на прелистувач), JavaScript обфускаторот е дел од синџирот на алатки. Но, истата оваа трансформација го прави совршена покривка за JavaScript малициозен софтвер.

Како напаѓачите злоупотребуваат прикривање за да го сокријат JavaScript малициозниот софтвер

Напаѓачите ги злоупотребуваат алатките за заматување на JavaScript за да ги прикријат малициозен софтвер инјектиран во библиотеки со отворен код, npm пакетиили директно во скрипти на прелистувачот. Честа шема е криење на корисните оптоварувања во замаглени функции што се активираат за време на извршување под специфични услови.

Размислете за компромитиран npm пакет. На прв поглед, сè изгледа легитимно. Но, подетален поглед открива замаглен JavaScript кој референцира кодирани низи, оддалечени URL-адреси или динамички евал() повици:

(function(_0xa1b2c){var _0xd3e4=['/(function(_0xa1b2c){var _0xd3e4=['\x2fapi/(function(_0xa1b2c){var _0xd3e4=['\x2fapi\x2fsteal','...']; ...eval(atob(_0xd3e4[0]));})(this); 

Ова не е компресија. Ова е маска. Малициозниот софтвер JavaScript се крие тука, чекајќи да извлече токени, да инјектира фишинг формулари или да ги ескалира дозволите во апликациите.

Вистински ризици во AppSec и синџирот на снабдување

Модерен софтвер pipelineсе изградени врз код од трета страна. JavaScript малициозниот софтвер вграден преку замаглени скрипти не е само безбедносна дупка; тоа е прекршување на синџирот на снабдување. Откако замаглениот малициозен софтвер ќе слета во споделена библиотека, тој се шири:

  • Во CI се гради преку пакет.json
  • Во пакети на фронтенд преку Webpack/Rollup
  • Во продукција преку CDN или инјекции со скрипти

На пример, инцидентот со преносот на настани покажа како напаѓачите користеле заматување за да вградат кориснички податоци во широко користени пакети. Програмерите ретко проверуваат длабоко заматен код, што го прави совршено место за криење.

Ризикот не е теоретски. Тој веќе е во вашиот код ако вашите зависности не се скенирани.

Откривање на замаглен код со алатки за деобфускатор на JavaScript

За да откријат скриени закани, тимовите користат алатки за дезафускатор на JavaScript. Тие анализираат замаглени шеми на код, декодираат низи и откриваат црвени знамиња како што се динамички евал(), заматени јамки и непотребна сложеност.

Корисните деобфускатори не само што го преформатираат кодот; тие означуваат:

  • Употреба на функција, евалуација, и setTimeout со кодирани носивост
  • Долги низи од Base64 или хексадецимални низи
  • Израмнување на контролниот тек или вбризгување на мртов код

Автоматизираните алатки како што се статички анализатори или AST парсери помагаат да се забележат овие шеми. Тие се првата линија на одбрана при преглед на зависности или валидирање на ажурирања на пакети.

Пример: интегрирајте скенирање за деобфускација во проверките пред спојување за да се избегне спојување на скриени закани.

Интегрирање на детекцијата во CI/CD Pipelines

Детекцијата не е задача по распоредувањето. Скенирањето со замаглување треба да биде дел од CI/CD pipeline. Користете Дејства на GitHub, GitLab CIили Џенкинс за да се активираат скенирања при секое притискање или спојување.

типични pipeline проток:

jobs: security-check: steps: - uses: actions/checkout@v2 - name: Scan for Obfuscation run: node scripts/deobfuscate-scan.js

Со спроведување на политиката, можете да блокирате градби што содржат ризичен замаглен код. Комбинирајте го ова со SCA алатки за вкрстена референца на познати потписи на малициозен софтвер во npm пакетите.

Не чекајте изненадувања за време на извршување. Направете го тоа отфрлање за време на градење.

Скриената цена на замаглувањето: Борба против JavaScript малициозен софтвер со деобфускатори

Алатките за заматување на JavaScript имаат легитимна употреба. Но, напаѓачите се потпираат на нив за да го сокријат малициозниот софтвер JavaScript и да ја искористат довербата во екосистемот со отворен код. Вистинскиот ризик во AppSec не е само во она што го пишувате, туку и во она што го увезувате. Со вградување на скенирања и статички анализи на JavaScript од деобфускаторот во CI/CD pipelines, тимовите за развој можат рано да ги забележат заканите. Третирајте го замаглениот код во зависностите со сомнеж, особено кога е неочекуван.

Алатки како Xygeni се изградени за да им помогнат на тимовите DevSecOps да добијат увид во замаглувањето и ризиците во синџирот на снабдување низ екосистемите на JavaScript. Користете ги за да го подобрите вашиот pipeline и да открие што се крие во вашиот код пред да влезе во производство.

Xygeni оди подалеку од основното скенирање со анализа на шемите за замаглување на JavaScript, означување на потенцијален малициозен софтвер во JavaScript и следење на ризично однесување во пакетите низ вашиот синџир на снабдување со софтвер. Се интегрира беспрекорно во CI/CD pipelines, овозможувајќи автоматизирано управување со квалитетот и безбедноста на кодот.

Остани параноичен. Скенирај сè. И запомни: ако изгледа како глупост, веројатно заслужува втор поглед.

алатки-за-анализа-на-композиции-на-sca-алатки
Дајте приоритет, санирајте и обезбедете ги вашите софтверски ризици
Добијте ја вашата бесплатна сметка.
Не е потребна кредитна картичка.

Обезбедете го вашиот развој и испорака на софтвер

со Xygeni Product Suite