Quais são as maneiras de evitar que arquivos com o caractere Unicode de Substituição da Direita para a Esquerda em seu nome (um método de falsificação de malware) sejam gravados ou lidos?

20

Quais são as maneiras de evitar ou impedir que arquivos com o caractere Unicode RLO (Right-to-Left Override) em seu nome (um método de malware para falsificar nomes de arquivos) sejam escritos ou lidos em um PC com Windows?

Mais informações sobre o caractere unicode da RLO aqui:

Informações sobre o caractere unicode RLO, como ele é usado por malware:

Resumo do relatório de incidentes de acesso a vírus / acesso a computadores não autorizados em outubro de 2011, compilado pela Agência de Promoção da Tecnologia da Informação, Japão (IPA) [Mrror (Google Cache) ]

Você pode tentar esta página de teste de caracteres RLO para ver como o personagem RLO funciona .

O caractere RLO também já foi colado no campo "Teste de entrada" nessa página da Web. Tente digitá-lo e observe que os caracteres que você está digitando estão saindo em ordem inversa (da direita para a esquerda, e não da esquerda para a direita).

Em nomes de arquivos, o caractere RLO pode ser posicionado especificamente no nome do arquivo para falsificar ou mascarar como tendo um nome de arquivo ou extensão de arquivo diferente do que realmente possui. (Ainda será ocultado, mesmo que ' Ocultar extensões para tipos de arquivos conhecidos ' esteja desmarcado.)

A única informação que posso encontrar com informações sobre como evitar que arquivos com o caractere RLO sejam executados é da Promoção da Tecnologia da Informação Agência, site do Japão .

Alguém pode recomendar quaisquer outras boas soluções para evitar que arquivos com o caractere RLO em seus nomes sejam escritos ou sejam lidos no computador, ou uma maneira de alertar o usuário se um arquivo com o RLO personagem é detectado?

Meu sistema operacional é o Windows 7, mas procurarei soluções para o Windows XP, Vista e 7, ou uma solução que funcione para todos esses sistemas operacionais, para ajudar as pessoas que também usam esses sistemas operacionais.

    
por galacticninja 05.04.2012 / 09:46

4 respostas

3

Você pode usar Tudo em combinação com o AutoHotkey para criar um alerta sempre que um caractere de controle de texto bidirecional fizer parte de um nome de arquivo.

O script

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

O que faz

O script inicia Everything e procura por ‎|â€|‪|‫|‬|‭|‮ (UTF8), ou seja, todos os sete caracteres de controle de texto bidirecional ( source ), separados por | .

Em seguida, o script oculta a janela Tudo e monitora sua barra de status. Quando ele contém qualquer dígito diferente de 0 , uma correspondência foi encontrada, a janela Tudo é exibida e a seguinte caixa de mensagem aparece:

A bidirectional text control character was detected in a filename.

Click OK to re-hide the window.

O script também relança Tudo, caso seja fechado.

Como usar

  1. Faça o download , instale e inicie tudo.

  2. Pressione Ctrl + P e mude para a guia Volumes .

    Para todos os volumes que devem ser verificados, ative Monitorar alterações .

  3. Faça o download e instale o AutoHotkey.

  4. Salve no script acima como find-bidirectional-text-control-characters.ahk .

  5. Clique duas vezes no script para iniciá-lo.

  6. Crie um atalho para o script na sua pasta Startup .

por 01.08.2012 / 21:05
2

A Agência de Promoção de Tecnologia da Informação, website do Japão ( link de espelho ), recomendou o uso do gerenciador de configurações da Política de Segurança Local para bloquear a execução de arquivos com o caractere RLO em seu nome.

(não estou copiando as instruções completas, pois não tenho certeza de qual é a licença de direitos autorais desse site em seu conteúdo.)

    
por 20.03.2013 / 13:24
1

Eu não acho que tal coisa esteja disponível na área de trabalho, mas você deve evitar que tais coisas sejam gravadas no (s) seu (s) servidor (es) de arquivos:

Implementando a triagem de arquivos no Windows Server 2003 R2

    
por 24.05.2012 / 04:20
0

Provavelmente, existem outras maneiras, mas a maneira mais fácil - e ainda assim não trivial - é implementar um filtro do sistema de arquivos (ou mini-filtro do sistema de arquivos) que filtre essas solicitações. Em caso de leitura de tal arquivo, você pode retornar STATUS_ACCESS_DENIED e, ao escrever, não deve fazer nada, mas evitar que esses arquivos sejam criados (provavelmente também com o código de erro acima) em primeiro lugar. A criação é outro tipo de solicitação.

Pode-se imaginar outros métodos para obter um resultado semelhante, como a conexão SSDT. Mas a única maneira confiável seria a anterior.

Para fazer isso, você terá que pedir a alguém para escrever esse tipo de filtro (relativamente trivial para mini-filtros para um desenvolvedor de kernel) e assiná-lo para obter a política de assinatura do modo kernel desde o Vista. Se você não quiser fazer o último, ainda poderá testar o sinal do binário do driver e modificar suas opções de inicialização para permitir conteúdo assinado por teste - comprometendo, assim, a segurança do respectivo sistema.

À luz dessa informação, eu o aconselho a usar a solução que galacticninja e Tom Wijsman apontaram.

    
por 10.05.2012 / 15:27