La diffusione dei computer al di fuori degli Stati Uniti e dell’Europa occidentale aveva iniziato a porre il problema degli alfabeti non latini.
La soluzione a questo problema si chiama Unicode, un sistema di codifica dei caratteri che dovrebbe permettere, nel lungo termine, di mappare tutti gli alfabeti passati e presenti della Terra. La codifica Unicode prevede anche uno spazio dedicato, la Private Area, che può essere utilizzato per mappare alfabeti di fantasia, come, ad esempio, il klingon.
Per poter mischiare vari tipi di alfabeti o per soddisfare le necessità di alfabeti che, come l’arabo, hanno una parte scritta verso sinistra e una parte verso destra, Unicode prevede alcuni caratteri di controllo che segnalano il cambio di verso di scrittura.
Tutto bene, finché il cambio di verso non viene utilizzato come vettore di attacco per costringere l’utente ad aprire quello che lui crede essere un file di dati, mentre, in realtà, è un eseguibile.
Questo tipo di attacco funziona solo con Windows; altri sistemi operativi utilizzano dei metadati del file per discriminare i file di dati da quelli eseguibili. Windows, invece, si basa sugli ultimi quattro caratteri del nome del file, la cosiddetta estensione, un termine coniato nella notte dei tempi dell’informatica.
Uno dei caratteri di controllo di Unicode è RTLO (Right To Left Override, 0x202e), che forza, da quel punto in avanti, la scrittura verso sinistra.
Immaginiamo di avere un file che si chiama COD.OPPIP.EXE, a tutti è chiaro che si tratta di un file eseguibile.
Ma se come primo carattere del nome del file viene inserito il codice Unicode RTLO, il nome sarà {RTLO}COD.OPPIP.EXE, ma Windows interpreta il comando RTLO e il nome del file visualizzato sarà EXE.PIPPO.DOC
Naturalmente il sistema operativo continua a trattare quel programma come un eseguibile, ma l’utente lo crede un documento, specialmente se chi ha creato l’eseguibile ha avuto l’accortezza di assegnargli un’icona analoga a quella del documento con cui viene mascherato il file.
Ci sono dei fattori mitiganti, quale, per esempio, il fatto che l’attacco si basa sul nome del file visualizzato, non su quello effettivo; quindi i sistemi di posta elettronica che utilizzano l’estensione per discriminare il tipo di un file riescono comunque a bloccare l’eseguibile.
Al contrario, se un eseguibile mascherato in questo modo venisse passato su una chiavetta USB, un utente poco accorto potrebbe non accorgersi che Windows riconosce il file come eseguibile. (via Norman, dc414 [PDF])
Lascia un commento