Windows - использовать локальную службу и/или учетную запись сетевой службы для службы windows

Я создал службу окна, которая отслеживает файлы в определенном каталоге нашей ОС Windows. При обнаружении файла служба выполняет некоторые операции файлового ввода-вывода, считывает файлы, создает подкаталоги и т. д. Эта служба также использует подключение к базе данных для подключения к другому серверу. Мой план состоит в том, чтобы запустить службу как учетную запись "локальная служба" по умолчанию. Поскольку мне нужно разрешить привилегии записи/чтения, которые, по-видимому, учетная запись "Local Service" не делает по умолчанию, я собираюсь явно установите привилегии "полный доступ" для учетной записи "локальная служба" в папке, в которую я читаю/пишу и из нее.

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

Я, возможно, неправильно, что " сети Сервис " аккаунт does.

20
задан user 99572 is fine
14.02.2023 7:23 Количество просмотров материала 2634
Распечатать страницу

3 ответа

NT AUTHORITY\NetworkService счета требуется только при обмене данными с другими компьютерами в домене, которым требуются учетные данные компьютера для управления доступом. Это не требуется для простого доступа к интернету / сети. Это необходимо только для определенных целей в домене Active Directory.

также весь смысл NT AUTHORITY\LocalService счета является то, что он имеет минимальные привилегии в системе. Предоставление ему более привилегированных снижает безопасность многих службы в вашей системе, предназначенные для работы с низким уровнем привилегий. Если ваш сервис требует привилегий выше и выше, вы должны создать для него новую учетную запись с необходимыми привилегиями и установить эту учетную запись в Вход вкладка свойств сервиса. (Это также можно сделать программно.)

вы также можете запустить его с помощью NT AUTORITY\LocalSystem счета, который имеет неограниченный доступ к вашей системе, но я предполагаю, что вы хотел использовать LocalService счет для повышения безопасности она обеспечивает.

14
отвечен Patches 2023-02-15 15:11

предыдущий ответ, похоже, не касался вопросов напрямую, поэтому я подумал, что добавлю к нему.

  1. мой план состоит в том, чтобы служба запускалась как учетная запись "локальная служба" по умолчанию. Я собираюсь явно установить привилегии" полного контроля " для Учетная запись" Local Service " в папке, в которую я читаю/пишу и от. Я считаю, что это хороший план.

лично я не вижу большой проблемы с этим планом. С BUILTINs, выбор между:

  1. работает как LOCALSYSTEM - поэтому, если эта служба скомпрометирована, злоумышленник владеет все и сразу же.
  2. работает как LOCALSERVICE - поэтому, если эта служба или любая из многих других служб, работающих под этой учетной записью, скомпрометированы, злоумышленник имеет доступ к одному дополнительному каталогу.*

возможно, добавив несколько дополнительных списков ACL, чтобы иметь возможность использовать второй вариант предпочтительнее. Да, самый безопасный вариант для службы с низким уровнем привилегий, но высокой степенью безопасности будет выполняться под пользовательской учетной записью службы с низким уровнем привилегий. Но если вы не хотите создавать новую учетную запись / управлять паролями для каждой развертываемой службы, использование LocalService для небольших нечувствительных задач не так уж страшно. Вам просто нужно принять ответственное решение, основанное на этих соображениях, например, что находится в этом каталоге или этой базе данных, влияет, если они нарушены и т. д.

хотя опять же, по крайней мере, принцип привилегий, вы должны установить только Full Control if Modify очень не достаточно.

2.На мой вопрос, для папки, которую я читаю и пишу, мне нужно выбрать "сетевая служба" для роли "полный доступ"? Я интересно, так как моя служба использует подключение к базе данных к другой сервер, если мне понадобится настройка учетной записи" сетевая служба".

Если ваша база данных требует Windows Integrated / SSPI login, то да, вы бы необходимо использовать NetworkService (или учетную запись доменной службы) везде, т. е. разрешения RunAs и directory. Предположим, вы также предоставили учетной записи$ или домена доступ к этой базе данных. Я сомневаюсь, что вы это делаете, поэтому, если он использует обычную аутентификацию username/pwd, вы должны быть в состоянии сделать все с LocalService. Вам нужно предоставить только одну учетную запись в этом каталоге, какую бы вы ни использовали в своих рунах, а не обе.

3.Я могу неправильно понять, что учетная запись" Network Service " делает.

кроме/записи практически идентичные учетные записи на локальном компьютере. Разница в основном заключается в том, что они могут делать в сети. NS может получить доступ к некоторым сетевым ресурсам, поскольку он отображается в сети как реальная учетная запись (компьютера). Но LS будет казаться анонимным, поэтому в нем будет отказано в основном все в сети.

кстати, вы должны использовать запланированную задачу для это не сервис.

*начиная с Vista, из-за изоляция служб, один скомпрометированный процесс LocalService не может легко атаковать другой. Каждый процесс/экземпляр службы LocalService/NetworkService получает свой уникальный идентификатор безопасности сеанса входа (уникальный владелец), в отличие от Windows 2003. Но я не уверен, что это идеально и полностью смягчает уязвимость DACL для файлов и ресурсов. Ограниченные SIDs и токены с ограничениями на запись в этом контекст.

2
отвечен Amit Naidu 2023-02-15 17:28

другие ответы подтверждают то, что вы говорите об использовании местной службы. Подводя итог, локальная служба является рекомендуемой учетной записью для использования с вашей службой, если вам не нужны дополнительные функции Active Directory SSPI сетевой службы.

для ограничения доступа для чтения / записи к определенной папке, вы можете сделать лучше, чем просто предоставление доступа к учетной записи generic Local Service, хотя. Проблема, как указывали другие, заключается в том, что это также даст доступ для чтения/записи ко всем другим сервисы, работающие как локальная служба, и если все сервисы сделали это, то постепенно локальная служба получит доступ ко все более и более важным ресурсам.

решение, а не ОБК папку с использованием конкретного Sid службы. С идентификатором безопасности Службы связан только собственный процесс службы, что еще больше блокирует ресурс. Вы можете просмотреть SID сервиса с помощью sc showsid <service name>. Идентификатор безопасности Службы создается из имени службы, поэтому он будет одинаковым для всех машины.

чтобы включить использование SID службой, используйте ChangeServiceConfig2 С SERVICE_SID_INFO структура для установки SERVICE_SID_TYPE_UNRESTRICTED. Вы также можете установить SERVICE_SID_TYPE_RESTRICTED чтобы получить еще более ограниченный SID, который разрешает доступ на запись только к ресурсам, явно разрешенным с вашим Sid службы.

эта ссылка имеет высокий уровень описания сервиса Морс и ограниченный сервис СВДС: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/hh125927(v=ws.10)

0
отвечен zhuman - MSFT 2023-02-15 19:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх