[发明专利]一种漏洞路径优先级的符号执行调度方法及系统有效
申请号: | 202010390833.9 | 申请日: | 2020-05-11 |
公开(公告)号: | CN111581099B | 公开(公告)日: | 2023-02-10 |
发明(设计)人: | 席泽生;张波;林为民;张涛;孙歆;马媛媛;邵志鹏;周诚;陈牧;管小娟;戴造建;李勇 | 申请(专利权)人: | 全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06F8/74;G06F21/57 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 刘静 |
地址: | 102209 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 漏洞 路径 优先级 符号 执行 调度 方法 系统 | ||
1.一种漏洞路径优先级的符号执行调度方法,其特征在于,包括:
获取待挖掘漏洞二进制程序逆向编译的可读文本,并将可读文本划分成多个片段,其中,每个片段中包含至少一个基本块;
计算各基本块的复杂度,并根据各基本块的复杂度计算片段的复杂度,包括:根据指令数量和指令类型计算各基本块的复杂度,通过以下公式计算基本块的复杂度:
其中,Cb为基本块的复杂度,ni为对应指令类型的指令数量,i表示基本块的层级,为对应指令类型的指令权重值,其根据参考指令的时间复杂度O(n)获得,γ为影响系数,N为基本块中涉及到的每一次栈操作时,栈顶到栈底的距离,num为基本块中总的指令数量;
根据片段中各基本块的复杂度及基本块的数量,按照基本块的层级加权累和计算片段的复杂度,其中,基本块的层级由在本片段中到达的条件决定;
根据程序执行路径经过的片段的复杂度计算程序执行路径的复杂度;
根据程序执行路径的复杂度预测疑似漏洞点,结合漏洞存在因素计算疑似漏洞点所在程序执行路径的优先度,并对所有疑似漏洞点所在程序执行路径的优先度进行排序;
对优先度进行排序后的疑似漏洞点所在的程序执行路径进行符号执行,当符号执行遇到分支指令时,判断跳转后的代码是否存在于程序执行路径中,如果超出程序执行路径范围,则抛弃这一分支对应的符号求解值,否则,继续进行符号执行,直至发现崩溃或执行完全部程序执行路径。
2.根据权利要求1所述的漏洞路径优先级的符号执行调度方法,其特征在于,通过以下公式计算片段的复杂度:
其中,θi为对应的片段中处于不同层级的基本块的权重;为不同层级中第一个基本块的复杂度,是不同层级中第二个基本块的复杂度。
3.根据权利要求1所述的漏洞路径优先级的符号执行调度方法,其特征在于,漏洞存在因素包括:不同漏洞类型的漏洞对应代码出现频率和对应代码复杂度。
4.根据权利要求1所述的漏洞路径优先级的符号执行调度方法,其特征在于,通过以下公式计算程序执行路径的复杂度:
Cr=V(G)(Cf1+Cf2+…)
V(G)=e-n+2
其中,V(G)为一条程序执行路径的圈复杂度,Cfi为程序执行路径中涉及到的所有片段的复杂度,e为一条程序执行路径中边的数量,n为控制流图中的节点数量。
5.根据权利要求1所述的漏洞路径优先级的符号执行调度方法,其特征在于,通过以下公式计算疑似漏洞所在程序执行路径的优先度:
其中,Pv为漏洞出现概率,Pc为对应的与代码复杂度的关系,Cri是一条程序执行路径的复杂度,α为不同漏洞类型漏洞对应代码出现频率的权重值,β为对应的代码复杂度的权重值,α+β=1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学,未经全球能源互联网研究院有限公司;国家电网有限公司;国网浙江省电力有限公司;南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010390833.9/1.html,转载请声明来源钻瓜专利网。