目录

面向星绽内核的 LSM 框架与 Capability 鉴权机制实现

本仓库用于托管 CCF 开源创新大赛作品材料。

赛题方向

内核功能:面向星绽社区主仓库,提交新的内核特性需求或者选择已有需求。

作品简介

本作品面向星绽(Asterinas)内核实现 Linux Security Module(LSM)框架,并将 Yama ptrace 访问控制迁移为内置 LSM 模块;进一步新增 mandatory capability LSM,将分散在进程、命名空间、文件系统、网络、终端等路径中的 capability 鉴权迁移到统一的 security facade 与 LSM hook。

成果材料

材料 文件
5 分钟内作品展示视频 ccf-asterinas-lsm-capability.mp4
方案文档与源代码材料 方案文档_源代码.zip
作品展示 PPT 后续补充

说明:方案文档_源代码.zip 中包含方案文档、赛题确定说明、作品提交清单,以及四个已合并 PR 对应的 patch/diff 源代码材料。

已合并 PR

PR 主题 作用
#3078 Implement initial LSM framework and migrate Yama 建立 LSM 框架,迁移 Yama ptrace 访问控制。
#3131 Add capability LSM module and migrate capability checks 新增 capability LSM,迁移多处 capability 鉴权路径。
#2996 fs/path: fix symlink resolution with trailing slash Linux 兼容性补充修复。
#3013 fs/path: fix EISDIR/EINVAL errno precedence when opening directories Linux 兼容性补充修复。

3078 和 #3131 是本作品主线,分别对应 LSM 框架与 capability LSM;#2996 和 #3013 是 Linux 兼容性补充成果。

核心贡献

  1. 在星绽内核中引入初始 LSM 框架,提供安全模块组织、hook context 与 dispatcher。
  2. 将 Yama ptrace 策略迁移为内置 LSM 模块,并支持 lsm= / security= 模块选择。
  3. 新增 mandatory capability LSM,保证基础 capability 权限模型始终启用。
  4. 将 credentials、namespace、signal、reboot、socket、xattr、TTY/VT 等路径中的 capability 检查迁移到统一安全入口。
  5. 补充用户态回归测试,覆盖 Yama、module selection、capability、trusted xattr、kill、reboot、setgroups 等行为。

查看方式

  1. 播放 ccf-asterinas-lsm-capability.mp4,查看 5 分钟内作品展示视频。
  2. 下载并查看 方案文档_源代码.zip,其中包含方案文档和源代码 patch/diff。
  3. 通过上方 PR 链接查看已经合并到星绽主仓库的代码贡献。

许可证说明

本仓库选择 MPL-2.0。源代码 patch/diff 来自星绽主仓库贡献,相关代码许可遵循星绽主仓库开源许可。

关于

CCF开源创新大赛作品:面向星绽内核实现 LSM 框架与 Capability LSM,整理已合并 PR #2996/#3013/#3078/#3131 的方案文档和源代码 patch/diff。

47.1 MB
邀请码