Skip to content

oscomp/proj236-linux-exectl-based-on-xattr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

proj236-linux-exectl-based-on-xattr

介绍

linux基于文件扩展属性的执行控制

项目描述

随着linux系统的普及越来越广泛,针对linux系统的恶意攻击也越来越多,因此linux系统的安全性显得越发重要。对于从网上下载、U盘拷贝、本地新建等方式新建,及被篡改的可执行文件,默认不允许其执行,从而降低被恶意攻击的风险,来保证系统的安全性。

所属赛道

2022全国大学生操作系统比赛的“OS功能挑战”赛道

参赛要求

  • 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生
  • 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
  • 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求

项目导师

难度

特征

  • 需要了解linux内核模块开发流程
  • 需要了解LSM安全模块开发
  • 需要了解文件系统内核相关知识
  • 需要了解ftrace机制
  • 需要了解linux系统二进制程序、脚本等执行过程

参考文档

License

GPL-3.0

预期目标

目标一:实现对应用程序的执行管控,确保已授权的应用程序才允许执行。

  1. 基于内核LSM框架机制,实现对应用程序的执行、动态库的加载进行管控,只允许授权的程序执行和加载
  • 应用程序分为授权标识和未授权标识两类,可分别标识为verified和none,通过文件扩展属性标记如:security.xxx=verified;
  • 标识为授权标识的应用程序允许执行,标识为未授权识的应用程序不允许执行;
  • 默认系统安装后初始状态的应用程序均具备授权标识。
  1. 实现对应用程序来源和完整性监控,并自动标识:
  • 新创建的、网络下载的、U盘拷贝等新应用程序自动设置为未授权标识;
  • 具备授权标识的应用程序或文件,被修改(内容变化)、重命名、移动后,自动被标识成未授权标识;
  • 文件被删除或者移走后,恢复后,该文件仍为授权标识文件。

目标二:扩展标记具备继承能力

  1. 文件通过vim、gedit等编辑器打开保存后,文件内容没发生改变时,文件标识应该继承打开前的标识
  2. 允许对已授权应用执行临时释放的应用程序和文件。
  • 实现对标记为已授权标识应用程序A在执行过程中,释放创建新的脚本、二进制程序或动态库B,并且A执行时会调用执行该新文件B,此时B文件应该能被A合法调用执行

目标三:脚本文件执行控制

实现对shell(bash、dash)、python等脚本文件的执行管控。以bash为例,如下的执行方式需要被管控:

  1. 通过解释器调用脚本执行的行为
# sh test.sh
  1. 实现对脚本管道执行控制,其执行方式如:
# cat test.sh | sh
  1. 实现对脚本重定向执行控制,其执行方式如:
# sh < test.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published