Linux Kernel Defence Map – Security Hardening Concepts
文章介绍了**Linux Kernel Defence Map**,一个以图形方式呈现Linux内核安全概念的工具,旨在帮助理解内核安全加固。该图展示了漏洞、利用、检测和防御之间的关联,并提供了CWE编号。它不包括攻击面减少、用户空间安全功能和LSM策略。文章还提供了GitHub、Codeberg和GitFlic上的仓库地址,以及生成该图的DOT语言和GraphViz命令。此外,文章推荐了**kernel-hardening-checker**用于检查内核安全配置,并列出了相关参考资料。
Linux Kernel Defence Map:安全加固概念
Linux内核安全是一个非常复杂的话题。 其中有很多概念彼此之间有着有趣的关联:
- 漏洞类别
- 利用技术
- 漏洞检测机制
- 防御技术
一些防御技术由 Linux 内核主线提供。 另一些则因为各种原因而脱离树状结构(其中一些是商业的,例如)。 此外,还有一些内核防御措施依赖于特殊的硬件功能。
如果能够以图形化的方式来呈现 Linux 内核安全,那就非常方便了。 因此,我创建了一个 Linux Kernel Defence Map,展示了所有这些概念之间的关系。
节点连接并不意味着“完全缓解”。 而是,每个连接都代表某种关系。 因此,Linux Kernel Defence Map 应该有助于浏览文档和 Linux 内核源代码。 它还为漏洞类别提供了通用缺陷枚举 (CWE) 编号。
此图描述了内核安全加固。 它不包括减少攻击面、用户空间安全功能以及各种 Linux Security Modules (LSM) 强制执行的策略。
仓库地址
- 在 GitHub 上:https://github.com/a13xp0p0v/linux-kernel-defence-map
- 在 Codeberg 上:https://codeberg.org/a13xp0p0v/linux-kernel-defence-map (如果 GitHub 出现问题,请前往此处)
- 在 GitFlic 上:https://gitflic.ru/project/a13xp0p0v/linux-kernel-defence-map
此图是如何制作的
此图是用 DOT 语言编写的,这使得在 Git 中维护和更新非常方便。 许可证:GPL-3.0。 该图是使用 GraphViz 生成的,命令如下:
dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg
想要检查你的内核配置吗?
Linux 内核中有很多安全加固选项。 许多选项没有被主要的发行版启用。 我们必须自己配置这些选项,以使我们的系统更加安全。
但是没有人喜欢手动验证配置。 因此,我创建了 kernel-hardening-checker,它可以检查 Linux 内核的安全加固选项。 欢迎大家试用。
参考资料
- Grsecurity features
- The State of Kernel Self Protection by Kees Cook
- Linux kernel security documentation
- Linux kernel mitigation checklist by Shawn C
- Trends, challenge, and shifts in software vulnerability mitigation by MSRC
- Pursuing Durable Safety for Systems Software by Matt Miller
- A Decade of Linux Kernel Vulnerabilities, their Mitigation and Open Problems by Abhilash Raj
- Spectre & Meltdown Checker by Stéphane Lesimple
Linux kernel v6.10 版本地图
Linux Kernel Defence Map 展示了漏洞类别、利用技术、漏洞检测机制和防御技术之间的关系。