Павел Белевский Системный инженер по встраиваемым решениям, Кварта Технологии pavelb@quarta.ru Microsoft TechDays Зачем использовать фильтры записи? Фильтр записи Enhanced Write Filter Файловый фильтр записи (File Based Write Filter) Фильтр записи реестра (Registry Filter) Выбор фильтра записи Microsoft TechDays Microsoft TechDays Фильтры позволяют защитить раздел диска Запись на диск перенаправляется в оверлей Прозрачно для приложений Используется для защиты системного раздела Перебои с электропитание Вирусные атаки Увеличение ресурса флэш-диска 3 фильтра Фильтр на уровне раздела (Enhanced Write Filter) Файловый фильтр (File Based Write Filter) Фильтр для защиты реестра (Registry Filter) Microsoft TechDays Приложение обращающееся к защищенному разделу 1) Чтение данных с диска 2) Запись данных в оверлей 3) Повторное чтение данных Оверлей Диск Microsoft TechDays Менеджер ввода/вывода Минифильтр IRPs Диспетчер фильтров FBWF Драйвер файловой системы (ntfs.sys) EWF Менеджер томов Драйвер класса устройств (disk.sys) Port-драйвер Miniport-драйвер Устройство Microsoft TechDays Минифильтр Enhanced Write Filter Защита на уровне секторов Позволяет загружаться с носителей только для чтения Изменения сохраняются для всего раздела целиком Microsoft TechDays EWF фильтр может быть настроен для защиты нескольких разделов и независимо для каждого раздела выбирается либо дисковый оверлей либо оверлей в оперативной памяти Дисковый оверлей Используется дополнительный том На томе хранится таблица, стек оверлея и данные оверлея После перезагрузки изменения сохраняются RAM или RAMREG оверлей После перезагрузки изменения не сохраняются Запускается без дисковых накопителей Microsoft TechDays Диск Раздел 1 Дисковый оверлей C:\ Защищенный том Диск Раздел 1 RAM оверлей Раздел 2 Раздел 2 EWF Раздел C:\ EWF раздел Память EWF оверлей Защищенный EWF раздел раздел Диск Память Раздел 1 RAM-REG оверлей C:\ Реестр Защищенный раздел Microsoft TechDays EWF оверлей Microsoft TechDays EWFMGR.EXE: утилита командной строки EWF API Управление EWF фильтром из собственных приложений Приложения разрабатываются на Visual C++ EWFAPI.H и EWFAPI.LIB Более подробная документация в MSDN: Controlling EWF by Using the EWF APIs Microsoft TechDays По возможности уменьшить количество операций записи на защищенный том Использовать FAT Минимизирует обращения к диску Если требуется NTFS, то использовать сжатие Отключить журналирование обращений HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem Name Type Value NtfsDisableLastAccessUpdate REG_DWORD 1 (0=откл, 1=включить) Данный ключ реестра отключает обновление времени доступа к файловой системе Microsoft TechDays Защита на уровне файловой системы Позволяет определенные файлы оставить незащищенными Исключения для записи Пофайловое утверждение изменений Используется только оверлей в оперативной памяти – не нужен дополнительный раздел Есть некоторые ограничения FBWF Reparse-точки «Жесткие» ссылки (Hard links) Шифрование файлов Microsoft TechDays Менеджер ввода/вывода IRPs Файловая система (ntfs.sys) Диспетчер томов Драйвер класса устройства (disk.sys) Port-драйвер Miniport-драйвер Устройство Microsoft TechDays Итоговая файловая система Папка А* Папка Б Папка В Файл 1 Файл 3 Кэш фильтра записи Папка А* Измененная папка Папка В Новая папка Файл 2 Удаленный файл Файл 3 Новый файл Защищенный том Папка А Папка Б Файл 1 Microsoft TechDays Файл 2 Кэш фильтра записи Структура папок Файл 1 Папка А Файл 2 Файл 3 Папка Б Файлы Файл 1 Microsoft TechDays Файл 2 Файл 3 Microsoft TechDays Список исключений Раздел защищенный файловым фильтром Незащищенная область (Область исключений) Защищенная область Динамически изменяемое свободное пространство Системные файлы защищенные фильтром Microsoft TechDays Незащищенные файлы FFFFFFFF Невыгружаемый пул Динамически изменяется Выделено изначально 80000000 Microsoft TechDays ~491MB Выгружаемый пул ~960MB MDL FFFFFFFF Выделяется динамически ~359MB Выгружаемый пул Выделяется предварительно ~768MB MDL 80000000 Microsoft TechDays Microsoft TechDays Задействовать расширенные настройки фильтра для увеличения пула страниц памяти HKLM\SYSTEM\CurrentControlSet\Control\Sessio n Manager\Memory Management, PagedPoolSize Динамическое выделение также поддерживает сжатие Предел для динамического выделения не проверяется Статическое выделение работает быстрее и стабильнее Microsoft TechDays Общие настройки FBWF Указывается количество томов Состояние фильтра при первом запуске – включен/выключен Устанавливается объем оперативной памяти под нужды фильтра Тип кэша Включение/выключение дополнительных возможностей Настройки защищенного тома Указывается буква тома Список незащищенных файлов Microsoft TechDays FBWFMGR.EXE – утилита командной строки FBWF APIs Управление фильтром из собственного приложения Предоставляется необходимое API для разработки в Visual C++ FBWFAPI.H and FBWFAPI.LIB Microsoft TechDays Microsoft TechDays При использовании EWF или FBWF могут быть потеряны TSCAL и доменный ключ, что в результате может сказаться на производительности системы Фильтр реестра сохраняет лицензионную информацию и ключ для входа в домен в реестре Реализован через специальный файл файл RAM-диска Microsoft TechDays Запись TSCAL и ключа домена выполняется напрямую Приложение обращающееся к защищенному тому Оверлей Реестр Диск Реестр Файл RAM-диска Microsoft TechDays Информация о ключах хранится в файле \RegfData на системном диске В случае совместного использования с файловым фильтром файл добавляется в список исключений Не удалять файл из списка исключений Microsoft TechDays Сочетание EWF и ACPI – Hibernation Каждая загрузка выполняется с hiberfil.sys Идеально при требованиях быстрого старта системы Допускается использование только EWF RAM или RAM-REG Требуется реализовать монтирование томов на которые выполняется запись В случае отсутствия – потеря данных Дополнительная информация в MSDN Альтернатива: спящий режим Microsoft TechDays Функциональность EWF Оверлей Дисковый или в памяти В оперативной памяти (non volatile cache writing) Исключения Нет Сохранение изменений Полностью весь оверлей Файлы по отдельности HORM Да Нет Поддержка NTFS Полная Частичная Степень защиты Выше (Ниже в стеке I/O) Ниже (Выше в стеке I/O ) Оптимизация использования памяти Нет Да (высвобождается по мере удаления файлов) Microsoft TechDays FBWF Файлы и папки Фильтры записи XP Embedded Защита флэш-памяти Создание «Stateless» устройств Загрузка с носителей только для чтения EWF поддерживает различные опции оверлея FBWF позволяет использовать исключения Фильтр реестра работает совметсно с EWF или FBWF для сохранения настроек реестра между перезагрузками Microsoft TechDays Русcкоязычный форум для разработчиков встраиваимых систем www.msembedded.ru/forum Книга «Введение в Windows XP Embedded» Microsoft TechDays © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Microsoft TechDays