Главная > Разное, Уголок гика > Каким образом Windows определяет, что файл был загружен из Интернета, и выводит предупреждение безопасности

Каким образом Windows определяет, что файл был загружен из Интернета, и выводит предупреждение безопасности

Вы наверняка сталкивались с ситуацией, когда на попытку открыть загруженный с Интернета файл система вам отвечала вот таким окном:

Windows определяет, что файл был загружен с Интернета, помечен как потенциально опасный, и выводит соответствующее предупреждение.
Такую пометку файл получает, когда он был загружен при помощи браузера Internet Explorer, а также некоторых альтернативных браузеров (некоторых, но далеко не всех: например, при использовании Google Chrome пометка ставится, а при использовании Opera - нет). Я предлагаю вам посмотреть, как всё это работает "изнутри".


Вероятно, вы читали статью "Альтернативные потоки NTFS, или создание секретных файлов, существование которых на первый взгляд неочевидно". Если нет, стоит с ней ознакомиться хотя бы бегло, потому что пометка о получении файла из Интернета есть не что иное, как альтернативный поток NTFS, принадлежащий файлу, который вы скачали.

В этом легко убедиться, если выполнить команду DIR c ключом /R. Команда DIR /R включает вывод альтернативных потоков данных для файлов, которые присутствуют в её выводе.

Вот, к примеру, вывод команды DIR из папки, где я храню дистрибутивы приложения TeamViewer:

Как можно заметить, листинг файлов содержит дополнительный, альтернативный поток для каждого из дистрибутивов. Например, вот этот: TeamViewer6_10_Setup_ru.exe:Zone.Identifier.

Давайте воспользуемся стандартным приложением Windows "Блокнот", и откроем поток следующей командой:

notepad.exe TeamViewer6_10_Setup_ru.exe:Zone.Identifier

Как вы можете видеть, альтернативный поток-пометка - не более чем обычный INI-файл с секцией [ZoneTransfer] и идентификатором зоны передачи. Присутствие подобного файла-альтернативного потока говорит системе, что файл получен из Интернет.

Снятие и установка пометки

Операционная система Windows позволяет отключить пометку (читать - удалить альтернативный zone-поток) непосредственно из свойств "меченного" файла:

Нажатие на кнопку "Разблокировать" удаляет альтернативный поток, в чем легко убедиться, снова выполнив команду dir /r:

Впрочем, ничего не мешает вам установить её обратно.
Снова выполняем команду:

notepad.exe TeamViewer6_10_Setup_ru.exe:Zone.Identifier

На этот раз Блокнот выведет предупреждение, что файл, который мы пытаемся открыть, не существует (что не удивительно - мы только что его удалили).

Отвечаем "Да", и в качестве текста файла заносим уже знакомые нам строки:

[ZoneTransfer]
ZoneId=3

Всё, сохраняем файл, закрываем Блокнот, и система снова считает файл небезопасным и полученным с Интернет.

К сожалению, средствами операционной системы нельзя удалять альтернативные потоки у нескольких файлов(команда DEL считает символ ":" недопустимым, а Проводник не имеет опции отображения альтернативных потоков), и это значит, что сразу с нескольких файлов признак загрузки с Интернет снять тоже нельзя.

Если же вам необходимо снять этот признак сразу с большого количества файлов, то поможет в этом ранее рассмотренная утилита streams, созданная Марком Руссиновичем.

Утилита streams поддерживает два необходимых ключа:

streams [-s] [-d] <file or directory>

Здесь

  • -s обрабатывать подпапки рекурсивно.
  • -d удалять потоки

Таким образом, я удалю альтернативные потоки у всех EXE-файлов, запустив streams командой вида

streams -d *.exe

Скачать streams можно здесь.

Внимание! Не запускайте streams командой вида

streams -s -d D:\*.exe

Это может привести к непредсказуемым последствиям, вплоть до сбоев в работе системы и установленных приложений. Дело в том, что утилита streams не позволяет удалять конкретные потоки NTFS и удаляетвсе альтернативные потоки для каждого из файлов. Помимо пометки о получении файла из Интернет, в альтернативных потоках может содержаться какая-либо другая информация, которая нужна системе и/или другим приложениям.

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!

Комментарии

  1. Username

    Ссылка на streams битая (вы удалили windows.php, который должен редиректить)

  2. Habetdin

    У Nir Sofer есть удобная утилита для просмотра и управления потоками NTFS - AlternateStreamView.

  3. Сергей Ткаченко

    @Habetdin
    Я на момент написания статьи о ней ничего не знал.

  4. Сергей Ткаченко

    @Username
    Спасибо, ссылки поправил. На самом деле, я перетащил статью со старого движка. Вероятно, я что-то упустил при переносе.

Написать комментарий