Microsoft Secure Tech Accelerator
Apr 03 2024, 07:00 AM - 11:00 AM (PDT)
Microsoft Tech Community

Guidance on Domain Controller Virtualization Based Security and Defender Antivirus Baselines

Copper Contributor

Am I correct in assuming the 1909 - Domain Controller Virtualization Based Security should be targeting <only> my Domain Controllers running as Virtual Machines?

 

Is the 1909 Defender Antivirus baseline only applicable for those companies using Windows/Microsoft Defender (and not a third party AV/Endpoint solution) or does it apply and play nicely with third party AV/Endpoint solutions?

8 Replies

Hi @Brian Steingraber 

The 'Domain Controller Virtualization Based Security' baseline should be applied to physical and virtual domain controllers. It relates to virtualising security features within the OS rather than the virtualisation of the OS itself, e.g. HVCI. The reason there is a difference in the DC baseline is because 'credential in memory' protection is of no value on a DC when the entire Active Directory database is sat right there on the file system.

I can't comment on 3rd party AV/Endpoint solutions but I will recommend using Defender as your antimalware solution as part of your defence in depth. Used with other protections like VBS, ATP, ISG and HVCI will provide you with the strongest and most reliable solution.

 

Regards,

Steve

@Steve Norton I am noticing an issue when applying the Domain Controller Virtualization Based Security policy to my vDC. Once applied, on the next reboot they fail to boot. Hypervisor reports a Triple Fault error. I can get to recovery and safe mode/safe mode with networking. I'm probably doing something wrong, but even with a new VM config on Server 2019 Hypervisor with clean Windows 2019 Server OS vm it's repeatable. I've not dug into it beyond that at this time. Maybe there's another resource I'm overlooking when setting this up? 

Hi @awolf13,

Does your vDC boot successfully with 'Enable Secure Boot' and 'Enable Trusted Platform Module' enabled on the host?

Regards,

Steve

@Steve NortonSecure Boot is enabled and working. I've not attempted to enable TPM. Is that most likely the culprit?

@awolf13

Let me know the results after enabling TPM.

@Steve NortonOriginally, I thought that appeared to have fixed the issue, however, I just did another reboot test and it failed. Disabling the Virtualization Based Security GPO allowed my vDC to boot again.

 

Maybe this isn't the proper forum for this. I'll keep searching.

@awolf13 

Have you tried it without 'Secure Launch' enabled in the policy?

What do you get from the following in PowerShell?
Get-ComputerInfo -Property "DeviceGuardAvailableSecurityProperties"

@Steve Nortonon one vDC it reported BaseVirtualizationSupport, SecureBoot, DMAProtection, 5. On the other vDC it reported nothing. In the System Information VBA was disabled on one and enabled on the other. I did some more testing today. When applying the Baseline Security for Virtualization Based Security on the vDCs with VMA enabled I get the boot loop. The only way for me to resolve the issue and boot normally is to run Set-VMSecurity -VMName <vm> -VirtualizationBasedSecurityOptOut $true from the hypervisor. I've tried with a vTPM, Secure Boot, different combinations of Secure Launch, etc. All same results.

 

One thing I read a while back was that these should be for physical machines and not VMs but the things I've read recently say it can be applied to VMs. However, the only way I have been able to get the VBA to work in my domain (either on vDCs or other member servers) is to run Set-VMProcessor -VMName <vm> ExposeVirtualizationExtensions $true and pass through my physical host processor security features.

 

Maybe this is understood, or written somewhere, but I stumbled onto these solutions after you inquiring about the "DeviceGuardAvailableSecurityProperties". Right now, I'm not wanting to pass through my host Virtualization Extensions, so I've disabled the VBS Security Baselines and Opted Out of Virtualization Based Security throughout my domain on all my VMs for the time being until I can do more testing.

 

Everything is stable now and I'm considering my issue resolved. Thanks for your help!