linux基于文件扩展属性的执行控制
随着linux系统的普及越来越广泛,针对linux系统的恶意攻击也越来越多,因此linux系统的安全性显得越发重要。对于从网上下载、U盘拷贝、本地新建等方式新建,及被篡改的可执行文件,默认不允许其执行,从而降低被恶意攻击的风险,来保证系统的安全性。
2022全国大学生操作系统比赛的“OS功能挑战”赛道
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求
- 杨诏钧 [email protected]
- 姬一文 [email protected]
- 王玉成 [email protected]
- 杨钊 [email protected]
高
- 需要了解linux内核模块开发流程
- 需要了解LSM安全模块开发
- 需要了解文件系统内核相关知识
- 需要了解ftrace机制
- 需要了解linux系统二进制程序、脚本等执行过程
- https://www.kernel.org
- https://www.kernel.org/doc/
- 《深入Linux内核架构(中文版)》
GPL-3.0
- 系统文件合法标识,设置扩展属性“security.kylin=verified”
- 系统文件非法标识,设置扩展属性“security.kylin=unknown”
- 被标识为非法标识的文件不允许执行,只有被标识为合法标识的文件才允许执行
- 实现对系统新文件创建进行监控,并自动给新文件设置非法标识
- 实现LSM模块,对程序执行进行管控,不允许非法标识的程序执行
- 合法标识文件移动后,在新路径下的文件,默认不允许执行
- 合法文件,通过vim等命令打开,并保存退出后,若文件内容没发生改变,应该允许其执行
以第一题为基础,实现对shell(bash、dash)、python、php、perl、java、awk等解释性语言编写的文件或程序的执行进行管控,管控方法覆盖的以上语言越多得分越高。如下的执行方式需要被管控:
# ./test.sh
# sh test.sh
以第一题为基础,实现以下功能:
- 实现对脚本管道执行控制,其执行方式如:
# cat test.sh | sh
- 实现对脚本重定向执行控制,其执行方式如:
# sh < test.sh