【技术实现步骤摘要】
一种针对Docker容器内进程代码段完整性动态监测方法
[0001]本专利技术涉及虚拟化和可信计算
,具体为一种针对Docker容器内进程代码段完整性动态监测方法。
技术介绍
[0002]近年来,越来越多的企业和个人在公有云上部署其业务,云计算的安全问题也引发了更加广泛的关注。特别是以容器技术为核心的容器云,由于容器技术的共享内核和资源隔离强度较低的特性,面临更多的安全风险。在以虚拟机为主体的IaaS云计算平台中,以可信计算技术为主的目标系统可信性评价方案已经被大量研究和应用;但是在以容器为主体的云计算平台,因容器技术方兴未艾,针对容器云的可信性评价方案尚需进一步研究。
[0003]若考虑虚拟可信计算技术,为每个容器配置虚拟可信根,虽然可以实现一定程度的可信性评估,但是在容器云中单台服务器中的容器实例一般在几十个,如此会造成极大的性能损耗。也有学者基于可信计算组织(TCG,Trusted Computing Group)支持的完整性度量架构(IMA,Integrity Measurement Architect ...
【技术保护点】
【技术特征摘要】
1.一种针对Docker容器内进程代码段完整性动态监测方法,其特征在于,包括以下步骤:步骤1:基于procfs的容器内进程代码段分页式动态度量通过在内核中加载虚拟字符设备的方式实现代码段虚拟内存地址到物理内存地址的映射,利用Linux提供的进程数据接口procfs实现进程的虚拟地址映射信息和进程所对应的ELF文件的路径信息的获取,以分页的方式实现对进程代码段单个分页的度量;步骤2:基于TPM2.0的进程代码段完整性可信基础构建在TCG提出的链式信任构建方法基础上,利用硬件TPM2.0模块实现动态度量值的安全存储,设计存储度量日志文件,根据日志信息区分出不同容器的同名文件;步骤3:进程代码段完整性验证首先通过对进程对应ELF文件代码段进行分页式度量,构建完整性基准值库,然后进行动态度量的完整性验证。2.根据权利要求1所述的一种针对Docker容器内进程代码段完整性动态监测方法,其特征在于,所述步骤1具体为:步骤1.1:根据.config配置文件中写入的需要被监控容器的ID或者名字,用户空间工具UserUtil从Docker守护进程中获取需要监控容器内进程的宿主PID和容器所属镜像名称image_name;步骤1.2:根据procfs中/proc/[PID]/maps所维护的进程当前已映射虚拟内存区域以及其访问权限的信息,解析出进程的虚拟地址映射信息;并提取进程所对应的ELF文件的路径信息,完成日志信息中进程的区分;步骤1.3:通过ioctl系统调用将所获取到的进程相关信息发送给虚拟字符设备Dymeasure,并对容器内的每个进程都发起一次度量操作命令;步骤1.4:字符设备Dymeasure中动态度量模块根据用户空间工具UserUtil发送的进程虚拟地址映射信息,借助/proc/[PID]/pagemap文件完成从虚拟地址到物理地址的翻译;步骤1.5:根据进程分页的起始物理地址,调用内核提供的散列算法,完成一个代码段分页的完整性度量,生成度量值;同时,在每完成一次分页度量后,将此次分页度量所得散列值和前一次度量的散列值连接在一起并再次计算散列,最后得到所有被加载进物理内存的进程代码段分页的聚合度量值。3.根据权利要求2所述的针对Docker容器内进程代码段完整性动态监测方法,其特征在于,所述步骤1.1具体为:步骤1.11:由系统管理员或者云租户通过Agent代理向.config配置文件中添加需要被监控容器的ID或者名字;步骤1.12:用户空间工具UserUtil读取配置文件,检查容器的ID或者名字在系统中是否存在,否则向Agent返回错误信号;步骤1.13:UserUtil通过和容器守护进程dockerd交互,获取所需要监控容器中的所有进程的宿主进程号pid和容器所属镜像的名称image_name。4.根据权利要求2所述的针对Docker容器内进程代码段完整性动态监测方法,其特征在于,所述步骤1.4具体为:步骤1.41:物理地址解析子模块根据所获取的进程代码段的起始和终止虚拟地址
vadd_start和vadd_end,结合/proc/[PID]/pagemap文件中所记录的进程虚拟地址到物理内存地址的映射信息,判断当前进程分页是否已经被加载进内存,还是已经被换出...
【专利技术属性】
技术研发人员:陈兴蜀,桂艳双,王启旭,杨苗苗,周明星,严双海,郭亚云,
申请(专利权)人:四川大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。