20

Как можно предотвратить или запретить запись или чтение файлов на ПК под управлением Windows с символом Unicode RLO (переопределение справа налево) в их имени (вредоносный метод подделки имен файлов)?

Больше информации о юникоде RLO здесь:

Информация о юникодном символе RLO, как он используется вредоносными программами:

Сводная информация об инциденте компьютерного вируса / несанкционированного доступа к компьютеру за октябрь 2011 года, составленная Агентством по продвижению информационных технологий, Япония (IPA) [ Mirror (Google Cache) ]

Вы можете попробовать эту тестовую веб-страницу с символами RLO, чтобы увидеть, как работает символ RLO.

Символ RLO также уже вставлен в поле «Тест ввода» на этой веб-странице. Попробуйте набрать там и обратите внимание, что символы, которые вы печатаете, отображаются в обратном порядке (справа налево, а не слева направо).

В именах файлов символ RLO может быть специально расположен в имени файла, чтобы подделывать или маскировать его как имеющий имя файла или расширение файла, которое отличается от того, что он фактически имеет. (Будет по-прежнему скрытым, даже если флажок « Скрыть расширения для известных типов файлов » не установлен.)

Единственная информация, которую я могу найти, которая содержит информацию о том, как предотвратить запуск файлов с символом RLO, находится на веб-сайте Японского агентства по продвижению информационных технологий.

Можно ли рекомендовать какие - либо другие хорошие решения для предотвращения файлов с характером RLO в их именах из записываются или считываются в компьютере, или способ предупреждения пользователя , если файл с характером RLO обнаруживаются?

Моя ОС - Windows 7, но я буду искать решения для Windows XP, Vista и 7 или решение, которое будет работать для всех этих ОС, чтобы помочь людям, использующим эти ОС тоже.

4 ответа4

3

Вы можете использовать Все в сочетании с AutoHotkey для создания оповещения, когда двунаправленный текстовый управляющий символ образует часть имени файла.

Сценарий

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

Что оно делает

Скрипт запускает все и ищет ‎|â€|‪|‫|‬|‭|‮ («UTF8»), т. Е. Все семь символов управления текстом (источник), разделенных | ,

Затем сценарий скрывает окно «Все» и отслеживает его строку состояния. Если в нем содержится какая-либо цифра, отличная от 0 , совпадение найдено, открывается окно «Все» и появляется следующее сообщение:

В имени файла обнаружен двунаправленный символ управления текстом.

Нажмите OK, чтобы снова скрыть окно.

Сценарий также перезапускает все, если он закрывается.

Как пользоваться

  1. Скачать, установить и запустить все.

  2. Нажмите Ctrl + P и переключитесь на вкладку Volume.

    Для всех томов, которые должны быть проверены, включите Монитор изменений.

  3. Скачайте и установите AutoHotkey.

  4. Сохраните в вышеуказанном скрипте файл find-bidirectional-text-control-characters.ahk .

  5. Дважды щелкните скрипт, чтобы запустить его.

  6. Создайте ярлык для скрипта в папке « Автозагрузка ».

2

Агентство по продвижению информационных технологий, веб-сайт Японии (зеркальная ссылка), рекомендовало использовать менеджер настроек локальной политики безопасности для блокировки запуска файлов с символом RLO в его имени.

(Я не копирую полные инструкции, так как не уверен в том, какова лицензия этого сайта на их содержание.)

1

Я не думаю, что такая вещь доступна на рабочем столе, но вы должны быть в состоянии предотвратить такие вещи для записи на ваш файловый сервер (ы):

Реализация проверки файлов в Windows Server 2003 R2

0

Возможно, есть и другие способы, но самый простой - и все же не тривиальный - способ заключается в реализации фильтра файловой системы (или мини-фильтра файловой системы), который фильтрует эти запросы. В случае чтения из такого файла вы можете возвратить STATUS_ACCESS_DENIED и при записи вам ничего не нужно делать, вместо этого следует предотвратить создание таких файлов (вероятно, также с указанным выше кодом ошибки). Создание - это другой тип запроса.

Можно представить другие способы достижения аналогичного результата, такие как перехват SSDT. Но единственный надежный способ был бы выше.

Чтобы сделать это, вам нужно будет, чтобы кто-то написал для вас этот тип фильтра (относительно тривиально для мини-фильтров для разработчика ядра), а затем подписал его, чтобы получить его с помощью политики подписывания режима ядра начиная с Vista. Если вы не хотите делать последнее, вы все равно можете проверить подпись двоичного файла драйвера и изменить параметры загрузки, чтобы разрешить содержимое с подписью тестирования, тем самым ставя под угрозу безопасность соответствующей системы.

В свете этой информации я настоятельно рекомендую вам использовать решение, на которое указал galacticninja и Tom Wijsman.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .