楼主: Dizziness2929
收起左侧

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

[复制链接]
Dizziness2929
 楼主| 发表于 2024-4-29 17:28:23 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 17:29 编辑
blah 发表于 2024-4-29 17:25
而且,目前Linux没有实现模块加载顺序控制,无法保证LKRG一定会优先加载。Windows至少还有个ELAM。

https://unix.stackexchange.com/q ... how-priority-is-set
DisaPDB
发表于 2024-4-29 17:29:35 | 显示全部楼层
blah 发表于 2024-4-29 17:25
而且,目前Linux没有实现模块加载顺序控制,无法保证LKRG一定会优先加载。Windows至少还有个ELAM。

没有ELAM但是有IMA和SE-Linux
Dizziness2929
 楼主| 发表于 2024-4-29 18:18:44 | 显示全部楼层
DisaPDB 发表于 2024-4-29 17:29
没有ELAM但是有IMA和SE-Linux

实际上,Linux可以控制内核模块加载顺序。

我想引用一句话:有些人是觉得自己懂了某种编程方法,就觉得自己明白了整个计算机,可实际上呢?

https://unix.stackexchange.com/q ... how-priority-is-set
DisaPDB
发表于 2024-4-29 18:22:33 | 显示全部楼层
Dizziness2929 发表于 2024-4-29 18:18
实际上,Linux可以控制内核模块加载顺序。

我想引用一句话:有些人是觉得自己懂了某种编程方法,就觉 ...
Userspace request: Which covers everything from init services to udev to the command-line. Init or udev are probably the most straightforward means if you want to load a specific module at boot time.

其实也是依赖Init的,话说Init加载的时候已经来不及了吧?
Dizziness2929
 楼主| 发表于 2024-4-29 18:29:01 | 显示全部楼层
DisaPDB 发表于 2024-4-29 18:22
其实也是依赖Init的,话说Init加载的时候已经来不及了吧?

LKRG也可以被设置为在Init加载时加载(这可能需要自定义一下内核来实现将”树外模块“变成内核树中的一部分)。

实际上在Init阶段依旧来得及,因为这会是“内核正在初始化”,用Windows做(不恰当的)比喻的话:这个阶段是内核正在准备基本设备驱动程序,然后加载下一阶段的内核模块。
用Windows做(不恰当的)的比喻,LKRG启动的还是很早的:


本帖子中包含更多资源

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

x
DisaPDB
发表于 2024-4-29 18:30:15 | 显示全部楼层
本帖最后由 DisaPDB 于 2024-4-29 18:32 编辑
Dizziness2929 发表于 2024-4-29 18:29
LKRG也可以被设置为在Init加载时加载(这可能需要自定义一下内核来实现将”树外模块“变成内核树中的一部 ...

那IMA应该还在前面
而且Linux也支持UEFI Secure Boot


Dizziness2929
 楼主| 发表于 2024-4-29 18:32:33 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 18:34 编辑
DisaPDB 发表于 2024-4-29 18:30
那IMA应该还在前面

都在LKRG那个时候加载,因为LSM(Linux安全模块)在Linux的定义中是“必要内核模块”的一种。

Linux和Windows的加载顺序有一些小差异,简单来说就是:设备驱动>必要内核模块>可选加载模块(比如文件系统支持模块)。
Windows认为的“非必要驱动程序”(内核模块)指的是“非Microsoft签名的内核模块”,Linux认为的非必要指的是“可加载可不加载的模块”。

IMA(完整性度量架构)属于“必要内核模块”的一部分。

评分

参与人数 1人气 +1 收起 理由
DisaPDB + 1 感谢解答: )

查看全部评分

DisaPDB
发表于 2024-4-29 18:34:46 | 显示全部楼层
Dizziness2929 发表于 2024-4-29 18:32
都在LKRG那个时候加载,因为LSM(Linux安全模块)在Linux的定义中是“必要内核模块”的一种。

Linux和 ...

不考虑secure boot,Linux有类似Windows的BitLocker的校验引导完整性的东西吗
Dizziness2929
 楼主| 发表于 2024-4-29 18:38:09 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 18:41 编辑
DisaPDB 发表于 2024-4-29 18:34
不考虑secure boot,Linux有类似Windows的BitLocker的校验引导完整性的东西吗

有,叫做TrustedBoot(可信引导)。

GRUB之类的引导程序将引导链条上的各部分进行SHA-1/256(取决于你的TPM支持)散列后,将其存储到TPM中,如果不对,立即拒绝启动。


而且实现的比Windows的Bitlocker更为强大,配合Heads固件甚至可以在CPU启动时就测量完整性。

https://github.com/yast/yast-bootloader/pull/329

https://osresearch.net/

此外,Linux的UEFI安全引导支持也更为强大一些:https://github.com/rhboot/shim/blob/main/SBAT.md
00006666
发表于 2024-4-29 18:53:42 | 显示全部楼层
DisaPDB 发表于 2024-4-29 18:34
不考虑secure boot,Linux有类似Windows的BitLocker的校验引导完整性的东西吗

windows还有System Guard这种东西

https://learn.microsoft.com/zh-cn/windows/security/hardware-security/how-hardware-based-root-of-trust-helps-protect-windows
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-23 18:05 , Processed in 0.094919 second(s), 16 queries .

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

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