Чем спрятать данные в потоках нтфс. Канал для внедрения вредоносного кода. Файловые потоки 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

В последнее время, в связи с удешевлением аппаратных средств (в долларовом эквиваленте) все большее число пользователей компьютера получает в распоряжении ресурсы вполне достаточные для работы операционной системы Microsoft Windows NT (i200MMX + 32-64 Mb). Ненадежность и непредсказуемость Windows 95/98, а также неспособность ее к управлению на должном уровне ресурсами современных компьютеров приводит многих пользователей к мысли о переходе на NT.

При этом многие неискушенные пользователи не находят для себя ничего кардинально нового. И действительно, установив Internet Explorer 4 и не пользуясь многочисленными возможностями NT по применению политики безопасности и защиты, самыми большими отличиями от Windows 98 может показаться наличие двух папок “Автозагрузка” в пусковом меню (текущего пользователя и общей для всех пользователей) и отсутствие апплета Add/Remove Hardware в Панели управления. А если еще и не форматировать диск файловой системой NTFS, то разницы можно больше и не найти.

Но эта статья как раз и описывает некоторые отличия NTFS от FAT, VFAT, FAT16 и FAT32. Общеизвестные отличия: способность к самовосстановлению, отложенная запись, максимальный размер тома и файла на нем до 16 Экзабайт (1 Экзабайт = 1000000 Гбайт), возможность сжатия отдельных файлов и папок, установки разрешений и аудита достаточно широко освещены в литературе и документации к Windows NT. Но существуют еще малоизвестные и малоиспользуемые возможности NTFS: жесткие ссылки (hardlinks) и множественные потоки данных (multiply data flows или forks). Далее пойдет речь именно о них.

Множественные потоки данных . Этот термин знаком пользователям Macintosh. В этой системе файл может иметь два потока (forks): поток данных и поток ресурсов. В потоке данных хранятся данные файла - этот поток и копируется как единственный при переносе файла с Macintosh на PC. Второй поток файла - поток ресурсов, содержащий данные операционной системы – меню, значки, шрифты, в общем, все то, что принято называть ресурсами. Когда Windows NT Server обслуживает клиентов Macintosh и предоставляет им дисковое пространство для хранения файлов, необходимо чтобы файловая система сервера поддерживала формат файлов клиента. Это является одной из причин появления множественных потоков данных в NTFS.

Каким образом это реализовано? Любая информация о файле, начиная с его имени, разрешений и заканчивая собственно данными, хранящимися в файле, с точки зрения NTFS представляет собой атрибут, хранящийся в собственном потоке (stream). Разработчики NTFS посчитали, что можно не ограничиваться одним потоком для данных – безымянным, и добавили возможность создания нескольких, помимо основного, именованных потоков. Для создания множественных потоков можно применить функцию Win32 API, но можно поступить и проще.

Со времен Кернигана и Ричи – разработчиков языка C и операционной системы UNIX у многих операционных систем существует возможность обобщения операций ввода – вывода. С этой точки зрения, любая операция ввода – вывода может рассматриваться как операция ввода из потока или вывода в поток независимо оттого, что является источником данных (консоль, т.е. клавиатура, файл или порт) и приемником (опять же консоль, в данном случае уже экран монитора, принтер или файл). Существует и возможность перенаправить ввод – вывод программы с экрана на принтер и вводить команды не с клавиатуры, а из файла. В наше время повсеместного использования графического пользовательского интерфейса эти возможности применяются очень редко, поэтому поясним сказанное примером.

Команда операционных систем Microsoft echo используется для вывода информации на экран в текстовом режиме:

C:>echo Hello, World!

Команда echo в качестве устройства вывода информации использует экран монитора. Вывод этой команды можно перенаправить с консоли в файл (для этого используется символ “ > ”):

C:>echo Hello, World! > file

Как видите, команда echo в данном случае на экран ничего не вывела. Но в файле file можно обнаружить строку “Hello, World!”. Аналогично вывод команды echo можно перенаправить и на принтер:

C:>echo Hello, World! > lpt1

На экране опять ничего, но на листе бумаги в принтере можно обнаружить все ту же строку “Hello, world!”, если конечно принтер подсоединен к порту lpt1. Таким образом, вывод любой программы текстового режима можно перенаправить на любое устройство, поддерживающее потоковый ввод информации или в файл, за исключением тех программ, которые в текстовом режиме используют для вывода информации непосредственную модификацию видеопамяти и другие нестандартные, с точки зрения классического C, возможности.

Аналогично можно перенаправить и ввод программы. Команда more операционных систем Microsoft используется для буферизации вывода команд, выводящих информации больше, чем умещается на экран. Но эту команду можно использовать и для иллюстрации перенаправления ввода:

C:>more Hello, World!

В файле file находилась строка “Hello, World!”, которая была направлена на экран.

Точно также, с помощью перенаправления ввода - вывода можно создавать и читать множественные потоки данных:

