发明名称 基于智能路径引导的敏感点逼近方法
摘要 本发明涉及一种基于智能路径引导的敏感点逼近方法,包含:提取不同类型的漏洞模型,通过静态分析识别敏感点位置;以敏感点为起点,采用路径回溯算法向上回溯,查找所有路径分支点,直至回溯到离程序入口点最近的路径分支点;对被测程序进行指令级插桩,输入初始样本,记录与污点有关的二进制指令序列;将二进制指令序列提升为中间语言描述;获得中间语言描述的路径分支点,根据分支点是否位于集合中,对分支点进行翻转,引导控制流抵达敏感点;从翻转后的中间语言描述中提取约束范式,使用STP约束求解器进行求解,产生新的样本,返回重新输入样本。本发明通过敏感点引导控制流抵达敏感点位置,有效缓解路径爆炸的问题,提高漏洞挖掘的效率。
申请公布号 CN105487983A 申请公布日期 2016.04.13
申请号 CN201510997194.1 申请日期 2015.12.24
申请人 郑州恩倍网络科技有限公司 发明人 宋建杨;刘高坡;周泽斌;徐晶晶
分类号 G06F11/36(2006.01)I;G06F9/44(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 郑州大通专利商标代理有限公司 41111 代理人 陈大通
主权项 一种基于智能路径引导的敏感点逼近方法,其特征在于:包含如下步骤:步骤1.标记敏感点,提取不同类型的漏洞模型,通过静态分析,识别出可疑的漏洞位置,标记为敏感点;步骤2.以敏感点为起点,采用路径回溯算法向上回溯,查找所有路径分支点,找到跳转指令地址,直至回溯到离程序入口点最近的路径分支点,将所有的路径分支点放入可达路径集合T=(t<sub>1</sub>,t<sub>2</sub>...t<sub>m</sub>);步骤3.对被测程序进行指令级插桩,输入初始样本,记录与污点有关的二进制指令序列;步骤4.将二进制指令序列提升为中间语言描述;步骤5.获得中间语言描述的路径分支点P=(p<sub>1</sub>,p<sub>2</sub>...p<sub>n</sub>),第一个分支点p<sub>1</sub>肯定在集合T=(t<sub>1</sub>,t<sub>2</sub>...t<sub>m</sub>)中,并且p<sub>1</sub>=t<sub>1</sub>,根据分支点是否位于集合T中,对分支点进行翻转,引导控制流抵达敏感点,若p<sub>i</sub>∈T且<img file="FDA0000889192070000011.GIF" wi="203" he="71" />(1≤i<n),则将中间语言描述中的分支点p<sub>i</sub>进行翻转,若p<sub>i</sub>∈T且p<sub>i+1</sub>∈T(1≤i<n),则不改变分支点,找到不在集合T中的分支点,若所有分支点都在集合T中,说明控制流已抵达敏感点,算法结束,否则,进入步骤6;步骤6.从翻转后的中间语言描述中提取约束范式,使用STP约束求解器进行求解,产生新的样本,回到步骤3,重新输入样本。
地址 450000 河南省郑州市高新区翠竹街6号国家863中部软件园9号楼4楼422