-
公开(公告)号:CN108549535B
公开(公告)日:2021-02-05
申请号:CN201810218332.5
申请日:2018-03-16
Applicant: 北京大学 , 北京北大软件工程股份有限公司
IPC: G06F8/41
Abstract: 本发明提供了一种基于文件依赖关系的高效程序解析方法和系统,该方法包括:S1,对源文件进行分割处理,获取对应的预处理单元集合;S2,对预处理单元集合中的每个预处理单元执行以下处理:若确认预处理单元的类型为预处理指令中的文件包含指令,则提取预处理单元中的头文件;若确认存在通过预先解析头文件获取到的抽象语法树,则将头文件的抽象语法树链接至源文件的抽象语法树;若确认不存在通过预先解析头文件获取到的抽象语法树,则将头文件作为源文件执行步骤S1和S2以对头文件进行解析。本发明判断头文件是否被预先解析,将预先解析得到的抽象语法树链接至源文件的抽象语法树,避免相同头文件的重复解析,减少了程序解析时间。
-
公开(公告)号:CN109063483A
公开(公告)日:2018-12-21
申请号:CN201810643006.9
申请日:2018-06-21
Applicant: 北京大学 , 北京北大软件工程股份有限公司
Abstract: 本发明提供一种基于路径追踪的漏洞检测方法及系统,其中方法包括:对于当前测试用例,获取当前测试用例在待检测程序中运行时产生的第一运行路径;将第一运行路径与预设漏洞路径进行匹配,若第一运行路径与预设漏洞路径完全匹配,则根据当前测试用例检测待检测程序中的漏洞。该方法及系统以预设漏洞路径为标准,当且仅当某一个当前测试用例在待检测程序中运行时产生的第一运行路径与预设漏洞路径完全匹配时,才确定该当前测试用例为能够触发待检测程序中漏洞的测试用例,最终确定的测试用例能够有效检测出待检测程序中的漏洞,克服了现有的模糊测试工具在进行程序漏洞检测时难以确保有效检测出漏洞的问题,一定程度上提高了漏洞检测的效率。
-
公开(公告)号:CN108549535A
公开(公告)日:2018-09-18
申请号:CN201810218332.5
申请日:2018-03-16
Applicant: 北京大学 , 北京北大软件工程股份有限公司
IPC: G06F8/41
Abstract: 本发明提供了一种基于文件依赖关系的高效程序解析方法和系统,该方法包括:S1,对源文件进行分割处理,获取对应的预处理单元集合;S2,对预处理单元集合中的每个预处理单元执行以下处理:若确认预处理单元的类型为预处理指令中的文件包含指令,则提取预处理单元中的头文件;若确认存在通过预先解析头文件获取到的抽象语法树,则将头文件的抽象语法树链接至源文件的抽象语法树;若确认不存在通过预先解析头文件获取到的抽象语法树,则将头文件作为源文件执行步骤S1和S2以对头文件进行解析。本发明判断头文件是否被预先解析,将预先解析得到的抽象语法树链接至源文件的抽象语法树,避免相同头文件的重复解析,减少了程序解析时间。
-
公开(公告)号:CN112579476A
公开(公告)日:2021-03-30
申请号:CN202110198625.3
申请日:2021-02-23
Applicant: 北京北大软件工程股份有限公司
IPC: G06F11/36 , G06F16/9535
Abstract: 本发明实施例涉及软件测试领域,公开了一种漏洞和软件对齐的方法、装置以及存储介质,包括:抓取安全漏洞发布网站发布的漏洞信息,建立公开漏洞资源数据库;建立包含公开漏洞的软件信息数据库;以 的键值对为关键词,在指定网站范围内进行搜索,将对应键值对的搜索结果插入软件信息数据库;根据上一步得到的软件信息数据库进行过滤,筛选其中符合对齐要求的软件信息并设置为可信,标识其为对齐完成数据;每次更新漏洞数据库时查找并更新软件信息数据库;本发明基于搜索引擎的庞大搜索量所训练的推荐算法,能够获得较为准确的开源软件的源代码仓库地址,或者闭源软件的二进制下载链接。
-
公开(公告)号:CN109002712A
公开(公告)日:2018-12-14
申请号:CN201810650652.8
申请日:2018-06-22
Applicant: 北京大学 , 北京北大软件工程股份有限公司
IPC: G06F21/56
Abstract: 本发明提供一种基于值依赖图的污染数据分析方法、系统与电子设备,所述方法包括:S1,将目标计算机程序转换为守卫值依赖图,并通过自定义外部输入函数摘要和外部输入函数摘要用户定义接口,在所述守卫值依赖图上确定多个污染传播起始点;S2,基于污染传播规则、用户自定义漏洞特征的节点特征以及所述污染传播起始点,构成污染传播图;S3,基于所述污染传播图,通过对各所述污染传播起始点进行向下的广搜计算,获取对应的污染传播路径和每一条所述污染传播路径的污染类型。本发明能够清晰且便利的表达污染数据传播范围、传播关系和每一条路径的污染传播类型,保证污染数据传播范围的全面性。
-
公开(公告)号:CN108984843A
公开(公告)日:2018-12-11
申请号:CN201810634710.8
申请日:2018-06-20
Applicant: 北京大学 , 北京北大软件工程股份有限公司
IPC: G06F17/50
Abstract: 本发明提供一种基于守卫计算的区间信息分析方法,包括:S1,对于值依赖图中任一结点,根据该结点与该结点的任一前驱结点间的守卫条件获取守卫条件对应的条件判断结点;S2,根据条件判断结点的前驱结点的区间信息,计算条件判断结点的区间信息,进一步确认条件判断结点的属性;属性为假、真和可满足中的一种;S3,根据条件判断结点的属性,确认条件判断结点对应的守卫条件的区间信息;S4,根据该结点的各前驱结点的区间信息和该结点与该结点的各前驱结点间的守卫条件的区间信息,获取该结点的区间信息。本发明提供的方法,补偿了值依赖图缺少控制流信息的不足,提高了分析精度。
-
公开(公告)号:CN115080985A
公开(公告)日:2022-09-20
申请号:CN202210887831.X
申请日:2022-07-27
Applicant: 北京北大软件工程股份有限公司
Abstract: 本发明涉及一种基于分块的大规模代码静态分析方法和系统。其中方法包括:将大规模工程程序按照工程粒度需求进行分块;针对各块,构建值依赖模型,将块对应的值依赖子图存储到数据库中作持久化保存;分析各块的值依赖子图中的程序漏洞,构建块漏洞表;遍历各块漏洞表,将漏洞表内的漏洞分类为可信漏洞和不可信漏洞;分析不可信漏洞,根据当前值依赖子图中的漏洞与数据库中其他值依赖子图之间的关联性对子图进行拓展,获得根据漏洞完整化的拓展子图;分析所有拓展子图,验证已发现漏洞并检测是否包含新漏洞,将获取的结果与可信漏洞合并后输出。本发明适用于上亿行代码的静态代码分析,可以实现准确有效的分析。
-
公开(公告)号:CN112579476B
公开(公告)日:2021-05-18
申请号:CN202110198625.3
申请日:2021-02-23
Applicant: 北京北大软件工程股份有限公司
IPC: G06F11/36 , G06F16/9535
Abstract: 本发明实施例涉及软件测试领域,公开了一种漏洞和软件对齐的方法、装置以及存储介质,包括:抓取安全漏洞发布网站发布的漏洞信息,建立公开漏洞资源数据库;建立包含公开漏洞的软件信息数据库;以 的键值对为关键词,在指定网站范围内进行搜索,将对应键值对的搜索结果插入软件信息数据库;根据上一步得到的软件信息数据库进行过滤,筛选其中符合对齐要求的软件信息并设置为可信,标识其为对齐完成数据;每次更新漏洞数据库时查找并更新软件信息数据库;本发明基于搜索引擎的庞大搜索量所训练的推荐算法,能够获得较为准确的开源软件的源代码仓库地址,或者闭源软件的二进制下载链接。
-
公开(公告)号:CN107085533B
公开(公告)日:2019-09-06
申请号:CN201710189131.2
申请日:2017-03-27
Applicant: 北京北大软件工程股份有限公司
IPC: G06F8/41
Abstract: 本发明提供一种指针修改影响的分析方法和系统,所述方法包括:在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;基于定义点、语句以及程序入口的关系,获得对应该定义点的多个路径条件;以及判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。本发明提高结果的精度,做到了部分路径敏感以及流敏感,使采用该分析算法的静态代码缺陷检测结果更加精确。
-
公开(公告)号:CN109446066A
公开(公告)日:2019-03-08
申请号:CN201811101415.2
申请日:2018-09-20
Applicant: 北京大学 , 北京北大软件工程股份有限公司
IPC: G06F11/36
Abstract: 本发明实施例提供一种C/C++程序中不可达代码的静态检测方法及系统,其中,所述方法包括:构建待检测C/C++程序的控制依赖图和值依赖图;在所述值依赖图上进行常量分析,并根据常量分析的结果更新所述控制依赖图;对更新后的所述控制依赖图中所有守卫结点的约束表达式的可满足性进行求解;若存在不可满足的约束表达式,则从所述控制依赖图中获取与所述不可满足的约束表达式相对应的守卫结点的所有直接和间接后继结点所对应的程序代码。本发明可以检测千万行级的代码,检测速度可达到每小时百万行以上,并且检测精度超过利用符号执行技术的检测精度,具有较低的误报率和漏报率。
-
-
-
-
-
-
-
-
-