Как я могу ограничить программу для вызова функций API, связанных с реестром?
Я использую программу, которая ведет себя так, как мне не нравится. Он может записывать в реестр, даже если он запускается от имени пользователя, у которого нет прав администратора. Я не верю, что есть что-то еще, что я могу описать, поэтому, как я могу ограничить программу вызовом функций API, которые связаны с редактированием ключей / строк реестра? Существуют ли общепринятые методы, помогающие мне достичь своей цели? Является ли ответ на мой вопрос плохо документированным или это то, что я мог найти на веб-сайте Microsoft всего несколькими щелчками мыши?
2 ответа
The program will surely malfunction if denied access to its registry keys.
If you do not trust this program, isolate it from your registry by using Sandboxie:
Sandboxie использует технологию изоляции для отделения программ от базовой операционной системы, предотвращая нежелательные изменения ваших личных данных, программ и приложений, которые безопасно хранятся на вашем жестком диске.
The program can this way modify anything it wants, but Sandboxie redirects all modifications so as not to affect the rest of the system.
Как я могу ограничить программу для вызова функций API, которые связаны с редактированием ключей / строк реестра?
Модель безопасности Windows разработана для того же сценария. Каждый ключ реестра имеет список контроля доступа (ACL), в котором указываются доверенные лица (например, учетная запись пользователя) и действия, которые они могут выполнять (например, читать) над ключом.
Чтобы использовать это для ограничения вашего приложения, создайте учетную запись пользователя без прав администратора и всегда запускайте приложение в контексте этого пользователя. Вы можете использовать возможность запуска Windows от имени другого пользователя, чтобы запускать приложение таким образом, не выполняя вход в систему с ограниченной учетной записью.
По умолчанию стандартные пользователи имеют доступ только для чтения к общесистемным частям реестра, таким как ветка HKLM, и могут вносить изменения только в ветку HKCU своей учетной записи.
Если вы хотите дополнительно ограничить разрешения реестра учетной записи, вам следует изменить соответствующие ветви реестра, чтобы указать разрешения, требуемые для учетной записи пользователя. Вы можете использовать Microsoft Process Monitor, чтобы увидеть, к какому реестру он ведет, а для чего могут потребоваться измененные разрешения.
Следует иметь в виду, что почти для всех приложений Windows необходим доступ к реестру для правильной работы. Массовая блокировка такого доступа может помешать программе выполнить предназначенную функцию.
Дополнительная информация: