Resi con codice invisibile Area di uso pubblico (a volte chiamato accesso per uso pubblico), che è la gamma di specifiche Unicode per caratteri speciali riservati all’uso privato per definire emoji, bandiere e altri simboli. I punti di codice rappresentano ogni lettera dell’alfabeto americano quando vengono inseriti in un computer, ma il loro output è completamente invisibile agli esseri umani. Le persone stanno rivedendo o utilizzando il codice Analisi statica Lo strumento vede solo spazi bianchi o righe vuote. Per l’interprete JavaScript, i punti di codice si traducono in codice eseguibile.

I caratteri Unicode invisibili sono stati creati decenni fa e poi in gran parte dimenticati. Cioè, fino al 2024, quando gli hacker hanno iniziato a utilizzare i caratteri per mascherare i messaggi dannosi inviati ai motori di intelligenza artificiale. Sebbene il testo fosse invisibile agli esseri umani e agli scanner di testo, LLM non ha avuto problemi a leggerlo e a seguire le istruzioni dannose fornite. Da allora i motori di intelligenza artificiale hanno sviluppato guardrail progettati per limitare l’uso dei personaggi, ma tali difese lo sono Periodicamente prioritario.

Da allora, la tecnica Unicode è stata utilizzata negli attacchi malware più tradizionali. In uno dei pacchetti analizzati da Aikido nel post di venerdì, gli aggressori hanno codificato un payload dannoso utilizzando caratteri invisibili. L’ispezione del codice non mostra nulla. Durante l’esecuzione di JavaScript, tuttavia, un piccolo decodificatore estrae i byte effettivi e li invia alla funzione 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'));

“La stringa backtick passata a s() appare vuota a ogni spettatore, ma è piena di caratteri invisibili che, una volta decodificati, creano un carico utile completamente dannoso”, spiega Aikido. “In eventi passati, quel payload decodificato ha consegnato ed eseguito uno script di seconda fase utilizzando Solana come canale di consegna in grado di rubare token, credenziali e segreti.”

Da quando hanno trovato la nuova serie di pacchetti su GitHub, i ricercatori ne hanno trovati di simili nei marketplace npm e VS Code. Aikido afferma che i 151 pacchetti rilevati sono probabilmente una piccola parte di quelli sparsi nella campagna perché molti sono stati eliminati dopo essere stati caricati per la prima volta.

Il modo migliore per proteggersi dagli attacchi alla catena di approvvigionamento è ispezionare attentamente i pacchetti e le relative dipendenze prima di includerli nei progetti. Ciò include la convalida dei nomi dei pacchetti e il controllo degli errori di battitura. Se i sospetti sull’utilizzo di LLM sono fondati, i pacchetti dannosi possono apparire sempre più legittimi, soprattutto quando caratteri Unicode invisibili codificano i payload dannosi.

Collegamento alla fonte