13426109659
webmaster@21cto.com

更加安全!Linux 内核运行时保护(LKRG) 1.0 正式发布

运维 0 41 20小时前
图片

21CTO导读:Linux Kernel Runtime Guard ,经过 7 年多的研发,终于发布了 1.0 版本,引入了对内核 6.17 的支持、错误修复、性能增强和代码清理。

由 Openwall 项目小组维护的Linux 内核运行时保护 (或译作Linux内核运行时哨兵, LKRG ) 于 2018 年首次公开发布,至今已有七年有余,于9月2日发布 1.0 的正式版本。

如果您不熟悉它,我们先来简单介绍一下。

LKRG 是一个内核模块,充当 Linux 内核的安全层,它的主要作用是在内核运行时对其进行监控,并捕获任何可疑或不安全的行为。

比如,如果攻击者试图通过覆盖内核凭据或更改内核内存来利用内核漏洞,LKRG 可以检测到该行为。当它发现异常时,便会记录日志、终止违规进程,或根据其配置采取其他防御措施。

换句话说,LKRG 不会取代 SELinux 或 AppArmor 等其他安全功能,而是通过在内核级别添加检查来补充它们。

现在,我们再回到正题。

在 0.9.9 版本和 1.0 版本之间,LKRG 进行了多项重大改进。LKRG 现在支持最新的主流 Linux 内核,最高测试版本为 6.17-rc4。此外,还针对 Linux 6.13 及更高版本进行了调整,包括删除override_creds()和 的钩子方法revert_creds(),并在其他位置扩展了针对旧内核的凭证指针覆盖检查。

另外,OverlayFS 兼容性也得到了改进,尤其是在 6.10 到 6.12 版本上运行容器时避免了误报。

因此这一版本的代码库现在更加精简,比以前减少了约 2,400 行。

在性能方面,每个任务的影子数据查找现在都无需锁定,并且影子数据锁定本身也进行了彻底改进,新增了更细粒度的锁。许多钩子从 kretprobes 切换到 kprobes,提高了可靠性和速度,同时减少了重复代码。完整性违规检查被封装在 中unlikely(),使热路径免受不必要的缓存混乱的影响。

此外,LKRG 1.0 还修复了多个“竞争条件”,包括涉及 SECCOMP 过滤器、命名空间验证和 sysctl 更改的竞争条件。与较新内核上的 seccomp 模式损坏相关的误报也得到了解决。此外,LKRG 改进了与 x86_64 上 Intel CET IBT 和 Clang 的 KCFI 的兼容性,尽管现在 GCC 仍然是官方支持的编译器。

其他值得注意的更新包括 LKRG 用户空间记录工具的强化版本、更优的错误报告以及对 CI 测试的调整。

LKRG项目的核心开发者还介绍说,测试现已覆盖搭载最新主线内核的 Fedora、Ubuntu 24.04 LTS 至 25.10 版本,以及已停产的旧版 CentOS 7。

更新的软件包已通过 Rocky Linux SIG/Security 仓库提供,Rocky Linux 9.6 和 8.10 的版本即将推出。这些软件包还兼容其他企业级 Linux 发行版,包括 AlmaLinux 和 RHEL 8/9。

现在,我们可以更加放心,因为Linux系统能够更加地安全了。

相关网址:

https://lkrg.org/

作者:洛逸

评论