Linux内核v5.5安全特性深度解析

Linux内核v5.5安全特性

先前版本v5.4

本篇博客将聚焦Linux内核v5.5版本中值得关注的安全改进:

1. 通过LSM限制perf_event_open()

针对perf子系统的反复出现的漏洞,Joel Fernandes实现了通过LSM(如SELinux、Apparmor等)钩子来控制perf_event_open()调用的方案,替代了之前被拒绝的sysctl扩展方案。

2. 通用快速全功能refcount_t

Will Deacon将x86和arm64的refcount_t加固工作提炼为架构无关的C语言实现,速度接近x86汇编版本且覆盖更多场景(如从零递增),现默认适用于所有架构。

3. 异常表链接脚本清理

为解决Execute-Only内存实现中的内存读取问题,重新调整了异常表(纯数据表)的存放位置,并更新x86段填充字节为陷阱指令(0xCC/int3)以增强攻击精确性要求。

4. 32位PowerPC的KASLR

Jason Yan为32位PowerPC添加了内核文本基址随机化支持(KASLR)。

5. RISC-V的seccomp支持

David Abdurachmanov为RISC-V架构添加seccomp支持,过程中还完善了seccomp自测试代码的边界情况处理。

6. seccomp USER_NOTIF延续功能

Christian Brauner实现SECCOMP_USER_NOTIF_FLAG_CONTINUE标志,允许监控进程指示seccomp正常继续系统调用,显著提升容器监控工具效率。

7. x86平台的EFI_RNG_PROTOCOL支持

Dominik Brodowski为x86添加早期启动阶段的EFI随机数生成器接口支持,用于SLUB分配器等需要早期随机化的场景。

8. MIPS平台的FORTIFY_SOURCE

Dmitry Korotin为MIPS启用CONFIG_FORTIFY_SOURCE,可检测memcpy/strcpy类函数的编译时及运行时缓冲区溢出。

9. 限制copy_{to,from}_user()大小为INT_MAX

为防止大小计算溢出,将这两个函数的参数限制为INT_MAX。

其他重要更新(由Alexander Popov补充):

  • KASan支持vmalloc内存检测,可分析包含VMAP栈的内存区域
  • MIPS现支持GCC插件和KCOV构建
  • userfaultfd要求CAP_SYS_PTRACE权限以防止描述符注入攻击

编辑说明:已整合Alexander Popov的补充内容

下期预告:Linux v5.6安全特性分析
©️ 2020, Kees Cook. 本文采用知识共享署名-相同方式共享4.0许可
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

posted @ 2025-07-21 06:01  qife  阅读(16)  评论(0)    收藏  举报