Альтернативні потоки NTFS або як Widows визначає, що файл був завантажений з Інтернету. Особливості файлової системи NTFS
У цій темі я розгляну чотири види метаданих, які можуть бути прикріплені до файлу або каталогу засобами файлової системи NTFS. Я опишу, з якою метою можна використовувати той чи інший тип метаданих, наведу приклад його застосування в будь-якій технології Microsoft або сторонньому програмному забезпеченні.
Йдеться про точки повторної обробки (reparse points), ідентифікатори об'єктів (object id) та про інші типи даних, які може містити файл крім свого основного вмісту.
Ідентифікатор об'єктуце 64 байти, які можна прикріпити до файлу чи каталогу. З них перші 16 байт дозволяють однозначно ідентифікувати файл у межах тому і звертатися до нього не на ім'я, а на ідентифікатор. Інші 48 байт можуть містити довільні дані.
Ідентифікатори об'єктів існують у NTFS з часів Windows 2000. У самій системі вони використовуються для відстеження розташування файлу, який посилається ярлик (.lnk). Допустимо, файл, на який посилається ярлик, був переміщений у межах тома. Під час запуску ярлика він все одно відкриється. Спеціальна служба Windowsу випадку, якщо файл не знайдений, спробує відкрити файл не за його ім'ям, а за заздалегідь створеним і збереженим ідентифікатором. Якщо файл не був видалений і не залишав межі тома, він відкриється, а ярлик знову вказуватиме на файл.
Ідентифікатори об'єктів використовувалися в технології iSwift Антивірусу Касперського 7-ої версії. Ось як описано цю технологію: Технологія розроблена для файлової системи NTFS. У цій системі кожному об'єкту надається NTFS-індентифікатор. Цей ідентифікатор порівнюється із значеннями спеціальної бази даних iSwift. Якщо значення бази даних з NTFS-ідентифікатором не збігаються, об'єкт перевіряється або перевіряється ще раз, якщо він був змінений.
Втім, надлишок створених ідентифікаторів викликав проблеми зі скануванням диска стандартною утилітоюПеревірка chkdsk, вона відбувалася занадто довго. У наступних версіях Антивірусу Касперського відмовилися від використання NTFS Object Id.
Reparse Point
У файловій системі NTFS файл або каталог може містити в собі reparse point, що перекладається як "точка повторної обробки". У файл або каталог додаються спеціальні дані, файл перестає бути звичайним файлом і обробити його може лише спеціальний драйверфільтр файлової системи.![](https://i1.wp.com/habrastorage.org/storage/64afd3c9/0aa46876/9a5cc32c/ebedf594.png)
У Windows є типи reparse point, які можуть бути оброблені самою системою. Наприклад, через точки повторної обробки Windows реалізуються символьні посилання (symlink) і з'єднання (junction point), і навіть точки монтування томів у каталог (mount points).
Reparse-буфер, що приєднується до файлу, це буфер, що має максимальний розмір 16 кілобайт. Він характеризується наявністю тега, що говорить системі у тому, якого типу належить точка повторної обробки. При використанні reparse-буфера власного типу ще необхідно ставити в ньому GUID у спеціальному полі, а в reparse-буферах Microsoft він може бути відсутнім.
Які типи точок повторної обробки є? Перерахую технології, в яких використовуються reparse point"и. Це Single Instance Storage (SIS) і Cluster Shared Volumes в Windows Storage Server 2008 R2, Hierarchical Storage Management, Distributed File System (DFS), Windows Home Server Drive Extender. Це технології Microsoft, тут не згадані технології сторонніх компаній, які використовують точки повторної обробки, хоча такі є.
Extended Attributes
Розширені атрибути файлу. Про них був. Тут варто згадати лише те, що під Windows ця технологія практично не застосовується. З відомого мені програмного забезпеченнятільки Cygwin використовує розширені атрибути для збереження прав доступу POSIX. Один файл на NTFS може бути або розширені атрибути, або буфер точки повторної обробки. Одночасне встановлення і того й іншого неможливе. Максимальний розмір усіх розширених атрибутів у одного файлу складає 64 Кб.Alternate Data Streams
Додаткові файлові потоки. Про них знає вже, мабуть, кожен. Перелічу основні ознаки цього виду метаданих: іменованість (тобто у файлу може бути кілька потоків, і у кожного своє ім'я), прямий доступ із файлової системи (їх можна відкривати, використовуючи формат «ім'я файлу, двокрапка, ім'я потоку»), необмежений розмір , можливість запуску процесу прямо з потоку (і можливість реалізувати через це).Використовувалися в технології iStream Антивірусу Касперського. Використовуються в самій Windows, наприклад, при завантаженні файлу з інтернету до нього причіпляється потік Zone.Identifier, що містить інформацію про те, з якого місця отримано. даний файл. Після запуску файлу користувач може побачити повідомлення «Не вдається перевірити видавця. Ви дійсно хочете запустити цю програму?.
Так користувач дає додатковий захист від необдуманого запуску програм, отриманих з інтернету. Це лише одне застосування потоків, а так в них можна зберігати різні дані. Згаданий Антивірус Касперського зберігав там контрольні суми кожного файлу, але пізніше від цієї технології теж чомусь відмовилися.
Що небудь ще?
Є ще ідентифікатор безпекиплюс стандартні атрибути файлу, до яких немає прямого доступу, незважаючи на те, що вони теж реалізовані як потоки файлів. І вони, і розширені атрибути, і reparse і object id - це потоки файлу з погляду системи. Безпосередньо змінювати ідентифікатор безпеки, показаний на наступній картинці як:: $ SECURITY_DESCRIPTOR сенсу немає, нехай його зміною займається система. До інших типів потоків сама система не дає прямого доступу. Тож на цьому все.Перегляд вмісту object id, точок повторної обробки, а також робота з розширеними атрибутами та альтернативними файловими потоками можлива за допомогою програми
Операційні системи Windows наділені двома маловідомими функціямиприховування даних: потоки даних NTFS(відомі також як альтернативні потоки даних) та доступ до списку ресурсів на базі дозволів Access-based Enumeration (ABE). Альтернативні потоки даних дозволяють додавати до файлу приховану інформацію, таку як відомості про файл. Швидше за все, вам не доведеться задіяти приховані потоки даних, проте зловмисники можуть використовувати цю технологію проти вас, тому слід мати уявлення про неї і про те, як вона може працювати.
Що ж до методу ABE, він може поповнити ваш арсенал. Цей метод дозволяє робити невидимими папкита файли спільно використовуваних ресурсів для тих користувачів, які не мають дозволу на доступ до них.
Ось що потрібно знати про ці кошти.
Річки, що живлять море даних
Альтернативні потоки даних – це функція файлової системи NTFS. Колись ними була наділена система Windows NT 3.1 для того, щоб дати можливість користувачам NT і Macintosh обмінюватися файлами.
Файл NTFS складається із потоків даних. Це стандартний поток даних $DATA, і, можливо, один або кілька альтернативних потоків даних. Будь-який користувач, що володіє необхідними дозволамина роботу з файлом, що бачить існуючий потік даних $DATA, може відкрити його, а також зчитувати та записувати дані в цей потік.
Альтернативний потік даних – це додаткова інформаціяабо файли, які користувач або програма можуть приєднувати до файлу NTFS. Про існування альтернативного потоку даних знає лише користувач, який створив його. Зазвичай користувачі не знають, чи приєднаний до файлу альтернативний потік даних; річ у тому, що ні вміст цього потоку, ні його ім'я не є видимими. До того ж, немає можливості побачити зміну у розмірі файлу.
Існує безліч способів використання альтернативних потоків даних. У системі Windowsці потоки застосовуються для зберігання зведених даних документів, створених додатками, які не входять до комплекту Microsoft Office, такі як прості текстові файли (.txt). Зведені дані, наприклад заголовок, тема та дані про автора, можна ввести на вкладці Summary діалогового вікна Properties відповідного файлу. Ці зведені дані зберігаються в альтернативному потоці даних SummaryInformation.
Програми Windows, такі як Encrypting File System (EFS) і Windows Explorer, використовують альтернативні потоки даних для приєднання тих чи інших файлів даних до файлів, які зберігаються на накопичувачах, відформатованих під систему NTFS. Програма EFS за допомогою альтернативних потоків даних приєднує до зашифрованих файлів відомості про кодування та декодування, що забезпечує можливість децентралізованого шифрування та дешифрації засобами цієї програми.
Реалізоване у пакеті Windows XP Service Pack 2 (SP2) програма Microsoft Internet Explorer(IE) використовує альтернативний потік даних Security.Zone для забезпечення класифікації зони безпеки файлів, записаних на томі NTFS. В результаті IE має можливість блокування передбачають розширення об'єму прав користувача атак, які можуть мати місце в ситуаціях, коли користувач завантажує шкідливий код з ненадійної за критеріями безпеки зони Internet і зберігає цей код на жорсткому диску. IE відносить локально збережений контент до зони безпеки Local Machine, яка передбачає надання більшого обсягу прав, ніж зона безпеки Internet. Пакет XP SP2 завжди перевіряє потік даних Security.Zone перед тим як дозволити завантаженому коду робити будь-які дії на локальній системі.
Канал для впровадження шкідливого коду
Альтернативні потоки даних, що заслуговують на увагу і небезпечні, стають через те, що їхні імена та вміст не відображаються у вікні програми Windows Explorer. Тому організатори різноманітних атак вважають такі потоки зручним засобом приховування даних або зловмисного коду, що потрапив у систему. Прикладом використання цих потоків може бути черв'як VBS.Potok@mm. Хакери використовували альтернативний потік даних для приєднання до існуючого .ini-файлу ODBC декількох сценаріїв на мові Visual Basic (VB).
При активізації черв'як створює обліковий записз адміністративними повноваженнями і розсилає себе на адреси, які сам і виявляє в адресній книзі Microsoft Outlook.
Ще одна небезпека полягає в тому, що дисковий простір, виділений для альтернативних потоків даних, не відображається в даних про розміри (файлів) та про незайнятий дисковий простір програми Windows Explorer. Хакер може використовувати альтернативні потоки даних для заповнення дискового просторуфайлового сервера, і адміністратору залишиться лише ламати голову, намагаючись докопатися до причини проблеми. Крім того, треба сказати, що утиліта командного рядка Dir не бере до уваги альтернативні потоки даних при підрахунку даних про розміри (файлів та папок). Сьогодні існує лише один засіб Microsoft, здатний враховувати альтернативні потоки даних при підрахунку розмірів: це утиліта Chkdsk.
Додавання нового потоку
Будь-яка людина, яка має право запису у файл NTFS, може скористатися звичайними командами операційної системидля приєднання файлу альтернативного потоку даних. Наприклад, наступна команда створює альтернативний потік даних mystream, приєднує mystream до файлу з ім'ям file.txt і зберігає у потоці mystream фразу "top secret".
echo top secret > file.txt: mystream
Переглянути вміст потоку mystream можна за допомогою команди
Як зазначалося вище, до альтернативних потоків даних можна додавати виконувані файли. Так, існує можливість додати приховану копію калькулятора Windows(calc.exe) до файлу file.txt. Для цього потрібно просто ввести команду
type calc.exe > file.txt: calc.exe
Щоб запустити прихований калькулятор, введіть команду
start .file.txt: calc.exe
Ви можете переконатися, що альтернативні потоки даних та їх вміст не відображаються в інструментальних засобах Microsoft. Відкрийте програму Windows Explorer та перегляньте в ній властивості файлу file.txt. Фактично розмір файлу складає 112 Кбайт (стільки місця займає вбудований файл calc.exe) – але програма покаже розмір файлу рівним 0 Кбайт: у потоці даних $DATA немає відомостей про вбудований файл, а програма Windows Explorer не може зчитувати інформацію з альтернативного потоку даних.
Зрозуміло, що з альтернативними потоками даних пов'язано чимало погроз, особливо в мережах, де робота з видачі дозволів на звернення до ресурсів NTFS не приділяється належної уваги і не встановлено жорсткого контролю доступу до серверам Windows. Існує простий механізм захисту, здатний перешкоджати спробам хакерів скористатися альтернативними потоками даних - система контролю доступу NTFS. Якщо зловмисники не мають дозволу записувати дані у файл, вони не зможуть створювати альтернативні потоки даних та приєднувати їх до цього файлу.
Виявлення змін
Якщо у вас виникає відчуття, що хакерам вдалося обійти заслін встановлених дозволів, скористайтеся одним з розроблених інструментальних засобів виявлення вмісту альтернативних потоків даних. Програми для перевірки цілісності системи, такі як Tripwire Enterprise і Tripwire for Servers, дозволяють виявляти всі зміни у файловій системі NTFS, що мали місце в системі Windows, включаючи додавання або зміну вмісту потоку даних.
Пропонована Sysinternal програма Streams - це утиліта командного рядка, що безкоштовно розповсюджується, що визначає імена приєднаних до файлів альтернативних потоків даних. На екрані 1 показано, як використовувати утиліту Streams для перегляду імені потоку даних calc.exe, який раніше додали до файлу file.txt. Цю утиліту можна завантажити за адресою http://www.sysinternals.com/utilities/streams.html.
Ще один простий спосіб виявлення альтернативного потоку даних - з допомогою Windows Explorer скопіювати підозрілий файл на накопичувач із файловою системою, відмінною від NTFS (скажімо, на накопичувач FAT). Інші файлові системи не мають засобів для роботи з альтернативними потоками даних. Тому якщо ви спробуєте скопіювати файл NTFS з приєднаними альтернативними потоками даних для розміщення його в іншій файловій системі, NTFS видасть попередження, аналогічне показаному на екрані 2. Але майте на увазі, що якщо ви копіюватимете цей файл у вікні командного рядка за допомогою команди Copy , Windows скопіює його на відміну від NTFS файловусистему та без попередження видалить потік даних.
Приховування ресурсів, що спільно використовуються, за допомогою ABE
ABE – це додаткова функція рівня спільного використанняфайлів, яку Microsoft вперше реалізувала у пакеті Windows Server 2003 SP1. Її можна використовувати в будь-якому спільному каталозі Windows незалежно від того, в якій файловій системі зберігаються дані, що спільно використовуються. ABE дозволяє адміністраторам приховувати папки та файли, що зберігаються на загальнодоступних ресурсах, від тих користувачів, які не мають відповідних дозволів на доступ до них на рівні NTFS. Іншими словами, йдеться про забезпечення безпеки на рівні папок.
У випадках, коли ABE не застосовується, користувачі, підключаючись до загального каталогу, бачать всі розміщені на загальному ресурсі файли та папки, включаючи ті, на читання яких вони не мають дозволів, і ті, доступ до яких для них заблокований. Коли користувач намагається відкрити файл або папку, доступ до яких йому не дозволено, система видає повідомлення про помилку із поясненням про заборону доступу. Ці повідомлення про помилки можуть збивати користувачів з пантелику, тому активізація засобів ABE дозволяє зменшити навантаження служби підтримки.
Втім, використання ABE має свої мінуси. Перед тим як повернути клієнту, що підключився до загального ресурсу, список об'єктів, що містяться в папці, сервер повинен перевірити всі списки управління доступом до цих об'єктів: тільки після цього він може визначити, які дані слід повертати. В результаті може відзначатися істотне зниження продуктивності системи, особливо при зверненні до загальних ресурсів, що містить багато об'єктів.
Кошти ABE доцільно використовувати, наприклад, для налаштування загальнодоступних ресурсів у домашніх каталогах користувачів. Замість створення прихованого загальнодоступного ресурсу для домашнього каталогу кожного користувача, можна створити один спільний ресурс, який містить домашні каталоги всіх користувачів у папці домашнього каталогу. Користувачі підключатимуться до цього кореневого каталогу, і ви зможете за допомогою ABE, а також дозволів NTFS контролювати видимість домашніх каталогів усіх користувачів.
Активізація функції ABE
У цій функції застосовується новий прапор загальнодоступного ресурсу SHI1005_FLAGS_ENFORCE_NAMESPACE_ ACCESS; на момент, коли пишуться ці рядки, він реалізований лише в пакетах Windows 2003 SP1 та Release 2 (R2). Цей прапор означає, що ви застосовуєте функцію ABE до однієї з папок.
Для встановлення прапора можна використовувати розширення властивостей папки Windows Explorer або командний рядок abecmd.exe. Microsoft розповсюджує розширення ABE Explorer та abecmd.exe в інсталяційному пакеті ABE, який є додатковим модулем для платформи Windows Server 2003 SP1. Інсталяційний пакет можна завантажити з вузла Microsoft за адресою http://www.microsoft.com/downloads/details.aspx?FamilyId=04A563D 9-78D9-4342-A485-B030AC442084 . Оскільки ABE – це серверне розширення, його можна використовувати незалежно від того, яка версія Windowsвстановлена на клієнті.
Після встановлення засобів ABE на сервері можна встановити цей прапор для тієї чи іншої папки. Клацніть на папці правою клавішею миші, виберіть Properties, перейдіть на вкладку Access-based Enumeration і встановіть прапорець Enable access-based enumeration on this shared folder, як показано на екрані 3. Щоб застосувати функцію ABE до всіх загальнодоступних ресурсів системи, встановіть прапорець this folder"s setting to all existing shared folders on this computer.
Другий спосіб – використовувати засіб командного рядка abecmd.exe. Щоб застосувати функцію ABE до загальнодоступного ресурсу shareddocs, введіть наступну команду:
abecmd /enable shareddocs
Для активізації функції ABE на всіх доступних ресурсах можна використовувати параметр /all, а відключення ABE - параметр /disable.
Управління доступом
ABE - простий засіб, що дозволяє обмежити повноваження користувачів доступом лише до тих файлів, які потрібні для роботи. Користувачі можуть легко знаходити потрібні файли, оскільки їм не доводиться пробиратися крізь папки, що не мають відношення до справи, і вони не турбують службу підтримки питаннями про те, чому не відкриваються файли, дозволів на роботу з якими вони не мають.
Щоб захиститися від хакерів, які використовують альтернативні потоки даних, адміністратори повинні стежити за налаштуваннями керування доступом до загальнодоступних ресурсів і використовувати одну з описаних мною утиліт для виявлення прихованих альтернативних потоків даних, а також змін у системі NTFS.
Жан Де Клерк([email protected]) - співробітник Security Office компанії Hewlett-Packard. Займається керуванням ідентифікацією та засобами безпеки продуктів Microsoft. Автор книги Windows Server 2003 Security Infrastructures (видавництво Digital Press).Файлова система NTFS має безліч цікавих можливостей, однією з яких є наявність альтернативних потоків даних (Alternate Data Stream, ADS). Суть їх у тому, кожен файл в NTFS представляє собою набір потоків, у яких зберігаються дані. За промовчанням усі дані знаходяться в основному потоці, але при необхідності до файлу можна додавати додаткові, альтернативні потоки даних.
Примітка.Альтернативні потоки даних в NTFS з'явилися давно, ще в Windows NT. Створені вони були для сумісності з файловою системою HFS, яка тоді використовується на MacOS. HFS зберігала дані про файл у спеціальному ресурсному потоці.
Файли NTFS поділені на атрибути, одним з яких є $DATA, або атрибут даних. Потоки є додатковими властивостями атрибуту $DATA. За замовчуванням існує один, основний потік $DATA:″″. Як бачите, він не має назви, тому зветься нейменованим. Також за бажання можна створювати додаткові, іменовані потоки, напр. $DATA:″Stream1″. У кожного файлу в NTFS може кілька потоків даних, що містять різні, ніяк не пов'язані між собою дані.
Усі дані, які записуються у файл, за промовчанням потрапляють у основний потік даних. Коли ми відкриваємо файл, то бачимо саме основний потік, альтернативні потоки приховані від користувача і не відображаються за допомогою звичайних засобів. Їх не можна побачити стандартними способами, хоча деякі програми вміють читати приховані в них дані. Також для роботи з потоками можна використовувати командний рядок.
Наприклад відкриємо консоль і за допомогою команди echo створимо текстовий файл streams.txt і запишемо в нього текст:
echo Цей основний stream>streams.txt
А наступною командою запишемо текст до альтернативного потоку stream1:
echo This is alternate stream>streams.txt:stream1
Якщо тепер відкрити файл streams.txt у будь-якому текстовому редакторі, то побачимо лише перший запис, текст «This is alternate stream» залишиться прихованим. Прочитати приховану в потоці stream1 інформацію можна командою:
more Альтернативні потоки можна додавати не лише до окремих файлів, а й до директорій. Наприклад додамо альтернативний потік stream2, що містить текст «Hide stream in Streams», до поточної директорії Streams: echo Hide stream in Streams>:stream2 І виведемо потік stream2 наступною командою: more<:stream2 Вміст альтернативних потоків можна відкривати у консолі. Наприклад Блокнот (Notepad) теж вміє звертатися до прихованих у потоках даних, якщо в імені файлу через двокрапку вказати ім'я альтернативного потоку. Повторимо попередній приклад, трохи змінивши назву потоку на stream1.txt: echo Це є альтернативний stream>streams.txt:stream1.txt І відкриємо альтернативний потік у блокноті командою: notepad streams.txt:stream1.txt Примітка.Стандартний Блокнот вимагає розширення txt у назві потоку, інакше він не зможе відкрити його. Більш просунуті редактори, наприклад, той же Notepad++, можуть показувати вміст альтернативного потоку незалежно від його назви. Наявність альтернативних потоків у файлу ніяк не відображається у Провіднику та інших файлових менеджерах. Для того, щоб їх знайти, найпростіший спосіб – це скористатися командою dir /R(починаючи з Windows Vista), яка показує всі потоки даних, у тому числі альтернативні. Вам може здатися, що використання альтернативних потоків обмежено текстовими даними. Це зовсім не так, і в альтернативних потоках можна зберігати будь-яку інформацію. Для прикладу створимо файл picture.txt і додамо до нього потік pic1.jpg, який помістимо однойменне зображення: echo Picture>picture.txt Таким чином, зовні ми маємо звичайний текстовий файл, а для відкриття зображення з альтернативного потоку в графічному редакторі Paint скористаємося командою: mspaint picture.txt:pic1.jpg Подібним чином можна додавати до будь-яких типів файлів будь-які дані - до текстових файлів додавати зображення, до медіафайлів додавати текстову інформацію і т.п. , Провідник все одно покаже розмір файлу 1кБ. Ще альтернативні потоки можна ховати виконувані файли. Наприклад візьмемо файл test.txt і додамо додаток Блокнот (notepad.exe) альтернативний потік note.exe: type notepad.exe>test.txt:note.exe А для запуску прихованого блокнота скористаємося командою: start .\test.txt:note.exe До речі цією можливістю користуються деякі шкідливі програми, додаючи виконуваний код альтернативні потоки NTFS. Для роботи з альтернативними потоками існує декілька сторонніх утиліт, наприклад консольна утиліта Streams від Sysinternals. Вона може визначати наявність альтернативних потоків та видаляти їх. Утиліта не вимагає установки, достатньо розпакувати її та запустити. Наприклад перевіримо наявність потоків у папці Streams командою: Streams.exe -s C:\Streams І видалимо альтернативні потоки із файлу streams.txt: Streams.exe -d C:\Streams\streams.txt PowerShell також вміє працювати з альтернативними потоками – створювати, виявляти, виводити їх вміст і навіть видаляти. Для прикладу створимо текстовий файл: New-Item -Type file -Path C:\Streams\stream.txt Додамо запис до основного потоку: Set-Content -Path C:\Streams\stream.txt -Value ″Main stream″ І в альтернативний потік з ім'ям Second: Set-Content -Path C:\Streams\stream.txt -Value Second stream -Stream Second Потім виведемо вміст основного Get-Content -Path C:\Streams\stream.txt та альтернативного потоків: Get-Content -Path C:\Streams\stream.txt -Stream Second Для того, щоб знайти наявність альтернативних потоків, можна скористатися командою: Get-Item -Path C:\Streams\stream.txt -Stream * А видалити зайві потоки можна командою: Remove-Item -Path C:\Streams\streams.txt -Stream * Альтернативні потоки використовують як самої Windows, так і деякими програмами. Наприклад, Internet Explorer ділить мережу на 4 зони безпеки і при завантаженні файлів додає до них мітки, які містять інформацію про зону, з якої вони були завантажені. Ці мітки зберігаються в альтернативному потоці і являють собою число від 0 до 4: Інтернет (3) Щоб переконатися в цьому, перейдемо в папку завантажень, візьмемо завантажений файл з інтернету і перевіримо його на наявність альтернативних потоків. Як бачите, в ньому є потік з ім'ям Zone.Identifier, в якому є рядок ZoneID=3. Це означає, що файл відноситься до недовіреної зони Інтернету, і при його відкритті треба бути обережним. Деякі програми, наприклад Word, прочитують ці дані при відкритті файлу і видають відповідне попередження. Також інфраструктура класифікації файлів (File Classification Infrastracture, FCI) ґрунтується на використанні альтернативних потоків. З сторонніх програмальтернативні потоки використовують деякі антивірусні програми, зокрема, антивірус Касперського зберігає в них контрольну суму, отриману в результаті перевірки. Втім, застосування альтернативних потоків не обмежується, ви самі можете придумати для них будь-яке застосування. Наприклад, з допомогою можна заховати від сторонніх очей особисту інформацію. Файли, що містять альтернативні потоки, можна копіювати або переносити з диска на диск, всі потоки будуть скопійовані разом з файлом. І ще, при використанні альтернативних потоків слід пам'ятати, що вони жорстко прив'язані до файлової системи NTFS. Для того, щоб використовувати їх, файли повинні розташовуватися на дисках з NTFS, відповідно працювати з ними можна тільки під Windows. Якщо ж перемістити файл на будь-яку іншу файлову систему, всі потоки крім основного будуть втрачені. Також альтернативні потоки обрізаються при передачі файлів FTP або при пересиланні в якості поштового вкладення. Ще: ADS дозволяє додавати будь-які файли до інших і навіть каталогів (!). Сама ОС цим періодично користується, додаючи до завантажених з Інтернету файлів потік «Zone.Identifier» Zone.Identifier можна, до речі, правити, щоб позбутися попереджень «цей файл завантажено з інтернету. Відкрити у безпечному режимі?». Додати потік до будь-якого файлу можна так: спробувати виявити запустити exe так: якщо не спрацювало, то так: Ось це, наприклад, прив'яже калькулятор до кореневого диска С (!) і запустить через посилання DIR /B C:WINDOWSSystem32*.SCR DIR /B C:WINDOWSSystem32*.* |FIND /i ".SCR" Докладно опишіть призначення параметрів кожної команди (пам'ятайте, що для кожної команди можна викликати довідку ключем /?). Зверніть увагу на те, що однакові ключі можуть мати різну дію для різних команд. Файлова система NTFS підтримує файлові потоки альтернативні потоки даних. Фактично файлові потоки є об'єднання декількох файлів в одну групу з одним загальним ім'ям файлу (у кожного потоку своє додаткове ім'я). У групі існує основний потік даних, з яким більшість програм працюють як з файлом, і додаткові іменовані потоки, які не відображаються звичайними засобами. При файлових операціях копіювання, перенесення, видалення тощо, в NTFS операція проводиться над групою. При використанні деяких архіваторів і копіюванні файлів, що містять альтернативні потоки, розділ FAT, ці потоки можуть бути втрачені. Технічно альтернативні потоки застосовуються для доповнення файлу інформацією без зміни змісту основного потоку та без створення додаткових файлів, які можуть бути втрачені. Альтернативні потоки використовуються антивірусами для збереження інформації про файл (відбитка, контрольної суми) для детектування зміни файлу в часі. Клієнти системи обміну файлами Direct Connect (DC++) можуть зберігати результати хешування (обчислення контрольних сум) для великих файлів, які використовуються у разі переміщення файлу при повторному хешуванні, що суттєво прискорює оновлення списку. У перспективі програми бібліотек, фільмотек та аудіотек можуть використовувати альтернативні потоки для зберігання спільно з документами потоків обкладинок, аудіодоріжок, описи, причому різними мовами. Альтернативні потоки дозволяють прикріплювати «секретні» дані, що є потенційною небезпекою. Переглянути інформацію про потоки можна командою STREAMS 25 , програмою NTFS Stream Explorer26 , за допомогою модулів розширення файлових менеджерів27 , у Windows 7 командаdir /r виводить список всіх потоків для зазначених об'єктів (з командою також dir можна використовувати додаткові ключі). При збереженні файлів з Інтернету за умовчанням файлу в NTFS додається потік Zone.Identifier 28 , який має формат ini-файлу, і зазвичай містить текст: Параметр ZoneId з числом означає зону, звідки прибув файл на комп'ютер, номер зони береться з установок зон безпеки ( Панель управління/Властивості оглядача(Мережа та інтернет/ Властивості брау- зера) / вкладкаБезпека). Допустимі наступні значення29: 0 – локальний комп'ютер 1
- Інтранет (локальна мережа, домен) 2
– довірене джерело 3 – інтернет 4
– недовірене джерело За значення 3 система видасть попередження « Не вдається провести рити видавця. Ви дійсно хочете запустити цю програму?», внизу повідомлення встановлено прапорець « Завжди запитувати під час відкриття цього файлу», зняття якого видаляє потік Zone.Identifier. Якщо ZoneId містить значення 4, то з'явиться попередження « Ці файли не можна відкрити. Параметри безпеки Інтернету не дозволили відкрити 25 Streams (http://technet.microsoft.com/ru-ua/sysinternals/bb897440) 26
NTFS Stream Explorer, програма для роботи з потоками NTFS (http://hex.pp.ua/ntfs-stream-explorer.php) 27 NTFS File Information (http://forum.farmanager.com/viewtopic.php?t=2050) 28
Вимкнути створення блокуючого потоку для файлів можна в редакторі локальної групової політики (gpedit.msc):Конфігурація користу- вателя/ Адміністративні шаблони/ Компоненти Windows/ Диспетчер вкладень/ Видалення відомостей про зону походження вкладень. 29 Потік Zone.Identifier (http://hex.pp.ua/Zone.Identifier.php) один або кілька файлів» та відкриття файлів блокується. При відкритті у провіднику вікна Властивості для файлу, отриманого з інтернету, внизу вкладки Загальні з'являється кнопка Розблокувати та напис « Обережно: цей файл отримано з іншого комп'ютера і, можливо, заблоковано з метою захисту комп'ютера », натискання кнопкиРозблокувати видаляє потік Zone.Identifier. За допомогою браузера інтернет завантажте файл STREAMS.zip (можете завантажити будь-який невеликий файл, вказавши його ім'я в команді далі), збережіть його в кореневу папку диска F:, перегляньте вміст потоку Zone.Identifier командою: MORE< F:\Streams.zip:Zone.Identifier Відкрийте у провіднику вікно Властивості (Alt+Enter або команда Властивості контекстного меню) для завантаженого файлу, на вкладці Загальні натисніть кнопку Розблокувати, у консолі повторіть попередню команду. Створіть тестовий файл командою, що перенаправляє текст оператора виведення тексту, додайте альтернативний потік, перегляньте результат: ECHO Main text > F:\M.TXT ECHO Hidden text > F:\M.TXT:Secret.TXT TYPE F:\M.TXT MORE< F:\M.TXT:Secret.TXT Альтернативний текстовий потікможна завантажити в блокнот: NOTEPAD F:\M.TXT:Secret.TXT Альтернативні потоки можна створювати також у папок та системних файлів30. Потоки також використовуються для зберігання розширених атрибутів31. 30
Приховане зберігання даних у потоках файлу $Repair у системному каталозі $RmMetadata (http://hex.pp.ua/RmMetadata.php) 31
Розширені атрибути NTFS та FAT16 (http://hex.pp.ua/extended-attributes.php) 53 Мабуть-невидимо Читач блогу Віктор не зміг запустити завантажений з Інтернету скрипт PowerShell. Уважне читання моїх інструкцій дозволяло уникнути проблеми, але її корінь був зовсім не в строгих політиках безпеки PowerShell. Віктор скачав з галереї TechNet архів зі скриптом PSWindowsUpdate.zip управління Windows Update, про який я розповідав. Проте розпакований скрипт відмовлявся працювати. Коли я підказав читачеві, що в першому пункті моїх інструкцій йдеться про необхідність розблокування архіву, все пішло як по маслу. Віктор попросив пояснити, чому система заблокувала скрипт, і звідки вона знає, що архів було завантажено з іншого комп'ютера. Чесно кажучи, сьогоднішня тема не нова, але я вирішив висвітлити її у своєму блозі з кількох причин: Windows черпає інформацію про джерело файлу з альтернативного потоку даних (alternate data stream, далі ADS) файлової системи NTFS. У властивостях файлу вона скромно пише, що він з іншого комп'ютера, але насправді знає трохи більше, як ви побачите далі. З погляду NTFS, файл – це набір атрибутів. Вміст файлу – це атрибут даних із ім'ям $DATA. Наприклад, текстовий файл із рядком “Hello, World!” має атрибут даних “Hello, World!” У NTFS атрибут $DATA є потоком даних і називається основним або безіменним, тому що не має імені. Формально він виглядає так: $DATA:"" У контексті прикладів вище хочу відзначити кілька цікавих моментів. Створивши першою командою текстовий файл, ви можете відкрити його в текстовому редакторі і переконатися, що всі подальші маніпуляції не впливають на вміст файлу. Цікаво стає, коли файл відкритий, скажімо, у Notepad ++. Цей редактор може попереджати про зміни файлу. І він зробить це, коли ви запишете у файл альтернативний потік, проте вміст при цьому залишиться тим самим! ADS можна створювати та відображати з командного рядка. Наступні команди записують прихований текст на другий ADS з ім'ям MyStream2, а потім відображають його. Echo Hidden Text > C:\temp\test.txt:MyStream2 more< C:\temp\test.txt:MyStream2
Той самий Notepad++ покаже вам вміст ADS, якщо вказати назву потоку в командному рядку "C:\Program Files (x86)\Notepad++\notepad++.exe" C:\temp\test.txt:MyStream1 Результат: З блокнотом такий фокус пройде лише в тому випадку, якщо наприкінці імені потоку є .txt. Команди нижче додають третій ADS та відкривають його в блокноті. Echo Hidden Text > C:\temp\test.txt:MyStream3.txt notepad C:\temp\test.txt:MyStream3.txt Результат: Повернімося до питання, яке поставив мені читач. Чи буде блокуватися файл залежить в першу чергу від програми, в якій він був завантажений, а в другу - від параметрів ОС. Так, все сучасні браузерипідтримують блокування, і воно включено до Windows. Пам'ятайте, що коли заблоковано архів, всі розпаковані файли будуть заблоковані «у спадок». Також не забувайте, що ADS це функція NTFS, тобто. при збереженні або розпакуванні архіву на FAT32 жодного блокування не відбувається. У PowerShell перейдіть до папки зі скачуваним файлом і перегляньте інформацію про всі потоки. Get-Item .\PSWindowsUpdate.zip -Stream * FileName: C:\Users\Vadim\Downloads\PSWindowsUpdate.zip Stream Length ------ ------ :$DATA 45730 Zone.Identifier 26 Як ви вже знаєте, $Data – це вміст файлу, але у списку фігурує ще й ADS Zone.Identifier. Це прозорий натяк на те, що файл отримано з якоїсь зони. Знаєте, звідки це зображення? Щоб з'ясувати зону, необхідно прочитати вміст ADS. Get-Content .\PSWindowsUpdate.zip -Stream Zone.Identifier ZoneId=3 Очевидно, він націлений на пакетне розблокування (наприклад, коли вже розпакований архів). Команда нижче розблокує в папці Downloadsвсі файли, що містять в імені PS: Dir C:\Downloads\*PS* | Unblock-File Звичайно, існують всякі утиліти з графічним інтерфейсомнавіть вміють інтегруватися в контекстне меню. Але, на мій погляд, PowerShell або на крайній кінець streams цілком достатньо. За блокування відповідає групова політика Не зберігати відомості про зону походження вкладених файлів. З назви випливає, що блокування є стандартною поведінкою Windows, а політика дозволяє його змінити. Однак з назви неочевидно, що політика поширюється не лише на поштові вкладення, а й завантажені з Інтернету файли. Докладніше про диспетчера вкладень читайте в KB883260. У домашніх виданнях редактора групових політикні, але реєстр ніхто не скасовував: SaveZoneInformation.zip . Область застосування ADS не обмежується додаванням зони завантаженого файлу, так само як необов'язкове зберігання в ADS тільки тексту. Будь-яка програма може задіяти цю функцію NTFS для зберігання будь-яких даних, тому я наведу лише кілька прикладів з різних областей. Цікавий матеріал, Дякую. Дізнався щось нове про PowerShell, який мені все ще мало знайомий:) Для спілкування з сім'єю найчастіше використовую WhatsApp — поки що з цим сервісом було найменше проблем, навіть батьки там освоїлися. Контактик теж в основному для сім'ї, хоча там обмін повідомлень в основному навколо альбомів, що публікуються, з фото і відео. Деякі родичі зберігають вірність Viber - у мене з ним не склалося якось, тримаю просто для них, не залишаючи спроб перетягнути їх у WhatsApp. Для роботи переважно Slack, коли щось термінове — WhatsApp, дуже термінове — SMS. ВКонтакте для спілкування по роботі із зовнішнім світом. Skype використовую тільки для відеодзвінків, здебільшого з сім'єю знову ж таки. Із задоволенням замінив би його на WhatsApp, якби там були відеодзвінки. urix У Viber тепер з'явилися відеодзвінки і навіть відеодзвінки для десктопної версії. Отже, можливо, Viber стане наступним скайпом… у хорошому сенсі Андрій Кузнєцов Матеріал цікавий, дякую. Я знав існування потоків, але не знав, що з ними так просто працювати через PowerShell. Андрій Кузнєцов: А листування через Whatsapp Наявність його тільки на телефоні швидше плюс, з погляду конфіденційності. Андрію, поясніть, у чому тут плюс Павловський Роман 1. Користуюся найчастіше: Skype і Hangouts - по роботі на ПК, по решті листування "ВКонтакте" з будь-якого пристрою, так як клієнти по роботі зазвичай сидять на Скайпі, а друзі та знайомі в Соц.Мережах. 2. Хотів би скористатися в ідеалі: Jabber - для листування та дзвінків з будь-яких пристроїв. Як на мене, клієнт можна встановити на будь-який пристрій і переписуватись, де б не знаходився користувач, навіть на слабкому Інтернет-з'єднанні + до цього можна розгорнути свій jabber-сервер і зберігати все листування на сервері, щоб потім можна було швидко знайти потрібне листування, якщо клієнт не вміє зберігати історію, а плагіни для дзвінків через jabber можна буде знайти (наприклад, через той самий SIP Asterisk 1.8+) Андрій Баятаков Найчастіше користуюсь WhatsApp (в основному по роботі), для дзвінків (аудіо/відео/міжнародні дзвінки) Skype. Хоча десктопний Skype страшенно бісить (у мене трансформер і вдома я ним користуюся в основному як планшетом) ... Viber - не прижився. Щоб дзвонити через WhatsApp, потрібно мати просто залізні нерви. Скажеш щось співрозмовнику і чекаєш хвилину-дві коли він тебе почує (підключення 50Mbit). Maxim 1. Скріпляючи серце користуюся ICQ (для замовників-ретроградів) та Slack (для більш сучасних). Володимир Кирюшин Привіт Вадим! Lecron Які браузери та програми-даунлоадери створюють цей потік? Які є варіанти використання потоків самим користувачем? І, зокрема, користувачем скриптописачем? Бо хоч і знав про них давно, жодного разу не використав. При реальній роботі з комп'ютером про них просто не згадуєш, і через це, можливо городиш милиці, замість зручного інструменту, а без цієї роботи, по пам'яті, нічого придумати не виходить. Speed Guru Ще одна сміттєва технологія на кшталт USN журналу. Чи багато вам буде користі від ZoneIdentifier чи вірусу, прикріпленого до фалу чи папки? Звичайно, ні. Більше того, це захаращення системи зайвими, жодним чином не потрібними нормальному користувачеві «підфайлами». Кожне зайве читання в каталозі MFT та інші операції, що супроводжують обслуговування та зміст альтернативних потоків, це зайві витрачені цикли процесора, оперативної пам'яті, а найголовніше - зайве навантаження на жорсткий диск. Alexiz Kadev Іменовані потоки – штука відмінна, причому існувала, наскільки я пам'ятаю з першого релізу NTFS. У іменованих потоках досить зручно зберігати, наприклад, версії документа, що якщо я не помиляюся ряд додатків і робили. Але залишається засідка з копіюванням на іншу файлову систему - іменовані потоки легко відрізаються. Шкода в голосуванні не можна було виділити кілька месенджерів: я користуюся кількома, оскільки деякі мої контакти віддають перевагу якимось певним. Так, я використовую WhatsUp, ICQ (правда, звичайно, не рідний клієнт), Skype, Skypefor Business (тихий жах, а не клієнт, втім коли він називався Lync був ще гірше) і Viber (ось тут спаму більше ніж в інших як мінімум разів в 5). VSh Vadim Sterkin: Роман, я не включив Jabber в опитування Вирішив, що ним мало хто користується та перспектив немає. Даремно Тому в мене основний це XMPP (Pidgin.exe, Spark.exe), але 99.8% із цих повідомлень – внутрішньодоменні. Артем У мене все чомусь у вайбері. І якість зв'язку цілком влаштовує. А так телеграм би. Та пусто там. hazet 1. Skype (на ПК) та Viber (на Мобілі). Причини в основному як і в більшості — кількість наявних контактів і природне небажання цих контактів, пересісти на інший месенджер. Євген Карелов Дякуємо Вам за Вашу роботу! Щодо опитування, на ПК для листування використовую QIP 2012, до якого підключені контакти ICQ, ВКонтакте та інші. Особисто мені зручно використовувати для спілкування за кількома протоколами одну програму. Та й можливість переглядати стрічки соцмереж з одного місця дуже тішить. В ідеалі не вистачає лише підтримки Skype, який я використовую для голосового зв'язку, але вона явно не з'явиться. strafer Цікава мішанина з теми посту про потоки даних та опитування з IM. За опитуванням: Jabber/Jabber, який ви таки даремно не включили до списку, хоча там є вотсап, заснований на XMPP, і осечка, що навіть йде до успіху. Jabber загалом вирішує всі зазначені проблеми з огляду на відкритість протоколу, наявність клієнтів під безліч платформ і наявність серверів, які можна піднімати самостійно. Але кактуси жувати традиційніше, так. У списку клієнти, а чи не протоколи. strafer Vadim Sterkin: У списку клієнти, а не протоколи Через те, що протокол і вихідні кодиофіційного клієнта закрито, встановлюється закономірна тотожність між єдиним клієнтом та протоколом. Vadim Sterkin: ICQ ... ну, я не став там смайлики ставити, бо має бути і так зрозуміло. Гнилій мейлрушечці недостатньо того, що осічка вмирає природною смертю - вони ще й додаткові зусилля докладають, щоб вона швидше загнулася. Vadim Sterkin: Jabber точно не вирішує одну проблему - там нікого немає Проте для Telegram ви самі написали виглядає чудово, але там порожньо (що можна виправити) Jabber мав усі шанси стати тим самим, чим сьогодні є екосистема e-mail (повна відкритість протоколу, можливість піднімати свої сервери будь-кому і забезпечувати взаємодію між серверами тощо), але корпораціям це не потрібно, що добре видно на прикладі відходу від нього гугла або пропрієнтізація вотсапа. Для Telegram - можна виправити, для Jabber - дуже малоймовірно. Тому перший є у списку, а другого – ні. strafer Звичайно, Telegram – стильно, модно, молодіжно, а Jabber ніхто прикольний на зразок Паші Дурова не рухає. Які тут перспективи. Гм… нехай вилізете ви вже зі свого танка теорій змови «весь світ проти вільного ПЗ». Усе набагато простіше Якщо незрозуміло, так виглядає для людини перший досвід взаємодії з клієнтом Jabber, що офіційно рекомендується, на найпоширенішій мобільній платформі. strafer Трохи не зрозумів, де у моєму коментарі про змову. Так скрізь:) Ви намагаєтеся списати невдачі jabber на немодність і немолодіжність, в той час, як його клієнти з першого екрану не пристосовані для сучасної реальності. А що я маю побачити на скріншоті? Пропозиція ввести номер телефону ~~~O~ strafer strafer: Ви намагаєтеся списати невдачі jabber на немодність та немолодіжність Ну то якщо воно так. strafer: в той час, як його клієнти з першого екрану не пристосовані для сучасної реальності. Тобто. до нинішньої моди, такої як розголошення свого телефонного номера всім підряд. Бо я не розумію, навіщо його вводити, якщо він не потрібен для роботи системи, як на мене так чудово, що його тут не просять. Власне я відмовився від осічки, незважаючи на кілька контактів, що залишилися там, саме з цієї причини - мейрушечка в ультимативній формі зажадала прив'язати номер телефону до обліку, внаслідок чого була надіслана за відомими координатами. Так, не розумієте, навіть після пояснень з картинками... Це не мода, це єдиний спосіб максимально спростити реєстрацію з мобільних пристроїв, що становлять основу аудиторії сучасних месенджерів та єдине джерело для її зростання. strafer На скріншоті запит на ім'я, пароль та опціональний нік. Куди сильніше спрощувати? Або крім учнів корекційних шкіл вже не залишилося більше резервів для зростання аудиторії, і треба щоб була одна кнопка «зробити за*сь»?
type pic1.jpg>picture.jpg:pic1.jpgУтиліта Streams
PowerShell
Використання
Місцева мережа (1)
Надійні сайти (2)
Небезпечні сайти (4)
Локальний комп'ютер (0)
Взято з http://windowsnotes.ru/other/alternativnye-potoki-dannyx-v-ntfs/
ADS — вбудована фішка файлової системи NTFS, яку неможливо вимкнути.
type file1 > file2:file3
dir /r
start file2:file3
mklink file4 file2:file3
start file44.1.8. Файлові потоки NTFS*
Сьогодні у програмі
Потоки даних NTFS
Цікаві особливості альтернативних потоків даних
Невидимі зміни
Запис та перегляд ADS із CMD
Перегляд ADS у текстових редакторах
Блокування завантажених файлів
Перегляд інформації про джерело заблокованого файлу
Як запобігти блокуванню файлів
Інші приклади практичного застосування ADS
Інфраструктура класифікації файлів
про автора
Що стосується IM: До скайпу у мене є нарікання тільки за часом запуску Windows Phone. На ipad та Windows такої проблеми немає. Використовую голосовий зв'язок, коли з якихось причин незручно використовувати GSM.
А листування через Whatsapp. Наявність його тільки на телефоні швидше плюс, з погляду конфіденційності.
Була б можливість перейти зовсім на Skype. На Windows 10 Mobile після нещодавнього оновлення повідомлення з Skype приходять прямо у вбудовану програму Повідомлення (як СМС), що дуже зручно.
2. Хотів би користуватися Jabber – з тих самих причин, що у Романа Павловського вище.
Прочитав перед цією статтею вашу статтю про те, як прочитати звіт перевірки всього системного диска командою chkdsk. Чудова стаття! Завдяки їй сьогодні після перевірки командою chkdsk системного диска я отримав текстовий файл звіту. А ця стаття також багато чого прояснює у програмі PowerShell. Дещо мені пенсіонеру буває незрозуміло, але я намагаюся не панікувати і читаю старанно до кінця. Дякую вам за навчання, яке ви з нами проводите! Всього вам доброго!
Зрозумів тільки про один варіант. Коментар файлу, якщо немає можливості або бажання писати довгий текст в ім'я файлу. Але для цього потрібна підтримка з боку файл менеджера, який раніше, та й зараз пише їх у descript.ion або files.bbs.
Ви можете сказати мені, що ця технологія дуже потрібна системі. Але це нісенітниця — система чудово працювала б і без потоків. Але користувача ніхто не питає - впарили (як USN журнал) і можливості повністю відключити ведення цих потоків не дали. Адже мені як користувачі вони зовсім не потрібні, думаю як і вам.
Все, що ми можемо зробити це «streams -s -d %systemdrive%». Але це не дає можливості видалити потоки на системному розділі.
А в ідеалі використовувати якийсь один, на кшталт Міранди з плагінами, оскільки знайти у разі потреби, хто де колись щось говорив/писав у всій цій купі просто нереально. Але, на жаль, ряд виробників закривають свої протоколи і оберігають їх як Кащею свою голку.
Я, наприклад, використовую OpenFire (freeware xmpp) як офісний комунікатор на кількох доменах.
Skype – для зовнішніх IM
WhatsApp і Viber — для «випадкових зв'язків», останні n місяців лише СПАМ, гадаю, чи не видалити?
2.uTox. Мініатюрний, нічого зайвого, клієнт для Win, Linux, Mac та Android. Позиціонується як захищений.
P.S. ЩаЗ займуся перетягуванням своїх контактів на нього щільніше:-)
Хоча ця програма і виглядає «занедбаною», бо оновлень вже давно не було, покладені функції виконує чудово.
ICQ ... ну, я не став там смайлики ставити, бо має бути і так зрозуміло.
Jabber точно не вирішує жодної проблеми — там нікого немає.
Навіщо тут взагалі номер телефону і що месенджер повинен із номером телефону робити?