[Setup]: RedirectionGuard

Допустимые значения:

Значение по умолчанию:

yes

Описание

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

Защитная функция RedirectionGuard [внешняя ссылка]доступна в Windows 11 и Windows 10 начиная с версии 22H2, блокирует обход точек NTFS-соединений и символических ссылок, созданных непривилегированными пользователями (или любыми процессами без повышенных прав).

RedirectionGuard особенно полезен для установщиков, которые читают или записывают файлы в каталогах, доступных для записи непривилегированными пользователями, например, в папке {commonappdata}. К примеру, если известно, что установщик обращается к {commonappdata}\YourApp, непривилегированный пользователь может создать в этом месте символическую ссылку, чтобы перенаправить все обращения к {commonappdata}\YourApp по другому, произвольно выбранному пути. Если установщик не включает RedirectionGuard, эта ссылка может обмануть установщик и заставить его создавать или изменять файлы в каталоге, к которому сам непривилегированный пользователь не имеет доступа. Это представляет собой повышение привилегий и потенциально может позволить непривилегированному пользователю получить полный контроль над системой.

Однако наилучшей практикой является по возможности избегать доступа к общедоступным для записи каталогам, таким как {commonappdata}. Файлы конфигурации и данные, предназначенные для записи только установщиком или администраторами, следует размещать в {app} (т.е. в "Program Files"), но не в {commonappdata}.

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

Когда RedirectionGuard блокирует доступ к пути, любое отображаемое или регистрируемое сообщение об ошибке обычно будет содержать код ошибки 448. Если выяснится, что заблокированная точка соединения была создана для какой-то безобидной цели, то рекомендуется удалить и создать точку соединения заново с правами администратора (запустив команду MKLINK из командной строки с повышенными правами). Отключение RedirectionGuard, как правило, не требуется.

Для включения или отключения функции программа установки и удаления также поддерживают параметры командной строки /NOREDIRECTIONGUARD и /REDIRECTIONGUARD, которые имеют приоритет над настройкой этой директивы.

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

См. также:

Параметры командной строки инсталлятора
Параметры командной строки деинсталлятора