Добавление NT AUTHORITY\LOCALSERVICE в группу Администраторы: Риски и альтернативы
Архитектура системных учетных записей (Service Accounts)
Учетная запись NT AUTHORITY\LOCAL SERVICE (S-1-5-19) — это встроенная локальная учетка с минимальным уровнем привилегий. Она специально создана для запуска служб, не требующих глубокого доступа к ОС, и в сети аутентифицируется как анонимный пользователь (Null Session). Требование legacy-софта или скриптов добавить этот аккаунт в локальную группу «Администраторы» (Administrators) нарушает базовый принцип ИБ — Принцип наименьших привилегий (PoLP). Бизнес-риски: полная компрометация сервера (Privilege Escalation) в случае эксплуатации уязвимости RCE в любой службе, работающей под данным аккаунтом (например, службе печати или веб-сервере).
Сравнение встроенных служебных аккаунтов
| Учетная запись | Уровень локальных прав | Сетевая аутентификация |
|---|---|---|
LocalSystem (SYSTEM) | Абсолютный (Полный контроль над ОС) | Как учетная запись компьютера (DOMAIN\PC$) |
NetworkService | Минимальный (как у пользователя) | Как учетная запись компьютера (DOMAIN\PC$) |
LocalService | Минимальный (как у пользователя) | Анонимная (Anonymous / Null) |
Альтернативы добавлению в Администраторы (Best Practices)
Сценарий 1: Использование Service SID (Изоляция служб)
Вместо выдачи админских прав всему аккаунту LOCAL SERVICE, выдайте права конкретной службе с помощью её уникального идентификатора (Service SID).
1. Разрешаем службе генерировать собственный SID
sc sidtype "Имя_Вашей_Службы" unrestricted
2. Выдаем этому SID права на нужную папку (через icacls)
icacls "C:\AppFolder" /grant "NT SERVICE\Имя_Вашей_Службы:(OI)(CI)F" /TСценарий 2: Создание GMSA (Group Managed Service Account) в AD
Для доменных серверов современный стандарт — использование GMSA. Пароли управляются автоматически, а права настраиваются гранулярно.
Создание GMSA в PowerShell (на Контроллере домена)
New-ADServiceAccount -Name "AppSvcAccount" -RestrictToSingleComputer -PrincipalsAllowedToRetrieveManagedPassword "Имя_Сервера$"
Назначение GMSA для службы (на сервере-приложении)
Install-ADServiceAccount -Identity "AppSvcAccount"
sc config "Имя_Службы" obj= "ДОМЕН\AppSvcAccount$"Сценарий 3: Если добавление всё же необходимо (Среда тестирования)
Если legacy-система не оставляет выбора, сделать это можно через CMD.
Добавление в локальную группу (учитывайте локализацию ОС)
net localgroup Administrators "NT AUTHORITY\LOCAL SERVICE" /add
В русской версии Windows:
net localgroup Администраторы "NT AUTHORITY\LOCAL SERVICE" /addТиповые ошибки администраторов
- Повышение прав "чтобы просто заработало": Решение проблем с правами доступа (Access Denied) путем выдачи прав Администратора — главная причина успешных атак программ-вымогателей (Ransomware).
- Изменение пароля для LocalService: Встроенные аккаунты не имеют паролей в классическом понимании. Попытка задать им пароль через реестр или оснастки сломает аутентификацию подсистемы LSA.
Не открывайте дыры в безопасности. Инженеры ITSTM проведут профилирование приложения (через Process Monitor), выявят точный список необходимых файлов и ключей реестра, и настроят гранулярный доступ без прав локального администратора.
Частые вопросы (FAQ)
Как удалить LOCAL SERVICE из группы Администраторы?
Выполните команду в CMD от имени администратора: 'net localgroup Administrators "NT AUTHORITY\LOCAL SERVICE" /delete'. После этого обязательно перезапустите все службы, работающие под этим аккаунтом, чтобы они обновили свои маркеры доступа (Access Tokens).
Почему после удаления из админов служба не запускается (Ошибка 5: Отказано в доступе)?
Службе не хватает прав на чтение/запись в свои рабочие директории (например, C:\ProgramData\App), либо на ветки реестра HKLM. Используйте утилиту Procmon (Sysinternals) для отслеживания событий 'ACCESS DENIED' и выдайте точечные права группе 'LOCAL SERVICE'.
Есть ли разница между LOCAL SERVICE и LOCALSERVICE?
В командной строке (net localgroup) пробел имеет значение. Правильное системное имя пишется с пробелом: "NT AUTHORITY\LOCAL SERVICE". Однако в некоторых UI оснастках оно отображается слитно.
Может ли LOCAL SERVICE обращаться к сетевым шарам (SMB)?
Только если на сетевой папке разрешен анонимный доступ (что крайне не рекомендуется) или если шара открыта для встроенной группы 'Everyone' (Все) при включенном гостевом доступе.