https://blogs.vmware.com/china/2018/07/27/vsphere-6-7-%E6%96%B0%E7%89%B9%E6%80%A7-%E5%9F%BA%E4%BA%8E%E8%99%9A%E6%8B%9F%E5%8C%96%E7%9A%84%E5%AE%89%E5%85%A8-vbs/

https://docs.microsoft.com/zh-cn/windows-hardware/design/device-experiences/oem-vbs

VBS 简介

基于虚拟化的安全 (VBS – Virtulization Based Security) 是微软专门 Windows 10 或 Windows Server 2016 在虚拟化环境下新增的一个安全特性,VBS 综合利用了 CPU 硬件、系统固件、Hypervisor 所提供的安全特性,在内存中隔离出一块安全区域供虚机使用,虚机中的 Windows 系统能够利用 VBS 所提供的“虚拟安全模式”来实现一些安全解决方案,让它们很大程度上免受恶意软件的攻击,从而提高系统的安全性。VBS 利用 Hypervisor 来进入“虚拟安全模式”来强制保护一些重要的系统资源,例如用户帐号密码。即便恶意软件攻陷了操作系统的核心代码,它能造成的威胁也被极大地遏制了,因为在 VBS 安全模式下, Hypervisor 能够有效地阻止恶意软件的各种行为,包括执行代码或访问系统机密数据。

Hypervisor 强制的代码一致性检查 HVCI (Hypervisor-Enforced Code Integrity) 就是 VBS 安全解决方案的一个例子,在代码运行之前,利用 VBS 所提供的安全特性来强制执行代码一致检查。

  • 核心模式代码:所有的操作系统核心模式驱动和代码在运行之前都要执行一致性检查,然后才能被装载进内存执行,未经过微软数字签名的代码或系统文件将被彻底阻止。
  • 用户模式代码:所有应用代码在运行之前都要经过检查,只有被已知的开发商正确数字签名的代码才会被执行。

HVCI 在 VBS 所提供的一个安全环境中进行代码一致性检查,从而实现对系统内核级病毒和恶意代码的隔离。Hypervisor 作为权限最高的系统软件,对所有的系统内存设置了页面访问权限,内存页面中的代码只有通过一致性检查后才能被执行,并且包含可执行代码内存页面是只读的。这样一来,恶意代码利用系统漏洞 (如缓存溢出) 来改写内存代码就办不到了。

VBS 安全机制可不是在 Windows 操作系统层面可以单独实现的,需要服务器 CPU、TPM、系统固件满足相关的条件 (详情请见微软相关文档),并且在 Hypervisor 层面提供支持。vSphere 6.7 中实现了对于 VBS 的支持,从而为运行 Windows 操作系统的虚机提供更高安全等级的保护,满足企业在信息安全方面的合规要求。

vSphere 6.7 对于 VBS 的支持

前提条件

为了激活 VBS 功能,虚机的配置必须满足以下条件:

虚机的硬件版本必须是版本14或以后的版本,必须安装以下两种操作系统:

  • Windows 10 Enterprise, 64-bit
  • Windows Server 2016

注意:务必安装上所有的操作系统更新,不然 VBS 可能不起作用。

激活 Windows 2016 中的 VBS 功能

创建虚机的时候指定安装的操作系统是 Windows Server 2016。


虚机创建好之后勾选“Enable Virtualization Based Security”选项开关。

当 Windows Server 2016 启动后,再完成以下两个步骤。

  • 在组策略设置中激活 VBS
  • 在 Windows Server 2016 上激活 Hyper-V

运行 gpedit.msc 来启动组策略编辑器,访问:Computer Configuration > Administrative Templates > System > Device Guard > Turn On Virtualization Based Security。把组策略设置为 Enabled,并且设置好以下参数,完成后选择重启系统。

  • Select Platform Security level : Secure Boot and DMA Protection
  • Virtualization Based Protection of Code Integrity : Enabled with UEFI lock
  • Credential Guard Configuration : Enabled with UEFI lock;如果选择 ”Enabled without UEFI lock” 的话,允许你远程修改这个设置。

接下来在 Windows Server 2016 上激活 Hyper-v:启动 Server Manager,在 Dashboard 下选择 “Add roles and features”。

点击  Next 并接受缺少配置,在 Server Roles 里选中 Hyper-V,并且把 “Include Management tools” 选项打上勾,然后点击 OK;继续剩余的步骤并且选择缺省选项,最后点击 Finish 完成设置。

检查 VBS 安全功能是否生效

