linux基于文件扩展属性的执行控制
随着linux系统的普及越来越广泛,针对linux系统的恶意攻击也越来越多,因此linux系统的安全性显得越发重要。对于从网上下载、U盘拷贝、本地新建等方式新建,及被篡改的可执行文件,默认不允许其执行,从而降低被恶意攻击的风险,来保证系统的安全性。
2022全国大学生操作系统比赛的“OS功能挑战”赛道
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求
高
- 需要了解linux内核模块开发流程
- 需要了解LSM安全模块开发
- 需要了解文件系统内核相关知识
- 需要了解ftrace机制
- 需要了解linux系统二进制程序、脚本等执行过程
- https://www.kernel.org
- https://www.kernel.org/doc/
- 《深入Linux内核架构(中文版)》
GPL-3.0
- 基于内核LSM框架机制,实现对应用程序的执行、动态库的加载进行管控,只允许授权的程序执行和加载
- 应用程序分为授权标识和未授权标识两类,可分别标识为verified和none,通过文件扩展属性标记如:security.xxx=verified;
- 标识为授权标识的应用程序允许执行,标识为未授权识的应用程序不允许执行;
- 默认系统安装后初始状态的应用程序均具备授权标识。
- 实现对应用程序来源和完整性监控,并自动标识:
- 新创建的、网络下载的、U盘拷贝等新应用程序自动设置为未授权标识;
- 具备授权标识的应用程序或文件,被修改(内容变化)、重命名、移动后,自动被标识成未授权标识;
- 文件被删除或者移走后,恢复后,该文件仍为授权标识文件。
- 文件通过vim、gedit等编辑器打开保存后,文件内容没发生改变时,文件标识应该继承打开前的标识
- 允许对已授权应用执行临时释放的应用程序和文件。
- 实现对标记为已授权标识应用程序A在执行过程中,释放创建新的脚本、二进制程序或动态库B,并且A执行时会调用执行该新文件B,此时B文件应该能被A合法调用执行
实现对shell(bash、dash)、python等脚本文件的执行管控。以bash为例,如下的执行方式需要被管控:
- 通过解释器调用脚本执行的行为
# sh test.sh
- 实现对脚本管道执行控制,其执行方式如:
# cat test.sh | sh
- 实现对脚本重定向执行控制,其执行方式如:
# sh < test.sh