Ntfs потоки данных. Четыре вида метаданных NTFS

DIR /B C:\WINDOWS\System32\*.SCR

DIR /B C:\WINDOWS\System32\*.* |FIND /i ".SCR"

Опишите подробно назначение параметров каждой команды (помните, что для каждой команды можно вызвать справку ключом /?). Обратите внимание на тот факт, что одинаковые ключи могут иметь различное действие для разных команд.

4.1.8. Файловые потоки NTFS*

Файловая система 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-ru/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

Альтернативные потоки данных в NTFS

Файловая система NTFS обладает множеством интересных возможностей, одной из которых является наличие альтернативных потоков данных (Alternate Data Stream, ADS). Суть их в том, что каждый файл в NTFS представляет из себя набор потоков, в которых хранятся данные. По умолчанию все данные находятся в основном потоке, но при необходимости к файлу можно добавлять дополнительные, альтернативные потоки данных.

Примечание. Альтернативные потоки данных в NTFS появились давным-давно, еще в Windows NT. Созданы они были для совместимости с файловой системой HFS, использующейся тогда на MacOS. HFS хранила данные о файле в специальном ресурсном потоке.

Файлы в NTFS поделены на атрибуты, одним из которых является $DATA, или атрибут данных. Потоки же являются дополнительными свойствами атрибута $DATA. По умолчанию существует один, основной поток $DATA:″″ . Как видите, он не имеет названия, поэтому зовется неименованным . Также при желании можно создавать дополнительные, именованные потоки, напр. $DATA:″Stream1″ . У каждого файла в NTFS может несколько потоков данных, содержащих различные, никак не связанные между собой данные.

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

Для примера откроем консоль и с помощью команды echo создадим текстовый файл streams.txt и запишем в него текст:

echo This is main 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 This is alternate stream>streams.txt:stream1.txt

И откроем альтернативный поток в блокноте командой:

notepad streams.txt:stream1.txt

Примечание. Стандартный Блокнот требует расширение txt в названии потока, иначе он не сможет его открыть. Более продвинутые редакторы, например тот же Notepad++, могут показывать содержимое альтернативного потока вне зависимости от его названия.

Наличие альтернативных потоков у файла никак не отображается в Проводнике и других файловых менеджерах. Для того, чтобы их найти, самый простой способ — это воспользоваться командой dir /R (начиная с Windows Vista), которая показывает все потоки данных, в том числе и альтернативные.

Вам может показаться, что применение альтернативных потоков ограничено текстовыми данными. Это совсем не так, и в альтернативных потоках можно хранить абсолютно любую информацию. Для примера создадим файл picture.txt и добавим к нему поток pic1.jpg, в который поместим одноименное изображение:

echo Picture>picture.txt
type pic1.jpg>picture.jpg:pic1.jpg

Таким образом, внешне мы имеем обычный текстовый файл, а для открытия изображения из альтернативного потока в графическом редакторе Paint воспользуемся командой:

mspaint picture.txt:pic1.jpg

Подобным образом можно добавлять к любым типам файлов любые данные — к текстовым файлам добавлять изображения, к медиафайлам добавлять текстовую информацию и т. п. Что интересно, альтернативное содержимое не увеличивает видимый размер файла, к примеру добавив к 1кБ текстовому файлу HD-видео на 30Гб, проводник все равно покажет размер файла 1кБ.

Еще в альтернативные потоки можно прятать исполняемые файлы. К примеру возьмем файл test.txt и добавим приложение Блокнот (notepad.exe) в альтернативный поток note.exe:

type notepad.exe>test.txt:note.exe

А для запуска скрытого блокнота воспользуемся командой:

start .\test.txt:note.exe

Кстати этой возможностью пользуются некоторые вредоносные программы, добавляя исполняемый код в альтернативные потоки NTFS.

Утилита Streams

Для работы с альтернативными потоками существует несколько сторонних утилит, например консольная утилита Streams от Sysinternals. Она может определять наличие альтернативных потоков и удалять их. Утилита не требует установки, достаточно распаковать ее и запустить. Для примера проверим наличие потоков в папке Streams командой:

Streams.exe -s C:\Streams

