CN116401676A - 数据漏洞的自动检测方法、装置、电子设备及存储介质 - Google Patents
数据漏洞的自动检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116401676A CN116401676A CN202310413496.4A CN202310413496A CN116401676A CN 116401676 A CN116401676 A CN 116401676A CN 202310413496 A CN202310413496 A CN 202310413496A CN 116401676 A CN116401676 A CN 116401676A
- Authority
- CN
- China
- Prior art keywords
- data
- dependent
- annotation
- vulnerability
- loopholes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种数据漏洞的自动检测方法、装置、电子设备及存储介质。该数据漏洞的自动检测方法,包括:从应用程序包的历史数据中获取依赖数据集;扫描依赖数据集,获得具有数据漏洞的依赖数据;利用具有数据漏洞的依赖数据构建漏洞字典;根据漏洞字典检测应用程序包的实时数据中是否存在数据漏洞。本申请实施例提供的数据漏洞的自动检测方法,从应用程序包的历史数据中获取依赖数据集,扫描依赖数据集,获得具有数据漏洞的依赖数据,利用具有数据漏洞的依赖数据构建漏洞字典,根据漏洞字典检测应用程序包的实时数据中是否存在数据漏洞,能够实现数据漏洞的自动检测,提高了对数据漏洞的检出率,降低了数据漏洞被遗漏的概率,降低了人工成本。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据漏洞的自动检测方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,网络安全变得日益重要。各互联网公司越来越注重软件安全,其中一项就是对使用有漏洞的依赖数据进行管控升级。例如,目前比较流行的Maven管理的Java应用程序,生成的项目最终一般为jar后缀或者war后缀的压缩格式,可以通过解压jar包的方式或者使用官方提供的java.util.jar包中的JarFile工具类编写代码解析jar包,从而确定一个应用程序中的依赖版本。
通过上述方式可以快速地查看到一个Java应用所依赖的jar包,但是要确定具有数据漏洞风险的jar包就需要一个一个来进行分析核对。由于公司内部也往往也会有大量的Java应用,一个一个核对非常浪费时间,并且人工核对又容易有遗漏,因此对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大。
发明内容
本申请的目的是提供一种数据漏洞的自动检测方法、装置、电子设备及存储介质,以解决相关技术中存在的对数据漏洞的检出率不高,容易遗漏,并且检测效率不高、人工检测所需成本过大的技术问题。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本申请实施例的一个方面,提供一种数据漏洞的自动检测方法,包括:
从应用程序包的历史数据中获取依赖数据集;
扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
利用所述具有数据漏洞的依赖数据构建漏洞字典;
根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
在本申请的一些实施例中,所述从应用程序包的历史数据中获取依赖数据集,包括:
获取所述历史数据的线程代码;
获取对应于所述线程代码的依赖注解;
根据预设的注解解析规则解析所述依赖注解,得到依赖数据集。
在本申请的一些实施例中,所述根据预设的注解解析规则解析所述依赖注解之前,所述方法还包括:
对所述依赖注解执行分词操作,得到多个字符串组合;
根据所有所述字符串组合将所述依赖注解转换为图结构注解或树形结构注解;
所述根据预设的注解解析规则解析所述依赖注解,得到依赖数据集,包括:根据预设的注解解析规则解析所述图结构注解或树形结构注解,得到依赖数据集。
在本申请的一些实施例中,所述图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;所述第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,所述其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
在本申请的一些实施例中,所述根据预设的注解解析规则解析依赖注解,包括:
提取所述图结构注解中第一层次节点得到执行操作关键词;
提取所述图结构注解中其他层次的节点得到执行操作数据表;
利用所述执行操作关键词与所述执行操作数据表构成解析结果。
在本申请的一些实施例中,所述扫描所述依赖数据集,获得具有数据漏洞的依赖数据,包括:
检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。
在本申请的一些实施例中,所述根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,包括:
将所述应用程序包的实时数据与所述漏洞字典进行查找比对;
若在所述实时数据中查找到与所述漏洞字典对应的数据,则确定存在所述实时数据中存在数据漏洞;
若未在所述实时数据中查找到与所述漏洞字典对应的数据,则确定所述实时数据中不存在数据漏洞。
根据本申请实施例的另一个方面,提供一种数据漏洞的自动检测装置,包括:
依赖数据集获取模块,用于从应用程序包的历史数据中获取依赖数据集;
漏洞扫描模块,用于扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
漏洞字典构建模块,用于利用所述具有数据漏洞的依赖数据构建漏洞字典;
数据漏洞检测模块,用于根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述任一项所述的数据漏洞的自动检测方法。
根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一项所述的数据漏洞的自动检测方法。
本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:
本申请实施例提供的数据漏洞的自动检测方法,从应用程序包的历史数据中获取依赖数据集,扫描所述依赖数据集,获得具有数据漏洞的依赖数据,利用所述具有数据漏洞的依赖数据构建漏洞字典,根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,能够实现数据漏洞的自动检测,大大提高了对数据漏洞的检出率,降低了数据漏洞被遗漏的概率,降低了人工成本,解决了相关技术中存在的对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大的技术问题。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例的数据漏洞的自动检测方法应用环境图。
图2示出了本申请一个实施例的数据漏洞的自动检测方法流程图。
图3示出了图2中步骤S20的流程图。
图4示出了本申请一个实施例的数据漏洞的自动检测装置结构框图。
图5示出了本申请一个实施例的电子设备结构框图。
图6示出了本申请一个实施例的计算机可读存储介质示意图。
本申请的目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
在数据漏洞检测技术领域,如果长时间未发现漏洞那么被攻击者利用这个漏洞进行攻击的可能性就越大,并且人工核对耗时耗力,无法及时发现第三方依赖漏洞。相关技术中,单次单个项目的检查需要经过这样一个过程:解压应用程序包,检测依赖包是否具为漏洞版本,推进升级。在一个jar包新的漏洞出现的时候,在发现和升级漏洞之间有一个巨大的空白期,无法及时发现漏洞,这样软件系统造成了很大的风险。另外,即便存量的应用漏洞分析检测完成随着时间的推移当前使用的版本的jar依赖也会在后续中出现新的漏洞,新的漏洞从被发现到检测完成的过程中间具有很长的时间间隔,这个时间间隔中这些漏洞风险仍然存在,攻击者仍然有可能利用这些漏洞进行攻击,被攻击之后或者定期的人工进行数据漏洞检测耗时耗力效果也一般。
本申请实施例提供的数据漏洞的自动检测方法,可应用在如图1所示的应用环境中,其中,客户端通过网络与服务端进行通信。服务端可以接收来自客户端的漏洞检测指令,从应用程序包的历史数据中获取依赖数据集,扫描依赖数据集,获得具有数据漏洞的依赖数据,利用具有数据漏洞的依赖数据构建漏洞字典,根据漏洞字典检测应用程序包的实时数据中是否存在数据漏洞,服务端可以将检测结果发送给客户端。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参考图2所示,本申请一个实施例提供了一种数据漏洞的自动检测方法,包括步骤S10至S40:
S10、从应用程序包的历史数据中获取依赖数据集。
在一种实施方式中,从应用程序包的历史数据中获取依赖数据集,包括:获取历史数据的线程代码;获取对应于线程代码的依赖注解;根据预设的注解解析规则解析依赖注解,得到依赖数据集。
线程(thread)是计算机操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
线程代码中包含有用于完成线程的代码。具体地,可以在对应于线程文件的代码库中获取线程代码,以及根据注释软件包对线程代码进行注解,得到对应于线程代码的依赖注解。
注解指的是对一个类或一个方法的扩展模版,每个类或方法按照注解类中的规则来为类或方法注解不同的参数,从而得到不同的类或方法中注解的各种参数与值。
在获取历史数据的线程代码之前,该方法还可以包括:根据编译规则生成注解接口的调用请求;利用该调用请求从编程支持库中获取用于生成注解的注释软件包。
注解接口是用于传输数据依赖的数据传输接口。注释软件包可以为编程语言注解提供支持。
例如,在JAVA语言中,注解这个特性是java5引入进来的,主要是在代码上附带上元数据或标记,注解使代码与一些框架的配置项很好地结合起来,且增加了代码的可读性。
具体地,java编译规则是java语言的语法规则。
通过注释软件包对该线程代码进行依赖注解处理,得到对应于该线程代码的依赖注解,依赖注解包括各种数据依赖关系以及各种数据之间的调用关系。
在一种实施方式中,根据预设的注解解析规则解析依赖注解之前,该方法还包括:对依赖注解执行分词操作,得到多个字符串组合;根据所有字符串组合将依赖注解转换为图结构注解或树形结构注解;根据预设的注解解析规则解析依赖注解,得到依赖数据集,包括:根据预设的注解解析规则解析图结构注解或树形结构注解,得到依赖数据集。
在一种实施方式中,图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
示例性地,获取对应于该线程代码的依赖注解之后,根据预设的注解解析规则解析依赖注解之前,该方法还可以包括:对该依赖注解执行分词操作,得到多个字符串组合;根据所有字符串组合将前述依赖注解转换为图结构注解或树形结构注解。
在一种实施方式中,根据所有字符串组合将前述依赖注解转换为图结构注解。图是一种常见的数据结构和表示形式。具体地,将该依赖注解转换为图结构注解,该图结构注解用于表示依赖注解中各字符串之间的关系,以便于后续对依赖注解进行解析和参考。
图结构注解中的第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,图结构注解中的其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
其中,图结构注解的分层操作可以采用最长路径算法来实现,即一个节点的层级等于要到达它需要走过的最长路径。最长路径算法的优点是速度很快,遍历图即可完成分层。最长路径算法的分层速度较快。
在另一个示例中,图结构注解的分层操作可以包括以下步骤:
1)对图中每条边给定一个最小长度,例如可以设定最小长度为1。
2)计算每一条边的松弛度α,计算公式如下:
α=边的长度-最小长度。
如果松弛度为0,则该边可以称为紧致边。
3)把所有紧致边和节点加入紧致生成树。
每次取松弛度最小的边,如果源节点已在紧致树中,把目标节点向上移动α个层级。如果源节点不在紧致树中,则把源节点向下移动α个层级。
4)循环执行上述步骤,直到紧致树中已经包含了所有的节点为止。
通过上述步骤操作得到的分层后的图结构,减少了边的总长度,同时也就减少了伪节点的数量。
用紧致生成树来表示图并得到节点的层级,能够确保找到的是一个最优的生成树。
边的切割值(cut value):在生成树中,如果移除某条边,图会被分成2部分,边的切割值为所有源部分指向目标部分的边数减去目标部分指向源部分的边数。
具体地,尽可能延长切割值为负的边可以减少边的总长度。
在紧致生成树的基础上,计算每条边的切割值,移除切割值为负的边,另找一条边来构建更优的生成树,直到所有的边的切割值都非负。
紧致生成树结构注解用于表示依赖注解中各字符串之间的关系,以便于后续对依赖注解进行解析和参考。
在另一种实施方式中,根据所有字符串组合将前述依赖注解转换为树形结构注解。树形结构注解中的父节点为所有字符串组合中与预设关键词相匹配的字符串,树形结构注解中的子节点为所有字符串组合中除了父节点之外的字符串。
具体地,对依赖注解执行分词操作,可以包括:利用分词程序将该依赖注解划分为命令语句字符串组合以及子查询语句字符串组合。
具体地,将该依赖注解转换为树形结构注解,该树形结构注解用于表示依赖注解中各字符串之间的关系,以便于后续对依赖注解进行解析和参考。
在一种实施方式中,根据预设的注解解析规则解析依赖注解,包括:提取图结构注解中第一层次节点得到执行操作关键词;提取图结构注解中其他层次的节点得到执行操作数据表;利用执行操作关键词与执行操作数据表构成解析结果。
在另一种实施方式中,根据预设的注解解析规则解析依赖注解,包括:提取该树形结构注解中父节点得到执行操作关键词;提取该树形结构注解中子节点得到执行操作数据表;利用执行操作关键词与执行操作数据表构成解析结果。
具体地,依赖注解例如可以为SELECT Row6,Row8FROM db3.tbWHERE Row3=’2022’AND Row8>20000。
树形结构注解中父节点为SELECTFROM,则执行操作关键词为SELECT FRO,该树形结构注解中的子节点为db3.tb,则执行操作数据表为db3.tb。
具体地,该根据预设的注解解析规则解析依赖注解之前,该方法还包括:删除该依赖注解中的无效数据和定义分隔符。
具体地,删除该依赖注解中的无效数据可以包括:根据预先设定的规则跳过依赖注解中的前预设数目行,即该依赖注解中的前预设数目行不进行解析。在依赖注解中,定义分隔符没有具体的解析意义,所以需要删除定义分隔符。
定义分隔符用于定义依赖注解中的内容数据具体利用哪一种符号进行分隔,例如,csv为逗号分隔符。
S20、扫描依赖数据集,获得具有数据漏洞的依赖数据。
在一种实施方式中,扫描依赖数据集,获得具有数据漏洞的依赖数据,包括:检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。
具体地,检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。根据预先定义出不安全代码的审查规则,通过表达式匹配的方法检查源程序代码。
参考图3所示,在一种实施方式中,扫描依赖数据集,获得具有数据漏洞的依赖数据,可以包括步骤S201至S203:
S201、确定该依赖数据集中对应于该线程代码的依赖数据标识。
本申请实施例中,该确定该依赖数据集中对应于该线程代码的依赖数据标识,包括:
根据该依赖数据集中各个数据之间的依赖关系,将数据组成多个依赖数据对;
遍历该多个依赖数据对获取对应于该线程代码的依赖数据标识。
具体地,该依赖数据集中存在各个数据之间的依赖关系。例如,数据A与数据B之间的依赖关系,数据C与数据D之间的调用关系等,需要将数据组成多个依赖数据对,同时遍历该多个依赖数据对获取对应于该线程代码的依赖数据标识。
例如,当该线程代码中包括数据A时,在多个依赖数据对中筛选出数据A所对应的多个依赖数据对,同时给该数据A所对应的依赖数据对分配依赖数据标识,其中,该依赖数据标识用于标记数据之间的关系。
S202、根据该依赖数据标识判断本地数据库中是否存在依赖数据。
具体地,确定依赖数据集中对应于线程代码的依赖数据标识,并根据依赖数据标识判断本地数据库中是否存在依赖数据。
本地数据库中存储有多组数据,用于在执行线程时提供用于调用的线程数据。
S203、若本地数据库中存储有依赖数据,则直接从本地数据库中调用依赖数据。
在某些实施方式中,若本地数据库中不存在该依赖数据,则根据该依赖数据标识从预设的第三方数据库调用该依赖数据,并根据该依赖数据启动该线程。
本申请实施例中,判断本地数据库中是否存在依赖数据,若不存在,则根据该依赖数据标识从预设的第三方数据库中调用依赖数据,并根据从第三方数据库中调用的数据执行上述操作。
S30、利用具有数据漏洞的依赖数据构建漏洞字典。
漏洞字典即具有数据漏洞的依赖数据所构成的数据字典。漏洞字典是描述具有数据漏洞的依赖数据的信息集合。
利用具有数据漏洞的依赖数据构建漏洞字典,可以包括:设置至少一个表,将具有数据漏洞的依赖数据对应载入各表中,利用载入具有数据漏洞的依赖数据的所有表组成漏洞字典。表中的项例如可以包括字段名、数据类型和备注,不同的表可以有不同的项。
例如,设置的其中一个表如下所示:
S40、根据漏洞字典,检测应用程序包的实时数据中是否存在数据漏洞。
在一种实施方式中,根据漏洞字典,检测应用程序包的实时数据中是否存在数据漏洞,包括:将应用程序包的实时数据与漏洞字典进行查找比对;若在所述实时数据中查找到与漏洞字典对应的数据,则确定存在实时数据中存在数据漏洞;若未在所述实时数据中查找到与所述漏洞字典对应的数据,则确定实时数据中不存在数据漏洞。
在一个具体示例中,首先周期性地扫描应用程序包的所有依赖信息,将扫描后的所有依赖信息入库;通过打包服务器将所有打包后的依赖都统一存储在同一个文件夹中;使用程序周期性地检索应用程序包内的所有依赖数据;将检索到的依赖数据收集到数据库中;将具有数据漏洞的依赖入库;用入库的这些依赖构建漏洞依赖字典;从应用程序包中所有依赖数据中检索这些漏洞依赖字典。可以使用查询程序来定期查询所有的依赖数据,然后遍历这些依赖数据,在遍历依赖数据的时候可以快速地先从本地数据库查询预先录入的漏洞依赖信息,检索当前依赖是否具有漏洞,如果有漏洞的话则直接发送告警邮件到系统负责人和安全同事,如果没有漏洞的话可以从人工录入的具有查询功能的漏洞网站自动检索,如果当前版本具有漏洞则直接发送告警消息例如告警邮件。有了及时的告警信息感知后,开发人员快速地进行漏洞修复即可,有效规避被攻击的风险。自动漏洞依赖版本检索节省时间与人力。自动漏洞监测,发现漏洞时效性好,同时也节省了大量的人力与时间。
本申请实施例提供的数据漏洞的自动检测方法,从应用程序包的历史数据中获取依赖数据集,扫描所述依赖数据集,获得具有数据漏洞的依赖数据,利用所述具有数据漏洞的依赖数据构建漏洞字典,根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,能够实现数据漏洞的自动检测,大大提高了对数据漏洞的检出率,降低了数据漏洞被遗漏的概率,降低了人工成本,解决了相关技术中存在的对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大的技术问题。
参考图4所示,本申请另一个实施例提供了一种数据漏洞的自动检测装置,包括:
依赖数据集获取模块,用于从应用程序包的历史数据中获取依赖数据集;
漏洞扫描模块,用于扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
漏洞字典构建模块,用于利用所述具有数据漏洞的依赖数据构建漏洞字典;
数据漏洞检测模块,用于根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
在一种实施方式中,依赖数据集获取模块包括:
线程代码获取单元,用于获取所述历史数据的线程代码;
依赖注解获取单元,用于获取对应于所述线程代码的依赖注解;
解析单元,用于根据预设的注解解析规则解析所述依赖注解,得到依赖数据集。
在一种实施方式中,所述自动检测装置还包括用于在所述根据预设的注解解析规则解析所述依赖注解之前执行以下操作的模块:对所述依赖注解执行分词操作,得到多个字符串组合;根据所有所述字符串组合将所述依赖注解转换为图结构注解或树形结构注解。其中,所述根据预设的注解解析规则解析所述依赖注解,得到依赖数据集,包括:根据预设的注解解析规则解析所述图结构注解或树形结构注解,得到依赖数据集。
在一种实施方式中,所述图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;所述第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,所述其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
在一种实施方式中,所述根据预设的注解解析规则解析依赖注解,包括:提取所述图结构注解中第一层次节点得到执行操作关键词;提取所述图结构注解中其他层次的节点得到执行操作数据表;利用所述执行操作关键词与所述执行操作数据表构成解析结果。
在一种实施方式中,所述扫描所述依赖数据集,获得具有数据漏洞的依赖数据,包括:检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。
在一种实施方式中,所述根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,包括:将所述应用程序包的实时数据与所述漏洞字典进行查找比对;若在所述实时数据中查找到与所述漏洞字典对应的数据,则确定存在所述实时数据中存在数据漏洞;若未在所述实时数据中查找到与所述漏洞字典对应的数据,则确定所述实时数据中不存在数据漏洞。
本申请实施例提供的数据漏洞的自动检测装置,从应用程序包的历史数据中获取依赖数据集,扫描所述依赖数据集,获得具有数据漏洞的依赖数据,利用所述具有数据漏洞的依赖数据构建漏洞字典,根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,能够实现数据漏洞的自动检测,大大提高了对数据漏洞的检出率,降低了数据漏洞被遗漏的概率,降低了人工成本,解决了相关技术中存在的对数据漏洞的检出率不高,容易遗漏数据漏洞,并且检测效率不高、人工检测所需成本过大的技术问题。
本申请另一个实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述任一实施方式的数据漏洞的自动检测方法。
参考图5所示,电子设备10可以包括:处理器100,存储器101,总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接;存储器101中存储有可在处理器100上运行的计算机程序,处理器100运行该计算机程序时执行本申请前述任一实施方式所提供的方法。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器101用于存储程序,处理器100在接收到执行指令后,执行该程序,前述本申请实施例任一实施方式揭示的方法可以应用于处理器100中,或者由处理器100实现。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,可以包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一实施方式所述的数据漏洞的自动检测方法。参考图6所示,其示出的计算机可读存储介质为光盘20,其上存储有计算机程序(即程序产品),该计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示例一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据漏洞的自动检测方法,其特征在于,包括:
从应用程序包的历史数据中获取依赖数据集;
扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
利用所述具有数据漏洞的依赖数据构建漏洞字典;
根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
2.根据权利要求1所述的方法,其特征在于,所述从应用程序包的历史数据中获取依赖数据集,包括:
获取所述历史数据的线程代码;
获取对应于所述线程代码的依赖注解;
根据预设的注解解析规则解析所述依赖注解,得到依赖数据集。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的注解解析规则解析所述依赖注解之前,所述方法还包括:
对所述依赖注解执行分词操作,得到多个字符串组合;
根据所有所述字符串组合将所述依赖注解转换为图结构注解或树形结构注解;
所述根据预设的注解解析规则解析所述依赖注解,得到依赖数据集,包括:根据预设的注解解析规则解析所述图结构注解或树形结构注解,得到依赖数据集。
4.根据权利要求3所述的方法,其特征在于,所述图结构注解包括通过分层操作得到的第一层次节点以及其他层次节点;所述第一层次节点为所有字符串组合中与预设关键词相匹配的字符串,所述其他层次节点为所有字符串组合中除了第一层次节点之外的字符串。
5.根据权利要求4所述的方法,其特征在于,所述根据预设的注解解析规则解析依赖注解,包括:
提取所述图结构注解中第一层次节点得到执行操作关键词;
提取所述图结构注解中其他层次的节点得到执行操作数据表;
利用所述执行操作关键词与所述执行操作数据表构成解析结果。
6.根据权利要求1所述的方法,其特征在于,所述扫描所述依赖数据集,获得具有数据漏洞的依赖数据,包括:
检查依赖数据集中不符合预设安全规则的文件结构、命名规则、函数和堆栈指针,确定依赖数据集中存在的数据漏洞,获得具有数据漏洞的依赖数据。
7.根据权利要求1所述的方法,其特征在于,所述根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞,包括:
将所述应用程序包的实时数据与所述漏洞字典进行查找比对;
若在所述实时数据中查找到与所述漏洞字典对应的数据,则确定所述实时数据中存在数据漏洞;
若未在所述实时数据中查找到与所述漏洞字典对应的数据,则确定所述实时数据中不存在数据漏洞。
8.一种数据漏洞的自动检测装置,其特征在于,包括:
依赖数据集获取模块,用于从应用程序包的历史数据中获取依赖数据集;
漏洞扫描模块,用于扫描所述依赖数据集,获得具有数据漏洞的依赖数据;
漏洞字典构建模块,用于利用所述具有数据漏洞的依赖数据构建漏洞字典;
数据漏洞检测模块,用于根据所述漏洞字典,检测所述应用程序包的实时数据中是否存在数据漏洞。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-7中任一所述的数据漏洞的自动检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现如权利要求1-7中任一所述的数据漏洞的自动检测方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310413496.4A CN116401676A (zh) | 2023-04-10 | 2023-04-10 | 数据漏洞的自动检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310413496.4A CN116401676A (zh) | 2023-04-10 | 2023-04-10 | 数据漏洞的自动检测方法、装置、电子设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116401676A true CN116401676A (zh) | 2023-07-07 |
Family
ID=87015823
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310413496.4A Pending CN116401676A (zh) | 2023-04-10 | 2023-04-10 | 数据漏洞的自动检测方法、装置、电子设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116401676A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118606952A (zh) * | 2024-05-31 | 2024-09-06 | 北京天融信网络安全技术有限公司 | 漏洞检测方法、装置、设备及存储介质 |
-
2023
- 2023-04-10 CN CN202310413496.4A patent/CN116401676A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118606952A (zh) * | 2024-05-31 | 2024-09-06 | 北京天融信网络安全技术有限公司 | 漏洞检测方法、装置、设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8825581B2 (en) | Simplifying a graph of correlation rules while preserving semantic coverage | |
| US7725466B2 (en) | High accuracy document information-element vector encoding server | |
| CN112052138A (zh) | 业务数据质量检测方法、装置、计算机设备及存储介质 | |
| CN114579969B (zh) | 漏洞检测方法、装置、电子设备及存储介质 | |
| US12277105B2 (en) | Methods and systems for improved search for data loss prevention | |
| US12287898B2 (en) | Query-based database redaction | |
| CN111240772B (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
| CN118964916B (zh) | 一种日志数据的实时存储方法 | |
| US20250021672A1 (en) | Token frequency based data matching | |
| CN111339566B (zh) | 区块摘要方法、装置、计算机设备和存储介质 | |
| WO2023241529A1 (zh) | 漏洞信息处理方法、服务装置和漏洞检测模块 | |
| CN119645534A (zh) | 文件处理方法、装置和计算机设备 | |
| CN117874082A (zh) | 一种关联字典数据检索的方法及相关组件 | |
| CN116401676A (zh) | 数据漏洞的自动检测方法、装置、电子设备及存储介质 | |
| CN118819623B (zh) | 基于sql语法的软件部署方法、介质及电子设备 | |
| US11356853B1 (en) | Detection of malicious mobile apps | |
| CN115455425A (zh) | 防护补丁生成方法、系统、设备及存储介质 | |
| US11010387B2 (en) | Join operation and interface for wildcards | |
| CN113626439A (zh) | 一种数据处理方法、装置、数据处理设备及存储介质 | |
| US8560981B2 (en) | Segmenting integrated circuit layout design files using speculative parsing | |
| CN116257819B (zh) | 面向大规模软件的开源许可证快速识别方法、系统及介质 | |
| CN114254081B (zh) | 企业大数据搜索系统、方法及电子设备 | |
| CN120406921A (zh) | 人工智能辅助编程系统、装置、方法及计算机程序产品 | |
| WO2024235443A1 (en) | System and method for data processing for enhanced regex matching | |
| KR101921123B1 (ko) | 메시지의 필드 인덱싱 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |