一种基于Linux安全模块的文件审计、防护方法技术

技术编号:20222053 阅读:35 留言:0更新日期:2019-01-28 20:28
本发明专利技术提供一种基于Linux安全模块的文件审计、防护方法,包括如下步骤:安全模块定义文件操作相关的钩子函数;将钩子函数注册到LSM框架中;编译成内核ko模块,以Linux内核ko模块的形式来实现安全访问控制。步骤安全模块定义文件操作相关的钩子函数,包括:定义全局表并在其中指定要实现的钩子函数列表;在指定的钩子函数中,进行文件操作审计;设置钩子函数的返回值来实现文件防护。

【技术实现步骤摘要】
一种基于Linux安全模块的文件审计、防护方法
本专利技术涉及Linux下的文件审计及防护
,具体涉及一种基于Linux安全模块的文件审计、防护方法。
技术介绍
Linux下的文件审计和防护功能,目前实现的方法主要有iNotify和InlineHook等,但这些方法都存在一些问题:iNotify是一个检测文件系统变化的工具,用这个工具可以实现文件审计的功能,但文件防护(如文件防删、防修改、文件隐藏等)功能无法做到,而且它能监控的文件个数有个上限,超出这个阈值的文件不会被监控。InlineHook是一种钩取(hook)系统函数的技术,通过替换目标函数头部指令实现在函数执行之前跳转到其他的指令区域,执行完毕跳转回到原来的函数,跳转到的指令区域通常是我们自己编写的函数,来完成根据安全策略实现文件审计和防护的功能,由于这种技术需要做指令修改和跳转等操作,所以在稳定性和系统版本兼容等方面存在不足。
技术实现思路
为了克服上述现有技术中的不足,本专利技术提供一种基于Linux安全模块的文件审计、防护方法,以解决上述技术问题。本专利技术的技术方案是:一种基于Linux安全模块的文件审计、防护方法,包括如下步骤:安全模块定义文件操作相关的钩子函数;将钩子函数注册到LSM框架中;编译成内核ko模块,以Linux内核ko模块的形式来实现安全访问控制。进一步的,步骤安全模块定义文件操作相关的钩子函数,包括:定义全局表并在其中指定要实现的钩子函数列表;在指定的钩子函数中,进行文件操作审计;设置钩子函数的返回值来实现文件防护。进一步的,步骤定义全局表并在其中指定要实现的钩子函数列表中,定义security_operations结构的全局表,指定的钩子函数包括:文件复制/创建判断函数、文件删除判断函数、目录复制/创建判断函数、目录删除判断函数、文件操作判断函数、文件复制判断函数、文件打开函数、文件修改判断函数。进一步的,步骤定义全局表并在其中指定要实现的钩子函数列表中,定义security_operations结构的全局表;设定,文件复制/创建判断函数为inode_create函数;文件删除判断函数为inode_unlink函数;目录复制/创建判断函数为inode_mkdir函数;目录删除判断函数为inode_rmdir函数;文件操作判断函数为inode_rename函数;文件复制判断函数-inode_setattr函数;文件打开函数为file_open函数;文件修改判断函数为file_permission函数。进一步的,步骤在指定的钩子函数中,进行文件操作审计,包括:通过函数参数获取被操作文件的完整名称;通过钩子函数类型识别文件操作类型。进一步的,文件操作类型识别过程包括:inode_create钩子函数中判断文件复制操作和文件创建操作;其中,当进程名为指定的第一名称或第二名称且由相同的进程先调用了file_open函数时,是文件复制操作;否则是文件创建操作;inode_mkdir钩子函数中判断目录复制操作和目录创建操作;其中,当进程名为指定的第一名称或第二名称且由相同的进程先调用了file_open函数时,是目录复制操作;否则是目录创建操作。进一步的,文件操作类型识别过程还包括:inode_unlink钩子函数中判断文件删除操作;inode_rmdir钩子函数中判断目录删除操作;inode_setattr钩子函数中判断文件复制操作;其中,当进程名为指定的第二名称,且由相同的进程先调用了file_open时,是文件复制操作;file_permission钩子函数中判断文件修改操作,其中,第一参数中MAY_READ位被置第一设定值时,是文件修改操作。进一步的,文件操作类型识别过程还包括:inode_rename钩子函数中判断文件操作,包括:文件创建操作:rename的源文件是office目录下的模版文件时,是文件创建操作;文件重命名操作:源文件和目标文件在同一个目录中,是文件重命名操作;文件复制操作:源文件和目标文件不在同一目录下,从监控目录拷贝到非监控目录时,是文件复制操作;文件移动操作:源文件和目标文件不在同一目录下,从监控目录拷贝到监控目录时,是文件移动操作。文件删除操作:目的目录是回收站目录时,是文件删除操作;文件修改操作:源文件fullname和目的文件fullname相同时,是文件修改操作,所述源文件是相同进程open的文件,不是rename的源文件。进一步的,步骤设置钩子函数的返回值来实现文件防护,具体操作如下:文件隐藏:file_permission函数中第一参数的MAY_READ位被置第一设定值时,返回第一设定值,即可隐藏文件;文件防止修改:inode_setattr返回第二设定值,或者file_permission中第一参数的MAY_READ位被置第一设定值时,返回第二设定值,即可防止文件被修改;文件防止删除:inode_unlink和inode_rmdir返回第二设定值,即可防止文件被删除;inode_rename的目标目录是回收站时,返回第二设定值即可防止文件被删除。进一步的,步骤将钩子函数注册到LSM框架中,包括:调用register_security函数注册security_operations全局表到LSM框架。进一步的,第一设定值为1,第二设定值为-1。进一步的,第一名称为pool,第二名称为cp,第一参数为mask。Linux安全模块(LSM)是Linux内核的一个轻量级通用访问控制框架,基于此框架可以以Linux可加载模块(内核ko模块)的形式来实现安全访问控制的功能,LSM在Linux源代码的很多关键代码路径中插入了对钩子函数的调用,我们只需要实现LSM定义的文件操作相关的钩子函数,并注册到LSM框架中,在做相应的文件操作时,我们的文件访问控制的业务逻辑会被执行,从而实现审计和防护的目的。从以上技术方案可以看出,本专利技术具有以下优点:本方案是基于Linux内核提供的安全模块来实现,稳定性和系统兼容性比较好。LSM提供的钩子函数比较全面,而且函数中能拿到的关于文件和操作的信息比较多,所以在钩子函数(或组合几个钩子函数)中可以准确的审计文件操作行为。本方案对监控的文件数量没有限制,而且功能全面。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。附图说明图1为一种基于Linux安全模块的文件审计、防护方法流程示意图;图2为一种基于Linux安全模块的文件审计、防护方法流程示意图。具体实施方式下面结合附图并通过具体实施例对本专利技术进行详细阐述,以下实施例是对本专利技术的解释,而本专利技术并不局限于以下实施方式。实施例一如图1-2所示,一种基于Linux安全模块的文件审计、防护方法,包括如下步骤:S1:安全模块定义文件操作相关的钩子函数;S2:将钩子函数注册到LSM框架中;S3:编译成内核ko模块,以Linux内核ko模块的形式来实现安全访问控制。步骤S1,包括:S11:定义全局表并在其中指定要实现的钩子函数列表;S12:在指定的钩子函数中,进行文件操作审计;S13:设置钩子函数的返回值来实现文件防护。本文档来自技高网...

