Перейти к содержимому

Ограничение доступа программы к реестру Windows

2

Можно ли предотвратить доступ определенной программы к реестру Windows? Я знаю, что есть ACL для блокировки пользователя, но как насчет каждого исполняемого элемента управления?

2 083 просмотра
Alexandr Zarubkin спросил 10 лет назад
A 197

2 ответа

3

Извините, это невозможно, по крайней мере, в той степени, в которой вы этого не хотите. Как упомянуто в комментариях ʜcᴇι7007, все управление доступом Windows основано на пользователях. К каждому процессу прикреплен токен, который определяет, каким пользователем он запущен. Нет разницы между тем, как вы выполняете действие, и программой, выполняемой под вашей учетной записью, которая выполняет это действие, поскольку вы делаете буквально все через тот или иной процесс. «Программы не атакуют пользователей; пользователи атакуют пользователей».

Кроме того, практически каждый процесс обращается к реестру. Даже если сама программа явно не осуществляет доступ к Реестру, исследование Process Monitor показывает, что каждое приложение с графическим интерфейсом начинается с загрузки считываний Реестра, чтобы выяснить, как настроить графические элементы управления. Запустите Process Monitor для приложения, которое, по вашему мнению, не нуждается в реестре; вы будете удивлены

Но если вы хотите заблокировать все записи и только записи, на самом деле есть кое-что, что может помочь. В Windows есть понятие «уровни целостности», которое является частью UAC. По сути, программа, работающая с определенным уровнем целостности, не может писать в объекты, помеченные с более высоким уровнем целостности. Обычные процессы и обычные файлы (и ключи реестра) имеют средний уровень целостности, но вы можете вручную запускать процессы с низким уровнем. Загрузите инструмент PsExec . Если вы хотите создать командную строку, которая не может писать в обычные места, запустите это:

psexec -l -i cmd 

-lПереключатель устанавливает низкие целостности; -iпереключатель делает процесс интерактивным. Полученная командная строка может записывать только в места, специально помеченные как Низкая целостность.

C:\Users\Ben>reg add HKCU\Test ERROR: Access is denied. 

Эта команда работает в обычной командной строке, но не в закрытой.

Ben N ответил 10 лет назад
B 28 901
1

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

Alexandr Zarubkin ответил 10 лет назад
A 197