本申请涉及数据处理,具体涉及一种数据漏洞的自动检测方法、装置、电子设备及存储介质。
背景技术:
1、随着互联网技术的发展,网络安全变得日益重要。各互联网公司越来越注重软件安全,其中一项就是对使用有漏洞的依赖数据进行管控升级。例如,目前比较流行的maven管理的java应用程序,生成的项目最终一般为jar后缀或者war后缀的压缩格式,可以通过解压jar包的方式或者使用官方提供的java.util.jar包中的jarfile工具类编写代码解析jar包,从而确定一个应用程序中的依赖版本。
2、通过上述方式可以快速地查看到一个java应用所依赖的jar包,但是要确定具有数据漏洞风险的jar包就需要一个一个来进行分析核对。由于公司内部也往往也会有大量的java应用,一个一个核对非常浪费时间,并且人工核对又容易有遗漏,因此对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大。
技术实现思路
1、本申请的目的是提供一种数据漏洞的自动检测方法、装置、电子设备及存储介质,以解决相关技术中存在的对数据漏洞的检出率不高,容易遗漏,并且检测效率不高、人工检测所需成本过大的技术问题。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
2、根据本申请实施例的一个方面,提供一种数据漏洞的自动检测方法,包括:
3、从应用程序包的历史数据中获取依赖数据集;
4、扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
5、利用所述具有数据漏洞的依赖数据构建漏洞字典;
6、根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
7、在本申请的一些实施例中,所述从应用程序包的历史数据中获取依赖数据集,包括:
8、获取所述历史数据的线程代码;
9、获取对应于所述线程代码的依赖注解;
10、根据预设的注解解析规则解析所述依赖注解,得到依赖数据集。
11、在本申请的一些实施例中,所述根据预设的注解解析规则解析所述依赖注解之前,所述方法还包括:
12、对所述依赖注解执行分词操作,得到多个字符串组合;
13、根据所有所述字符串组合将所述依赖注解转换为图结构注解或树形结构注解;
14、所述根据预设的注解解析规则解析所述依赖注解,得到依赖数据集,包括:根据预设的注解解析规则解析所述图结构注解或树形结构注解,得到依赖数据集。
15、在本申请的一些实施例中,所述图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;所述第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,所述其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
16、在本申请的一些实施例中,所述根据预设的注解解析规则解析依赖注解,包括:
17、提取所述图结构注解中第一层次节点得到执行操作关键词;
18、提取所述图结构注解中其他层次的节点得到执行操作数据表;
19、利用所述执行操作关键词与所述执行操作数据表构成解析结果。
20、在本申请的一些实施例中,所述扫描所述依赖数据集,获得具有数据漏洞的依赖数据,包括:
21、检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。
22、在本申请的一些实施例中,所述根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,包括:
23、将所述应用程序包的实时数据与所述漏洞字典进行查找比对;
24、若在所述实时数据中查找到与所述漏洞字典对应的数据,则确定存在所述实时数据中存在数据漏洞;
25、若未在所述实时数据中查找到与所述漏洞字典对应的数据,则确定所述实时数据中不存在数据漏洞。
26、根据本申请实施例的另一个方面,提供一种数据漏洞的自动检测装置,包括:
27、依赖数据集获取模块,用于从应用程序包的历史数据中获取依赖数据集;
28、漏洞扫描模块,用于扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
29、漏洞字典构建模块,用于利用所述具有数据漏洞的依赖数据构建漏洞字典;
30、数据漏洞检测模块,用于根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
31、根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述任一项所述的数据漏洞的自动检测方法。
32、根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一项所述的数据漏洞的自动检测方法。
33、本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:
34、本申请实施例提供的数据漏洞的自动检测方法,从应用程序包的历史数据中获取依赖数据集,扫描所述依赖数据集,获得具有数据漏洞的依赖数据,利用所述具有数据漏洞的依赖数据构建漏洞字典,根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,能够实现数据漏洞的自动检测,大大提高了对数据漏洞的检出率,降低了数据漏洞被遗漏的概率,降低了人工成本,解决了相关技术中存在的对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大的技术问题。
35、本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。
1.一种数据漏洞的自动检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述从应用程序包的历史数据中获取依赖数据集,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据预设的注解解析规则解析所述依赖注解之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;所述第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,所述其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
5.根据权利要求4所述的方法,其特征在于,所述根据预设的注解解析规则解析依赖注解,包括:
6.根据权利要求1所述的方法,其特征在于,所述扫描所述依赖数据集,获得具有数据漏洞的依赖数据,包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,包括:
8.一种数据漏洞的自动检测装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-7中任一所述的数据漏洞的自动检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现如权利要求1-7中任一所述的数据漏洞的自动检测方法。