У Windows 10 Enterprise (і тільки в цій редакції) з'явився новий компонент Hyper-V під назвою Virtual Secure Mode (VSM). VSM - це захищений контейнер (віртуальна машина), запущений на гіпервізора і відокремлений від хостовой Windows 10 і її ядра. Критичні з точки зору безпеки компоненти системи запускаються усередині цього захищеного віртуального контейнера. Ніякої сторонній код всередині VSM виконуватися не може, а цілісність коду постійно перевіряється на предмет модифікації. Така архітектура дозволяє захистити дані в VSM, навіть якщо ядро хостовой Windows 10 скомпрометовано, адже навіть ядро не має прямого доступу до VSM.
Контейнер VSM не може бути підключений до мережі, і ніхто не може отримати адміністративні привілеї в ньому. Всередині контейнера Virtual Secure Mode можуть зберігатися ключі шифрування, авторизовані дані користувачів і інша критична з точки зору компрометація інформація. Таким чином, атакуючий тепер не зможе за допомогою локально закешовану даних облікового запису доменних користувачів проникнути всередину корпоративної інфраструктури.
Усередині VSM можуть працювати такі системні компоненти:
- LSASS (Local Security Subsystem Service) - компонент, який відповідає за авторизацію і ізоляцію локальних користувачів (таким чином система захищена від атак типу "pass the hash" і утиліт типу mimikatz). Це означає, що паролі (і / або хеші) користувачів, зареєстрованих в системі, не зможе отримати навіть користувач з правами локального адміністратора.
- Віртуальний TPM (vTPM) - синтетичне TPM пристрій для гостьових машин, необхідне для шифрування вмісту дисків
- Система контролю цілісності коду ОС - захист коду системи від модифікації
Для можливості використання режиму VSM, до середовища ставляться такі апаратні вимоги:
- Підтримка UEFI, Secure Boot і Trusted Platform Module (TPM) для безпечного зберігання ключів
- Підтримка апаратної віртуалізації (як мінімум VT-x або AMD-V)
Як включити Virtual Secure Mode (VSM) в Windows 10
Розглянемо, як включити режим Virtual Secure Mode Windows 10 (в нашому прикладі це Build 10130).
- Режим UEFI Secure Boot повинен бути включений.
- Windows 10 повинна бути включена в домен (VSM - захищає тільки доменні облікові записи користувачів, але не локальні).
- Роль Hyper-V в Windows 10 повинна бути встановлена (в нашому випадку спочатку довелося встановлювати Hyper-V Platform, і тільки потім інструменти Hyper-V Management Tools).
- Режим Virtual Secure Mode (VSM) повинен бути включений спеціальної політикою в редакторі групової політики gpedit.msc: Computer Configuration -> System -> Device Guard -> Turn on Virtualization Based Security. Увімкніть політику, в пункті Select Platform security level Виберіть Secure Boot, а також відзначте "Enable Credential Guard"(Ізоляція LSA).
- І, останнє, налаштуємо BCD для запуску Windows 10 в режимі VSM
bcdedit / set vsmlaunchtype auto
- перезавантажте комп'ютер
Перевірка роботи VSM
Переконатися, що режим VSM активний можна за наявністю процесу Secure System в диспетчері завдань.
Або за подією "Credential Guard (Lsalso.exe) was started and will protect LSA credential"В журналі системи.
Тестування захисту VSM
Отже, на машини з включеним режимом VSM реєструємося під доменної обліковим записом і з-під локального адміністратора запускаємо таку команду mimikatz:
mimikatz.exe privilege :: debug sekurlsa :: logonpasswords exit
Ми бачимо, що LSA запущений в ізольованому середовищі і хеші паролів користувача отримати не вдається.
Якщо ту ж операцію виконати на машині з відключеним VSM, ми отримуємо NTLM хеш пароля користувача, який можна використовувати для атак "pass-the-hash".