- Описание механизма защиты файлов Windows
- Аннотация
- Дополнительная информация
- Принцип работы механизма защиты файлов Windows
- Что такое проектируемая файловая система Windows?
- Как включить Windows Projected File System на Windows 10
- Как работает Windows File Protection
- Description of the Windows File Protection feature
- Summary
- More Information
- How the WFP feature works
Описание механизма защиты файлов Windows
Аннотация
В данной статье приведено описание механизма защиты файлов Windows (WFP).
Дополнительная информация
Защита файлов Windows (WFP) служит для предотвращения перезаписи программами важных файлов операционной системы. Такие файлы нельзя перезаписывать, поскольку они используются как самой операционной системой, так и другими программами. Защита таких файлов необходима для предупреждения возможных неполадок в работе операционной системы и установленного программного обеспечения.
Механизм WFP отвечает за защиту важных системных файлов, устанавливаемых вместе с Windows (например, файлы с расширениями dll, exe, ocx и sys, а также некоторые шрифты True Type). Проверка правильности версии защищенных системных файлов производится с помощью подписей файлов и файлов каталога, созданных в процессе подписывания. Замена защищенных файлов операционной системы возможна только посредством следующих механизмов.
При установке пакетов обновления для Windows с помощью программы Update.exe.
При установке исправлений с помощью программ Hotfix.exe и Update.exe.
При обновлении операционной системы с помощью программы Winnt32.exe.
При использовании веб-узла Windows Update.
Если для замены защищенного файла используется другой способ, функция WFP восстанавливает исходные файлы. При установке важных системных файлов установщик Windows не устанавливает и не заменяет их самостоятельно, а всегда использует механизм WFP, обращаясь к нему с запросом установки или замены защищенных файлов.
Принцип работы механизма защиты файлов Windows
Для защиты файлов операционной системы в WFP предусмотрены два механизма. Первый механизм работает в фоновом режиме и активируется после того, как WFP получает уведомление об изменении папки для файла из защищенной папки. После получения этого уведомления WFP определяет, какой файл был изменен. Если был изменен защищенный файл, WFP находит в файле каталога подпись защищенного файла для проверки правильности версии нового файла. Если версия является неправильной, новый файл заменяется исходным из папки кэша (если он там имеется) или источника установки. Поиск файла допустимой версии производится в следующем порядке.
Папка кэша (по умолчанию %systemroot%\system32\dllcache).
Путь к сетевому источнику установки, если он был использован для установки операционной системы.
Компакт-диск Windows, если он был использован для установки операционной системы.
Если файл удается найти в папке кэша или выполняется автоматическое обнаружение источника установки, файл заменяется без уведомления пользователя. Если WFP не удается автоматически найти файл ни в одном из этих местоположений, пользователь получает одно из следующих сообщений, в которых имя_файла — это имя замененного файла, а продукт — это используемый продукт Windows.
Защита файлов Windows
Файлы, нужные для правильной работы Windows, были заменены неизвестными версиями. Для обеспечения стабильной работы системы Windows необходимо восстановить оригинальные версии этих файлов. Вставьте компакт-диск продукт.
Защита файлов Windows
Файлы, нужные для правильной работы Windows, были заменены неизвестными версиями. Для обеспечения стабильной работы системы Windows необходимо восстановить оригинальные версии этих файлов. Сетевая папка, из которой необходимо скопировать эти файлы, \\ сервер\ общий_ресурс, недоступна. Обратитесь к системному администратору или вставьте компакт-диск продукт.
Примечание. Если вход в систему был выполнен с учетной записью, которая не дает прав администратора, описанные выше диалоговые окна не отображаются. В таком случае эти диалоговые окна отображаются только после входа в систему с правами администратора. WFP ждет входа в систему администратора в следующих ситуациях.
Запись реестра SFCShowProgress отсутствует или содержит значение 1, а сервер настроен на проверку при каждом запуске компьютера; в таком случае WFP ждет входа с консоли, поэтому сервер RPC не запускается, пока не будет выполнена проверка. В течение этого времени компьютер не защищен.
Примечание. При этом сохраняется возможность подключения сетевых дисков и использования системных файлов, и для входа на сервер можно использовать службы терминалов. WFP не считает эти операции консольным входом и находится в состоянии ожидания неограниченно долго.
WFP должен восстановить файл из общего сетевого ресурса. Такая ситуация может возникнуть в случае, если в папке Dllcache нет требуемого файла или он поврежден. В этом случае у WFP может не быть требуемых учетных данных для доступа к общему ресурсу на носителе для установки по сети.
В качестве второго механизма защиты, обеспечиваемого WFP, используется средство проверки системных файлов (файл Sfc.exe). В конце работы режима графического интерфейса программы установки это средство проверяет, не были ли защищенные файлы изменены программами, установленными автоматически. Кроме того, программа Sfc.exe проверяет все файлы каталога, используемые для отслеживания правильных версий файлов. В случае отсутствия или повреждения любого из файлов каталога он переименовывается и восстанавливается из папки кэша. Если в папке кэша файл найти не удается, WFP запрашивает установку соответствующего носителя с новой копией файла каталога.
Средство проверки системных файлов предоставляет администратору возможность проверить версии всех защищенных файлов. Кроме того, это средство проверяет и повторно заполняет папку кэша (по умолчанию — %SystemRoot%\System32\Dllcache) Если папка кэша повреждена или стала непригодной для использования, для восстановления ее содержимого используется команда sfc /scanonce или sfc /scanboot.
Параметр SfcScan из раздела системного реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon может принимать три значения. Возможные значения параметра SfcScan:
0x0 — не проверять защищенные файлы после перезагрузки системы (по умолчанию);
0x1 — проверять все защищенные файлы после каждой перезагрузки системы (устанавливается после запуска команды sfc /scanboot).
0x2 — проверить все защищенные файлы после перезагрузки системы (устанавливается после запуска команды sfc /scanonce).
По умолчанию резервные копии всех системных файлов хранятся в папке кэша, размер которой составляет 400 МБ (по умолчанию). Хранение резервных копий всех системных файлов не всегда желательно с точки зрения наличия свободного места на диске. Для изменения размера кэша измените значение параметра SFCQuota в следующем разделе реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. WFP хранит проверенные версии файлов на жестком диске в папке Dllcache. Количество хранимых файлов определяется значением параметра SFCQuota (по умолчанию 0xFFFFFFFF или 400 Мбайтов). Администратор может увеличивать или уменьшать значение параметра SFCQuota по своему усмотрению. Обратите внимание, что если для параметра SFCQuota установлено значение 0xFFFFFFFF, WFP хранит все защищенные файлы (приблизительно 2700 файлов).
Отсутствие в папке кэша копий некоторых системных файлов (независимо от значения параметра SFCQuota) возможно по двум причинам.
Недостаточно места на диске.
На компьютере под управлением Windows XP запись в папку Dllcache прекращается, когда на жестком диске объем оставшегося свободного места меньше суммы (600 МБ + максимальный размер файла подкачки).
На компьютере под управлением Windows 2000 запись в папку Dllcache прекращается, когда на жестком диске остается менее 600 МБ свободного места.
Если ОС Windows 2000 или Windows XP установлена по сети, файлы из папки i386\lang не заносятся в папку Dllcache.
Кроме того, все драйверы в файле Driver.cab являются защищенными, но в папку Dllcache не записываются. WFP восстанавливает эти файлы непосредственно из файла Driver.cab без вывода пользователю запроса на предоставление носителя исходных файлов, однако при выполнении команды sfc /scannow файлы, содержащиеся в файле Driver.cab, записываются в папку Dllcache.
Если WFP обнаруживает изменение файла, не входящего в папку кэша, выполняется проверка версии измененного файла, используемой операционной системой в текущий момент. Если используемый в текущий момент файл имеет допустимую версию, он копируется в папку кэша. Если версия файла не является допустимой или файл отсутствует в папке кэша, WFP выполняет поиск источника установки. Если его найти не удается, WFP предлагает администратору установить соответствующий носитель для замены версии файла, находящегося в папке кэша.
Местонахождение папки Dllcache указывается параметром SFCDllCacheDir ( REG_EXPAND_SZ) из следующего раздела реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon По умолчанию параметр SFCDllCacheDir имеет значение %SystemRoot%\System32. В качестве значения параметра SFCDllCacheDir может быть использован путь к папке на локальном диске. По умолчанию параметр SFCDllCacheDir в разделе HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon отсутствует. Таким образом, для изменения местонахождения папки кэша этот параметр необходимо добавить самостоятельно.
При запуске Windows значения параметров из раздела
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection WFP копируются в соответствующие параметры в разделе
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. Следовательно, если в разделе HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection присутствуют параметры SfcScan, SFCQuota или SFCDllCacheDir, их значения имеют преимущество перед значениями аналогичных параметров в подразделе HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon.
Для получения дополнительных сведений о механизме WFP щелкните следующий номер статьи базы знаний Майкрософт:
Настройки реестра для защиты файлов WindowsДля получения дополнительных сведений о средстве проверки системных файлов в Windows XP и Windows Server 2003 щелкните следующий номер статьи базы знаний Майкрософт:
Описание средства проверки системных файлов Windows XP и Windows Server 2003 (Sfc.exe)Для получения дополнительных сведений о средстве проверки системных файлов в Windows 2000 щелкните следующий номер статьи базы знаний Майкрософт:
Описание средства проверки системных файлов Windows 2000 (Sfc.exe) (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Для получения дополнительных сведений о механизме WFP посетите веб-узел корпорации Майкрософт по адресу:
Для получения дополнительных сведений об установщике Windows и механизме WFP посетите веб-узел корпорации Майкрософт по адресу:
Что такое проектируемая файловая система Windows?
В последних сборках Windows 10 в бета-версии появилась новая функция, называемая Windows Projected File System. Я не могу найти в Google никакой информации, кроме API-интерфейсов программирования, которые не имеют смысла для меня.
Что это такое, и на каких пользователей он будет нацелен?
Проецируемая файловая система, также известная как ProjFS, — это функция, похожая на FUSE в Linux (или Dokan & WinFSP). Это позволяет приложениям создавать виртуальные файловые системы, которые кажутся неотличимыми от локальных папок, но все их содержимое генерируется программой «вживую». (Другими словами, вы видите проекции файлов, которых там может не быть.)
Основное использование ProjFS — Microsoft Git Virtual File System , дополнение к инструменту управления версиями Git, направленное на повышение его производительности и уменьшение использования дискового пространства при работе с массивными репозиториями. (Git был создан для репозиториев, содержащих только десятки тысяч файлов, таких как Linux.git; но Microsoft начала использовать его внутри для исходного хранилища Windows, которое на несколько порядков больше).
В настоящее время ProjFS, похоже, не документирована публично, но я ожидаю, что рано или поздно сторонние разработчики выяснят, как использовать его в качестве альтернативы FUSE для реализации таких виртуальных файловых систем, как sshfs , ftpfs и так далее.
Примечание: Pro J ected Файловая система не имеет ничего общего с Windows File Pro т перегиба.
Как отмечено в комментариях, документация теперь доступна для этой функции.
Как включить Windows Projected File System на Windows 10
Компания Microsoft недавно представила предварительную сборку Windows 10 под номером 17604 в канале обновление «Ранний доступ». В этом релизе добавляется одна интересная функция под названием Windows Projected File System.
- Откройте меню Пуск > Служебные — Windows > Панель управления > Программы и компоненты > Включение или отключение компонентов Windows. Здесь поставьте галочку напротив строки Windows Projected File System (в моём случае в сборке 17110 на ней написано beta).
Защита файлов Windows File Protection (WFP) не позволяет программам заменять критически важные системные файлы Windows. Приложения не могут перезаписывать их, поскольку операционная система и другие программы пользуются этими файлами.
Microsoft представила Windows File Protection для защиты этих критически важных системных файлов и предотвращения проблем в работе операционной системы. Windows File Protection не является новой функцией Windows. Microsoft использовала эту подсистему ещё в Windows 2000 и Windows XP, вернув обратно к жизни в 2018 году.
Однако вряд ли новый механизм полагается на архитектуру 20-летней давности. Например, Microsoft переименовала GVFS (Git Virtual File System) в ProjF (Windows Projected Filesystem).
Как работает Windows File Protection
Если программа использует метод для замены защищённых файлов, WFP восстанавливает оригинальные файлы. Инсталлятор Windows подключается к WFP при установке критически важных системных файлов и делает запрос на установку и замену защищённых файлов вместо попытки установить или заменить их самостоятельно.
WFP работает главным образом незаметно в фоновом режиме. Механизм защиты запускается после того, как WFP получает уведомление об изменении файла в защищённой директории. Система заменяет изменённый файл на файл из кэша или источника установки, отменяя изменения.
Description of the Windows File Protection feature
Summary
This article describes the Windows File Protection (WFP) feature.
More Information
Windows File Protection (WFP) prevents programs from replacing critical Windows system files. Programs must not overwrite these files because they are used by the operating system and by other programs. Protecting these files prevents problems with programs and the operating system.
WFP protects critical system files that are installed as part of Windows (for example, files with a .dll, .exe, .ocx, and .sys extension and some True Type fonts). WFP uses the file signatures and catalog files that are generated by code signing to verify if protected system files are the correct Microsoft versions. Replacement of protected system files is supported only through the following mechanisms:
Windows Service Pack installation using Update.exe
Hotfixes installed using Hotfix.exe or Update.exe
Operating system upgrades using Winnt32.exe
If a program uses a different method to replace protected files, WFP restores the original files. The Windows Installer adheres to WFP when installing critical system files and calls WFP with a request to install or replace the protected file instead of trying to install or replace a protected file itself.
How the WFP feature works
The WFP feature provides protection for system files using two mechanisms. The first mechanism runs in the background. This protection is triggered after WFP receives a directory change notification for a file in a protected directory. After WFP receives this notification, WFP determines which file was changed. If the file is protected, WFP looks up the file signature in a catalog file to determine if the new file is the correct version. If the file is not the correct version, WFP replaces the new file with the file from the cache folder (if it is in the cache folder) or from the installation source. WFP searches for the correct file in the following locations, in this order:
The cache folder (by default, %systemroot%\system32\dllcache).
The network install path, if the system was installed using network install.
The Windows CD-ROM, if the system was installed from CD-ROM.
If WFP finds the file in the cache folder or if the installation source is automatically located, WFP silently replaces the file and logs an event that resembles the following in the System log:
Source: Windows File Protection
Description: File replacement was attempted on the protected system file c:\winnt\system32\ file_name . This file was restored to the original version to maintain system stability. The file version of the system file is x.x:x.x.
If WFP cannot automatically find the file in any of these locations, you receive one of the following messages, where file_name is the name of the file that was replaced and product is the Windows product you are using:
Windows File Protection
Files that are required for Windows to run properly have been replaced by unrecognized versions. To maintain system stability, Windows must restore the original versions of these files. Insert your
product CD-ROM now.
Windows File Protection
Files that are required for Windows to run properly have been replaced by unrecognized versions. To maintain system stability, Windows must restore the original versions of these files. The network location from which these files should be copied, \\ server\ share, is not available. Contact your system administrator or insert
product CD-ROM now.
Note If an administrator is not logged on, WFP cannot display either of these dialog boxes. In this situation, WFP displays the dialog box after an administrator logs on. WFP may wait for an administrator to log on in the following scenarios:
The SFCShowProgress registry entry is missing or is set to 1, and the server is set to scan every time that the computer starts. In this situation, WFP waits for a console logon. Therefore, the RPC server does not start until the scan is performed. The computer has no protection during this time.
Note You can still map network drives, use system files, and use Terminal Services to log on to the server. WFP does not consider these operations as a console logon, and keeps waiting indefinitely.
WFP has to restore a file from a network share. This situation may occur if the file is not present in the Dllcache folder or if the file is corrupted. In this situation, WFP may not have the correct credentials to access the share from the network-based installation media.
The second protection mechanism that is provided by the WFP feature is the System File Checker (Sfc.exe) tool. At the end of GUI-mode Setup, the System File Checker tool scans all the protected files to make sure that they are not modified by programs that were installed by using an unattended installation. The System File Checker tool also checks all the catalog files that are used to track correct file versions. If any of the catalog files are missing or damaged, WFP renames the affected catalog file and retrieves a cached version of that file from the cache folder. If a cached copy of the catalog file is not available in the cache folder, the WFP feature requests the appropriate media to retrieve a new copy of the catalog file.
The System File Checker tool gives an administrator the ability to scan all the protected files to verify their versions. The System File Checker tool also checks and repopulates the cache folder (by default, %SystemRoot%\System32\Dllcache). If the cache folder becomes damaged or unusable, you can use either the sfc /scanonce command or the sfc /scanboot command at a command prompt to repair the contents of the folder.
The SfcScan value in the following registry key has three possible settings:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon The settings for the SfcScan value are:
0x0 = do not scan protected files after restart. (Default value)
0x1 = scan all protected files after every restart (set if sfc /scanboot is run).
0x2 = scan all protected files one time after a restart (set if sfc /scanonce is run).
By default, all system files are cached in the cache folder, and the default size of the cache is 400 MB. Because of disk space considerations, it may not be desirable to maintain cached versions of all system files in the cache folder. To change the size of the cache, change the setting of the SFCQuota value in the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon WFP stores verified file versions in the Dllcache folder on the hard disk. The number of cached files is determined by the setting of the SFCQuota value (the default size is 0xFFFFFFFF, or 400 MB). The administrator can make the setting for the SFCQuota value as large or small as needed. Note that if you set the SFCQuota value to 0xFFFFFFFF, the WFP feature caches all protected system files (approximately 2,700 files).
There are two cases in which the cache folder may not contain copies of all protected files, regardless of the SFCQuota value:
Not enough disk space.
Under Windows XP, WFP stops populating the Dllcache folder when less than (600 MB + maximum size of the page file) of space is available on the hard disk.
Under Windows 2000, WFP stops populating the Dllcache folder when less than 600 MB of space is available on the hard disk.
When Windows 2000 or Windows XP is installed over the network, files in the i386\lang directory are not populated in the Dllcache folder.
Additionally, all drivers in the Driver.cab file are protected, but they are not populated in the Dllcache folder. WFP can restore these files from the Driver.cab file directly without prompting the user for the source media. However, running the sfc /scannow command does populate the files from the Driver.cab file into the Dllcache folder.
If WFP detects a file change and the affected file is not in the cache folder, WFP examines the version of the changed file that the operating system is currently using. If the file that is currently in use is the correct version, WFP copies that version of the file to the cache folder. If the file that is currently in use is not the correct version, or if the file is not cached in the cache folder, WFP tries to locate the installation source. If WFP cannot find the installation source, WFP prompts an administrator to insert the appropriate media to replace the file or the cached file version.
The SFCDllCacheDir value ( REG_EXPAND_SZ) in the following registry key specifies the location of the Dllcache folder.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon The default value data for the SFCDllCacheDir value is %SystemRoot%\System32. The SFCDllCacheDir value can be a local path. By default, the SFCDllCacheDir value is not listed in the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon registry key. To modify the cache location, you must add this value.
When Windows starts up, WFP synchronizes (copies) the WFP settings from the following registry key
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protectionto the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinlogonTherefore, if the SfcScan, SFCQuota, or SFCDllCacheDir values are present in the HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection subkey, the values take precedence over the same values in the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon subkey.
For more information about the WFP feature, click the following article number to view the article in the Microsoft Knowledge Base:
222473 Registry settings for Windows File Protection
For more information about the System File Checker tool in Windows XP and Windows Server 2003, click the following article number to view the article in the Microsoft Knowledge Base:
310747 Description of Windows XP and Windows Server 2003 System File Checker (Sfc.exe)
For more information about the System File Checker tool in Windows 2000, click the following article number to view the article in the Microsoft Knowledge Base:
222471 Description of the Windows 2000 System File Checker (Sfc.exe)
For more information about the WFP feature, visit the following Microsoft Web site: