Warum erlaubt NTFS unsichtbare ausführbare Dateien?

4061
Kredns

Sie können jede Datei in einer anderen Datei ausblenden, indem Sie Folgendes eingeben:

type sol.exe > container.txt:sol.exe 

und um die versteckte Datei auszuführen, benutze einfach:

start c:\hide\container.txt:sol.exe 

Das Verrückte daran ist jedoch, dass die Datei nicht vergrößert wird (also völlig versteckt ist).

Wenn Sie die Datei mit den versteckten Dateien löschen, werden die versteckten Dateien nicht gelöscht. Benutz einfach:

more < container.txt:sol.exe > sol.exe 

Warum lässt NTFS das zu? Es scheint der beste Weg zu sein, einen Virus zu verbergen.

104
nett, scheint wie Mac Ressourcegabeln. Stefano Borini vor 14 Jahren 1
Schlimmer noch, wenn Sie sol.exe auf diese Weise starten, zeigt der Task-Manager den Prozessnamen als container.txt an hasen vor 14 Jahren 15
Wir sollten Google bombardieren, damit "beängstigend" zu dieser Frage führt hasen vor 14 Jahren 16
So lange es das gibt, ist es immer noch erstaunlich, gelegentlich AV-Entwicklern / anderen Personen zu begegnen, die stark mit dem Dateisystem arbeiten, das STILL noch nicht kennt. Ich erwarte nicht, dass der durchschnittliche App-Entwickler davon erfährt, da es keine Notwendigkeit gibt, aber wenn Sie sich intensiv mit dem Dateisystem beschäftigen ... :-) Brian Knoblauch vor 12 Jahren 3
Angeblich können Sie auch einen ADS an einen Ordner anhängen. Sie können das ADS löschen, indem Sie den Ordner löschen. Wenn sich der Ordner jedoch im Stammverzeichnis des Laufwerks befindet, können Sie das Laufwerk C: nicht löschen, ohne das Laufwerk neu zu formatieren. Scheint für mich ein Mechanismus zum Erstellen eines versteckten Rootkit-Virus (?). HighTechGeek vor 10 Jahren 0

5 Antworten auf die Frage

98
RBerteig

Diese Frage hat zwei Seiten. Der erste Grund ist, warum diese Funktion überhaupt existiert, und der zweite Grund ist, warum die GUI (oder die Eingabeaufforderung) die Anzeige und Verwaltung der Funktion nicht einfacher macht.

Es existiert, weil es nützlich ist. Mehrere andere Plattformen unterstützen mehrere Datenströme pro Datei. Auf dem Mac wurden sie beispielsweise als Gabeln bezeichnet . Ich bin mir ziemlich sicher, dass es ähnliche Dinge in der Mainframe-Welt gab, aber ich kann heute keine konkreten Beispiele nennen.

In modernen Windows werden zusätzliche Attribute für eine Datei gespeichert. Möglicherweise stellen Sie fest, dass das in Windows Explorer verfügbare Feld Eigenschaften eine Registerkarte Zusammenfassung enthält, die in der einfachen Ansicht (ich bin unter Windows XP, die Laufleistung unterscheidet sich von den anderen Varianten) eine Reihe nützlicher Felder wie Titel, Betreff, Autor und enthält so weiter. Diese Daten werden in einem alternativen Stream gespeichert, anstatt eine Art Side-Car-Datenbank zu erstellen, die alle Daten enthält, die zu leicht von der Datei getrennt werden könnten.

Ein alternativer Stream wird auch für die Markierung verwendet, die besagt, dass die Datei aus einer nicht vertrauenswürdigen Netzwerkquelle stammt, die sowohl von Internet Explorer als auch von Firefox beim Herunterladen angewendet wird.

Die schwierige Frage ist, warum es keine bessere Benutzeroberfläche gibt, um zu erkennen, dass die Streams überhaupt existieren, und warum es möglich ist, ausführbaren Inhalt darin zu speichern. Schlimmer noch, und führen Sie ihn später aus. Wenn hier ein Fehler- und Sicherheitsrisiko besteht, ist es das.

Bearbeiten:

Inspiriert von einem Kommentar zu einer anderen Antwort, können Sie herausfinden, ob Ihr Viren- und / oder Malware-Schutz alternative Streams kennt.

