[发明专利]一种基于kprobes的容器访问控制方法与系统有效
申请号: | 202110340070.1 | 申请日: | 2021-03-30 |
公开(公告)号: | CN113051034B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 陈兴蜀;杨艺;王启旭;罗永刚;兰晓 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 成都禾创知家知识产权代理有限公司 51284 | 代理人: | 刘凯 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kprobes 容器 访问 控制 方法 系统 | ||
1.一种基于kprobes的容器访问控制方法,其特征在于,包括以下步骤:
步骤1:客户端生成访问策略文件,所述访问策略文件中包括三元组信息,所述三元组信息包括表示容器进程ID的PID,表示容器需要访问的资源ID的RID,表示容器可以对资源进行哪些操作的PSET;
步骤2:访问控制系统接收访问策略文件,并对访问策略文件进行解析:
步骤2.1:在内核中,根据访问策略文件中的PID,获取进程的实例对象task_struct,实例对象包含对当前进程的详尽描述;
步骤2.2:解析进程实例对象的命名空间成员变量nsproxy,获取当前进程所在的命名空间的唯一标识proc_inum,从而确定当前进程位于哪个容器的命名空间下;
步骤2.3:将命名空间的唯一标识添加到访问策略文件中;
步骤3:通过kprobes对内核函数探测,进而监控容器行为;在探测函数中,获取当前进程的信息;
步骤4:在kprobes的探测函数中,执行访问控制操作:
步骤4.1:获取当前进程及对应内核函数信息;
步骤4.2:将当前进程及该进程调用的内核函数信息与访问策略文件,进行匹配,若匹配成功,则将本次操作记录到日志文件中以供后续查阅;若匹配失败,则将函数间调用时传递的参数和返回值进行修改,从而使得函数执行失败,进而阻止本次操作的执行;
所述步骤3具体包括:
步骤3.1:分析恶意操作所调用的系统调用,再分析系统调用背后执行的内核函数,确定需要监控的内核函数;
步骤3.2:通过kprobes对指定内核函数插入探测点,包括在内核函数执行前插入探测点、在内核函数执行后插入探测点;
步骤3.3:当指定内核函数被调用时,触发中断指令,kprobes保存当前内核上下文信息,跳转到探测函数;
步骤3.4:执行探测函数,获取进程和进程所调用的内核函数信息,并执行访问控制算法,执行完毕后,返回内核函数并恢复原有执行逻辑;
步骤3.5:kprobes恢复内核函数执行的上下文信息后继续执行原有操作。
2.一种基于kprobes的访问控制系统,其特征在于,包括访问策略文件解析模块、内核函数监控模块和访问控制算法模块;
所述访问策略文件解析模块用于根据客户端生成的访问策略文件,结合内核提供的进程实体task_struct,解析出访问策略文件中进程所在的容器命名空间;
所述内核函数监控模块用于通过kprobes对内核函数进行探测,在探测函数中,获取当前进程的信息;具体包括:
分析恶意操作所调用的系统调用,再分析系统调用背后执行的内核函数,确定需要监控的内核函数;
通过kprobes对指定内核函数插入探测点,包括在内核函数执行前插入探测点、在内核函数执行后插入探测点;
当指定内核函数被调用时,触发中断指令,kprobes保存当前内核上下文信息,跳转到探测函数;
执行探测函数,获取进程和进程所调用的内核函数信息,并执行访问控制算法,执行完毕后,返回内核函数并恢复原有执行逻辑;
kprobes恢复内核函数执行的上下文信息后继续执行原有操作;
所述访问控制算法模块用于通过将探测函数中获取的进程信息和访问策略文件中的信息进行匹配,若匹配成功,则运行内核函数继续调用;若匹配不成功,结合内核函数间的调用以寄存器和栈来传递参数和返回值的特点,将内核函数间参数以及返回值的传递进行修改,从而阻止内核函数执行,进而阻止恶意操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110340070.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有平顶方向图的反射面天线组件
- 下一篇:一种建筑施工打桩装置