[发明专利]适用于云环境的跨主机动态污点追踪方法及系统有效
申请号: | 201910344787.6 | 申请日: | 2019-04-26 |
公开(公告)号: | CN110177085B | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 邹德清;金海;朱康;李伟明 | 申请(专利权)人: | 华中科技大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青;李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 环境 主机 动态 污点 追踪 方法 系统 | ||
1.一种适用于云环境的跨主机动态污点追踪方法,其特征在于,包括:
(1)持续监控云环境中各主机端应用程序的API调用行为,若检测到主机中应用程序调用了网络发送相关的API,则将该主机作为源主机并转入步骤(2);若检测到主机中应用程序调用了网络接收相关的API,则将该主机作为目的主机并转入步骤(4);
(2)在所述源主机端检测网络发送缓冲区中的待发送报文是否包含污点数据,若是,则转入步骤(3);否则,直接发送所述待发送报文,转入步骤(1);
(3)根据所述待发送报文中数据的污染情况,生成一个或多个污点数据包,发送所生成的污点数据包以完成对所述待发送报文的发送,并转入步骤(1);
其中,所述污点数据包的长度不超过MTU值,所述污点数据包由污点头部和污点载荷组成,所述污点载荷为一个完整报文或报文的一个分片,根据同一报文生成的所有污点数据包的污点载荷可重组得到该报文;
所述污点头部包括标识、分片标识、数据长度以及校验和;所述标识用于唯一标识报文并标明该报文中是否包含污点数据;所述分片标识用于记录污点载荷在报文中的偏移并标明该污点载荷是否为报文中的最后一个分片;所述数据长度用于记录污点载荷的长度;所述校验和用于验证报文是否被正确传输;
所述污点头部还包括:污染信息,用于记录污点载荷的污染情况;
所述污染信息包括一个或多个表项,每一个表项对应污点载荷中一段连续的污点数据;
每一个表项记录的信息包括:污点数据类型、污点数据段在污点载荷中的偏移量以及长度;
每一个表项记录的信息还包括:污点数据段对应的位图,用于记录该污点数据段中的每一比特位数据是否被污染;
(4)在所述目的主机端检测网络接收缓冲区中的待接收报文中是否包含污点数据,若是,则转入步骤(5);否则,直接接收所述待接收报文,转入步骤(1);
(5)解析所述网络接收缓冲区中的污点数据包的污点头部,利用属于所述待接收报文的污点数据包重组所述待接收报文,并在所述目的主机中对所述待接收报文中数据的污点属性进行设置,从而完成对所述待接收报文的接收,转入步骤(1)。
2.如权利要求1所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,所述污点头部还包括:头部长度,用于记录污点头部的长度。
3.如权利要求1所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,所述污点数据包中的污点头部经过了无损数据压缩。
4.如权利要求1所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,污点数据的标定方法为:
将键盘缓冲区、敏感文件和敏感内存作为污点源;
若被追踪的目标程序访问了键盘缓冲区中的数据,则将被访问的数据标记为污点数据;
若所述目标程序访问了敏感文件中的数据,则将被访问的敏感文件中所有的数据均标记为污点数据;
若分配给所述目标程序的内存空间中出现了预先定义的特征字符串,则将内存中被所述目标程序访问过的数据标记为污点数据;
其中,所述敏感文件为保存有不能被泄漏的信息的文件,所述敏感内存为出现了预先定义的特征字符串的内存。
5.如权利要求4所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,所述步骤(1)还包括:若检测到主机中应用程序调用了在本地访问污点数据的API,则根据污点传播规则,对各指令目的操作数的污点属性进行拷贝、合并、覆盖或者清除。
6.如权利要求5所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,还包括:若主机中应用程序在本地访问污点数据时,将污点数据写入了非敏感文件,则将该文件标记为敏感文件。
7.如权利要求1所述的适用于云环境的跨主机动态污点追踪方法,其特征在于,所述步骤(1)中,对应用程序的API调用行为的监控是通过在VMM层插桩实现的。
8.一种适用于云环境的跨主机动态污点追踪系统,其特征在于,包括:监控模块、第一发送模块、第二发送模块、第一接收模块以及第二接收模块;
所述监控模块用于持续监控云环境中各主机端应用程序的API调用行为;
所述第一发送模块用于在所述监控模块检测到主机中应用程序调用了网络发送相关的API时将该主机作为源主机,在所述源主机端检测网络发送缓冲区中的待发送报文是否包含污点数据,并在所述待发送报文中不包含污点数据时直接发送所述待发送报文;
所述第二发送模块用于在所述第一发送模块检测到所述待发送报文中包含污点数据时,生成一个或多个污点数据包,并发送所生成的污点数据包以完成对所述待发送报文的发送;
所述第一接收模块用于在所述监控模块检测到主机中应用程序调用了网络接收相关的API时将该主机作为目的主机,在所述目的主机端检测网络接收缓冲区中的待接收报文中是否包含污点数据,并在所述待接收报文中不包含污点数据时,直接接收所述待接收报文;
所述第二接收模块用于在所述第一接收模块检测到所述待接收报文中包含污点数据时,解析所述网络接收缓冲区中的污点数据包的污点头部,利用属于所述待接收报文的污点数据包重组所述待接收报文,并在所述目的主机中对所述待接收报文中数据的污点属性进行设置,从而完成对所述待接收标报文的接收;
其中,所述污点数据包的长度不超过MTU值,所述污点数据包由污点头部和污点载荷组成,所述污点载荷为一个完整报文或报文的一个分片,根据同一报文生成的所有污点数据包的污点载荷可重组得到该报文;
所述污点头部包括标识、分片标识、数据长度以及校验和;所述标识用于唯一标识报文并标明该报文中是否包含污点数据;所述分片标识用于记录污点载荷在报文中的偏移并标明该污点载荷是否为报文中的最后一个分片;所述数据长度用于记录污点载荷的长度;所述校验和用于验证报文是否被正确传输;
所述污点头部还包括:污染信息,用于记录污点载荷的污染情况;
所述污染信息包括一个或多个表项,每一个表项对应污点载荷中一段连续的污点数据;
每一个表项记录的信息包括:污点数据类型、污点数据段在污点载荷中的偏移量以及长度;
每一个表项记录的信息还包括:污点数据段对应的位图,用于记录该污点数据段中的每一比特位数据是否被污染。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910344787.6/1.html,转载请声明来源钻瓜专利网。