Quali sono i modi per impedire che i file con il carattere Unicode da destra a sinistra nel loro nome (un metodo di spoofing del malware) vengano scritti o letti?


20

Quali sono i modi per evitare o impedire che i file con il carattere Unicode RLO (da destra a sinistra) nel loro nome (un metodo malware per falsificare i nomi dei file) vengano scritti o letti in un PC Windows?

Maggiori informazioni sul carattere Unicode RLO qui:

Informazioni sul carattere Unicode RLO, in quanto utilizzato dal malware:

Sintesi del rapporto sugli incidenti informatici relativi a virus informatici / accessi non autorizzati per ottobre 2011, compilato da Agenzia di promozione della tecnologia dell'informazione, Giappone (IPA) [ Mirror (Google Cache) ]

Puoi provare questa pagina web di test dei caratteri RLO per vedere come funziona il personaggio RLO.

Il carattere RLO è già incollato nel campo "Test input" in quella pagina Web. Prova a digitare lì e nota che i caratteri che stai digitando stanno uscendo nel loro ordine inverso (da destra a sinistra, invece che da sinistra a destra).

Nei nomi di file, il carattere RLO può essere posizionato in modo specifico nel nome del file per falsificare o mascherare come avere un nome di file o un'estensione di file diversa da quella in realtà. (Rimarrà comunque nascosto anche se ' Nascondi estensioni per tipi di file conosciuti ' è deselezionato.)

Le uniche informazioni che posso trovare che contengono informazioni su come impedire l'esecuzione di file con il carattere RLO provengono dall'Information Technology Promotion Agency, sito Web giapponese .

Qualcuno può raccomandare altre buone soluzioni per impedire che i file con il carattere RLO nei loro nomi vengano scritti o letti nel computer o un modo per avvisare l'utente se viene rilevato un file con il carattere RLO?

Il mio sistema operativo è Windows 7, ma cercherò soluzioni per Windows XP, Vista e 7 o una soluzione che funzionerà per tutti quei sistemi operativi, per aiutare anche le persone che utilizzano tali sistemi operativi.


1
Ottima domanda! Vorrei sapere anche questo. Il tuo link non sembra funzionare.
Cerbero

@Cerberus Ho appena scoperto che il link non funziona. Spero sia temporaneamente inattivo. Aggiornerò la risposta se trovo un mirror.
galacticninja,


@Cerberus Grazie. Ho aggiunto il link mirror alla domanda.
galacticninja,

4
They adviced to use the Local Security Policy settings manager to block files with the RLO character in its name from being run.Puoi per favore dirci perché questa non è una soluzione?
Tamara Wijsman,

Risposte:


3

È possibile utilizzare Tutto in combinazione con AutoHotkey per creare un avviso ogni volta che un carattere di controllo del testo bidirezionale fa parte di un nome file.

Il copione

AlertText = A bidirectional text control character was detected in a filename.
AlertText = %AlertText%`n`nClick OK to re-hide the window.

SetTitleMatchMode RegEx
DetectHiddenWindows, On
EnvGet, ProgramFiles32, ProgramFiles

Start:
Run, %ProgramFiles32%\Everything\Everything.exe
WinWaitActive, Everything, , 5
if Errorlevel
    Goto Start
WinGet, Id, ID, A
StatusBarWait, objects, , 1, ahk_id %Id%
StatusBarGetText, Status, 1, ahk_id %Id%
Backup := ClipboardAll
Transform, Clipboard, Unicode, ‎|â€|‪|‫|‬|‭|‮
Send, ^v
WinHide, ahk_id %Id%
Sleep, 100
Clipboard := Backup
Backup =
StatusBarWait, ^(?!^\Q%Status%\E$)
Loop
{
    StatusBarWait, [1-9], , 1, ahk_id %Id%
    IfWinNotExist, ahk_id %Id%
        Goto Start
    WinShow, ahk_id %Id%
    WinRestore, ahk_id %Id%
    MsgBox, %AlertText%
    WinHide, ahk_id %Id%
}

Cosa fa

Lo script avvia Tutto e cerca ‎|â€|‪|‫|‬|‭|‮(UTF8), ovvero tutti e sette i caratteri di controllo del testo bidirezionale ( sorgente ), separati da |.

Quindi, lo script nasconde la finestra Tutto e monitora la sua barra di stato. Quando contiene una cifra diversa da 0, è stata trovata una corrispondenza, viene visualizzata la finestra Tutto e viene visualizzata la seguente finestra di messaggio:

È stato rilevato un carattere di controllo del testo bidirezionale in un nome file.

Fare clic su OK per nascondere nuovamente la finestra.

Lo script riavvia anche Tutto nel caso in cui venga chiuso.

Come usare

  1. Scarica , installa e avvia tutto.

  2. Premi Ctrl+ Pe passa alla scheda Volumi .

    Per tutti i volumi da controllare, abilitare Monitorare le modifiche .

  3. Scarica e installa AutoHotkey.

  4. Salva nello script sopra come find-bidirectional-text-control-characters.ahk.

  5. Fare doppio clic sullo script per avviarlo.

  6. Crea un collegamento allo script nella cartella Startup .



0

Probabilmente ci sono altri modi, ma il modo più semplice - ma non banale - è implementare un filtro del file system (o mini-filtro del file system) che filtra queste richieste. In caso di lettura da un tale file potresti tornare STATUS_ACCESS_DENIEDe quando scrivi non dovresti fare nulla ma prevenire la creazione di tali file (probabilmente anche con il codice di errore sopra) in primo luogo. La creazione è un altro tipo di richiesta.

Si possono immaginare altri metodi per ottenere un risultato simile, come l'aggancio SSDT. Ma l'unico modo affidabile sarebbe il precedente.

Per fare ciò dovrai convincere qualcuno a scrivere questo tipo di filtro per te (relativamente banale per i mini-filtri per uno sviluppatore del kernel) e quindi firmarlo per farlo passare attraverso la politica di firma in modalità kernel da Vista. Se non si desidera eseguire quest'ultima operazione, è comunque possibile firmare il test binario del driver e modificare le opzioni di avvio per consentire il contenuto firmato dal test, compromettendo in tal modo la sicurezza del rispettivo sistema.

Alla luce di queste informazioni, vi consiglio caldamente di avvalervi della soluzione indicata da Galacticninja e Tom Wijsman.


2
" Ti consiglio caldamente di utilizzare la soluzione indicata da Tom Wijsman. " In realtà, quella era una soluzione che ho sottolineato. Ho già impostato Windows per farlo. Come quello che ho risposto a Tom Wijsman, sto cercando altre soluzioni che impediscono il carattere RLC di essere scritti e leggere, o una soluzione che verrà automaticamente notificare o avvisare l'utente se viene rilevato il carattere RLC. Temo di non avere il know-how tecnico per scrivere il filtro che hai descritto.
galacticninja,

@galacticninja: mi dispiace, lo correggerò nella mia risposta.
0xC0000022L,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.