发明名称 一种基于安全漏洞缺陷模式的检测方法
摘要 本发明公开了一种基于安全漏洞缺陷模式的检测方法,包括:读取被测程序源代码文件进行预处理,解析安全漏洞模式对应的安全漏洞状态机描述文件;再对被测程序代码进行词法、语法分析,构造出被测程序的抽象语法树;根据抽象语法树构造控制流图,生成符号表;然后进行变量取值区间集的计算与更新,并根据符号表、对被测程序进行函数调用关系分析生成函数调用关系图,再建立ud/du链;通过建立安全漏洞模式状态机并调用ud/du链,对控制流图进行遍历,计算控制流图上每个节点安全漏洞状态机的状态变迁,若安全漏洞状态机进入缺陷状态,则报告对应的检查点,测试完毕后输出安全漏洞测试报表。本发明方法具有自动化程度高、测试精度高的优点。
申请公布号 CN101482847B 申请公布日期 2011.06.29
申请号 CN200910003082.4 申请日期 2009.01.19
申请人 北京邮电大学 发明人 宫云战;刘传昌;陈俊亮;杨朝红;肖庆;金大海;李飞宇
分类号 G06F11/36(2006.01)I;G06F21/00(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京汇泽知识产权代理有限公司 11228 代理人 黄挺
主权项 一种基于安全漏洞缺陷模式的检测方法,其特征在于,该方法包括:A、读取被测程序源代码文件及软件安全漏洞模式对应的安全漏洞检测状态机描述文件,对所述被测程序进行预处理和解析安全漏洞检测状态机描述文件,并对被测程序进行词法分析和语法分析,生成被测程序的抽象语法树;B、根据所构造的抽象语法树,生成反映被测程序控制结构的控制流图和根据所构造的抽象语法树,并创建被测程序的符号表;C、根据所生成的控制流图和所创建的符号表,沿着被测程序控制流正向遍历控制流图;采用递归调用的方法,进行变量取值区间集的计算与更新;并且根据生成的符号表,对被测程序进行函数调用关系分析,生成函数调用关系图,同时建立ud/du链;其中,所述建立ud/du链的过程为通过对变量的赋值和变量的使用将定义的使用关系存储在ud链中、通过保存当前定义所有可能的使用列表保存在du链中,所述ud/du链用于供安全漏洞检测状态机调用;D、建立安全漏洞检测状态机,以函数为单位,根据函数调用关系图对控制流图进行遍历,并根据所述建立的ud/du链对程序代码进行软件漏洞测试,并生成软件漏洞测试报告;其中,所述根据所述建立的ud/du链对程序代码进行软件漏洞测试的过程为根据函数调用关系图对控制流图进行遍历,并根据安全漏洞检测状态机描述文件中关于安全漏洞状态、状态变迁以及引起状态变迁的动作的描述,计算控制流图上每个节点安全漏洞检测状态机的状态变迁,如果安全漏洞检测状态机进入软件缺陷状态,则报告对应的检查点IP。
地址 100876 北京市海淀区西土城路10号