И удалим альтернативные потоки из файла streams.txt:

Streams.exe -d C:\Streams\streams.txt

PowerShell

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)
Местная сеть (1)
Надежные сайты (2)
Опасные сайты (4)
Локальный компьютер (0)

Чтобы убедится в этом, перейдем в папку загрузок, возьмем файл, загруженный из интернета и проверим его на наличие альтернативных потоков. Как видите, в нем присутствует поток с именем Zone.Identifier , в котором есть строка ZoneID=3 .

Это значит, что файл относится к недоверенной зоне Интернет, и при его открытии надо быть осторожным. Некоторые программы, например Word, считывают эти данные при открытии файла и выдают соответствующее предупреждение.

Также инфраструктура классификации файлов (File Classification Infrastracture, FCI) основана на использовании альтернативных потоков. Из сторонних программ альтернативные потоки используют некоторые антивирусные программы, в частности антивирус Касперского хранит в них контрольную сумму, полученную в результате проверки.

Впрочем, применение альтернативных потоков этим не ограничивается, вы сами можете придумать для них любое применение. К примеру, с их помощью можно спрятать от посторонних глаз личную информацию. Файлы, содержащие альтернативные потоки, можно свободно копировать или переносить с диска на диск, все потоки будут скопированы вместе с файлом.

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

Поддержка альтернативных потоков данных (AltDS) была добавлена в NTFS для совместимости с файловой системой HFS от Macintosh, которая использовала поток ресурсов для хранения иконок и другой информации о файле. Использование AltDS скрыто от пользователя и не доступно обычными средствами. Проводник и другие приложения работают со стандартным потоком и не могут читать данные из альтернативных. С помощью AltDS можно легко скрывать данные, которые не могут быть обнаружены стандартными проверками системы. Эта статья даст основную информацию о работе и определении AltDS.

Создание AltDS

Создать AltDS очень легко. Для этого воспользуемся командной строкой. Для начала создадим базовый файл, к которому будем прикреплять наши потоки.
C:\>echo Just a plan text file>sample.txt

C:\>type sample.txt
Just a plan text file


Далее мы воспользуемся двоеточием в качестве оператора, чтоб указать на то что будем использовать AltDS:
C:\\>echo You can"t see me>sample.txt:secret.txt

Для просмотра содержимого можно использовать следующие команды:
C:\ more < sample.txt:secret.txt

или
C:\ notepad sample.txt:secret.txt

Если все работает хорошо то увидите текст: You can"t see me, а при открытии из проводника данный текст виден не будет.Также AltDS можно прикрепить не только к файлу, но и к папке. Для этого создадим папку и прицепим к ней какой-нибудь текст:
C:\>md stuff
C:\>cd stuff
C:\stuff>echo Hide stuff in stuff>:hide.txt
C:\stuff>dir
Volume in drive C has no label.
Volume Serial Number is 40CC-B506Directory of C:\stuff
09/28/2004 10:19 AM .
09/28/2004 10:19 AM

0 File(s) 0 bytes2 Dir(s) 12,253,208,576 bytes free
C:\stuff>notepad:hide.txt

Теперь вы знаете, как блокнотом просмотреть и отредактировать прикрепленный AltDS, а так же как прикреплять его к файлам и папкам.

Сокрытие и запуск приложений

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

Далее поместим наше приложение в поток, для примера я использовал notepad.exe:
C:\WINDOWS>type notepad.exe>test.txt:note.exe

Теперь убедимся что в нашем файле все также текст:
C:\WINDOWS>type test.txt
Test

А теперь самое интересное, запустим наше спрятанное приложение:
C:\WINDOWS>start .\test.txt:note.exe
C:\WINDOWS>

Так как данная статья является не полным переводом статьи взятой , то оформлено как простой топик. Дополнительные приемы можно найти по указанной ссылке.

UPD:

Утилиты по работе с AltDS (список взят из статьи по ссылке выше):

LADS - List Alternate Data Streams by Frank Heyne
www.heysoft.de/Frames/f_sw_la_en.htm

Streams.exe from SysInternals.

Операционные системы 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 ко всем общедоступным ресурсам системы, установите флаг Apply 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.

