一种Linux系统用户操作行为审计方法技术方案

技术编号:18350827 阅读:31 留言:0更新日期:2018-07-02 00:18
一种Linux系统用户操作行为审计方法,包括如下步骤:a)Linux系统加载文件过滤驱动ko文件;b)Linux系统结构中kprobe保存CPU寄存器信息以及栈数据,修改指令寄存器信息使执行过程跳转至自定义系统结构jprobe中定义的方案探测函数jsys_write;c)通建立方案探测函数;d)获取打开文件的绝对路径,获取本次操作使用的命令及其绝对路径;e)如果发现获取到的写入数据包含敏感数据或者文件所在目录为禁止操作目录,则修正自定义结构jprobe保存的原始CPU寄存器信息,将返回地址修改为文件关闭地址直接关闭文件。审计的过程不影响系统正常使用、安全稳定用Linux标准安全监测技术处理,不会被系统提示警报。

【技术实现步骤摘要】
一种Linux系统用户操作行为审计方法
本专利技术涉及Linux系统审计领域,具体涉及一种Linux系统用户操作行为审计方法。
技术介绍
Linux系统作为常用服务器操作系统,在其提供服务过程中其自身行为或者用户操作行为在某些情况下需要进行审计以鉴别某些潜在危险,尤其在遭到入侵行为时更是无法确定操作了哪些系统文件或者改变了哪些系统配置。在现有的解决方案中,行为操作的审计目前大部分还是局限于系统自身的日志或者系统应用程序日志等内容,如syslog、apache运行日志,但对于具体的文件读写甚至文件读写内容无法做到明确的信息展示。
技术实现思路
本专利技术为了克服以上技术的不足,提供了一种不影响系统正常使用、安全稳定的Linux系统用户操作行为审计方法。本专利技术克服其技术问题所采用的技术方案是:一种Linux系统用户操作行为审计方法,包括如下步骤:a)Linux系统加载文件过滤驱动ko文件;b)Linux系统结构中kprobe保存CPU寄存器信息以及栈数据,修改指令寄存器信息使执行过程跳转至自定义系统结构jprobe中定义的方案探测函数jsys_write;c)通过staticvoidjsys_write(unsignedintfd,constchar__user*buf,size_tcount)命令建立方案探测函数,其中fd为本次打开的文件ID,buf为本次要写入的数据,count为本次写入的数据字节数;d)在方案提供的探测函数内部通过系统函数current_thread_info()获取到当前进程所有信息task_struct,通过task_struct中结构体file以及file_struct获取打开文件的绝对路径,通过结构体vm_area_struct以及path获取本次操作使用的命令及其绝对路径;e)如果发现获取到的写入数据包含敏感数据或者文件所在目录为禁止操作目录,则修正自定义结构jprobe保存的原始CPU寄存器信息,将返回地址修改为文件关闭地址直接关闭文件,如果发现获取到的写入数据包含敏感数据或者文件所在目录不为禁止操作目录,则调用系统返回函数返回原始处理地址即系统调用sys_write正常写入文件。进一步的,还包括如下步骤:e-1)步骤e)中自定义结构jprobe通过定义8字节长度变量1保存原始CPU寄存器地址信息;e-2)定义8字节长度变量2存储将要跳转的新地址;e-3)在方案探测函数调用系统返回函数之前,将原始信息存储到步骤e-1)中的变量1中;e-4)将文件关闭地址保存至步骤e-2)中的变量2中;e-5)调用返回函数,此时跳转至变量2地址处。本专利技术的有益效果是:通过本Linux系统用户操作行为审计方法不但对系统关键目录进行保护,还可以对文件进行审计,并且审计的过程不影响系统正常使用、安全稳定用Linux标准安全监测技术处理,不会被系统提示警报,可以在此基础上扩展更多的安全检测方案,细化分类可以很好的加固系统,可以拓展与第三方业务系统联动,提供诸如报警提示等信息。具体实施方式下面对本专利技术做进一步说明。一种Linux系统用户操作行为审计方法,包括如下步骤:a)Linux系统加载文件过滤驱动ko文件;b)Linux系统结构中kprobe保存CPU寄存器信息以及栈数据,修改指令寄存器信息使执行过程跳转至自定义系统结构jprobe中定义的方案探测函数jsys_write;c)通过staticvoidjsys_write(unsignedintfd,constchar__user*buf,size_tcount)命令建立方案探测函数,其中fd为本次打开的文件ID,buf为本次要写入的数据,count为本次写入的数据字节数;d)在方案提供的探测函数内部通过系统函数current_thread_info()获取到当前进程所有信息task_struct,通过task_struct中结构体file以及file_struct获取打开文件的绝对路径,通过结构体vm_area_struct以及path获取本次操作使用的命令及其绝对路径;e)如果发现获取到的写入数据包含敏感数据或者文件所在目录为禁止操作目录,则修正自定义结构jprobe保存的原始CPU寄存器信息,将返回地址修改为文件关闭地址直接关闭文件,如果发现获取到的写入数据包含敏感数据或者文件所在目录不为禁止操作目录,则调用系统返回函数返回原始处理地址即系统调用sys_write正常写入文件。通过本Linux系统用户操作行为审计方法不但对系统关键目录进行保护,还可以对文件进行审计,并且审计的过程不影响系统正常使用、安全稳定用Linux标准安全监测技术处理,不会被系统提示警报,可以在此基础上扩展更多的安全检测方案,细化分类可以很好的加固系统,可以拓展与第三方业务系统联动,提供诸如报警提示等信息。由于系统结构Jprobe默认情况下仅支持信息检查而不支持返回地址重写,因此还包括如下步骤:e-1)步骤e)中自定义结构jprobe通过定义8字节长度变量1保存原始CPU寄存器地址信息;e-2)定义8字节长度变量2存储将要跳转的新地址;e-3)在方案探测函数调用系统返回函数之前,将原始信息存储到步骤e-1)中的变量1中;e-4)将文件关闭地址保存至步骤e-2)中的变量2中;e-5)调用返回函数,此时跳转至变量2地址处。通过以上处理即可中断用户当前操作行为达到保护文件的目的。本文档来自技高网...

【技术保护点】
1.一种Linux系统用户操作行为审计方法,其特征在于,包括如下步骤:a)Linux系统加载文件过滤驱动ko文件;b)Linux系统结构中kprobe保存CPU寄存器信息以及栈数据,修改指令寄存器信息使执行过程跳转至自定义系统结构jprobe中定义的方案探测函数jsys_write;c)通过static void jsys_write(unsigned int fd, const char __user *buf, size_t count)命令建立方案探测函数,其中fd为本次打开的文件ID,buf为本次要写入的数据,count为本次写入的数据字节数;d)在方案提供的探测函数内部通过系统函数current_thread_info()获取到当前进程所有信息task_struct,通过task_struct中结构体file以及file_struct获取打开文件的绝对路径,通过结构体vm_area_struct以及path获取本次操作使用的命令及其绝对路径;e)如果发现获取到的写入数据包含敏感数据或者文件所在目录为禁止操作目录,则修正自定义结构jprobe保存的原始CPU寄存器信息,将返回地址修改为文件关闭地址直接关闭文件, 如果发现获取到的写入数据包含敏感数据或者文件所在目录不为禁止操作目录,则调用系统返回函数返回原始处理地址即系统调用sys_write正常写入文件。...

【技术特征摘要】
1.一种Linux系统用户操作行为审计方法,其特征在于,包括如下步骤:a)Linux系统加载文件过滤驱动ko文件;b)Linux系统结构中kprobe保存CPU寄存器信息以及栈数据,修改指令寄存器信息使执行过程跳转至自定义系统结构jprobe中定义的方案探测函数jsys_write;c)通过staticvoidjsys_write(unsignedintfd,constchar__user*buf,size_tcount)命令建立方案探测函数,其中fd为本次打开的文件ID,buf为本次要写入的数据,count为本次写入的数据字节数;d)在方案提供的探测函数内部通过系统函数current_thread_info()获取到当前进程所有信息task_struct,通过task_struct中结构体file以及file_struct获取打开文件的绝对路径,通过结构体vm_area_st...

【专利技术属性】
技术研发人员:冯鹏飞
申请(专利权)人:山东华软金盾软件股份有限公司
类型:发明
国别省市:山东,37

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

1