이름에 Right-to-Left Override Unicode 문자가있는 파일 (맬웨어 스푸핑 방법)을 쓰거나 읽지 못하게하는 방법은 무엇입니까?


20

Windows PC에서 이름에 RLO (Right-to-Left Override) 유니 코드 문자 (파일 이름을 스푸핑하는 맬웨어 방법)가있는 파일을 작성하거나 읽지 못하게하는 방법은 무엇입니까?

RLO 유니 코드 문자에 대한 자세한 내용은 다음을 참조하십시오.

맬웨어가 사용하는 RLO 유니 코드 문자에 대한 정보 :

일본 정보 기술 진흥청 (IPA)에서 수집 한 2011 년 10 월 컴퓨터 바이러스 / 무단 컴퓨터 액세스 사건 보고서 요약 [ Mirror (Google Cache) ]

RLO 문자 테스트 웹 페이지 에서 RLO 문자의 작동 방식을 확인할 수 있습니다 .

RLO 문자는 해당 웹 페이지의 '입력 테스트'필드에도 이미 붙여져 있습니다. 거기에 입력하고 입력하는 문자가 역순으로 나타납니다 (왼쪽에서 오른쪽이 아니라 오른쪽에서 왼쪽).

파일 이름에서 RLO 문자는 파일 이름이나 파일 확장자가 실제 파일 이름과 다른 파일 이름 또는 파일 확장자를 갖는 것처럼 파일 이름에 구체적으로 배치 될 수 있습니다. ( ' 알려진 파일 형식확장명 숨기기 '가 선택 되어 있지 않아도 여전히 숨겨집니다 .)

내가 찾을 수있는 유일한 정보는 RLO 문자가있는 파일이 실행되는 것을 방지하는 방법에 대한 정보가 일본 정보 기술 진흥청 웹 사이트로부터 온 것 입니다.

누구든지 이름에 RLO 문자가있는 파일이 작성 되지 않도록 다른 좋은 솔루션을 추천 할 수 있습니까? 또는 RLO 문자가있는 파일이 감지되면 컴퓨터 또는 사용자에게 경고하는 방식으로 읽을을?

내 OS는 Windows 7이지만 Windows XP, Vista 및 7 용 솔루션 또는 모든 OS에서 작동하여 사람들이 OS를 사용할 수 있도록 도와주는 솔루션을 찾고 있습니다.


1
아주 좋은 질문입니다! 이것도 알고 싶습니다. 링크가 작동하지 않는 것 같습니다.
Cerberus

@Cerberus 링크가 작동하지 않는 것을 발견했습니다. 일시적으로 다운 되었기를 바랍니다. 거울을 찾으면 답변을 업데이트하겠습니다.
galacticninja


@Cerberus 감사합니다. 질문에 미러 링크를 추가했습니다.
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.이것이 왜 해결책이 아닌지 말씀해 주시겠습니까?
Tamara Wijsman

답변:


3

양방향 텍스트 제어 문자가 파일 이름의 일부를 구성 할 때마다 EverythingAutoHotkey 와 함께 사용하여 경고를 생성 할 수 있습니다 .

스크립트

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

그것이하는 일

이 스크립트는 Everything을 시작하고 ‎|â€|‪|‫|‬|‭|‮(UTF8), 즉 7 개의 양방향 텍스트 제어 문자 ( source )를| 합니다.

그런 다음 스크립트는 Everything 창을 숨기고 상태 표시 줄을 모니터링합니다. 0와 다른 숫자가 포함 된 경우 일치하는 항목이 발견되면 Everything 창이 표시되고 다음 메시지 상자가 나타납니다.

파일 이름에서 양방향 텍스트 제어 문자가 발견되었습니다.

확인을 클릭하여 창을 다시 숨기십시오.

스크립트는 닫힐 경우를 위해 모든 것을 다시 시작합니다.

사용하는 방법

  1. 다운로드 , 설치 및 모든 것을 시작하십시오.

  2. Ctrl+를 누르고 볼륨 탭으로 P전환 하십시오.

    확인해야하는 모든 볼륨에 대해 모니터 변경을 활성화 하십시오 .

  3. AutoHotkey를 다운로드 하여 설치하십시오.

  4. 위의 스크립트에로 저장하십시오 find-bidirectional-text-control-characters.ahk.

  5. 스크립트를 두 번 클릭하여 시작하십시오.

  6. Startup 폴더에 스크립트 바로 가기를 만듭니다 .


2

정보 기술 진흥원, 일본 웹 사이트 ( 미러 링크 ), 실행되지 이름의 RLO 문자로 파일을 차단하는 로컬 보안 정책 설정 관리자를 사용하여 조언했다.

(콘텐츠에 대한 해당 웹 사이트의 저작권 라이센스가 무엇인지 잘 모르기 때문에 전체 지침을 복사하여 붙여 넣지는 않습니다.)


0

아마도 다른 방법이있을 수 있지만 가장 쉬운 방법은 아니지만 가장 쉬운 방법은 이러한 요청을 필터링하는 파일 시스템 필터 (또는 파일 시스템 미니 필터)를 구현하는 것입니다. 그러한 파일을 읽는 경우 반환 할 수 STATUS_ACCESS_DENIED있고 쓸 때 아무것도하지 말고 대신 먼저 위의 오류 코드와 같이 파일이 생성되지 않도록하십시오. 작성은 다른 요청 유형입니다.

SSDT 후킹과 같은 유사한 결과를 얻는 다른 방법을 상상할 수 있습니다. 그러나 유일한 확실한 방법은 위의 것입니다.

그렇게하려면 누군가가 이런 종류의 필터를 작성하도록하고 (커널 개발자에게는 미니 필터에 대해서는 비교적 사소한) Vista 이후 커널 모드 서명 정책을 통과하도록 서명해야합니다. 후자를 원하지 않는다면 여전히 드라이버 바이너리를 테스트 서명하고 테스트 옵션을 허용하도록 부팅 옵션을 수정하여 각 시스템의 보안을 손상시킬 수 있습니다.

이 정보의 빛이 나는 것 강하게 galacticninja 톰 Wijsman 지적하는 솔루션을 활용하도록 조언한다.


2
" Tom Wijsman이 지적한 솔루션을 사용하라고 강력히 권합니다. 실제로는 이것이 제가 지적한 해결책이었습니다 . 이미 Windows를 설정했습니다. Tom Wijsman에게 답장 한 것처럼 RLO 문자를 쓰고 읽을 수 없도록하는 다른 솔루션 이나 RLO 문자가 감지되면 사용자 에게 자동으로 알리 거나 알리는 솔루션을 찾고 있습니다 . 설명한 필터를 작성하는 기술적 노하우가 없습니다.
galacticninja

@ galacticninja : 미안합니다. 대답으로 수정하겠습니다.
0xC0000022L

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.