W jaki sposób można zapobiec zapisywaniu lub odczytywaniu plików ze znakiem Unicode od prawej do lewej w ich nazwie (metoda fałszowania złośliwego oprogramowania)?

20

Jakie są sposoby unikania lub zapobiegania zapisywaniu lub odczytywaniu plików ze znakiem Unicode RLO (od prawej do lewej) w ich nazwie (złośliwa metoda fałszowania nazw plików) na komputerze z systemem Windows?

Więcej informacji na temat znaku Unicode RLO tutaj:

Informacje o znaku Unicode RLO wykorzystywanym przez złośliwe oprogramowanie:

Podsumowanie raportu na temat wirusa komputerowego / nieautoryzowanego dostępu do komputera za październik 2011 r., Opracowanego przez Agencję Promocji Technologii Informacyjnych, Japonia (IPA) [ Mirror (Google Cache) ]

Możesz wypróbować tę stronę testową postaci RLO, aby zobaczyć, jak działa postać RLO.

Znak RLO jest już wklejony również w polu „Input Test” na tej stronie. Spróbuj tam wpisać i zauważ, że wpisywane znaki pojawiają się w odwrotnej kolejności (od prawej do lewej, zamiast od lewej do prawej).

W nazwach plików znak RLO może być specjalnie umieszczony w nazwie pliku, aby fałszować lub maskować jako posiadający inną nazwę pliku lub rozszerzenie niż to, co faktycznie ma. (Nadal będzie ukryty, nawet jeśli „ Ukryj rozszerzenia znanych typów plików ” nie jest zaznaczony).

Jedyne informacje, które mogę znaleźć, które zawierają informacje o tym, jak zapobiegać uruchamianiu plików ze znakiem RLO, pochodzą z japońskiej witryny Agencji Promocji Technologii Informacyjnych .

Czy ktoś może polecić jakieś inne dobre rozwiązanie, aby zapobiec zapisywaniu lub odczytywaniu plików ze znakiem RLO w komputerze, lub sposób ostrzeżenia użytkownika w przypadku wykrycia pliku ze znakiem RLO?

Mój system operacyjny to Windows 7, ale będę szukał rozwiązań dla systemu Windows XP, Vista i 7 lub rozwiązania, które będzie działać dla wszystkich tych systemów operacyjnych, aby pomóc osobom korzystającym z tych systemów.

galacticninja
źródło
1
Bardzo dobre pytanie! Też chciałbym to wiedzieć. Twój link nie działa.
Cerberus,
@Cerberus Właśnie dowiedziałem się, że link nie działa. Mam nadzieję, że to chwilowo nie działa. Zaktualizuję odpowiedź, jeśli znajdę lustro.
galacticninja
@Cerberus Thanks. Dodałem link lustrzany do pytania.
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.Czy możesz nam powiedzieć, dlaczego to nie jest rozwiązanie?
Tamara Wijsman,

Odpowiedzi:

3

Możesz użyć Wszystko w połączeniu z AutoHotkey, aby utworzyć alert, gdy dwukierunkowy znak kontrolny tekstu tworzy część nazwy pliku.

Scenariusz

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

Co to robi

Skrypt uruchamia wszystko i wyszukuje ‎|â€|‪|‫|‬|‭|‮(UTF8), tj. Wszystkie siedem dwukierunkowych znaków sterujących tekstem ( źródło ), oddzielone znakiem |.

Następnie skrypt ukrywa okno Wszystko i monitoruje pasek stanu. Gdy zawiera dowolną cyfrę inną niż 0, znaleziono dopasowanie, wyświetla się okno Wszystko i pojawia się następujące okno komunikatu:

W nazwie pliku wykryto dwukierunkowy znak kontrolny tekstu.

Kliknij przycisk OK, aby ponownie ukryć okno.

Skrypt ponownie uruchamia wszystko na wypadek, gdyby zostało zamknięte.

Jak używać

  1. Pobierz , zainstaluj i uruchom wszystko.

  2. Naciśnij Ctrl+ Pi przejdź do zakładki Woluminy .

    Dla wszystkich woluminów, które należy sprawdzić, włącz Monitoruj zmiany .

  3. Pobierz i zainstaluj AutoHotkey.

  4. Zapisz w powyższym skrypcie jako find-bidirectional-text-control-characters.ahk.

  5. Kliknij dwukrotnie skrypt, aby go uruchomić.

  6. Utwórz skrót do skryptu w folderze Autostart .

Dennis
źródło
2

Information Technology Promotion Agency, Japonia Strona www ( Link lustro ), doradzał przy użyciu menedżera polityki bezpieczeństwa Ustawienia lokalne blokowanie plików z charakterem RLO w nazwie od bycia run.

(Nie kopiuję pełnych instrukcji, ponieważ nie jestem pewien, jaka jest licencja praw autorskich tej witryny na ich treść).

galacticninja
źródło
0

Prawdopodobnie istnieją inne sposoby, ale najłatwiejszym - ale nie trywialnym - sposobem jest zaimplementowanie filtru systemu plików (lub mini-filtra systemu plików), który filtruje te żądania. W przypadku czytania z takiego pliku możesz wrócić, STATUS_ACCESS_DENIEDa podczas pisania nie powinieneś nic robić, ale zamiast tego zapobiegać tworzeniu takich plików (prawdopodobnie również z powyższym kodem błędu). Tworzenie jest kolejnym rodzajem żądania.

Można sobie wyobrazić inne metody osiągnięcia podobnego rezultatu, takie jak zaczepianie SSDT. Ale jedynym niezawodnym sposobem byłoby powyższe.

Aby to zrobić, musisz poprosić kogoś o napisanie tego rodzaju filtru (stosunkowo proste w przypadku mini-filtrów dla programisty jądra), a następnie podpisanie go, aby przejść przez zasady podpisywania trybu jądra od czasu Vista. Jeśli nie chcesz tego robić, możesz nadal podpisać testowo plik binarny sterownika i zmodyfikować opcje rozruchu, aby umożliwić zawartość podpisaną testowo, co jednak zagraża bezpieczeństwu odpowiedniego systemu.

W świetle tych informacji zdecydowanie zalecam skorzystanie z rozwiązania wskazanego przez galacticninja i Toma Wijsmana.

0xC0000022L
źródło
2
Radziłbym wam skorzystać z rozwiązania wskazanego przez Toma Wijsmana. ” Właściwie to było rozwiązanie, na które zwróciłem uwagę. Już ustawiłem Windows, aby to robił. Podobnie jak to, co odpowiedziałem Tomowi Wijsmanowi, szukam innych rozwiązań, które zapobiegną pisaniu i czytaniu znaku RLO , lub rozwiązania, które automatycznie powiadomi lub ostrzeże użytkownika, jeśli znak RLO zostanie wykryty. Obawiam się, że nie mam technicznej wiedzy, aby napisać opisany filtr.
galacticninja
@galacticninja: Przepraszam, poprawię to w mojej odpowiedzi.
0xC0000022L