Fordern Sie eine Kopie der EICAR-Testdatei an . Es handelt sich dabei um 68 Byte ASCII-Text, der auch eine gültige x86-Programmdatei ist. Obwohl völlig harmlos, hat die Antiviren-Industrie zugestimmt, entdeckt zu werden, als wäre es ein echter Virus. Die Urheber waren der Meinung, dass das Testen von AV-Software mit einem echten Virus ein wenig zu viel wäre, als würde man den Feueralarm testen, indem man den Papierkorb in Brand setzt ...

Die EICAR-Datei lautet:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* 

Speichern Sie es mit der Erweiterung .COMund es wird ausgeführt (sofern Ihr AV nicht aufpasst) und eine Begrüßung gedruckt werden.

Es wäre informativ, es in einem alternativen Datenstrom zu speichern und einen Scan auszuführen ...

Die angezeigte Dateigröße zeigt nur die Größe des $ DATA-Hauptstroms an. Das ist auch das, was Sie normalerweise wollen. Die Länge des Dateinamens (eine Art von Metadaten) wird nicht in die Dateigröße einbezogen. Ein Sicherheitsrisiko darstellen. ADS sind kein Risiko mehr als jede einzelne Datei. Ich habe nichts von Malware gehört, die sich mit diesen Mechanismen erfolgreich verbreitet hat. Joey vor 14 Jahren 11
@Johannes, "ADS sind kein Risiko mehr als jede einzelne Datei" Du machst Witze, hoffe ich! Eine "einfache" Textdatei, die ein ausführbares ADS enthält, ist offensichtlich eher ein Risiko als eine Textdatei ohne ADS. Ein solches ADS ist die Definition eines Trojanischen Pferdes. Dies scheint dem Benutzer eine wünschenswerte Funktion zu haben, führt jedoch tatsächlich zu einer bösartigen Aktion auf dem System. Ash vor 14 Jahren 0
Sie können eine in einem ADS einer Textdatei gespeicherte ausführbare Datei nicht versehentlich ausführen. Es ist gut versteckt, zu gut für einen gewöhnlichen Benutzer, um es versehentlich auszuführen. Sie müssten zuerst kompromittiert werden. R. Martinho Fernandes vor 14 Jahren 4
@ashh: Martinho nagelt es fest - die Dunkelheit, die es schwierig macht, eine ausführbare Datei in einem solchen Stream zu finden, macht es auch schwierig, eine ausführbare Datei auszuführen, ohne aktiv zu versuchen. Vergleichen Sie dies mit dem gesamten Fiasko "Versteckte Dateierweiterungen", bei dem ausführbare Dateien als Textdateien in der GUI erscheinen könnten ... und dennoch sehr einfach auszuführen sind. Shog9 vor 14 Jahren 7
Wenn Sie einen AV haben, der die .COM-Datei zumindest in Echtzeit beachtet, können Sie ihn nicht als ADS anhängen, da der AV Sie daran hindern würde, auf die .COM-Datei zuzugreifen Datei). Sie sollten jedoch in der Lage sein, eine Textdatei mit der EICAR-Zeichenfolge anzufügen und sie mit der Erweiterung .COM im ADS zu benennen. Geben Sie EICAR.txt> test.txt: EICAR.COM ein KTC vor 14 Jahren 3
Einige Antivirensoftware verwendet tatsächlich alternative Datenströme, um Dateien als geprüft zu markieren und Scans zu beschleunigen (vermutlich einschließlich eines Zeitstempels und / oder einer Prüfsumme, um geänderte Dateien zu erkennen, die erneut geprüft werden müssen). Michael Borgwardt vor 14 Jahren 0
@KTC, das EICAR-Testvirus in ein ADS einzubringen, ist natürlich eine Übung für den Studenten ... eine gute AV-Lösung sollte das erschweren, ebenso wie die Vermehrung eines echten Virus ... RBerteig vor 14 Jahren 0
Puh, mein Antivirus funktioniert! :) RCIX vor 14 Jahren 1
Coole Tatsache zur EICAR.COM-Datei: Sie kann nicht unter 64-Bit-Versionen von Windows ausgeführt werden. Ich denke, dieser Trick funktioniert nicht mehr, wenn sich alle auf 64-Bit-Computern befinden (was ** wahrscheinlich ** noch ** sein wird) während). Kredns vor 14 Jahren 2
@ Lucas, interessant. Ich vermute, das bedeutet, dass Win64 die Unterstützung für 16-Bit-COM-Dateien endgültig eingestellt hat. Wenn Sie jedoch die 32-Bit-Erweiterung für virtuelle Maschinen installiert haben und ein 32-Bit-CMD.EXE-Programm darin installiert ist, sollte es in der Lage sein, die EICAR-Datei dort auszuführen. RBerteig vor 13 Jahren 0
@ LucasMcCoy: Ich habe Win8 64-Bit und kann es gar nicht erst ausführen, da Windows Defender es weiterhin markiert und löscht: P Nathan Osman vor 10 Jahren 0
@NathanOsman Die gute Nachricht ist, dass Windows Defender Sie sogar vor Code schützt, der möglicherweise nicht auf einer 64-Bit-Plattform ausgeführt werden kann. :-) RBerteig vor 10 Jahren 0
15
Bruce McLeod

