[发明专利]代码检测方法、装置、计算机可读介质及电子设备在审
申请号: | 202111574670.0 | 申请日: | 2021-12-21 |
公开(公告)号: | CN114238131A | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 袁淑美;纪妙;闫保奇 | 申请(专利权)人: | 中国电信股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 孙宝海;阚梓瑄 |
地址: | 100033 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 检测 方法 装置 计算机 可读 介质 电子设备 | ||
本申请属于数据安全技术领域,具体涉及一种代码检测方法、装置、计算机可读介质及电子设备。本申请通过获取白名单列表和待检测代码;并根据所述白名单列表生成字典树;利用广度优先遍历方法对所述字典树中的每个节点进行遍历,并构建所述字典树中的每个节点的失配指针,形成白名单多模式匹配自动机;再将所述待检测代码进行预处理后输入到所述白名单多模式匹配自动机中进行匹配,输出检测结果。利用本申请的方法,可以一次性生成字典树,并可以将待检测代码通过白名单多模式匹配自动机进行匹配,可以实现一次性进行多模式匹配,匹配效率大大提高,代码的检测效率高。
技术领域
本申请属于数据安全技术领域,具体涉及一种代码检测方法、代码检测装置、计算机可读介质以及电子设备。
背景技术
代码检测主要是解决源代码中存在的安全问题,目前常用的代码检测方法有静态检测、交互式检测、动态检测等,但是这些方法对于代码的检测准确率难以保证,避免不了出现误报的现象。
为了降低检测的误报,可以通过白名单、规则集等方式进行过滤。现有的代码安全检测所使用的白名单过滤方法主要通过将白名单和检测对象进行对比的方式,来过滤检测对象中与白名单相同的对象,以此来降低误报。但是,这种过滤的方式需要将检测对象与白名单中的内容一一进行对比,效率低下,不利于代码的检测。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种代码检测,,至少在一定程度上克服相关技术中代码检测效率低下等技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种代码检测方法,包括:
获取白名单列表和待检测代码;
根据所述白名单列表生成字典树;
利用广度优先遍历方法对所述字典树中的每个节点进行遍历,并构建所述字典树中的每个节点的失配指针,形成白名单多模式匹配自动机;
将所述待检测代码进行预处理后输入到所述白名单多模式匹配自动机中进行匹配,输出检测结果。
在本申请的一些实施例中,基于以上技术方案,根据所述白名单列表生成字典树的方法,包括:
提取所述白名单列表中的字符串;
对所述字符串进行哈希运算,得到字符串编码;
将所述字符串编码进行拼接形成字符串组;
根据所述字符串组建立字典树。
在本申请的一些实施例中,基于以上技术方案,所述白名单列表包括多个安全代码;提取所述白名单列表中的字符串的方法,包括:
提取所述安全代码的签名信息,所述签名信息包括以下至少一种:包名、类名、方法名、返回值和代码参数。
在本申请的一些实施例中,基于以上技术方案,根据所述字符串组建立字典树的方法,包括:
构建空白节点作为根节点;
以所述根节点为起始节点,以所述字符串组的各个字符为边,以所述字符串组的字符组成的前缀为次级节点,构建字典树。
在本申请的一些实施例中,基于以上技术方案,构建所述字典树中的每个节点的失配指针的方法,包括:
寻找待定节点的父节点,所述待定节点是所述字典树中所包含的一个次级节点;
判断所述待定节点指向所述父节点的边所对应的字符与所述字典树中的其它次级节点的关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电信股份有限公司,未经中国电信股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111574670.0/2.html,转载请声明来源钻瓜专利网。