V předchozím článku jsme zmínili, že když se pokusíte otevřít spustitelný soubor stažený z Internetu, systém Windows vydá bezpečnostní varování o pokusu o spuštění potenciálně nebezpečného obsahu (podrobnosti viz Jak vypnout bezpečnostní varování ve Windows). Jak systém zjistí, že soubor byl stažen z Internetu? Zkusme na to přijít.
Tip. V systému Windows 8 může SmartScreen blokovat také soubory stažené z Internetu..Všechny spustitelné soubory stažené z Internetu pomocí prohlížeče obdrží zvláštní značku. Toto pravidlo podporuje nejen Internet Explorer, ale i většina populárních prohlížečů, jako je Mozilla Firefox a Google Chrome. Při kopírování, přejmenování nebo přesunutí souboru do jiného oddílu pomocí systému souborů NTFS zůstává varování stále zachováno.
Tato značka představuje alternativní tok NTFS, soubor vlastněn.
Poznámka:. Esence alternativní datové toky NTFS (ADS - Alternativní datové toky). - schopnost každého souboru NTFS vytvořit několik dalších datových toků (metadata). Ve výchozím nastavení jsou všechna data souboru uložena v hlavním proudu, ale je možné pro soubor vytvořit jeden nebo více dalších potů dat a jejich velikost může dokonce přesáhnout velikost hlavního souboru. Převážná většina aplikací (včetně Průzkumníka) pracuje pouze se standardním proudem a neumí číst data z alternativních toků NTFS.Chcete-li se ujistit, že soubor stažený z Internetu je přiřazen speciální štítek (alternativní tok NTFS), v okně příkazového řádku vypište soubory v distribučním adresáři pomocí příkazu:
dir / r
Jak vidíme, ke spustitelným souborům v tomto adresáři je přiřazeno alternativní vlákno Zone.Identifier, například: install_flash_player_16_active_x.exe: Zone.Identifier
Otevřete obsah alternativního proudu v poznámkovém bloku:
Notepad.exe install_flash_player_16_active_x.exe: Zone.Identifier
Vidíme, že tento stream je soubor s [ZoneTransfer], což označuje identifikátor přenosové zóny Zoneid (stejné zóny zabezpečení jako v nastavení IE). ID přenosové zóny může obsahovat jednu z 5 hodnot od 0 do 4.
- ZoneId = 0: Místní počítač
- ZoneId = 1: Místní intranet
- ZoneId = 2: Důvěryhodné weby
- ZoneId = 3: Internet
- ZoneId = 4: Servery s omezeným přístupem
Při stahování souboru z konkrétní zóny zabezpečení prohlížeč umístí štítek pro tuto zónu. Při spouštění souborů s atributem ZoneId rovným 3 nebo 4 v alternativním toku NTFS systém rozpozná, že soubor byl přijat z Internetu nebo z nedůvěryhodného zdroje na základě označení zóny. Systém Windows kontroluje tuto značku ve spustitelných souborech počínaje aktualizací Windows XP SP2.
Chcete-li ručně odstranit daný štítek (alternativní stream) ze souboru, stačí kliknout na tlačítko Odemkněte ve vlastnostech souboru.
Ujistěte se, že alternativní datový proud pro tento soubor nyní chybí:
Tip. Chcete-li zabránit systému v označování stažených souborů, můžete ukládat soubory z Internetu do jiného systému souborů než NTFS. Například FAT, exFat atd..Windows obecně postrádají rozumné prostředky pro práci s alternativními datovými toky. A pokud je například úkolem tuto funkci okamžitě odstranit z mnoha souborů, je nejlepší použít nástroj konzoly třetí strany Mark Rusinovich - proudy.
Chcete-li například rekurzivně odebrat alternativní toky ze všech souborů exe v adresáři c: \ Download \, spusťte příkaz:
c: \ TOOLS \ streams.exe -s -d c: \ Download \ *. exe
Konzola ukazuje, že alternativní tok souboru byl odstraněn: Smazáno: Zone.Identifier: $ DATA
Je důležité. Obslužný program streamy odstraní všechny alternativní streamy z daných souborů a neumožňuje cílení na konkrétní tok. Proto nespouštějte příkaz streams ve formátu streams.exe -s -d c: \ *. Exe, protože to může vést k selhání systému kvůli odstranění důležitých informací z alternativních toků NTFS v systémových souborech.
Pokud máte PowerShell 3.0, můžete seznam souborů v adresáři (rekurzivně) s proudem Zone.Identifier pomocí následujícího příkazu:
Get-ChildItem -Recurse | Get-Item -Stream Zone.Identifier -ErrorAction SilentlyContinue | Select-Object FileName
Samotný atribut je odstraněn následovně:
Remove-Item. \ Installfile.exe -Stream Zone.Identifier
Ve Windows PowerShell 4.0 můžete odznačit označení Zone.Identifier pomocí samostatné rutiny cmdlet:
Unblock-File installfile.exe
Tento štítek můžete nastavit pro libovolný soubor ručně. Chcete-li to provést, spusťte příkaz
notepad.exe install_flash_player_16_active_x.exe: Zone.Identifier
Protože neexistuje žádný tok, systém nabídne vytvoření nového souboru. Souhlasíme a zkopírujeme text do okna poznámkového bloku:
[ZoneTransfer]
ZoneId = 3
Uložit změny. Zkontrolujte, zda je k souboru přiřazen alternativní stream.