W poprzednim artykule wspomnieliśmy, że podczas próby otwarcia pliku wykonywalnego pobranego z Internetu system Windows wyświetla ostrzeżenie dotyczące zabezpieczeń przed próbą uruchomienia potencjalnie niebezpiecznej zawartości (szczegółowe informacje można znaleźć w temacie Wyłączanie ostrzeżenia bezpieczeństwa w systemie Windows). W jaki sposób system określa, że plik został pobrany z Internetu? Spróbujmy to rozgryźć.
Wskazówka. W Windows 8 SmartScreen może również blokować pliki pobrane z Internetu..Wszystkie pliki wykonywalne pobrane z Internetu za pomocą przeglądarki otrzymują specjalny znak. Ta reguła jest obsługiwana nie tylko przez Internet Explorera, ale także przez większość popularnych przeglądarek, takich jak Mozilla Firefox i Google Chrome. Podczas kopiowania, zmiany nazwy lub przenoszenia pliku na inną partycję w systemie plików NTFS ostrzeżenie nadal pozostaje.
Ten znak reprezentuje alternatywny strumień NTFS, posiadany plik.
Uwaga. Esencja alternatywne strumienie danych NTFS (ADS - alternatywne strumienie danych). - zdolność każdego pliku NTFS do utworzenia kilku dodatkowych strumieni danych (metadanych). Domyślnie wszystkie dane pliku są przechowywane w głównym strumieniu, ale możliwe jest utworzenie jednego lub więcej dodatkowych danych dla pliku, a ich rozmiar może nawet przekroczyć rozmiar głównego pliku. Zdecydowana większość aplikacji (w tym Explorer) działa tylko ze standardowym strumieniem i nie może odczytać danych z alternatywnych strumieni NTFS.Aby upewnić się, że plik pobrany z Internetu ma przypisaną specjalną etykietę (alternatywny strumień NTFS), w oknie wiersza polecenia umieść listę plików w katalogu dystrybucyjnym za pomocą polecenia:
reż./r
Jak widzimy, alternatywny wątek jest przypisany do plików wykonywalnych w tym katalogu Zone.Identifier, na przykład: install_flash_player_16_active_x.exe: Zone.Identifier
Otwórz zawartość alternatywnego strumienia w notatniku:
Notepad.exe install_flash_player_16_active_x.exe: Zone.Identifier
Widzimy, że ten strumień jest plikiem z [ZoneTransfer], który wskazuje identyfikator strefy transmisji Zoneid (te same strefy bezpieczeństwa, które są obecne w ustawieniach IE). Identyfikator strefy transmisji może zawierać jedną z 5 wartości od 0 do 4.
- ZoneId = 0: Komputer lokalny
- ZoneId = 1: Lokalny intranet
- ZoneId = 2: Zaufane witryny
- ZoneId = 3: Internet
- ZoneId = 4: Witryny z ograniczeniami
Podczas pobierania pliku z określonej strefy bezpieczeństwa przeglądarka umieszcza etykietę dla tej strefy. Podczas uruchamiania plików z atrybutem ZoneId równym 3 lub 4 w alternatywnym strumieniu NTFS, system rozpoznaje, że plik został otrzymany z Internetu lub niezaufanego źródła na podstawie etykiety strefy. System Windows sprawdza ten znacznik w plikach wykonywalnych, począwszy od systemu Windows XP z dodatkiem SP2.
Aby ręcznie usunąć daną etykietę (strumień alternatywny) z pliku, wystarczy kliknąć przycisk Odblokuj we właściwościach pliku.
Upewnij się, że teraz brakuje alternatywnego strumienia dla tego pliku:
Wskazówka. Aby uniemożliwić systemowi etykietowanie pobranych plików, możesz zapisywać pliki z Internetu w systemie plików innym niż NTFS. Na przykład FAT, exFat itp..Ogólnie rzecz biorąc, system Windows nie ma rozsądnych metod pracy z alternatywnymi strumieniami danych. A jeśli na przykład istnieje zadanie natychmiastowego usunięcia tej funkcji z wielu plików, najlepiej użyć narzędzia konsoli Marka Rusinowicza - strumienie.
Na przykład, aby rekurencyjnie usunąć alternatywne strumienie ze wszystkich plików exe w katalogu c: \ Download \, uruchom polecenie:
c: \ TOOLS \ streams.exe -s -d c: \ Download \ *. exe
Konsola pokazuje, że alternatywny strumień pliku został usunięty: Usunięte: Zone.Identifier: $ DATA
Jest ważne. Narzędzie do strumieni usuwa wszystkie alternatywne strumienie z podanych plików i nie pozwala na ukierunkowanie na konkretny strumień. Dlatego nie uruchamiaj polecenia streams w formacie streams.exe -s -d c: \ *. Exe, ponieważ może to prowadzić do nieprawidłowego działania systemu z powodu usunięcia ważnych informacji z alternatywnych strumieni NTFS w plikach systemowych.
Jeśli masz PowerShell 3.0, możesz wyświetlić listę plików w katalogu (rekurencyjnie) w strumieniu Zone.Identifier za pomocą następującego polecenia:
Get-ChildItem -Recurse | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue | Select-Object FileName
Sam atrybut jest usuwany w następujący sposób:
Remove-Item. \ Installfile.exe -Stream Zone.Identifier
W Windows PowerShell 4.0 możesz odznaczyć etykietę Zone.Identifier używając osobnego polecenia cmdlet:
Odblokuj plik installfile.exe
Możesz ustawić tę etykietę dla dowolnego pliku ręcznie. Aby to zrobić, uruchom polecenie
notepad.exe install_flash_player_16_active_x.exe: Zone.Identifier
Ponieważ nie ma przepływu, system zaoferuje utworzenie nowego pliku. Zgadzamy się i kopiujemy tekst do okna notatnika:
[ZoneTransfer]
ZoneId = 3
Zapisz zmiany. Upewnij się, że plik ma przypisany alternatywny strumień.