紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 36565|回复: 125

[科普]WIN10(1607)之后PatchGuard有了兄弟HyperGuard

  [复制链接]

854

主题

3481

帖子

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
36100
发表于 2017-5-17 19:40:42 | 显示全部楼层 |阅读模式
相比起内核明星PatchGuard,HyperGuard可谓完全没有知名度。直到最近,Mark E .Russinovich才在一本新书里宣告了它的存在,并做了如下描述:
On systems that run with virtualization-based security (described earlier in this chapter in the section
“Virtualization-based security”), it is no longer true that attackers with kernel-mode privileges are essentially
running at the same security boundary as a detection/prevention mechanism. In fact, such attackers
would operate at VTL 0, while a mechanism could be implemented in VTL 1. In the Anniversary
Update of Windows 10 (version 1607), such a mechanism does indeed exist, which is appropriately
named HyperGuard. HyperGuard has a few interesting properties that set it apart from PatchGuard:
■ It does not need to rely on obfuscation. The symbol files and function names that implement
HyperGuard are available for anyone to see, and the code is not obfuscated. Complete static
analysis is possible. This is because HyperGuard is a true security boundary.
■ It does not need to operate non-deterministically because this would provide no advantage
due to the preceding property. In fact, by operating deterministically, HyperGuard can crash
the system at the precise time unwanted behavior is detected. This means crash data will contain
clear and actionable data for the administrator (and Microsoft’s analysis teams), such as the
kernel stack, which will show the code that performed the undesirable behavior.
■ Due to the preceding property, it can detect a wider variety of attacks, because the malicious
code does not have the chance to restore a value back to its correct value during a precise time
window, which is an unfortunate side-effect of PatchGuard’s non-determinism.
HyperGuard is also used to extend PatchGuard’s capabilities in certain ways, and to strengthen its
ability to run undetected by attackers trying to disable it. When HyperGuard detects an inconsistency,
it too will crash the system, albeit with a different code: 0x18C (HYPERGUARD_VIOLATION). As before, it
might be valuable to understand, at a generic level, what kind of things HyperGuard will detect, which
you can see in Table 7-24.
1.JPG
On systems with VBS enabled, there is another security-related feature that is worth describing,
which is implemented in the hypervisor itself: Non-Privileged Instruction Execution Prevention (NPIEP).
This mitigation targets specific x64 instructions that can be used to leak the kernel-mode addresses of
the GDT, IDT, and LDT, which are SGDT, SIDT, and SLDT. With NPIEP, these instructions are still allowed
to execute (due to compatibility concerns), but will return a per-processor unique number that is not
actually the kernel address of these structures. This serves as a mitigation against Kernel ASLR (KASLR)
information leaks from local attackers.
Finally, note that there is no way to disable PatchGuard or HyperGuard once they are enabled.
However, because device-driver developers might need to make changes to a running system as part
of debugging, PatchGuard is not enabled when the system boots in debugging mode with an active
remote kernel-debugging connection. Similarly, HyperGuard is disabled if the hypervisor boots in
debugging mode with a remote debugger attached.
如果懒得看英语,我就简单总结几句:
游客,如果您要查看本帖隐藏内容请回复
这本新书的名字是:
游客,如果您要查看本帖隐藏内容请回复

1

主题

81

帖子

1

精华

铂金会员

Rank: 5

积分
1818
发表于 2017-5-17 19:44:22 | 显示全部楼层
学习大牛的翻译

4

主题

149

帖子

0

精华

金牌会员

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1189
发表于 2017-5-17 19:44:35 | 显示全部楼层
搞起搞起

1

主题

36

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
274
发表于 2017-5-17 19:44:38 | 显示全部楼层
学习,感谢!

0

主题

29

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
87
发表于 2017-5-17 19:45:08 | 显示全部楼层
感谢分享!

0

主题

34

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
68
发表于 2017-5-17 19:47:09 | 显示全部楼层
不是懒 得看。是看也看不懂。!~~

0

主题

9

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
113
发表于 2017-5-17 19:52:04 | 显示全部楼层
学习

0

主题

20

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
76
发表于 2017-5-17 20:06:51 | 显示全部楼层
求看翻译!

0

主题

49

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
76
发表于 2017-5-17 20:08:41 | 显示全部楼层
什么名字

0

主题

7

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
42
发表于 2017-5-17 20:10:58 | 显示全部楼层
如此强大!!!!!!!!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-4-25 08:18 , Processed in 0.029849 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表