C:>echo string1 > file:fork1

Записью file:fork1 определяется в файле file поток с именем fork1 (поскольку он еще не существует, то создается новый с этим именем) и перенаправляем в него вывод команды echo. При этом размер файла при просмотре его свойств не изменяется, и стандартными средствами Windows NT, не зная имени потока его существования нельзя определить. Но, зная его имя, можно с помощью команды more определить и его содержимое:

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

Если ничего подходящего найти не удалось, то можно написать в любом компиляторе C++ такую программу:

while (cin.get(ch)) cout.put(ch);

Скомпоновать эту программу лучше как консольное Win32 приложение, и использовать как средство для изучения потоков каталогов.

Windows NT не предоставляет стандартных средств для получения информации о множественных потоках данных. Но что делать, если все же необходима такая информация? В этом случае можно воспользоваться программой streams Марка Руссиновича (Mark Russinovich), которую вместе с исходным кодом можно взять на www.sysinternals.com . В этой программе для получения информации о множественных потоках данных используются недокументированные функции Windows NT. Вот информация, полученная с помощью программы streams о файле file:

NTFS Streams Enumerator v1.0

Systems Internals - http://www.sysinternals.com

Здесь можно видеть как название потока данных, так и его размер в байтах (дополнительные 3 символа это пробел после символа “ > ”, возврат каретки и перевод строки, добавляемые командой echo). К сожалению, streams не позволяет определить множественные потоки данных в каталогах.

Для чего можно применять множественные потоки данных? Помимо применения, найденного для них фирмой Apple, можно сказать о самом простом средстве для скрытия информации, например, для запоминания даты установки программы shareware. На заре технологии OLE Microsoft предполагала использовать потоки данных для хранения информации о внедренных объектах, но видимо обеспечить потоки данных на FAT оказалось сложнее, чем создать длинные имена файлов и от этой идеи пришлось отказаться. Создание “файла ресурсов” для скрипта с хранением в нем всех надписей, выводимых на разных языках, также может быть интересной возможность применения потоков. Помимо приведенных, существует еще множество интересных применений для множественных потоков данных, чтобы не обходить их своим вниманием.

Жесткие ссылки . Пользователям различных клонов UNIX хорошо знакомо это понятие. В отличии от файловой системы FAT, в которой принято, что у каждого файла может быть только одно имя, в UNIX такого ограничения нет – каждый файл может иметь несколько имен и его данные не могут быть удалены, пока счетчик имен файла не равен 0. В UNIX существуют также символьные ссылки – аналог ярлыков (shortcut) в Windows, но следящих за перемещением объекта, на который они ссылаются.

Windows NT ограниченно соответствует стандарту POSIX (Portable Operating System Interface for Computing Environments). Один из примеров ограниченности – поддержка жестких ссылок и отсутствие поддержки символьных. Видимо, было решено, что ярлыки являются достойным аналогом символьных ссылок.

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

Для изготовления жесткой ссылки необходима программа для подсистемы POSIX Windows NT. Такая программа вместе с исходными текстами находится на компакт-диске “Ресурсы Windows NT”. По аналогии с UNIX эта программа называется ln. Синтаксис этой команды:

C:>Ln file hardlink1

С помощью этой команды мы создаем для файла file второе имя или жесткую ссылку hardlink1 и, изменяя содержимое файла file можно изменить содержимое hardlink1, точнее это один и тот же файл, но с двумя именами. Аналогично можно менять и другие атрибуты файла. Количество имен у файла не ограничено, но при копировании имени файла ссылка разрывается и создается еще один файл. Существует возможность создания ссылки в другом каталоге:

C:>Ln file ../temp/hardlink2

В этом случае необходимо указывать не абсолютное, а относительное имя каталога.

Применений для жестких ссылок можно найти не меньше, чем для множественных потоков данных. Например, создавать жесткие ссылки для библиотек dll, чтобы обезопасить свою программу от случайного удаления необходимого файла. Другие возможные применения жестких ссылок лучше всего искать в литературе, относящейся к UNIX. И, конечно же, применение жестких ссылок можно комбинировать с описанными выше множественными потоками данных.

ИТ-директора тратят немало времени и ресурсов на проекты, связанные с системами аналитической обработки информации по продажам и других стандартных бизнес-данных. При этом для руководителей создаются информационные панели, отображающие показатели результативности компании и помогающие строить прогнозы на будущее. Такие системы приносят немалую пользу бизнесу, но на самом деле открывающиеся благодаря им возможности – это лишь малая часть того, что можно сделать с доступными организации данными, уверен Кришна Натан, ИТ-директор компании S&P Global (ранее McGraw Hill Financial), занимающейся ведением кредитных рейтингов, а также предоставляющей консалтинговые и аналитические услуги для фондового рынка. Под руководством Натана спроектирована и внедрена новая общекорпоративная система обработки данных, претворяется в жизнь стратегия, направленная на ускорение роста бизнеса и создание новых предложений для заказчиков.

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

Однако не спешите нанимать на работу очередных дорогостоящих специалистов. Давайте разберемся, о чем, собственно, идет речь.

Что такое «альтернативные данные»

Натан дает такое определение альтернативных данных: это данные, которые поступают из нетрадиционных источников, и их анализ позволяет извлечь полезные сведения в дополнение к тем, что вы получаете обычным образом.

Допустим, у вас торговая сеть и вы намерены открыть новый магазин в другом городе. Обычно подобное решение основывается на результативности ваших магазинов в конкретном городе и других мегаполисах.

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

S&P Global также поставляет аналитические услуги для товарных бирж, и ИТ-директору приходится постоянно думать, как с помощью альтернативных источников данных предложить заказчикам дополнительные сведения, как объединять различные сведения, чтобы дать клиентам информацию, которую бы они больше нигде получить не смогли.

Скажем, у S&P Global есть сведения о том, что нефтеперерабатывающий завод в Роттердаме может производить 100 тыс. баррелей нефтепродуктов в день. Но из-за дефицита поставок перерабатывает примерно 70 тыс. баррелей, то есть доступны свободные мощности еще на 30 тыс. Что произойдет после того, как в порт вошел нефтяной танкер с 30 тыс. баррелей? «Если отчет о доступной мощности завода – недельной давности, то мы не будем знать, что только что произошла разгрузка нефти, – поясняет Натан. – То есть традиционные данные устарели. И здесь пригодится такой источник альтернативных данных, как спутниковая съемка. Если проанализируем снимки со спутника наряду с другими источниками, то получим более точную картину запасов и производства почти в реальном времени».

Альтернативные данные и ИТ-директор

Даже если у вас нет готовых сценариев применения, знакомьтесь с новыми технологиями. Займитесь планированием систем, которые позволят комбинировать множество источников данных для анализа. Научитесь управлять цепочкой доставки данных, защищать ее, учитывать права использования. И нанимайте необходимый персонал – нужны опытные ученые по данным, умеющие анализировать их и извлекать полезную информацию.

Для быстрого запуска проекта в области альтернативных данных можно воспользоваться уже готовым решением. Так поступили в S&P Global, когда Platts, дочернее предприятие компании, приобрело cFlow – инструментарий для интерпретации спутниковой съемки. CFlow предлагает средства наглядного представления данных, позволяющие следить за изменениями торговых потоков по маршрутам следования судов, предоставляет сведения об объеме и характере груза танкеров.

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

– Martha Heller. What is ‘alternative data’ and how can you use it? CIO. JAN 3, 2017

Операционные системы 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 ? Весьма интересная функциональность файловой системы, которой можно найти практическое применение. Сегодня поговорим о том, что это и как этим можно пользоваться.

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

В Windows 7 альтернативные потоки NTFS , наличествующие у файла, штатными средствами не увидеть. И напрасно: адски хитрые вирусы, например, могут писать себя в потоки какого-нибудь вполне безобидного файла. Удалив файл с потоками, содержащими объёмные данные можно обнаружить, что места освободилось значительно больше, чем занимал файл по мнению Проводника .
Для просмотра имеющихся потоков мы будем пользоваться консольной утилитой , созданной небезызвестным Марком Руссиновичем.

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

Некоторые консольные команды позволяют создать и отобразить содержимое потока NTFS , например команда echo может позволить создать альтернативный поток для текстового файла. Чтобы было понятно, как это работает, рассмотрим пример. Введите следующее в командой строке:
echo Hello Happy Bulldozer > hello.txt
echo Hello World > hello.txt:test

А теперь откройте файл hello.txt в Блокноте:

Текст Hello World остался "за кадром", находясь в потоке с именем test . Если указать в имени открываемого файла и имя потока, открыть файл в потоке не получится: двоеточие - недопустимый символ для названия файла. Однако, можно воспользоваться командной строкой, которая несколько лояльней и позволит выполнить вот такую команду:
more < hello.txt:test

Просмотр потоков NTFS , как я писал выше, можно выполнить через утилиту streams.exe
streams.exe hello.txt


Я полагаю, тут всё понятно.

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

Продвинутые программы вроде справятся без особых усилий и отобразят вам содержимое потока:

Стандартный Блокнот будет приписывать расширение txt к имени потока. Если вы хотите использовать его, потоки именовать надо следующим образом:
echo Hello World > hello.txt:test.txt
Тогда выполненная из cmd.exe команда даст положительный результат:
notepad hello.txt:test.txt

Альтернативные потоки NTFS и файлы различных типов

У вас может сложится мнение, что область применения альтернативных потоков NTFS не простирается дальше текстовых файлов. Это не так. В следующем примере я добавил к файлу hello.txt поток, содержащий данные архива 7z:

Отмечу, что потоки можно создавать не только для файлов, но и для папок и даже для разделов жесткого диска.

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

Выбор