Diese Funktion ist für eine plattformübergreifende Funktion von Windows Server erforderlich: Dienste für Mac.

Dies ermöglicht einem Windows-Server, der auf NTFS-Freigabe für Macs über AFP ausgeführt wird. Damit dieses Feature funktioniert, muss das NTFS-Dateisystem die Gabeln unterstützen, und zwar vom ersten Tag an.

Und bevor Sie fragen, wird diese Funktion noch verwendet? Ja, ich habe es auf einem Server in einem Client, den ich unterstütze, täglich ausgeführt und verwendet.

Das wichtigste Sicherheitsproblem tritt auf, wenn Personen und Anwendungen vergessen oder nicht erkennen, dass sie vorhanden sind.

Es sollte jedoch wahrscheinlich eine Option vorhanden sein, um die Gabeln in die Gesamtdateigröße aufzunehmen oder sie im Windows-Explorer anzuzeigen.

Wenn Sie die Abstimmung ablehnen, hinterlassen Sie bitte einen Kommentar. Bruce McLeod vor 14 Jahren 2
Das klingt nach einem völlig plausiblen Grund dafür, dass das Feature überhaupt existiert. RBerteig vor 14 Jahren 2
Das Hinzufügen dieser Funktion, nur um das Teilen von Dateien für Macs zuzulassen, klingt nicht nach einem plausiblen Grund. Die Freigabe über das Netzwerk erfordert nicht, dass die Datei auf dem Server intakt gespeichert wird. Ich habe mehrere * nix Apple Sharing-Server gesehen, die die Datei in Daten- und Ressourceninformationen aufteilen. Dies ist für den Kunden transparent. Eine Änderung des tatsächlichen Laufwerkformats, um AFP zuzulassen, erscheint nicht realistisch. Könnte ein netter Vorteil sein, aber nicht als Grund für diese Funktion. Simurr vor 14 Jahren 3
Es kann andere Wege geben, dies zu tun, aber deshalb wurde es an erster Stelle aufgenommen und es wurde nicht entfernt. Daher ist es der Grund, warum es da ist. Kann es durch einen anderen Mechanismus ersetzt werden, um das gleiche zu tun, absolut. Wird sich Microsoft jemals die Mühe machen, wahrscheinlich nicht. Bruce McLeod vor 14 Jahren 0
Haben Sie einen Hinweis, um dies zu unterstützen? Dan McGrath vor 13 Jahren 0
Ja, ich denke, [Zitieren benötigt], wenn Sie behaupten, SfM sei der * Hauptgrund, warum MS ADSes in NTFS implementiert hat. afrazier vor 13 Jahren 2
Anführungszeichen gefunden: ... ADS-Funktionen, bei denen * ursprünglich für die Kompatibilität mit dem Macintosh-Hierarchischen Dateisystem (HFS) vorgesehen war *; Dabei werden Dateiinformationen manchmal in separate Ressourcen aufgeteilt. Alternative Datenströme werden mittlerweile von einer Reihe von Programmen, einschließlich des nativen Windows-Betriebssystems, zum Speichern von Dateiinformationen wie Attributen und temporärer Speicherung verwendet. Quelle: http://www.windowsecurity.com/articles/Alternate_Data_Streams.html JamesBarnett vor 13 Jahren 3
5
JP Alioto

Hier ist ein guter Artikel zu der potenziellen Sicherheitslücke, die alternative Datenströme darstellen .

