3

У меня есть коммерческое программное обеспечение, которое защищено сторонней программной лицензией. На этой неделе стороннее лицензирование не удалось, и я проследил его, когда он пытался получить доступ к этому разделу реестра:

HKLM\System\CurrentControlSet\Control\Class\{4D36E97D-E325-11CE-BFC1-08002BE10318}\Properties

При ручной проверке этого ключа, даже как администратор, у меня нет разрешения на его просмотр. По некоторым поискам я думаю, что смогу получить доступ, если буду работать как системная учетная запись, и я видел ссылки на инструменты, которые позволили бы мне это сделать. (Просто запустил regedit с помощью инструмента PSExec от Sysinternals и увидел, что ключ Properties предоставляет доступ только к SYSTEM)

Однако я могу свободно получить доступ ко всем ключам, не относящимся к Properties в {4D36E97D-E325-11CE-BFC1-08002BE10318} EG \0000 , \0001 , \0002 т.д.

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

Моя путаница / беспокойство заключается в том, что для каждого ключа, который находится под ключом Class , связанный ключ Properties демонстрирует такое же поведение разрешений - IE как администратор. Я не могу получить к нему доступ. Учитывая, что моя система Windows работала таким образом долгое время без каких-либо проблем, я не думаю, что предоставление доступа ради одной программы является правильным решением.

Теперь к моим вопросам:

  1. Какие системы / учетные записи действительно нуждаются в доступе к этому ключу Properties ?

  2. Какие проблемы / проблемы я бы открыл для себя, если бы я разрешил доступ открытого ключа к этому ключу?

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

  4. Может кто-нибудь указать мне документацию MS по этому вопросу?

1 ответ1

2

Владельцем подраздела Properties обычно является SYSTEM , но иногда администраторы. Его содержимое используется ядром для управления аппаратными устройствами. Правильные (то есть по умолчанию) разрешения для ключа - только Полный контроль для SYSTEM , ничего для кого-либо еще.

Ничто не сломается, если вы предоставите доступ на чтение администраторам или даже пользователям. Это не хорошо, что программа должна смотреть на эти данные, но в них нет ничего чувствительного. На самом деле, подавляющее большинство из них, кажется, содержат то же самое. Тем не менее, предоставление доступа на запись там не-администраторам - ужасная идея. Модификация этих клавиш может сломать Plug and Play! Администраторы всегда могут делать с машиной все, что хотят, но обычные пользователи не должны иметь возможности изменять что-либо, что влияет на кого-либо еще. (Обратите внимание, что обычные пользователи не могут писать где-либо внутри HKEY_LOCAL_MACHINE .) Кроме того , вы должны быть осторожны , чтобы сохранить первоначальный владелец каждого ключа, и SYSTEM ACE Полный контроль (вход контроля доступа) всегда должна быть сохранена.

Возможно, установщику программы, работающему с повышенными правами, было разрешено просматривать или записывать туда. Если бы какая-либо часть (возможно, служба) работала как SYSTEM , это было бы разрешено на основе ACE. Программа также могла бы воспользоваться возможностью администраторов включить SeBackupPrivilege или SeRestorePrivilege , которые позволяют ей читать что-либо или писать что-либо соответственно. (Узнайте больше о привилегиях.) Некоторые установщики MSI действительно включают эти мощные привилегии.

Microsoft опубликовала очень мало документации по этим ключам, но вы можете прочитать Инструменты и настройки драйвера устройства и {Class-GUID}.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .