Что такое SID виртуальной машины?
Что такое SID (Security IDentifier) в общем понимает каждый, кто имел дело с администрированием Windows. Какие объекты имеют SID? С этим немного сложнее, попробуем разобраться. С понятием SID пользователя или группы мы сталкиваемся постоянно, предоставляя права доступа к папкам и файлам NTFS. С SID компьютера мы встречаемся, делегируя права учетным записям компьютеров в домене на выполнение неких операций или чтения политик безопасности. Понятие SID домена тоже довольно понятно интуитивно, но что же дальше?
В Windows Vista было введено понятие SID службы. Теперь каждой службе ОС можно предоставлять собственные права, вне зависимости от того, что большая часть служб работают в контексте Local Service. Действительно, SID служб S1 и S2 в ACL Windows Vista выглядят как NT SERVICE\S1 и NT SERVICE\S2. Это сделано для изоляции служб, то есть чтобы одна служба не могла писать в файлы и память, выделенные в личное пользование другой службе. Примером из жизни является служба Trusted Installer, которая имеет полные права на системные файлы в каталоге Windows. По умолчанию только эта служба может заменять системные файлы. Даже администраторам или другим службам при необходимости такие права приходится делегировать явным образом.
С появлением виртуализации Hyper-V в составе Windows Server 2008 встает вопрос изоляции файлов и памяти одной виртуальной машины от других ВМ. Ведь очевидно, что все виртуальные машины работают в контексте службы Hyper-V Virtual Machine Management в рамках процесса Virtual Machine Worker Process (vmwp.exe). Так как же давать раздельные права объектам, работающим внутри одной службы? Для этого и было введено понятие SID виртуальной машины. Если взглянуть на ACL файлов ВМ, мы увидим там SID вида NT VIRTUAL MACHINE\<GUID> , где GUID — это идентификатор виртуальной машины, настройки которой по умолчанию хранятся в C:\ProgramData\Microsoft\Windows\Hyper-V\<GUID>.xml.
Запустим Process Explorer и посмотрим на свойства процесса Virtual Machine Worker Process (vmwp.exe) для конкретной виртуальной машины:
Здесь мы видим, что процесс запускает виртуальную машину именно по ее GUID. А в свойствах безопасности данного процесса видим, что запущенной ВМ даются отдельные от остальных права:
Что можно сказать по результатам этого небольшого исследования?
- Процесс vmwp.exe работает в контексте Network Service и имеет права на чтение и запись в файл виртуального диска ВМ в формате VHD, но не имеет прав на удаление файла.
- Другие процессы, и даже другие ВМ, запущенные в контексте процесса vmwp.exe, не имеют таких прав.
- Обратим внимание, что и icacls.exe, и Process Explorer показывают нам SID не в традиционном представлении вида S-1-5-83-1-151595173-1205986706-4119140776-3488306278…, а более удобное для понимания отображаемое имя. Оно включает название службы и GUID виртуальной машины.
Надеюсь, что теперь заявления Microsoft об изоляции процессов и виртуальных машин станут звучать более весомо, ибо мы только что посмотрели, как это реализуется.
Comments
Anonymous
January 01, 2003
За последние пару месяцев мне несколько раз задавали вопрос, почему при копировании виртуальной машины сбрасываются настройки сетевых интерфейсов. Если честно, изначально я не придавал ему большого значения, но когда он прозвучал из нескольких независимыхAnonymous
January 01, 2003
Не понял о чем вы. Я рассказывал о SID виртуальной машины, а не ОС. Тот SID, что есть и ДО установки ОС, и при установке не Windows ОС. Его сменить нельзя. Никак. SID ОС Windows внутри ВМ (также как и просто SID Windows машины на физическом оборудовании) это совсем другой SID. Его, кстати, тоже нельзя сменить произвольно руками. При заведении ОС в домен SID ОС автоматически изменится (станет в виде SID домена + RID аккаунта компьютера в домене). Данный процесс также вы не контроллируете, никак сами вручную на него не влияете. Имя ОС никак на SID не влияет, переименовывайте сколько угодно, он останется неизменен. Если я не ответил на ваш вопрос, давайте уточняйте его, отвечу.Anonymous
August 23, 2008
Начало интересное, но про SID в общем ничего (только немного про безопасность и изоляцию). Нужно обязательно сказать, что если гостувую операционку планируешь использовать в домене, то нужно обязательно изменить ее SID (вместе с именем), для чего даже есть соответствующие способы. (Именно это ожидал увидеть) ЗЫ: а вот про эти иззменения в Viste не знал (ибо не интересовался), за что спасибо.