【技术保护点】
1.一种基于Linux安全模块的文件审计、防护方法,其特征在于,包括如下步骤:安全模块定义文件操作相关的钩子函数;将钩子函数注册到LSM框架中;编译成内核ko模块,以Linux内核ko模块的形式来实现安全访问控制。

【技术特征摘要】
1.一种基于Linux安全模块的文件审计、防护方法,其特征在于,包括如下步骤:安全模块定义文件操作相关的钩子函数;将钩子函数注册到LSM框架中;编译成内核ko模块,以Linux内核ko模块的形式来实现安全访问控制。2.根据权利要求1所述的一种基于Linux安全模块的文件审计、防护方法,其特征在于,步骤安全模块定义文件操作相关的钩子函数,包括:定义全局表并在其中指定要实现的钩子函数列表;在指定的钩子函数中,进行文件操作审计;设置钩子函数的返回值来实现文件防护。3.根据权利要求2所述的一种基于Linux安全模块的文件审计、防护方法,其特征在于,步骤定义全局表并在其中指定要实现的钩子函数列表中,定义security_operations结构的全局表,指定的钩子函数包括:文件复制/创建判断函数、文件删除判断函数、目录复制/创建判断函数、目录删除判断函数、文件操作判断函数、文件复制判断函数、文件打开函数、文件修改判断函数。4.根据权利要求3所述的一种基于Linux安全模块的文件审计、防护方法,其特征在于,步骤定义全局表并在其中指定要实现的钩子函数列表中,定义security_operations结构的全局表;设定,文件复制/创建判断函数为inode_create函数;文件删除判断函数为inode_unlink函数;目录复制/创建判断函数为inode_mkdir函数;目录删除判断函数为inode_rmdir函数;文件操作判断函数为inode_rename函数;文件复制判断函数-inode_setattr函数;文件打开函数为file_open函数;文件修改判断函数为file_permission函数。5.根据权利要求4所述的一种基于Linux安全模块的文件审计、防护方法,其特征在于,步骤在指定的钩子函数中,进行文件操作审计,包括:通过函数参数获取被操作文件的完整名称;通过钩子函数类型识别文件操作类型。6.根据权利要求5所述的一种基于Linux安全模块的文件审计、防护方法,其特征在于,文件操作类型识别过程包括:inode_create钩子函数中判断文件复制操作和文件创建操作;其中,当进程名为指定的第一名称或第二名称且由相同的进程先调用了file_open函数时,是文件复制操作;否则是文件创建操作;inode_mkdir钩子函数中判断目录复制操作和目录创建操作;其中,当进程名为指定的第一名称或第二名称且由相同的进程先调用了file_op...

【专利技术属性】
技术研发人员:张雷袁浩苗功勋
申请(专利权)人:山东中孚安全技术有限公司中孚信息股份有限公司北京中孚泰和科技发展股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1