Учетная запись виртуальной службы без доступа к сети, например 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
, Это означает, что сервис может получить доступ только к защищенным объектам, которые явно предоставляют доступ либо к Everyone
SID службы, SID сеанса входа в систему или WRITE_RESTRICTED
, Вы также должны использовать SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO
возможность уменьшить привилегии, предоставляемые услуге; многие сервисы вообще не нуждаются ни в каких привилегиях. (В этом случае вы можете найти, что вам нужно указать SE_CHANGE_NOTIFY_NAME
а не пустой список, хотя, возможно, я запоминаю.)