Защита файлов Windows

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

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

Защита системных файлов от повреждения возложена на службу защиты файлов Windows (Windows File Protection — WFP). Служба сравнивает цифровую подпись критически важных системных файлов с каталогом подписей, который предоставлен вместе с оригинальными системными файлами.

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

Если цифровая подпись не совпадает (т.е. отсутствует в каталоге) или замененный файл вообще не имеет подписи, служба защиты файлов Windows извлекает оригинальную версию файла из папки кэша и перезаписывает оригинальную версию поверх новой версии файла. Уведомление о предпринятых действиях записывается в журнал изменений.

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

* Пакеты обновлений, запускаемые с помощью Update.exe
* Исправления (hotfix), запускаемые с помощью Ноtfiх.ехе
* Обновления операционной системы, запускаемые с помощью Winnt32.ехе
* Служба Windows Update
* Диспетчер устройств/Установщик классов (Device Manager/Class Installer)

Одновременно с пакетом обновлений в системе устанавливается еще один файл каталога. Подкаталоги хранятся в каталоге \Windows\System32\Catroot. Новый каталог получает имя SP# .CAT, где # — номер пакета обновлений.

Служба защиты файлов Windows хранит копии контролируемых файлов в сжатом ката логе \windows\System32\DllCache. В этом каталоге хранится копия каждого файла, установленного с компакт-диска операционной системы Windows Server 2003. Если один из этих файлов обновляется с использованием четырех разрешенных методов, кэшированный файл заменяется обновленной версией.

Описание работы службы WFP

Проверка работы службы защиты файлов Windows (WFP) рассматривается в следующей процедуре.

Проверка работы службы WFP

1. Откройте Explorer (Проводник) и перейдите в каталог \windows\System32. Если Explorer поддерживает просмотр каталогов в виде Web-папок, будет выдан запрос на подтверждение доступа к папкам \Windows и \Windows\System32. Это подсказывает, что каталоги защищены службой защиты файлов Windows.
2. Прокрутите список файлов и найдите один из файлов, установленных вместе с операционной системой.
3. Щелкните правой кнопкой мыши на пиктограмме файла и выберите из контекстного меню команду Delete (Удалить). Щелкните на кнопке Yes (Да) для подтверждения удаления.
4. Некоторое время ничего не делайте. Ждите и наблюдайте. Через несколько секунд пиктограмма файла появится на старом месте. Это значит, что служба защиты файлов Windows работает.

Элементы службы WFP

Служба защиты файлов Windows не работает в виде отдельного процесса. Это одна из функций ядра операционной системы. Для управления службой можно воспользоваться записями системного реестра в разделе HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon. Для управления службой защиты файлов Windows доступны следующие записи.

* SFCQuota. Объем дискового пространства, выделенного для хранения каталога DllCache. По умолчанию используется значение FFFFFFFF, которое выделяет для хранения каталога практически неограниченный объем величиной 4 Гбайт. Тот же эффект дает значение -1.
* SFCDisable. Если установить для этой записи значение 1, защита системных файлов будет отключена при следующей перезагрузке. После еще одной перезагрузки служба за щиты файлов включится автоматически. Этот параметр можно использовать для замены файлов версиями, одобренными производителем системы, или для установки специальных версий файлов, предназначенных для отладки.
* SFCBugCheck. В обычных условиях при попытке замены или удаления защищенного файла система выдает предупреждение на локальную консоль. Если установить для этой записи значение 1, система останавливает работу и выдает синий экран с сообщением об ошибке. Этот параметр можно установить на рабочей станции, пользователь которой время от времени старается заменить системные файлы.
* SFCScan. Заставляет службу WFP просматривать папку DllCache во время загрузки и находить отсутствующие файлы. Значение 1 заставляет службу сканировать файлы при каждой загрузке. Значение 2 заставляет службу провести однократное сканирование.

Использование сканера системных файлов SFC

Для изменения параметров службы WFP необязательно копаться в системном реестре. Для этих целей в операционной системе Windows Server 2003 предоставляется утилита, запускающаяся из командной строки. Утилита называется System File Checker (SFC) и может использоваться для восстановления каталога DllCache при случайном удалении файлов. Параметры утилиты SFC рассматриваются в следующих разделах.

sfc /scanonce

Этот параметр заставляет службу просканировать папку DllCache и проверить соответствие подписей файлов сигнатурам в каталоге. После этого выполняется сканирование фай лов в защищенных каталогах. Это сканирование начинается после завершения регистрации.

Во время сканирования на консоли выдается сообщение с предложением подождать окончания сканирования. В это время можно запускать другие приложения и выполнять другие задачи, но это замедляет сканирование. Если система находит в кэше отсутствующий файл или системный файл с неправильной версией, выдается запрос на предоставление установочного компакт-диска Windows Server 2003, что позволит восстановить правильную версию файла.

Если операционная система Windows Server 2003 устанавливалась по сети или из каталога i386 на локальном жестком диске, компакт-диск все равно потребуется для восстановления защищенных файлов. Если на компьютере привод компакт-дисков не установлен, единственным решением является сравнение содержимого папки DllCache с такой же папкой на другом компьютере и копирование отсутствующих файлов вручную.

sfc /scanboot

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

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

sfc /quiet

Использование этого параметра приводит к замене отсутствующих файлов без дополнительного запроса.

sfc /cancel

Этот параметр позволяет отменить сканирование во время следующей загрузки.

Особенности службы WFP

Повторим ключевые моменты, связанные с работой службы защиты файлов Windows.

* Служба WFP защищает системные файлы, установленные вместе с операционной системой.
* Служба защиты файлов Windows разрешает модификацию системных файлов только не большому количеству доверенных выполняемых файлов.
* Удаленные или поврежденные системные файлы заменяются правильными версиями из специального кэша на диске.
* Утилита sfc позволяет вручную запустить сканирование и исправление системных файлов.

Рубрика: 

Добавить коментарий