Обфускатори JavaScript чӣ кор мекунад?
JavaScript Obfuscator барои гирифтани рамзи тоза ва барои инсон хондашаванда ва табдил додани он ба чизе, ки базӯр хондашаванда аст, тарҳрезӣ шудааст, ки фаҳмидан ё муҳандисии баръаксро душвортар мекунад. Ин абзорҳо тағирёбандаҳо ва функсияҳоро номгузорӣ мекунанд, фазои холӣ нест мекунанд, сохторҳои рамзро ҳамвор мекунанд ва усулҳоеро ба монанди тақсим кардани сатрҳо, рамзгузории шонздаҳӣ ё ҳамворкунии ҷараёни идоракуниро истифода мебаранд. Дар ҳоле ки ҳадаф аксар вақт ҳифзи моликияти зеҳнӣ ё кам кардани андозаи файл аст, мураккабии бадастомада инчунин барои нармафзори зараровари JavaScript пӯшиши беҳтарин фароҳам меорад. Аз ин рӯ, бисёре аз гурӯҳҳои амниятӣ барои таҳлили рамзи табдилшуда ва ошкор кардани рафтори пинҳон ба абзорҳои деобфускатори JavaScript муроҷиат мекунанд.
Масалан, чизе ба мисли оддӣ:
function greet(name) { return `Hello, ${name}`; } Might become: function _0x1a2b(_0x3c4d){return'Hello, '+_0x3c4d;} Барои таҳиягароне, ки мантиқи тарафи муштариро интиқол медиҳанд (SaaS-ро дар асоси браузер фикр кунед), обфускатори JavaScript қисми занҷири абзорҳо мебошад. Аммо ҳамин табдилдиҳӣ онро барои нармафзори зараровари JavaScript як пӯшиши комил мегардонад.
Чӣ гуна ҳамлагарон аз нофаҳмиҳо барои пинҳон кардани нармафзори зараровари JavaScript сӯиистифода мекунанд
Ҳамлагарон аз абзорҳои JavaScript obfuscator барои пинҳон кардан сӯиистифода мекунанд нармафзори зараровар ба китобхонаҳои кушодаасос ворид карда шуд, бастаҳои npm, ё мустақиман ба скриптҳои браузер. Як намунаи маъмулӣ пинҳон кардани борҳои муфид дар дохили функсияҳои норавшан аст, ки дар вақти иҷро дар шароити мушаххас фаъол мешаванд.
Як бастаи npm-и осебдидаро баррасӣ кунед. Дар назари аввал, ҳама чиз қонунӣ ба назар мерасад. Аммо агар амиқтар назар кунем, сатрҳои рамзгузоришудаи JavaScript, URL-ҳои дурдаст ё динамикии норавшанро ошкор мекунем. eval() зангҳо:
(function(_0xa1b2c){var _0xd3e4=['/(function(_0xa1b2c){var _0xd3e4=['\x2fapi/(function(_0xa1b2c){var _0xd3e4=['\x2fapi\x2fsteal','...']; ...eval(atob(_0xd3e4[0]));})(this); Ин фишурдасозӣ нест. Ин пӯшидан аст. Нармафзори зараровари JavaScript дар ин ҷо пинҳон мешавад ва интизори хориҷ кардани токенҳо, ворид кардани шаклҳои фишинг ё баланд бардоштани иҷозатҳо дар дохили барномаҳо мебошад.
Хатарҳои воқеӣ дар AppSec ва занҷираи таъминот
Нармафзори муосир pipelines бар асоси рамзи тарафи сеюм сохта шудаанд. Нармафзори зараровари JavaScript, ки тавассути скриптҳои нофаҳмо ҷойгир карда шудааст, на танҳо як сӯрохи амниятӣ аст; он як вайронкунии занҷираи таъминот аст. Пас аз он ки нармафзори зараровари нофаҳмо ба китобхонаи муштарак ворид мешавад, он паҳн мешавад:
- Ба CI сохта мешавад бастаи.json
- Ба бастаҳои фронтенд тавассути Webpack/Rollup
- Ба истеҳсолот тавассути CDN ё тазриқи скриптҳо
Масалан, ҳодисаи ҷараёни рӯйдод нишон дод, ки чӣ гуна ҳамлагарон аз нофаҳмиҳо истифода бурда, борҳоро дар бастаҳои васеъ истифодашаванда ҷойгир мекарданд. Таҳиягарон кам рамзи нофаҳмоеро, ки хеле нофаҳмо аст, тафтиш мекунанд, ки ин онро ба ҷои беҳтарини пинҳоншавӣ табдил медиҳад.
Хатар назариявӣ нест. Агар вобастагиҳои шумо скан карда нашуда бошанд, он аллакай дар рамзи шумост.
Муайян кардани рамзи печида бо истифода аз абзорҳои JavaScript Deobfuscator
Барои дастгир кардани таҳдидҳои пинҳон, дастаҳо аз абзорҳои деобфускатори JavaScript истифода мебаранд. Ин дастаҳо намунаҳои рамзи норавшанро таҳлил мекунанд, сатрҳоро рамзкушоӣ мекунанд ва парчамҳои сурхро ба монанди динамикӣ ошкор мекунанд. eval(), ҳалқаҳои печида ва мураккабии нолозим.
Деобфускаторҳои муфид на танҳо кодро аз нав формат мекунанд; онҳо қайд мекунанд:
- Истифодаи функсия, арзёбӣва вақти муқарраршуда бо борҳои рамзгузоришуда
- Силсилаҳои дарози сатрҳои 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 бо истифода аз Deobfuscators
Асбобҳои обфускатори JavaScript истифодаи қонунӣ доранд. Аммо ҳамлагарон ба онҳо такя мекунанд, то нармафзори зараровари JavaScript-ро пинҳон кунанд ва эътимодро дар экосистемаи кушодаасос сӯиистифода баранд. Хатари воқеӣ дар AppSec на танҳо дар он чизест, ки шумо менависед, балки дар он чизест, ки шумо ворид мекунед. Бо ҷойгир кардани сканҳои деобфускатори JavaScript ва таҳлили статикӣ ба CI/CD pipelines, дастаҳои таҳиякунанда метавонанд таҳдидҳоро барвақт муайян кунанд. Ба рамзи печида дар вобастагиҳо бо шубҳа муносибат кунед, хусусан вақте ки он ғайричашмдошт аст.
Воситаҳои монанди Ксигенӣ барои кӯмак ба дастаҳои DevSecOps дар фаҳмидани хатарҳои печида ва занҷираи таъминот дар экосистемаҳои JavaScript сохта шудаанд. Онҳоро барои беҳтар кардани худ истифода баред pipeline ва пеш аз он ки он ба истеҳсолот расад, дар рамзи шумо чӣ пинҳон аст, муайян кунед.
Ксигенӣ тавассути таҳлили нақшҳои нофаҳмиҳои JavaScript, қайд кардани нармафзори зараровари эҳтимолии JavaScript ва пайгирии рафторҳои хатарнок дар бастаҳо дар тамоми занҷираи таъминоти нармафзори шумо аз сканкунии асосӣ берун меравад. Он ба таври бефосила ба он ҳамгиро мешавад. CI/CD pipelineс, имкон медиҳад, ки идоракунии автоматӣ нисбат ба сифат ва амнияти код таъмин карда шавад.
Дар ҳолати ваҳм бошед. Ҳама чизро аз назар гузаронед. Ва дар хотир доред: агар он бемаънӣ ба назар расад, эҳтимол сазовори дидани дубора аст.






