[发明专利]一种免超级用户权限的进程行为监控装置与方法有效
申请号: | 201811066049.1 | 申请日: | 2018-09-13 |
公开(公告)号: | CN109344028B | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 陶敬;王平辉;韩婷;李佳璇;王铮;郑宁;栾庆鑫;白云鹏;孙立远;柳哲;林杰 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 段俊涛 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 超级 用户权限 进程 行为 监控 装置 方法 | ||
1.一种免超级用户权限的进程行为监控装置,包括:
交互单元,位于用户层,用于指定监控目标;
系统配置文件修改单元,位于用户层,用于免超级用户权限启动监控装置,通过修改系统配置文件,使监控装置启动时自动加载内核模块;
过滤单元,位于内核层,用于过滤非监控目标产生的行为;
行为监控单元,位于内核层,用于监控目标的行为;
日志输出单元,位于内核层,用于内核日志输出;
其特征在于,所述行为监控单元包括:
进程创建行为监控模块,用于监控进程的创建行为,修改内核进程相关函数控制流,使系统在执行相关函数时进入过滤单元;
进程退出行为监控模块,用于监控进程的退出行为;
进程cred结构体监控模块,用于监控进程cred结构体的变更情况。
2.根据权利要求1所述免超级用户权限的进程行为监控装置,其特征在于,所述交互单元通过如下方式实现:
利用交互工具动态修改监控目标,所述交互工具先解析用户输入的参数,打开设备文件,将值通过write方法写入驱动中,驱动在初始化时注册文件操作函数结构体file_operations,进入内核后Linux虚拟文件系统调用对应的write操作函数,驱动在经过初步的参数合法性校验后从参数中解析目标值,删除监控链表中所有节点并重新初始化监控链表,交互工具待write函数返回后关闭打开的设备文件;
所述过滤单元通过如下方式实现:
在内核层设置一个实时的监控链表,用以存储目标产生的所有进程,使之后进程的uid不论如何变化都能被监控到,该监控链表中的进程创建子进程时将子进程加入到监控链表中,在监控链表中的进程退出时删除相应节点;
在内核中宏定义current指向当前进程的进程描述符,系统执行被监控的系统调用函数,跳转到监控函数后,首先根据current指针得到当前进程的uid和pid,当前进程的uid等于用户指定的uid时说明当前进程需要被监控,如果当前进程的uid不等于用户指定的uid,但进程的pid仍然在监控链表中时,仍然需要进行监控;
所述日志输出单元为双缓结构,将需要同步的共享变量由文件变为缓冲区,当监控函数产生日志时,调用日志输出系统的接口将日志写入缓冲区,写完缓冲区后判断当前缓冲区是否已满,如果已满则创建内核线程将当前缓冲区写入文件,准备写入下一个缓冲区;如果未满则继续。
3.根据权利要求1所述免超级用户权限的进程行为监控装置,其特征在于,所述进程创建行为监控模块通过如下方式实现:
将__NR_clone对应的系统调用表项修改为进程创建监控函数地址;
所述进程退出行为监控模块通过如下方式实现:
使用内核Inline Hook技术实现进程退出行为的监控;
所述进程cred结构体监控模块通过如下方式实现:
使用Inline Hook技术劫持执行所有系统调用的控制流,并且将cred结构体关键值保存在监控链表中,在执行系统调用之后根据监控链表判断cred结构体关键值是否发生变化,如果发生变化则更新监控链表并输出日志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811066049.1/1.html,转载请声明来源钻瓜专利网。