¿Cuáles son las formas de evitar que se escriban o lean archivos con el carácter Unicode de anulación de derecha a izquierda en su nombre (un método de suplantación de malware)?

20

¿Cuáles son las formas de evitar o evitar que los archivos con el carácter Unicode RLO (anulación de derecha a izquierda) en su nombre (un método de malware para falsificar nombres de archivo) se escriban o lean en una PC con Windows?

Más información sobre el personaje unicode RLO aquí:

Información sobre el carácter unicode RLO, tal como lo utiliza el malware:

Resumen del informe de incidente de virus informático / acceso no autorizado a la computadora para octubre de 2011, compilado por la Agencia de Promoción de Tecnología de la Información, Japón (IPA) [ Mirror (Google Cache) ]

Puede probar esta página web de prueba de caracteres RLO para ver cómo funciona el personaje RLO.

El carácter RLO también ya está pegado en el campo 'Prueba de entrada' en esa página web. Intente escribir allí y observe que los caracteres que está escribiendo salen en orden inverso (de derecha a izquierda, en lugar de izquierda a derecha).

En los nombres de archivo, el carácter RLO se puede colocar específicamente en el nombre del archivo para suplantar o enmascarar que tiene un nombre de archivo o extensión de archivo que es diferente de lo que realmente tiene. (Seguirá oculto incluso si ' Ocultar extensiones para tipos de archivo conocidos ' está desmarcado).

La única información que puedo encontrar que tiene información sobre cómo evitar que se ejecuten archivos con el carácter RLO es de la Agencia de Promoción de Tecnología de la Información, sitio web de Japón .

¿Alguien puede recomendar otras buenas soluciones para evitar que los archivos con el carácter RLO en sus nombres se escriban o se lean en la computadora, o una forma de alertar al usuario si se detecta un archivo con el carácter RLO?

Mi sistema operativo es Windows 7, pero buscaré soluciones para Windows XP, Vista y 7, o una solución que funcione para todos esos sistemas operativos, para ayudar a las personas que usan esos sistemas operativos también.

galacticninja
fuente
1
Muy buena pregunta! Me gustaría saber esto también. Su enlace no parece funcionar.
Cerberus
@Cerberus Acabo de descubrir que el enlace no funciona. Espero que solo esté temporalmente abajo. Actualizaré la respuesta si encuentro un espejo.
galacticninja
@Cerberus Gracias. He agregado el enlace espejo a la pregunta.
galacticninja el
44
They adviced to use the Local Security Policy settings manager to block files with the RLO character in its name from being run.¿Puede decirnos por qué esto no es una solución?
Tamara Wijsman

Respuestas:

3

Puede usar Everything en combinación con AutoHotkey para crear una alerta siempre que un carácter de control de texto bidireccional forme parte de un nombre de archivo.

La secuencia de comandos

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%
}

Que hace

El script inicia Everything y busca ‎|â€|‪|‫|‬|‭|‮(UTF8), es decir, los siete caracteres de control de texto bidireccional ( fuente ), separados por |.

Luego, el script oculta la ventana Everything y monitorea su barra de estado. Cuando contiene cualquier dígito diferente de 0, se ha encontrado una coincidencia, se muestra la ventana Todo y aparece el siguiente cuadro de mensaje:

Se detectó un carácter de control de texto bidireccional en un nombre de archivo.

Haga clic en Aceptar para volver a ocultar la ventana.

El script también relanza Todo en caso de que se cierre.

Cómo utilizar

  1. Descargue , instale y ejecute Everything.

  2. Presione Ctrl+ Py cambie a la pestaña Volúmenes .

    Para todos los volúmenes que deben verificarse, active Supervisar cambios .

  3. Descargue e instale AutoHotkey.

  4. Guardar en el script anterior como find-bidirectional-text-control-characters.ahk.

  5. Haga doble clic en el script para iniciarlo.

  6. Cree un acceso directo al script en su carpeta de Inicio .

Dennis
fuente
0

Probablemente hay otras formas, pero la forma más fácil, pero no trivial, es implementar un filtro del sistema de archivos (o un mini filtro del sistema de archivos) que filtre estas solicitudes. En caso de leer un archivo de este tipo, puede regresar STATUS_ACCESS_DENIEDy, al escribir, no debe hacer nada, sino evitar que se creen dichos archivos (probablemente también con el código de error anterior) en primer lugar. La creación es otro tipo de solicitud.

Uno puede imaginar otros métodos para lograr un resultado similar, como el enganche SSDT. Pero la única forma confiable sería la anterior.

Para hacerlo, tendrá que pedirle a alguien que escriba este tipo de filtro para usted (relativamente trivial para los mini-filtros para un desarrollador de kernel) y luego firmarlo para obtenerlo a través de la política de firma en modo kernel desde Vista. Si no desea hacer esto último, aún puede probar y firmar el binario del controlador y modificar sus opciones de arranque para permitir el contenido firmado por la prueba, lo que compromete la seguridad del sistema respectivo.

A la luz de esta información, le recomendaría encarecidamente que utilice la solución que señalaron galacticninja y Tom Wijsman.

0xC0000022L
fuente
2
" Yo te aconsejo que hacer uso de la solución que Tom Wijsman señaló. " En realidad, eso era una solución que he señalado. Ya configuré Windows para hacer eso. Al igual que lo que le respondí a Tom Wijsman, estoy buscando otras soluciones que eviten que se escriba y lea el carácter RLO , o una solución que notificará o alertará automáticamente al usuario si se detecta el carácter RLO. Me temo que no tengo los conocimientos técnicos para escribir el filtro que describió.
galacticninja
@galacticninja: Lo siento, lo corregiré en mi respuesta.
0xC0000022L