Unicode Invisibile: Invisible Unicode (T1027.018)

La tecnica T1027.018 - Invisible Unicode rientra nella tattica TA0005 (Defense Evasion) e sfrutta caratteri Unicode non stampabili per nascondere payload malevoli all'interno di file, script o testo apparentemente innocuo. L'attaccante inserisce code point che occupano byte reali ma non producono alcuna rappresentazione visibile: zero-width spaces come U+200B, variation selectors nel range U+FE00–FE0F, bidirectional formatting controls e caratteri della Private Use Area (PUA) tra U+E000 e U+F8FF.

Il meccanismo abilita l'evasione dell'ispezione visiva e dell'analisi statica di base. Il payload viene tipicamente codificato in binario, Base64 o schemi custom, per poi essere ricostruito a runtime tramite meccanismi dinamici come eval(), JavaScript Proxy traps o funzioni di decodifica equivalenti in AppleScript e PowerShell.

Dal punto di vista della kill chain, la tecnica supporta fasi diverse: Phishing con documenti weaponizzati, User Execution tramite script che sembrano vuoti, e Right-to-Left Override per mascherare estensioni di file. Un vettore emergente rilevante è l'AI prompt injection: caratteri invisibili incorporati in email o documenti processati da sistemi AI possono alterare il comportamento del modello senza che l'utente umano percepisca alcuna anomalia.

L'unico software mappato ad oggi è GlassWorm (S9010), che utilizza caratteri PUA per rendere il proprio codice illeggibile negli editor pur mantenendone la piena funzionalità a runtime.

Per un red teamer, la tecnica offre un vettore elegante di offuscamento con superficie di detection ridotta. Il concetto operativo è semplice: codificare un payload in una sequenza di caratteri invisibili, incorporarla in uno script apparentemente vuoto o benigno, e ricostruire l'esecuzione a runtime.

Su Windows, un PoC PowerShell può sfruttare i variation selectors U+FE00–FE0F per rappresentare 4 bit per carattere. Lo script visibile appare come una singola riga di commento innocuo, mentre la stringa reale contiene decine di caratteri invisibili. Il decoder ricostruisce il payload iterando sui code point:

$bytes = [System.Text.Encoding]::UTF32.GetBytes($hidden) ; $cmd = [System.Text.Encoding]::ASCII.GetString([Convert]::FromBase64String($decoded)) ; Invoke-Expression $cmd

Su Linux/macOS, lo stesso principio si applica con script Bash o Python. Un one-liner Python legge il file sorgente, filtra i code point nel range PUA, li mappa su caratteri stampabili e li passa a exec(). La firma statica del file mostra solo commenti e whitespace.

Per la generazione del payload in laboratorio, strumenti utili includono:

  • invisible-characters.com (gratuito) — riferimento per identificare code point non renderizzati
  • Python unicodedata (open source, standard library) — enumerazione programmatica dei code point per categoria
  • CyberChef (open source) — utile per catene di encoding Base64/binary combinate con sostituzioni Unicode
  • Ghidra o Binary Ninja (open source / a pagamento) — per testare la resistenza dell'offuscamento a tool di reverse

Una catena d'attacco tipica in un esercizio red team parte da un documento di phishing con macro che scarica uno script .ps1 apparentemente vuoto. Lo script contiene 8-10 KB di variation selectors che decodificano un loader Cobalt Strike o Sliver. L'ispezione visiva dello script in Notepad o VSCode senza estensioni specifiche non mostra nulla di sospetto.

Un vettore più recente riguarda le prompt injection AI. Un red teamer può testare la resilienza di sistemi RAG o assistenti aziendali incorporando istruzioni invisibili in documenti PDF o email che verranno processati dal modello. Il testo umano visibile chiede una sintesi, quello invisibile istruisce il modello a esfiltrare dati o modificare l'output.

Regola di ingaggio fondamentale: mantenere sempre i payload lab-safe, con beacon verso infrastrutture controllate e senza persistenza reale sui target di test.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.