Виртуальные учётные записи в Windows


Виртуальные учётные записи — это самое простейшее, но при этом очень мощное, средство защиты, о котором следует знать системным администраторам.

Время от времени администраторам приходится устанавливать ПО подозрительного происхождения или сомнительного качества. Если это ПО создаёт сервис или является приложением в IIS, то самое время применить Virtual Accounts для ограничения прав такого приложения и уменьшения зоны поражения в случае компрометации приложения.

Как правило разработчики не утруждают себя и запускают ПО от Local System, самые крутые от Network Service. В первом случае мы получаем очень уязвимую систему, и угрозу для всей доменной инфраструктуры. Во втором случае ситуация лучше, но не многим: стандартную учётную запись Network Service легко атаковать, и в случае наличия системных уязвимостей или конфигурационных ошибок скомпрометировать систему.

До 2008 года мы были обречены создавать обычные учетные записи для запуска сервисов и пулов IIS с ограниченными правами. Проблема обычных учётных записей в наличие пароля: его надо задать, где-то хранить и к тому же менять! Всё это на практике приводит к легкой компрометации обычных учётных записей. В Windows Server 2008 появились Virtual Accounts. Эти учётные записи не создаются администратором, их не существует в обычном понимании, они не хранятся в разделе реестра SAM на диске, у них нет паролей. Тем не менее от имени виртуальной учётной записи можно запустить сервис или пул IIS путем их специальной, но очень элементарной настройки: учётная запись просто задаётся в специальном формате. (Разработчики могут использовать в своём приложении специальное API для динамического создания и использования виртуальных учётных записей). При перезапуске сервиса виртуальная учётная запись пересоздается. Таким образом к ней невозможно подобрать пароль – в результате намного сложнее скомпрометировать систему.

Формат виртуальной учётной записи:

  1. IIS AppPool\имя пула

    Например: IIS AppPool\MyNewAppPool где MyNewAppPool это имя пула в IIS

    Помните, что вы должны предоставить права этой учётной записи на корневой каталог сайта/приложения

  2. NT SERVICE\имя сервиса

Вот пример как запускается сервис WSUS:

Имя сервиса MSSQL$MICROSOFT##WID

Имя учётной записи NT SERVICE\MSSQL$MICROSOFT##WID

Надо отметить, что виртуальные учётные записи не видны среди других учётных записей в диалоговых окнах выбора учётных записей.

Например, на том же сервере WSUS:

Тем не менее если указать имя виртуальной учётной записи в явном виде и нажать «Проверить», то учётная запись подхватится.

Это верно и при назначении прав на локальные папки, если сервису или пулу нужно иметь туда доступ, а также при назначении прав на другие объекты (например, Security Rights или права на DCOM). Если права назначены, то это видно:

Что касается доступа к сетевым ресурсам, то вместо виртуальной учётной записи будет использоваться учётная запись компьютера (в формате Comp$): именно для неё нужно предоставлять права, например, на сетевую папку. Безусловно это понижение безопасности: виртуальные учётные записи предназначены прежде всего для локального использования. Для распределенного применения (несколько серверов, сетевой доступ) есть другой тип учётных записей – gMSA, но это уже другая история.

Полезные ссылки:

Service Accounts Step-by-Step Guide

Реклама

комментария 4

  1. […] Илья Сазонов напоминает о полезности использования механизма виртуальных учётных записей для усиления безопасности исполнения локальных служб в системах Windows в заметке Виртуальные учётные записи в Windows […]

  2. Спасибо за статью.
    Немного не понятно почему виртуальная учетка такая безопасная.
    Пароль? Далеко не всегда взлом через пароль идет, темболее IIS. Аутентификация всеравно по какому-то принципу происходить должна, значит и подмена ключа возможна. Хотя соглашусь, утащить пароль сложнее.
    Трудно найти имя? Так его можно посмотреть как в списке служб, от кого запущена так и по правам на папке.
    Ну и требую продолжения банкета про gMSA :)

    • Про gMSA много написано и без меня, а вот про виртуальные учётные записи почему-то редко пишут.
      Виртуальная учётная запись не «такая безопасная» — она является способом повышения безопасности, внося «временность» и «динамику» в предоставление прав, что усложняет взлом системы в целом.

  3. […] Не всегда оптимально размещать задачи в SCOR. Иной раз удобнее обычные Schedule Tasks. К тому же, начиная с версии Windows Server 2012, в Schedule Tasks поддерживается gMSA – Group Managed Service Accounts, что очень удобно: пароли нигде не присутствуют в явном виде и не нужно заниматься их периодической заменой. Как и любой учётной записи вы можете назначить gMSA права на ресурсы, включив в нужные группы. Небольшой обзор gMSA вы можете найти в статье Виртуальные учётные записи в Windows. […]

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: