Was steckt hinter der Sicherheitswarnung nach einem Download?

Oftmals erreicht uns die Frage “Wo und wie wird gespeichert, dass eine Datei aus dem Internet heruntergeladen worden ist?”
(In den Beispielen verwende ich den Download der aktuellen IE9 Platform Preview 7)

 

Da ein Bild mehr sagt als 1000 Worte, hier auch der passende Screenshot dazu:

image
Screenshot1: Warnung bei der Ausführung einer downgeloadeten Datei

 

Um die Frage umfänglich zu beantworten muss ich einen kleinen (ich versuche mich kurz zu halten! Winking smile ) Exkurs in NTFS Grundlagen machen:

Eine gewöhnliche Datei in NTFS besitzt neben den eigentlichen (binär) Daten auch die allgemein bekannten Eigenschaften wie Größe, Erstelldatum, Änderungsdatum, etc., z.B.:

image
Screenshot2: normale Anzeige einer heruntergeladenen Datei mittels “dir”

Allerdings ist es in NTFS auch möglich zusätzliche Daten parallel in sog. “Alternate Data Streams” zu speichern. Dies sollte normalerweise nur dazu genutzt werden Meta-Daten zu einer Datei, z.B. MP3 Informationen über das Album, den Interpreten, etc., zu speichern:

image
Screenshot3: Anzeige einer heruntergeladenen Datei mittels “dir” und dem zusätzlichen Parameter /R zur Anzeige der Streams

Oder mittels des Tools “Streams” von Sysinternals:

image
Screenshot4: Anzeige einer heruntergeladenen Datei mittels “streams”

Der Zugriff auf einen Stream erfolgt mittels %Dateiname%:%Streamname%.

Man kann sich also den Stream von unserer iepreview.msi wie folgt anzeigen:

notepad iepreview.msi:Zone.Identifier

und erhält folgende Anzeige:

image
Screenshot5: Inhalt des Streams Zone.Identifier

D.h. die Datei beinhaltet die Zone, aus der sie heruntergeladen worden ist, die Zonen sind wie folgt nummeriert:

  1. Local Machine / Lokale Maschine
  2. Local Intranet / Lokales Intranet
  3. Trusted Sites / Vertrauenswürdigen Seiten
  4. Internet / Internet
  5. Restricted Sites / Eingeschränkte Seiten

In unserem Fall also aus der Zone “Internet”.

 

Neben den nun offensichtlichen Möglichkeiten die Streams zu verändern oder zu löschen, kann die Information auch sehr einfach vom User entfernt werden:

Entweder durch das Entfernen des Hakens in der Checkbox von Screenshot1, oder aber über die Dateieigenschaften (Rechtsklick auf die Datei, dann “Eigenschaften” im Kontextmenu auswählen und dann “Unblock”):

image
Screenshot6: Hinweis auf den Zonen Stream in den Dateieigenschaften

 

Ich hoffe ich konnte ein bisschen Licht in die Dunkelheit hinter (Zone.Identifier) Streams bringen, bei Fragen/Hinweisen bitte die Kommentarfunktion benutzen.

-Stephanus

 

Links:

NTFS Technical Reference
NTFS (Wikipedia)
How To Use NTFS Alternate Data Streams
The NTFS File System - Multiple Data Streams
Persistent Zone Identifier Object
How to use security zones in Internet Explorer