名前にRight-to-Left Override Unicode文字(マルウェアのなりすまし方法)が含まれるファイルの書き込みまたは読み取りを防ぐ方法は何ですか?


20

名前にRLO(Right-to-Left Override)Unicode文字が含まれるファイル(ファイル名を偽装するマルウェア手法)がWindows PCで書き込まれたり読み取られたりすることを回避または防止する方法は何ですか?

RLO Unicode文字の詳細はこちら:

マルウェアによって使用されるRLOユニコード文字に関する情報:

情報技術振興機構(IPA)がまとめた2011年10月のコンピューターウイルス/不正コンピューターアクセスインシデントレポートの概要 [ ミラー(Googleキャッシュ) ]

このRLOキャラクターテストWebページを試して、RLOキャラクターの動作を確認できます。

RLO文字は、そのWebページの「入力テスト」フィールドにも既に貼り付けられています。そこに入力してみて、入力している文字が逆順(左から右ではなく右から左)で出ていることに注意してください。

ファイル名では、RLO文字をファイル名に明確に配置して、実際のファイル名またはファイル拡張子とは異なるファイル名またはファイル拡張子を持つようになりすましまたは偽装することができます。(「既知のファイルタイプ拡張子を非表示にする」をオフにしても、非表示のままになります。)

RLO文字を含むファイルが実行されないようにする方法に関する情報がある唯一の情報は、情報技術振興機構のWebサイトからです。

名前にRLO文字が含まれるファイルがコンピューターに書き込まれたり読み取らたりするのを防ぐ他の良い解決策、またはRLO文字が含まれるファイルが検出された場合にユーザーに警告する方法を推奨できますか?

私のOSはWindows 7ですが、Windows XP、Vista、および7のソリューション、またはこれらのOSを使用する人々を支援するすべてのOSで機能するソリューションを探しています。


1
とても良い質問です!私もこれを知りたいです。リンクが機能していないようです。
ケルベロス

@Cerberusリンクが機能しないことがわかりました。一時的に停止することを願っています。鏡を見つけたら答えを更新します。
銀河


@ケルベロスありがとう。質問にミラーリンクを追加しました。
銀河

4
They adviced to use the Local Security Policy settings manager to block files with the RLO character in its name from being run.これが解決策ではない理由を教えてください。
タマラWijsman

回答:


3

AutoHotkeyと組み合わせてEverythingを使用すると、双方向テキスト制御文字がファイル名の一部を形成するたびにアラートを作成できます。

スクリプト

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ている場合、一致が検出され、「すべて」ウィンドウが表示され、次のメッセージボックスが表示されます。

ファイル名に双方向テキスト制御文字が検出されました。

[OK]をクリックして、ウィンドウを再表示します。

また、スクリプトは、閉じられた場合に備えてすべてを再起動します。

使い方

  1. Everythingをダウンロード、インストール、起動します。

  2. Ctrl+ Pを押して、[ ボリューム ]タブに切り替えます。

    チェックする必要があるすべてのボリュームについて、変更の監視を有効にします

  3. AutoHotkeyをダウンロードしてインストールします。

  4. 上記のスクリプトにとして保存しますfind-bidirectional-text-control-characters.ahk

  5. スクリプトをダブルクリックして起動します。

  6. スタートアップフォルダにスクリプトへのショートカットを作成します。


2

情報技術推進機構、日本のウェブサイトミラーリンクが)、実行されてから、その名前にRLO文字でファイルをブロックするためにローカルセキュリティポリシーの設定マネージャを使用して助言しています。

(コンテンツに関するそのウェブサイトの著作権ライセンスが何であるかわからないので、私は完全な指示をコピーペーストしていません。)


0

おそらく他の方法もありますが、最も簡単な方法ですが、これらの要求をフィルタリングするファイルシステムフィルター(またはファイルシステムミニフィルター)を実装することです。そのようなファイルから読み込む場合、戻ることができSTATUS_ACCESS_DENIED、書き込み時には何もするべきではありませんが、そもそもそのようなファイルが作成されないようにする必要があります(上記のエラーコードも含む)。作成は別の要求タイプです。

SSDTフッキングなど、同様の結果を達成する他の方法を想像できます。しかし、唯一の信頼できる方法は上記です。

そのためには、誰かにこの種のフィルターを作成してもらい(カーネル開発者向けのミニフィルターでは比較的簡単です)、Vista以降のカーネルモード署名ポリシーで署名する必要があります。後者を行いたくない場合は、ドライババイナリにテスト署名し、ブートオプションを変更して、テスト署名されたコンテンツを許可することができます。したがって、それぞれのシステムのセキュリティが低下します。

この情報に照らして、gallacticninjaとTom Wijsmanが指摘したソリューションを利用することを強くお勧めします。


2
Tom Wijsmanが指摘したソリューションを利用することを強くお勧めします。」実際、それは私が指摘したソリューションでした。私はすでにWindowsをそうするように設定しています。私はトムWijsmanに答えたもののように、私は探している他のされているからRLO文字を防ぐことができますソリューション書か読み、または自動的にするソリューション通知警告 RLOの文字が検出された場合、ユーザーに。あなたが説明したフィルターを作成するための技術的なノウハウを持っていないのではないかと思います。
銀河

@galacticninja:すみません、答えで訂正します。
0xC0000022L

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.