楼主: Dizziness2929
收起左侧

[分享] PatchGuard不是Windows才有的东西

[复制链接]
blah
发表于 2024-4-30 09:35:10 | 显示全部楼层
Dizziness2929 发表于 2024-4-30 07:25
1.但是列表中的Rootkit大部分已经过时至少两年。

2.在LKRG官网中已经提到了为什么要这样做:LKRG需要 ...

这个问题
为什么LKRG可以直接杀死威胁到内核的存在,但PatchGuard和HyperGuard不能?


还烦请解惑。

Windows即使作为混合内核,也具有卸载内核模块和操作SSDT系统服务的能力。

个人理解,LKRG作为Linux内核的第三方安全解决方案,是拥有足够的自由度对内核进行操作。PatchGuard作为Windows操作系统的安全机制,不可以随意结束用户进程或卸载内核驱动,只能选择直接蓝屏保证安全性。安全厂商完全可以通过ObRegisterCallbacks注册自己的回调完成对进程的检查,实现杀死调用Rootkit驱动的进程。
wowocock
发表于 2024-4-30 09:40:02 | 显示全部楼层
CPU的机制决定了一切,都在R0,谁都无法控制谁。所以只能蓝屏了事。
Dizziness2929
 楼主| 发表于 2024-4-30 09:45:18 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-30 09:59 编辑

这里就要提到微软一个很搞的设计:

Windows在实际的实现中,内核模块尽管无法到达和内核同样的”权限层级“,但是内核模块在事实上也是”系统服务“的一部分。内核只知道这个模块提供了某种服务内核也要使用她。



我们回到这张图:对于Windows内核而言,她是无法确切知道卸载这个内核模块的后果的(因为在内核看来这是一种”系统服务“,内核的一些操作是要依赖于这个模块的),在Windows内核看来贸然卸载一个”系统服务“绝对会出大事。

整体式核心(宏内核)没有这个问题,因为内核模块属于对内核本体功能的一种扩充,就好像人和衣服的关系,衣服是可以随时脱下来的且脱下来人也不会死(某些情况会社死但是这里不讨论)。

混合内核的问题在于:在微内核的设计中,这些提供功能的“系统服务”就不在内核空间,因此可以想杀就杀想重启就重启。但是混合内核做不到——你相当于要把内核的功能从内核中拽下来。

在这种情况下内核必然没能力也不敢去卸载某个系统服务,这和卸载自己没两样。
https://learn.microsoft.com/zh-c ... tructure-corruption

此 Bug 检查通常有三个不同的原因:

驱动程序无意或故意修改了关键内核代码或数据。 Microsoft Windows Server 2003 Service Pack 1 (SP1) 和更高版本的 Windows(基于 x64 的计算机)不允许修补内核,除非通过授权的 Microsoft 源热修补程序。

开发人员尝试使用启动系统时未附加的内核调试器设置正常的内核断点。 仅当在启动时附加调试器时,才能设置正常的断点 (bp)。 可以随时设置处理器断点 (ba)。

发生硬件损坏。 例如,内核代码或数据可能已经存储在失败的内存中。


第三方安全厂商可以认出来这是个恶意的内核模块然后想办法摘了,但是内核自己是做不了这个判断的(宏内核其实也一样,但凡是都有但是)。


轮到Linux或者BSD就有一些差异:因为Linux和BSD这类自由软件严格来说没有常识中的第三方和第一方概念,比如在Linux世界,供应商和第三方是“最后把产品交付给客户的人”(例如Red Hat、SUSE这些将各种软件包堆在一起做成可用的发行版的公司,她们才是真正的第三方和供应商,而开发者和软件用户反而成为了第一方和第二方)。



LKRG在这里属于第一方(软件包开发者),且宏内核的设计导致她被加载进入内核后拥有和内核一致的地位。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
Dizziness2929
 楼主| 发表于 2024-4-30 09:45:35 | 显示全部楼层
wowocock 发表于 2024-4-30 09:40
CPU的机制决定了一切,都在R0,谁都无法控制谁。所以只能蓝屏了事。

真理()
ANY.LNK
发表于 2024-4-30 21:26:06 | 显示全部楼层

四个特权级,为了兼容性、可移植性和管理的方便性,Win、Linux都只用了R0和R3……,中间的R1和R2都没有用上……
ANY.LNK
发表于 2024-4-30 21:31:30 | 显示全部楼层
Dizziness2929 发表于 2024-4-30 09:34
长远来看,微软努力的目标依旧是”检测有谁在利用漏洞而不修补既存的问题(在有限的视野里寻找无限的敌人 ...

在Windows 11上已经逐步开启对VBS等安全功能的强制要求,并且也在推广,例如没开启VBS的情况下会弹出“建议执行操作”的警告。

但是微软一直处于尾大不掉的状态,总是去考虑诸多老设备、老驱动的兼容性。Win11一个保护信任根不被篡改的TPM2.0就已经劝退了诸多用户,而且不完善的VBS现在还会不时跟某某反作弊、某某硬件驱动冲突,降低性能,或者BSOD,然后被用户骂。经常乱签的WHQL证书,也不知道微软做硬件兼容性测试的人是怎么敢就这样把证书颁发出去的。

总之,要把这些安全功能推广开来还有很长的路要走,就以目前的现状来看,要想让微软彻底抛弃那些用不了这些安全功能的用户还是不够现实
00006666
发表于 2024-5-1 14:06:50 | 显示全部楼层
ANY.LNK 发表于 2024-4-30 21:31
在Windows 11上已经逐步开启对VBS等安全功能的强制要求,并且也在推广,例如没开启VBS的情况下会弹出“建 ...

WHQL的认证是自动机测试,测试本身估计就是有漏洞可以绕
ANY.LNK
发表于 2024-5-1 15:07:39 | 显示全部楼层
00006666 发表于 2024-5-1 14:06
WHQL的认证是自动机测试,测试本身估计就是有漏洞可以绕

嗯,很符合微软当下的操作,自动化测试
Yuki丶
发表于 2024-5-2 09:36:18 | 显示全部楼层
00006666 发表于 2024-5-1 14:06
WHQL的认证是自动机测试,测试本身估计就是有漏洞可以绕

自动机跑不出来的话会转人工分析的

评分

参与人数 1人气 +3 收起 理由
00006666 + 3

查看全部评分

rrrrrrrr
发表于 2024-5-3 19:23:39 | 显示全部楼层
好精彩的内容啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 13:04 , Processed in 0.103086 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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