Es ist eine Sicherheitslücke, keine Bedrohung. Und es ist kein so großer Deal, wie es klingt. Sie müssen bereits über Anmeldeinformationen verfügen, um sie verwenden zu können. romandas vor 14 Jahren 6
Kein Problem. Übrigens, überprüfen Sie Ihre Schreibweise. Und immer daran denken: Bedrohungen nutzen Schwachstellen aus. Bedrohungen sind normalerweise Menschen, aber auch natürliche und gemachte Katastrophen zählen. romandas vor 14 Jahren 0
@romandas, welche Anmeldeinformationen müssen Sie bereits haben? Zu Hause laufen die meisten Windows-Benutzer (insbesondere XP) mit Administratorrechten. Warum ist das nicht eine große Sache, wie es klingt? Ash vor 14 Jahren 0
@ashh, "mit einer Methode zum Verstecken ... auf einem verletzten System". Das System muss bereits kompromittiert sein, um etwas zu verbergen, und auf ähnliche Weise auch, was so versteckt ist. KTC vor 14 Jahren 0
5
jerryjvl

Ich könnte mir vorstellen, dass eine der Hauptanwendungen (vielleicht sogar die beabsichtigte Verwendung) darin bestehen würde, beliebige Arten von Metadaten transparent in eine Datei einzufügen. Der Grund, warum sich die Dateigröße nicht ändert, liegt in diesem Szenario darin, dass Sie nicht möchten, dass die Datei anders aussieht oder sich anders verhält, wenn die Ursprungsanwendung nicht auf einen Aspekt der Darstellung der Datei angewiesen ist.

Ich könnte mir beispielsweise interessante Anwendungen in IDEs vorstellen, bei denen manchmal mehrere Dateien eine Einheit bilden (Codedatei / Formulardatei usw.), die auf diese Weise an die Originaldatei angehängt werden könnte, damit sie nicht versehentlich getrennt werden.

Ich glaube auch, dass es einen Befehl gibt, alle derartigen 'Anhänge' in einem bestimmten Verzeichnisbaum zu finden, sodass sie nicht wirklich verborgen sind. Es würde mich auch überraschen, wenn die besseren Virenscanner dies nicht wissen und diese "verborgenen" Bereiche überprüfen. Sie können dies jedoch überprüfen, indem Sie eine infizierte ausführbare Datei absichtlich an eine Textdatei anhängen und prüfen, ob sie aufgenommen wird.

Könnten Sie bitte einen Link zu einer solchen ausführbaren Datei posten, damit ich es ausprobieren kann? ;) R. Martinho Fernandes vor 14 Jahren 0
Ich schlage vor, dass Sie AVG auf Ihrem Computer ausführen und dann eines der ausführbaren Dateien aus dem Quarantäneordner ziehen, um es zu versuchen;) jerryjvl vor 14 Jahren 0
@martinho, Sie möchten die EICAR-Testdatei: X5O! P% @ AP [4 \ PZX54 (P ^) 7CC) 7} $ EICAR-STANDARD-ANTIVIRUS-TEST-DATEI! $ H + H * Fügen Sie einfach diesen Text ein (genau 68 Bytes ASCII-Text (siehe http://www.eicar.org/anti_virus_test_file.htm für die gesamte Geschichte) in eine Datei mit der Erweiterung .COM. Es wird ausgeführt und eine Nachricht gedruckt. Es sei denn, Ihr AV funktioniert natürlich. Legen Sie es in einen alternativen Datenstrom und prüfen Sie auch dort. RBerteig vor 14 Jahren 2
@RBerteig: Hey, cool ... Ich wusste nicht, dass es so etwas gibt. jerryjvl vor 14 Jahren 0
@jerryjvl, wie sie sagen, es ist besser als der Feueralarm zu testen, indem der Papierkorb in Brand gesetzt wird ... RBerteig vor 14 Jahren 0
@RBerteig: Es ist nur überraschend, dass AV-Unternehmen sich auf so etwas treffen würden ... (oder alle anderen Unternehmen!) ... und das ist dann wirklich traurig ... jerryjvl vor 14 Jahren 0
5
Ash

Gute Frage, ich habe ADS erst im letzten Jahr richtig verstanden und bin seit vielen Jahren Windows-Entwickler. Ich kann garantieren, dass ich dabei nicht alleine bin.

In Bezug auf die Möglichkeit, nach alternativen Daten in Dateien zu suchen, habe ich das nützliche kleine Tool namens Lads von Frank Heyne gefunden. Es kann ADS für alle Dateien in einem bestimmten Verzeichnis auflisten, sogar für verschlüsselte Dateien (und auch innerhalb von Unterverzeichnissen).