Wie kann verhindert werden, dass Dateien mit dem Unicode-Zeichen "Überschreiben von rechts nach links" im Namen (eine Malware-Spoofing-Methode) geschrieben oder gelesen werden?


20

Wie kann verhindert werden, dass Dateien mit dem RLO-Unicode-Zeichen (Right-to-Left Override) in ihrem Namen (eine Malware-Methode zum Fälschen von Dateinamen) auf einem Windows-PC geschrieben oder gelesen werden?

Weitere Informationen zum VKE-Unicode-Zeichen finden Sie hier:

Informationen zum VKE-Unicode-Zeichen, wie es von Malware verwendet wird:

Zusammenfassung des Vorfalls über Computerviren / nicht autorisierten Computerzugriff für Oktober 2011, zusammengestellt von der Werbeagentur für Informationstechnologie, Japan (IPA) [ Mirror (Google Cache) ]

Auf dieser Webseite zum Testen des VKE-Charakters können Sie die Funktionsweise des VKE-Charakters testen .

Das VKE-Zeichen ist auch bereits in das Feld "Eingabetest" auf dieser Webseite eingefügt. Versuchen Sie, dort zu tippen, und stellen Sie fest, dass die Zeichen, die Sie eingeben, in umgekehrter Reihenfolge (von rechts nach links statt von links nach rechts) ausgegeben werden.

In Dateinamen kann das VKE-Zeichen speziell im Dateinamen positioniert werden, um zu fälschen oder zu maskieren, dass es einen Dateinamen oder eine Dateierweiterung hat, die sich von dem unterscheidet, was es tatsächlich hat. (Wird auch dann ausgeblendet, wenn die Option " Erweiterungen für bekannte Dateitypen ausblenden " deaktiviert ist.)

Die einzigen Informationen, die ich finden kann, um zu verhindern, dass Dateien mit dem VKE-Zeichen ausgeführt werden, stammen von der japanischen Website der Information Technology Promotion Agency .

Kann jemand andere gute Lösungen empfehlen, um zu verhindern, dass Dateien mit dem VKE-Zeichen im Namen auf dem Computer geschrieben oder gelesen werden, oder um den Benutzer zu warnen, wenn eine Datei mit dem VKE-Zeichen erkannt wird?

Mein Betriebssystem ist Windows 7, aber ich werde nach Lösungen für Windows XP, Vista und 7 suchen, oder nach einer Lösung, die für alle diese Betriebssysteme geeignet ist, um Menschen zu helfen, die diese Betriebssysteme auch verwenden.


1
Sehr gute Frage! Das würde ich auch gerne wissen. Ihr Link scheint nicht zu funktionieren.
Cerberus

@Cerberus Gerade herausgefunden, dass der Link nicht funktioniert. Ich hoffe es ist nur vorübergehend ausgefallen. Ich werde die Antwort aktualisieren, wenn ich einen Spiegel finde.
Galacticninja


@Cerberus Danke. Ich habe den Spiegellink zur Frage hinzugefügt.
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.Können Sie uns bitte sagen, warum dies keine Lösung ist?
Tamara Wijsman

Antworten:


3

Sie können Everything in Kombination mit AutoHotkey verwenden , um eine Warnung zu erstellen, wenn ein bidirektionales Textsteuerzeichen Teil eines Dateinamens ist.

Das Drehbuch

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

Was es macht

Das Skript startet Everything und sucht nach ‎|â€|‪|‫|‬|‭|‮(UTF8), dh allen sieben bidirektionalen Textsteuerzeichen ( Quelle ), getrennt durch |.

Anschließend blendet das Skript das Fenster "Alles" aus und überwacht seine Statusleiste. Wenn eine andere Ziffer enthalten ist 0, wurde eine Übereinstimmung gefunden, das Fenster Alles wird angezeigt und das folgende Meldungsfeld wird angezeigt:

In einem Dateinamen wurde ein bidirektionales Textsteuerzeichen erkannt.

Klicken Sie auf OK, um das Fenster wieder auszublenden.

Das Skript führt auch einen Relaunch von Everything durch, falls es geschlossen wird.

Wie benutzt man

  1. Alles herunterladen , installieren und starten.

  2. Drücken Sie Ctrl+ Pund wechseln Sie zur Registerkarte Volumes .

    Aktivieren Sie für alle zu überprüfenden Volumes die Option Änderungen überwachen .

  3. Laden Sie AutoHotkey herunter und installieren Sie es.

  4. In obigem Skript speichern als find-bidirectional-text-control-characters.ahk.

  5. Doppelklicken Sie auf das Skript, um es zu starten.

  6. Erstellen Sie eine Verknüpfung zu dem Skript in Ihrem Startordner .



0

Es gibt wahrscheinlich andere Möglichkeiten, aber die einfachste - und dennoch nicht triviale - Möglichkeit ist die Implementierung eines Dateisystemfilters (oder eines Dateisystem-Minifilters), der diese Anforderungen filtert. STATUS_ACCESS_DENIEDWenn Sie aus einer solchen Datei lesen, können Sie zurückkehren und beim Schreiben sollten Sie nichts tun, sondern verhindern, dass solche Dateien erstellt werden (wahrscheinlich auch mit dem obigen Fehlercode). Die Erstellung ist ein weiterer Anforderungstyp.

Man kann sich andere Methoden vorstellen, um ein ähnliches Ergebnis zu erzielen, wie beispielsweise das SSDT-Hooking. Aber der einzig verlässliche Weg wäre der obige.

Dazu müssen Sie jemanden bitten, einen solchen Filter für Sie zu schreiben (für einen Kernelentwickler relativ trivial für Minifilter) und ihn dann signieren, um ihn durch die Signaturrichtlinie für den Kernelmodus seit Vista zu führen. Wenn Sie Letzteres nicht möchten, können Sie die Treiber-Binärdatei dennoch testen und die Startoptionen so ändern, dass testweise signierte Inhalte zulässig sind, was jedoch die Sicherheit des jeweiligen Systems gefährdet.

Angesichts dieser Informationen rate ich Ihnen dringend , die Lösung zu verwenden, auf die galacticninja und Tom Wijsman hingewiesen haben.


2
Ich rate Ihnen dringend, die Lösung zu verwenden, auf die Tom Wijsman hingewiesen hat. “ Eigentlich war das eine Lösung, auf die ich hingewiesen habe. Ich habe Windows bereits darauf eingestellt. Wie ich Tom Wijsman geantwortet habe, suche ich nach anderen Lösungen, die verhindern, dass das VKE-Zeichen geschrieben und gelesen wird, oder nach einer Lösung, die den Benutzer automatisch benachrichtigt oder benachrichtigt , wenn das VKE-Zeichen erkannt wird. Ich habe leider nicht das technische Know-how, um den von Ihnen beschriebenen Filter zu schreiben.
galacticninja

@galacticninja: Es tut mir leid, das werde ich in meiner Antwort korrigieren.
0xC0000022L

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.