激活 Hyper-V 特性后重启 Windows 系统,运行 msinfo32.exe 命令,在 System Summary 下你可以看到 “Device Guard Security Services Configured” 已经配置好了 Credential Guard, Hypervisor Enforced Code Integrity,这表明 VBS 安全功能已经生效。

本文主要内容来自于Rajesh Radhakrishnan 的博客文章 Virtualization Based Security (VBS) in vSphere 6.7

vSphere 6.7 新特性 — 基于虚拟化的安全 (VBS)的更多相关文章

  1. atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结

    atitit.Windows Server 2003  2008  2012系统的新特性 attilax 总结 1. Windows Server 2008 新特性也可以归纳为4个方面. 1 2. 相 ...

  2. JDK 5 ~ 11 新特性倾情整理

    为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~11的所有关键新特性! 先看一下JDK的版本迭代图: 注:   OpenJDK和JDK区别  GPL协议通用性公开许可证(General ...

  3. Java程序员必备基础:JDK 5-15都有哪些经典新特性

    前言 JDK 15发布啦~ 我们一起回顾JDK 5-15 的新特性吧,大家一起学习哈~ 本文已经收录到github ❝ https://github.com/whx123/JavaHome ❞ 「公众 ...

  4. C# 7.0 新特性1: 基于Tuple的“多”返回值方法

    本文基于Roslyn项目中的Issue:#347 展开讨论. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: ...

  5. 构建基于WinRT的WP8.1 App 02:数据绑定新特性

    基于WinRT的Windows Phone 8.1以及Windows 8.1中Xaml数据绑定增加了一些新特性. FallBackValue属性:FallBackValue在绑定的值属性值不存在时,可 ...

  6. Atitit atiplat_reader 基于url阅读器的新特性

    Atitit atiplat_reader 基于url阅读器的新特性 1.1. feature功能特性1 1.2. note1 1.1. feature功能特性 支持url数据源,实际就是只支持一层连 ...

  7. 基于Ubuntu和基于Debian的Linux Mint 20新特性一览

    导读 Linux Mint 20 将基于 Ubuntu 20.04 LTS,同时,其 LMDE(Linux Mint Debian Edition,Debian 版本)4 也将到来,LMDE 版本基于 ...

  8. [置顶] kubernetes1.7新特性:新增StorageOS卷插件和Local持久存储

    背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volum ...

  9. QT5.9 新特性与版本回顾

    原文链接: http://blog.qt.io/blog/2017/05/31/qt-5-9-released 翻译内容如下,采用的是第三方某在线翻译软件,所以有些地方不是太精确,纵然大吉做了一定的调 ...

随机推荐

  1. git commit -m 和 git commit -am 区别

    git commit -m 和 git commit -am 通常修改一个文件 并且将文件提交到本地分支的命令是: git add . git commit -m 'update' 以上两个命令其实可 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-inbox

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. 九九乘法表的四种三角形排布方式(for循环以及while循环的互换)

    #region //右上 for (int i = 1; i <= 9; i++){ for (int j = 1; j <= 9; j++){ if (i > j){ Consol ...

  4. 数据结构——KMP(串)

    KMP一个非常经典的字符串模式匹配算法,虽然网上有很多kmp算法的博客,但是为了更好的理解kmp我还是自己写了一遍(这个kmp的字符串存储是基于堆的(heap),和老师说的定长存储略有不同,字符串索引 ...

  5. python 获取cpu、内存、硬盘等实时信息 psutil

    psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(CPU,内存,磁盘,网络等)信息,主要应用于系统监控,分析和限制系统资源及进程的管理,它实现了同等命令行工具提供的功能,如ps, ...

  6. redmine处理规范

         开发: 1.       研发人员负责更新到的状态共有三个:  “进行中”. ”已解决”. ”需要反馈”. 2.       在开始修复bug的时候,把状态更新为”进行中”,把title更新 ...

  7. JQuery 动画实现

    $(this.div_wrong).show().css({width:"0px", height:"0px"})    .animate({width:&qu ...

  8. 指令——mv

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令:mv   (move,移动,剪切) 作用 ...

  9. 基于共享内存、信号、命名管道和Select模型实现聊天窗口

    问题模型 A.B两个进程通过管道通信,A 进程每次接收到的数据通过共享内存传递给A1进程显示,同理,B进程每次接收到的数据通过共享内存传递给B1进程显示: 对于A.B 进程,采用ctrl+c(实际为S ...

  10. SPOJ ANARC05H 计数DP

    给定一个数字串,问有多少种拆分方法,题目所谓的拆分,就是分成若干个子块,每个块的和 即为各个数字相加,当前块的和一定要小于等于后面的块的和 比如1117  就有这些[1-117], [1-1-17], ...