Жан Де Клерк (declercq @hp .com ) - сотрудник Security Office компании Hewlett -Packard . Занимается управлением идентификацией и средствами безопасности продуктов Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press).

Приветствую Вас, уважаемые читатели блога сайт. Файловая система NTFS обладает интересной возможностью поддержки альтернативных потоков данных (Alternate Data Stream, ADS). Технология подразумевает под собой, то, что каждый файл в файловой системе NTFS может иметь несколько потоков, в которых могут храниться данные. Проводник и большинство других приложений работают только со стандартным потоком и не могут получить данные их альтернативных. Таким образом с помощью технологии ADS можно скрывать данные, которые не удастся обнаружить стандартными способами.

Поддержка альтернативных потоков данных была добавлена в NTFS для совместимости с файловой системой HFS , использующейся на MacOS.

Немного теории

В файловой системе NTFS файлы имеют атрибуты. Один из атрибутов $DATA является атрибутом данных. В свою очередь атрибут $DATA может иметь несколько потоков. По умолчанию существует один основной поток $DATA:"" , который называют неименованным. С этим потоком как раз и работает проводник windows. При желании к файлу можно добавить несколько именованных потоков (например $DATA:"potok1"), которые будут содержать различные не связанные между собой данные.

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

Для работы с альтернативными потоками можно использовать специальные программы, либо командную строку.

Как создать альтернативный поток NTFS

Создать альтернативный поток можно с помощью консольной команды echo .

Для начала откроем командную строку cmd.exe и с помощью команды echo создадим текстовый файл example.txt и запишем в него текст:

echo Главный поток>example.txt

Следующей командой запишем данные в альтернативный поток. Для этого после названия файла ставите двоеточие (:) и даете название потоку:

echo Альтернативный поток>example.txt:test

Теперь если открыть файл example.txt в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

Получить информацию содержащуюся в потоке можно с помощью команды more:

more

Увидеть содержимое потока можно не только в командной строке. Например, открыть альтернативный поток в можно с помощью следующей команды:

«C:\Program Files (x86)\Notepad++\notepad++.exe» example.txt:test

Обычный Блокнот может открывать только те потоки, название которых заканчивается на «.txt». Для примера, добавим к нашему файлу поток test.txt:

echo Альтернативный поток для блокнота>example.txt:test.txt

И откроем его в блокноте:

notepad.exe example.txt:test.txt

В альтернативные потоки, можно помещать не только текстовые данные, а абсолютно любые типы данных. Кроме того к любым типам файлов можно добавлять любые данные — к текстовым файлам добавлять видео, а к изображениям текстовую информацию.

Для примера добавим к нашему файлу поток с изображением img.jpg. Для этого воспользуемся командой type:

type img.jpg>example.txt:img.jpg

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

Чтобы открыть содержащееся в альтернативном потоке изображение, например в Paint-е, достаточно воспользоваться командой:

mspaint example.txt:img.jpg

Что самое интересное альтернативные потоки не увеличивают видимый объем файла. Так если к текстовому файлу размером 1 Кб добавить видео размером 30 Гб, то проводник все равно покажет размер файла 1 Кб.

Также потоки можно добавлять для папок и даже для разделов жесткого диска. Делается все также как и для файлов:

echo Текст в папке>c:\test:hide.txt

И открываем в блокноте:

notepad c:\test:hide.txt

Так как наличие альтернативных потоков никак не отображается в проводнике и других файловых менеджерах, самый простой способ их обнаружить это воспользоваться командой dir /R:

Скрытие приложений в альтернативных потоках и их запуск

Поместить исполняемые файлы в альтернативные потоки также легко как и обычные файлы. Для примера возьмем наш файл example.txt и поместим приложение Блокнот (notepead.exe) в поток hideapp.exe:

type C:\Windows\system32\notepad.exe>example.txt:hideapp.exe

Чтобы запустить скрытый Блокнот используется следующая команда:

start .\example.txt:hideapp.exe

С помощью описанных приемов можно легко спрятать информацию от неподготовленных пользователей. Вообще применение альтернативных потоков данных ADS ограничено только вашей фантазией.

На этом все, до новых встреч!