[发明专利]面向C程序缺陷检测的靶向式并行符号执行方法有效
申请号: | 201910428120.4 | 申请日: | 2019-05-22 |
公开(公告)号: | CN110221973B | 公开(公告)日: | 2022-12-16 |
发明(设计)人: | 张俊贤;赵曦 | 申请(专利权)人: | 湖南泛联新安信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 长沙科明知识产权代理事务所(普通合伙) 43203 | 代理人: | 吴兰秀 |
地址: | 410005 湖南省长沙市开福区伍家岭街道*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 程序 缺陷 检测 靶向 并行 符号 执行 方法 | ||
本发明涉及一种面向C程序缺陷检测的靶向式并行符号执行方法,其包括分布式计算系统,所述分布式计算系统包括一个主控节点和多个计算节点,所述主控节点任务预处理和任务分派包括以下步骤:步骤S1、源代码编译到中间代码;步骤S2、静态分析出疑似漏洞点;步骤S3、建立程序依赖图;步骤S4、图算法遍历程序依赖图G;步骤S5、将子图置入队列;步骤S6、记录计算节点的状态;步骤S7、初始化计算节点;步骤S8、中间代码的分配;步骤S9、遍历队列ListTask;步骤S10、各计算节点开始计算任务;步骤S11、更新元组NS;步骤S12、主控节点通知各计算节点结束,收取并汇总各计算节点所提交的处理结果。本发明实现了对源代码缺陷分析目标的快速精准定位和验证。
技术领域
本发明涉及信息技术领域,尤其涉及一种面向C程序缺陷检测的靶向式并行符号执行方法。
背景技术
符号执行是一种精确度较高的程序分析技术。该技术使用符号化输入代替实际输入来模拟执行目标程序,使用符号表达式刻画执行路径上程序指令的语义。在遇到条件语句时,分支条件被加入到当前路径的路径条件中,通过调用SMT求解器对路径条件的可满足性进行求解来判断路径是否实际可行,通过对路径条件约束子集变异后得到的新约束集合,通过使用SMT求解器对新约束集合求解,循环以上过程以穷举分析目标程序的路径空间。计算资源开销过大和路径空间爆炸问题导致符号执行技术难以高效分析大规模代码,是该技术目前存在的主要问题。
发明内容
针对现有技术的不足,本发明提供一种面向C程序缺陷检测的靶向式并行符号执行方法,有机结合静态分析“快”和符号执行“准”的优点,在利用静态分析的优势保证高效率的同时,利用符号执行的精度优势,实现对源代码缺陷分析目标的快速精准定位和验证。
本发明解决其技术问题所采用的技术方案是:
所述面向C程序缺陷检测的靶向式并行符号执行方法包括分布式计算系统,所述分布式计算系统包括一个主控节点和多个计算节点,所述主控节点负责任务的预处理和任务的分派,所述计算节点负责任务处理;
所述主控节点任务预处理和任务分派包括以下步骤:
步骤S1、源代码编译到中间代码:主控节点利用C代码编译前端将源代码编译到中间代码;
步骤S2、静态分析出疑似漏洞点:主控节点对源代码做静态分析,给出疑似漏洞点p1,p2,…pn,各漏洞点分别对应中间代码中的一条指令;
步骤S3、建立程序依赖图:主控节点分析中间代码,依次建立程序依赖图GEntry,其中Entry为程序依赖图G的入口;
步骤S4、图算法遍历程序依赖图G:主控节点使用图算法遍历程序依赖图G,分别针对p1,p2,…pn,得到子图G1、G2、…Gn,对于Gi,i∈[1,2,3…,n],入口为Entry,出口为pi;
步骤S5、将子图置入队列:主控节点将子图G1、G2、…Gn置入队列ListTask;
步骤S6、记录计算节点的状态:主控节点使用状态向量StateVecter记录各计算节点的状态,状态向量StateVecter的每个单元为一个元组NSID,IP,PORT,IdleCoreNumber,WORKSTATE;
步骤S7、初始化计算节点:分布式计算系统启动时,主控节点进入初始状态,完成步骤S1~S5后,根据预先设定的计算节点相关信息,分别为每个计算节点i设置对应的元组NSi进行初始化,并进入等待状态,接收各计算节点的注册请求;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南泛联新安信息科技有限公司,未经湖南泛联新安信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910428120.4/2.html,转载请声明来源钻瓜专利网。