[发明专利]一种基于数据流分析的软件补丁检测方法及装置有效
申请号: | 201911395906.7 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111177733B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 李建欣;孙佩源;邵明来;周睿;邰振赢 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京中创阳光知识产权代理有限责任公司 11003 | 代理人: | 尹振启 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数据流 分析 软件 补丁 检测 方法 装置 | ||
1.一种基于数据流分析的软件补丁检测方法,其特征在于,所示方法包括:
步骤一:利用Extractor对补丁代码进行解析 ,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征;建立源码应用补丁代码之后编译生成的二进制代码与源码之间的映射关系;
步骤二:选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,提取出控制流,其中,所述控制流以函数为单位,每个所述函数为:包含基本块为节点、程序跳转为边的所述控制流;
对所述基本块内的数据流进行分析,对所述基本块的代码进行反向逐条分析,提取每个语句中变量的使用链:该使用链通常对应补丁代码中对某个变量的相关代码操作;
对跨基本块的数据流进行分析,将分布于不同所述基本块内的数据流连接构成完整的数据信息;
对提取出的数据流进行优化;
从基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令作为根指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;
步骤三:对所述补丁特征进行多阶段匹配;步骤三中所述补丁特征多阶段匹配的方法为:
首先对待检测的目标二进制代码进行中间代码提升,然后检测其中是否包含补丁特征所在的函数;
然后对匹配到的函数构建控制流结构,并基于控制流结构,进行初步快速匹配,该步骤主要包括对控制流结构的入度,初度,跳转类型进行匹配;
对于上一步匹配到的候选基本块结构进行进一步的细粒度数据流分析,根据步骤二提取出的根指令特征对候选基本块进行进一步筛选;
分别对每一个匹配的根指令提取数据流片段,分别与提取出的补丁特征进行匹配,该匹配主要包括:输入变量,输出变量,及中间代码操作符及操作数类型。
2.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤一中建立源码应用补丁代码之后编译生成的二进制代码与源码之间的映射关系为:提取源码中修改点为粒度的补丁信息;将所述源码应用待检测补丁,使用-g3选项对源码进行编译得到二进制代码;通过二进制分析工具建立二进制代码与所述补丁信息之间的对应关系。
3.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤二中所述基本块包括所述基本块所使用的所有变量信息,包含的指令,基本块跳出方式,其中,所述指令包括原始指令及翻译后的中间代码。
4.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤二中所述跨基本块的数据流分析依赖所述基本块内数据流分析提供的到达-定值信息,其中,所述到达-定值信息包括,流入流出该基本块的变量信息。
5.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,
步骤二中所述数据流进行优化通过对提取出的数据流进行进一步的复制传播分析、死代码删除以及变量重命名。
6.一种基于数据流分析的软件补丁检测装置,用于实现权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,所述软件补丁检测装置包括:
选择单元,用于利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征,建立源码应用补丁代码之后编译生成的二进制代码与源码之间的映射关系;
分析单元,选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,提取出控制流,对基本块内的数据流以及跨基本块的数据流进行分析;
处理单元,对提取出的数据流进行优化;从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;利用Matcher对所述补丁特征进行多阶段匹配。
7.根据权利要求6所述的基于数据流分析的软件补丁检测装置,其特征在于,所述分析单元提取出的控制流以函数为单位,每个所述函数为包含基本块为节点,程序跳转为边的所述控制流。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911395906.7/1.html,转载请声明来源钻瓜专利网。