Учетная запись виртуальной службы без доступа к сети, например NT AUTHORITY\LocalService

Справочная информация: я пишу сервис и хочу предоставить ему как можно меньше привилегий.

Виртуальные учетные записи (иногда "учетные записи виртуальных служб") представляют собой редко документированную функцию, новую для Windows 7/2008R2, которые представляют собой автоматически управляемые учетные записи для служб, которым требуются минимальные привилегии, но которые получают доступ к сети с удостоверением компьютера в среде домена.

Моему сервису не нужен доступ к сети, поэтому я использую LocalService, но мне не нравится тот факт, что если я предоставляю доступ к файлу и т. Д., Я предоставляю доступ ко всем сервисам, работающим под этой учетной записью.

Могу ли я использовать учетную запись с наименьшими привилегиями?

1 ответ

Решение

Вам не нужно менять учетную запись, под которой работает служба; LocalService Это хорошо.

Вместо этого настройте службу на ненулевой тип SID, т. Е. Укажите либо SERVICE_SID_TYPE_UNRESTRICTED или же SERVICE_SID_TYPE_RESTRICTED, Вы можете сделать это, используя функцию ChangeServiceConfig2() и SERVICE_CONFIG_SERVICE_SID_INFO вариант.

Затем вы можете предоставить доступ к файлам и другим защищенным ресурсам, используя SID службы, имя которой NT SERVICE\myservice, скорее, чем LocalService, Это предоставит доступ только к вашему сервису. (Ну, и любые другие службы, использующие тот же процесс, но большинство сторонних служб работают в своем собственном процессе.)

Для наименьших привилегий используйте SERVICE_SID_TYPE_RESTRICTED, Это означает, что сервис может получить доступ только к защищенным объектам, которые явно предоставляют доступ либо к EveryoneSID службы, SID сеанса входа в систему или WRITE_RESTRICTED, Вы также должны использовать SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO возможность уменьшить привилегии, предоставляемые услуге; многие сервисы вообще не нуждаются ни в каких привилегиях. (В этом случае вы можете найти, что вам нужно указать SE_CHANGE_NOTIFY_NAME а не пустой список, хотя, возможно, я запоминаю.)

Другие вопросы по тегам