Альтернативні потоки ntfs, або як widows визначає, що файл був завантажений з інтернет.

Відео: Уроки C #. Нить. Частина 1



Більшість користувачів сучасних операційних систем сімейства Windows стикалися з ситуацією, коли файл довідки в форматі CHM (Compiled Help Module) відкривається лише частково - можна переглядати тільки зміст без вмісту його пунктів:



При виборі посилання не відкривається відповідний розділ в правій частині вікна. Зазвичай, це відбувається з файлами, які були завантажені з Інтернет (не в складі архіву, наприклад).

Крім цього, при спробі відкрити файл CHM, що міститься в загальній мережевий папці, використовуючи шлях в форматі UNC (Universal Naming Convention), наприклад server h help.chm його розділи не відображаються. Іншими словами, нормально переглядати файли .chm можна тільки в тих випадках, якщо вони не були отримані по мережі.

Схожа картина спостерігається, коли ви намагаєтеся відкрити виконуваний файл, який був завантажений з мережі. Ви побачите попередження системи безпеки:



Причому, цей же файл, витягнутий з архіву який також був завантажений з мережі Internet, на даному комп`ютері може відкриватися без будь-яких проблем. Фактично, вся різниця полягає лише в тому, що файл, що відкривається був створений локально, в процесі розпакування, а не завантажений по мережі. Іншими словами, Windows має можливість визначити мережеве походження файлу, і відреагувати на нього з використанням певних настройок системи безпеки.

Механізм визначення мережевого походження файлів

У файлової системи NTFS кожен файл (або каталог) представлений як набір окремих елементів, званих атрибутами. Такі елементи, як ім`я файлу, параметри безпеки і навіть дані - все це атрибути файлу. Кожен атрибут ідентифікований кодом типу атрибута і, необов`язково, ім`ям атрибута. Так, наприклад, ім`я файлу міститься в атрибуті Filename, вміст - в атрибутіDATA, відомості про власника та права доступу - в атрибуті Security Descriptor і т.д.Содержімое кожного файлу (атрибут $ DATA) являє собою набір потоків, в яких зберігаються дані. Для кожного файлу або каталогу в NTFS існує, як мінімум один, основний потік, в якому, власне і зберігаються дані. Однак, крім основного потоку, з файлом або каталогом можуть бути пов`язані і альтернативні (Alternate Data Stream - ADS), які також можуть містити деякі дані, ніяк не пов`язані з даними основного потоку. Основний потік файлу не має імені і позначається як $ dаta: "". Альтернативні ж потоки обов`язково мають ім`я, наприклад - $ dаta: "StreamData" - альтернативний потік з ім`ям StreamData

При виконанні функцій запису даних в файл, вони поміщаються в основний потік даних. Коли ми відкриваємо, наприклад, блокнотом текстовий файл, то отримуємо доступ саме до даних основного потоку. Дані ж альтернативних потоків, при використанні стандартного доступу, не відображаються, як втім, немає навіть ніяких ознак їх наявності. Проте, дані альтернативних потоків, пов`язані з конкретним файлом або каталогом, можуть бути доступні за допомогою спеціальних програм або при використанні особливого синтаксису в командному рядку Windows.

Наприклад, запис в файл test.txt тексту командою echo:

echo Main stream Data gt; test.txt - записати текст "Main stream Data" в файл test.txt,що означає запис в основний неіменованого потік.

Але можна змінити команду:

echo Alternate stream Data gt; test.txt: stream1 - записати текст "Alternate stream Data" в альтернативний потік з ім`ям stream1 файлу test.txt

Тепер можна відкрити, наприклад, блокнотом кожен з потоків:

notepad test.txt - відкриється вміст основного потоку з текстом "Main stream Data"

notepad test.txt: stream1 - відкриється вміст альтернативного потоку з текстом "Alternate stream Data"

Альтернативні потоки, будучи невидимими для стандартних засобів роботи з об`єктами файлової системи, проте, дуже часто використовуються для зберігання додаткових відомостей про файли та іншої службової інформації. Так, наприклад, при скачуванні файлів з Інтернет, браузери додають до них альтернативний потік з ім`ям Zone.Identifier, який можна відкрити блокнотом, як і в прикладі вище

notepad% USERPROFILE% Downloads ChromeSetup.exe: Zone.Identifier - відкрити в блокноті альтернативний потік з ім`ям Zone.Identifier для інсталяційного файлу браузера Google Chrome з ім`ям ChromeSetup.exe Шлях до файлу можна не ставити, попередньо виконавши команду переходу в каталог завантаження поточного користувача (при стандартному розташуванні службових користувальницьких папок):




cd% USERPROFILE% Downloads - перейти в каталог завантаження.

notepad ChromeSetup.exe: Zone.Identifier - відкрити альтернативний потік з ім`ям Zone.Identifier для інсталяційного файлу браузера Google Chrome з ім`ям ChromeSetup.exe в поточному каталозі.





Як бачимо, вміст альтернативного потоку містить рядки:

[ZoneTransfer] - ознака секції з описом зони передачі даних
ZoneId = 3 - ідентифікатор зони.

Ця інформація дає можливість визначити походження файлу за номером ідентифікатора ZoneId:

0 - локальний комп`ютер (Local).
1 - місцева локальна мережа (Intranet)



2 - надійні сайти Інтернет (Trusted Sites)
3 - Інтернет (Internet)
4 - небезпечні сайти (Restricted Sites)

Таке визначення зон, наприклад, відповідає настроюванням безпеки оглядача Internet Explorer:



В даному випадку, можна визначити, що файл ChromeSetup.exe був отриманий з Інтернет (ідентифікатор зони = 3). При запуску такого файлу, буде видано попередження системи безпеки про ненадійного джерелі. Аналогічним чином працюють засоби безпеки додатків Microsoft Office, коли попереджають про небезпеку відкриття файлів, які були завантажені з Інтернет. З цієї ж причини не відкривається вміст файлів довідок у форматі CHM - вміст альтернативного потоку дозволяє класифікувати їх як небезпечні, незалежно від реально існуючої або неіснуючої небезпеки.

Спробуйте змінити тим же блокнотом, значення ZoneId на 0, що буде відповідати локальному походженням файлу, і попередження системи безпеки зникне, як і проблеми з відкриттям офісних документів або розділів довідок в .chm-файлах.

Аналогічна поведінка систем безпеки буде і в тих випадках, якщо видалити вміст альтернативного потоку (зробити його порожнім), або взагалі видалити сам альтернативний потік.

Починаючи з Windows 7 для отримання переліку альтернативних потоків файлів можна використовувати команду DIR з параметром / R:

dir / r% UserpRofile% Downloads - відобразити список файлів і альтернативних потоків в каталозі Downloads поточного користувача.

Для роботи з альтернативними потоками в будь-якої версії ОС Windows можна використовувати утиліту streams.exe ізсостава програмного пакету Microsoft Sysinternals Suite. Пакет містить безліч невеликих програм для діагностики, оптимізації та адміністрування, в тому числі, і утиліту, що дозволяє заповнити недоліки в роботі з альтернативними потоками.

Формат командного рядка:

streams.exe [-s] [-d] file or directory

Параметри командного рядка:

-s - обробляти підкаталоги.
-d - видаляти альтернативні потоки.
-nobanner - не відображати стартовий банер і відомості про авторські права.

Приклади використання:

streams.exe /? - відобразити довідку по використанню програми.

streams myfile.txt - відобразити відомості про рух файлу myfile.txt

streams -d myfile.txt - видалити альтернативні потоки файлу myfile.txt

streams -d -s D: Downloads *. * - видалити альтернативні потоки всіх файлів і підкаталогів в каталозі D: Downloads

В операційних системах Windows 8 і пізніших, командна оболонка PowerShell також дозволяє працювати з альтернативними потоками:

Get-Item -Path -Path C: FirefoxSetup.exe -Stream * - відобразити відомості про рух файлу C: FirefoxSetup.exe.

Get-Content -Path C: FirefoxSetup.exe -Stream Zone.Identifier - відобразити вміст альтернативного потоку Zone.Identifier файлу C: FirefoxSetup.exe

Remove-Item -Path C: FirefoxSetup.exe -Stream * - видалити всі альтернативні потоки, пов`язані з файлом C: FirefoxSetup.exe

Remove-Item -Path C: FirefoxSetup.exe -Stream Zone.Identifier - видалити альтернативний потік Stream Zone.Identifier, пов`язаний з файлом C: FirefoxSetup.exe.

Інформація про зонах безпеки широко використовується в групових політиках, і зокрема, Диспетчером вкладень Windows, який виконує функції захисту від шкідливого ПО, яке може міститися в поштових вкладеннях або файлах, завантажених з Інтернет. На сайті Microsoft розміщена докладна стаття про способи налаштування диспетчера вкладень і рішення проблем, пов`язанихз ним:
Опис роботи диспетчера вкладень, який входить у систему Microsoft Windows.


На закінчення додам, що альтернативні потоки - це властивість файлової системи NTFS, і, наприклад, в FAT32 не підтримуються. Відповідно, при копіюванні файлів з NTFS в будь-яку іншу файлову систему, альтернативні потоки відкидаються.

Поділися в соціальних мережах:

Схожі
Яка файлова система краще exfat або ntfs?Яка файлова система краще exfat або ntfs?
Команда expand - розпакувати стиснений файл у форматі .cabКоманда expand - розпакувати стиснений файл у форматі .cab
Налаштування многозагрузочной системиНалаштування многозагрузочной системи
Використання редактора реєстру regedit в командних файлах windowsВикористання редактора реєстру regedit в командних файлах windows
Витяг файлів з архівів формату .cab в операційних системах windows.Витяг файлів з архівів формату .cab в операційних системах windows.
Команда convertКоманда convert
Як створити файл .htaccessЯк створити файл .htaccess
Створення стислих файлів формату .cab в операційних системах windows.Створення стислих файлів формату .cab в операційних системах windows.
Команда chkdskКоманда chkdsk
Html-файл відкривається як txtHtml-файл відкривається як txt
» » Альтернативні потоки ntfs, або як widows визначає, що файл був завантажений з інтернет.