(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210477950.8
(22)申请日 2022.05.05
(65)同一申请的已公布的文献号
申请公布号 CN 114579969 A
(43)申请公布日 2022.06.03
(73)专利权人 北京邮电大 学
地址 100876 北京市海淀区西土城路10号
(72)发明人 金正平 刘益辰 张华 涂腾飞
傅茂喜 赵立健 侯俊杰
(74)专利代理 机构 北京风雅颂专利代理有限公
司 11403
专利代理师 金含
(51)Int.Cl.
G06F 21/56(2013.01)
G06F 21/57(2013.01)G06F 16/2455(2019.01)
(56)对比文件
CN 114036526 A,202 2.02.11
CN 102955914 A,2013.0 3.06
审查员 王彦男
(54)发明名称
漏洞检测方法、 装置、 电子设备及存 储介质
(57)摘要
本申请提供一种漏洞检测方法、 装置、 电子
设备及存储介质, 所述方法包括: 获取待检测文
件的源代码, 源代码对应的语 法结构包括节点和
节点信息; 通过语 法分析将所述源代码转化为对
应的中间表 示; 根据中间表示对 所述源代码中预
先存储的敏感函数中的用户变量进行逆向回溯,
得到回溯结果; 基于中间表示对 所述节点信息采
用利用链方法进行查询, 得到漏洞利用链; 将回
溯结果和所述漏洞利用链作为待检测文件的漏
洞检测结果。 根据源代码的中间表 示对源代码采
用逆向回溯的方法得到源代码中漏洞的具体位
置, 解决了当前已有 方式无法进行漏洞代码定位
的问题。 并且通过节点信息的存储避免了扫描源
代码带来的占用内存大和挖掘效率低的问题。
权利要求书2页 说明书10页 附图4页
CN 114579969 B
2022.08.23
CN 114579969 B
1.一种漏洞检测方法, 其特 征在于, 包括:
获取待检测文件的源代码, 所述源代码对应的语法结构包括节点和节点信息;
通过语法分析将所述源代码转化为对应的中间表示, 其中, 所述中间表示包括语法树
和控制流图;
获取所述源代码中预先存储的敏感函数和所述敏感函数中用户变量对应的变量来源;
根据所述敏感函数遍历所述语法树中的节点, 得到敏感函数节点, 其中, 所述敏感函数节 点
的类型为函数调用; 基于所述控制流图对所述敏感函数节点进 行逆向回溯, 得到前驱节点;
通过对比所述前驱节点中的变量和所述变量 来源得到回溯结果;
将所述语法树中的所有节点进行分类, 得到终点节点和可递归节点, 其中, 所述终点节
点至少包括所述敏感函数节点; 响应于确定所述语法树中的所有节点中的一个节点属于所
述可递归节点, 获取该节点的内部语法树并采用递归利用链方法查询, 并将查询结果添加
到节点数据库; 响应于确定所述语法树中的所有节点中的一个节点属于终点节点, 将所述
节点对应的节点信息添加到所述节点数据库;
获取魔术方法集; 根据所述魔术方法集在所述节点数据库中检索, 得到调用所述魔术
方法集中任意魔术方法的调用节点; 响应于确定所述调用节点中的内部语句包括所述敏感
函数且所述内部语句中的敏感函数包括可控变量, 将所述调用节点对应的利用链作为漏洞
利用链, 其中, 所述利用链指的是多个漏洞 利用组合在一 起以危害目标的网络攻击方式;
将所述回溯结果和所述漏洞 利用链作为所述待检测文件的漏洞检测结果。
2.根据权利要求1所述的方法, 其特征在于, 所述基于所述控制流图对所述敏感函数节
点进行逆向回溯, 得到前驱节点, 包括:
基于所述控制流图获取 所述敏感函数节点的基本块 位置;
根据所述基本块 位置对所述敏感函数节点进行逆向回溯, 得到所述前驱节点。
3.根据权利要求1所述的方法, 其特征在于, 所述通过对比所述前驱节点中的变量和所
述变量来源得到回溯结果, 包括:
响应于确定所述前驱节点中的变量符合所述变量来源, 将所述前驱节点到所述敏感函
数节点的路径作为回溯结果;
响应于确定所述前驱节点的变量不符合所述变量来源, 基于所述控制流图更新所述前
驱节点直至所述前驱节点 不能逆向回溯。
4.一种漏洞检测装置, 其特 征在于, 包括:
获取模块, 被配置为获取待检测文件的源代码, 所述源代码对应的语法结构包括节点
和节点信息;
转化模块, 被配置为通过语法分析将所述源代码转化为对应的中间表示, 其中, 所述中
间表示包括语法树和控制流图;
定位模块, 被配置为获取所述源代码中预先存储的敏感函数和所述敏感函数中用户变
量对应的变量来源; 根据所述敏感函数遍历所述语法树中的节点, 得到敏感函数节点, 其
中, 所述敏感函数节点的类型为函数调用; 基于所述控制流图对所述敏感函数节点进行逆
向回溯, 得到前驱节点; 通过对比所述前驱节点中的变量和所述变量 来源得到回溯结果;
利用链获取模块, 被配置为将所述语法树中的所有节点进行分类, 得到终点节点和可
递归节点, 其中, 所述 终点节点至少包括所述敏感函数节点; 响应于确定所述语法树中的所权 利 要 求 书 1/2 页
2
CN 114579969 B
2有节点中的一个节点属于所述可递归节点, 获取该节点的内部语法树并采用递归利用链 方
法查询, 并将查询结果添加到节点数据库; 响应于确定所述语法树中的所有节点中的一个
节点属于终点节点, 将所述节点对应的节点信息添加到所述节点数据库;
所述利用链获取模块, 还被配置为获取魔术方法集; 根据所述魔术方法集在所述节点
数据库中检索, 得到调用所述魔术方法集中任意魔术方法的调用节点; 通过遍历所述调用
节点的内部语句确定漏洞利用链; 响应于确定所述调用节点中的内部语句包括所述敏感函
数且所述内部语句中的敏感函数包括可控变量, 将所述调用节点对应的利用链作为漏洞利
用链, 其中, 所述利用链指的是多个漏洞 利用组合在一 起以危害目标的网络攻击方式;
结果模块, 被配置为将所述 回溯结果和所述漏洞利用链作为所述待检测文件的漏洞检
测结果。
5.一种电子设备, 其特征在于, 包括存储器、 处理器及存储在所述存储器上并可由所述
处理器执行的计算机程序, 所述处理器执行所述计算机程序时实现如权利要求 1至3任意一
项所述的方法。
6.一种非暂态计算机可读存储介质, 其特征在于, 所述非暂态计算机可读存储介质存
储计算机指令, 所述计算机指令用于使计算机执 行权利要求1至 3任一所述方法。权 利 要 求 书 2/2 页
3
CN 114579969 B
3
专利 漏洞检测方法、装置、电子设备及存储介质
文档预览
中文文档
17 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 00:16:00上传分享