CN116389049A - 一种针对单数据流的数据安全分析方法及装置 - Google Patents
一种针对单数据流的数据安全分析方法及装置 Download PDFInfo
- Publication number
- CN116389049A CN116389049A CN202310140904.3A CN202310140904A CN116389049A CN 116389049 A CN116389049 A CN 116389049A CN 202310140904 A CN202310140904 A CN 202310140904A CN 116389049 A CN116389049 A CN 116389049A
- Authority
- CN
- China
- Prior art keywords
- data stream
- flow
- expression
- code file
- code
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 50
- 230000014509 gene expression Effects 0.000 claims abstract description 182
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000012098 association analyses Methods 0.000 claims abstract description 43
- 238000003672 processing method Methods 0.000 claims abstract description 29
- 238000010219 correlation analysis Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 76
- 230000008569 process Effects 0.000 claims description 32
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 16
- 230000006399 behavior Effects 0.000 claims description 13
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012097 association analysis method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种针对单数据流的网络安全处理方法及装置。该方法包括:获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;基于所述流表信息和所述关联表达式,构建抽象语法树;遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;将所述目标代码存储在代码文件中,得到目标代码文件;基于所述目标代码文件对所述单数据流进行网络安全处理理。本发明提供的方法,能够基于单数据流的关联分析表达式进行编译及代码生成,以实现单数据流的关联分析,从而提高了单数据流的网络安全分析处理的效率。
Description
技术领域
本发明涉及计算机处理技术领域,具体涉及一种针对单数据流的网络安全处理方法及装置。另外,还涉及一种电子设备、非暂态计算机可读存储介质及计算机程序产品。
背景技术
互联网技术的高速发展,及各行各业数字化转型的逐步深化过程,给人们的生活和工作带来了巨大的便利。但是,随着技术的发展和知识的扩散,网络攻击方法和数量也随之大幅增加,各种新攻击手段层出不穷,如何对单数据流进行网络安全分析处理给人们带来了很大的挑战和压力。
现有技术中对单数据流进行网络安全处理时,需要人为分析单数据流中的所有数据,以查看是否存在网络风险,导致针对单数据流的网络安全处理的效率较低。因此,如何设计一种更为高效的单数据流安全处理方法以提高单数据流处理效率和精度成为亟待解决的难题。
发明内容
本发明提供一种针对单数据流的网络安全处理方法及装置,以解决现有技术中存在的单数据流安全分析处理方案效率较低的缺陷。
本发明提供一种针对单数据流的网络安全处理方法,包括:
获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;
基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;
遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;
将所述目标代码存储在代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;
基于所述目标代码文件对所述单数据流进行网络安全处理。
进一步的,所述流表信息包括每个流表存储的数据流的标识,所述标识对应的单数据流包括从相同网络设备中获取的网络行为数据;所述初始代码文件中设置有表配置字段,所述表配置字段包括第一子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式不包含所述流表的目标索引的情况下,将所述标识存储在所述第一子字段中,得到所述代码文件;其中,每个所述流表都预先配置有目标索引;
创建存储后标识的索引,并将所述存储后标识的索引作为目标索引。
进一步的,所述调用预先设置的所述节点对应的目标代码生成流程,包括:
在确定所述节点未在索引表达式表中的情况下,基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程;所述索引表达式表是预先配置得到的,所述索引表达式表包含有表征索引的节点。
进一步的,所述表配置字段还包括第二子字段和第三子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式中包含第一类型的流表的第一目标索引和第二类型的流表的第二目标索引的情况下,将所述标识存储在所述第一子字段中;
基于所述第一目标索引生成第一函数的代码信息,并基于所述第二目标索引生成第二函数的代码信息;
将所述第一函数的代码信息对应的第一地址存储在所述第二子字段中,并将所述第二函数的代码信息对应的第二地址存储在所述第三子字段中,得到所述代码文件;
其中,所述第一地址用于调用计算第一类型的第一索引值的第一函数;所述第二地址用于调用计算第二类型的第二索引值的第二函数。
进一步的,所述初始代码文件还包括关联计算字段;
在遍历所述抽象语法树中的节点之后,还包括:
基于所述抽象语法树中表征所述关联表达式的节点,生成用于进行关联计算的第三函数的代码信息;所述关联表达式包括每个数据流的参数之间的关联关系;
将所述第三函数的代码信息对应的第三地址存储在所述关联计算字段中,得到新的初始代码文件;基于所述新的初始代码文件,获得所述代码文件;其中,所述第三地址用于调用关联计算的第三函数。
进一步的,在所述将所述标识存储在所述第一子字段中,得到所述代码文件之前,所述方法还包括:
将每个流表存储的数据流的标识存储在流表集合中;
所述将所述标识存储在所述第一子字段中,得到所述代码文件,包括:
从所述流表集合中获取各所述标识,将所述标识存储在所述第一子字段中,得到所述代码文件。
进一步的,基于所述目标代码文件对所述单数据流进行网络安全处理,具体包括:
基于所述目标代码文件,调用删除处理流程从数据表中查找出与预先输入的待删除数据流关联的第一数据流进行删除处理,所述待删除数据流包含超时数据流;或者,
基于所述目标代码文件,调用插入处理流程从数据表中查找出与输入的待插入数据流关联的第二数据流,并将所述第二数据流插入到命中表中;或者,
基于所述目标代码文件,调用更新处理流程从数据表中查找出与预先输入的待更新数据流关联的第三数据流,并对所述第三数据流进行更新处理。
进一步的,所述基于所述流表信息和所述关联表达式,构建抽象语法树,包括:
基于预先定义的词法规则对所述流表信息和所述关联表达式进行词法解析,生成词序列;
根据预先定义的语法规则,对词序列进行语法分析,获得语法分析结果,并将所述语法分析结果存储至语法树的节点中,构建抽象语法树。
本发明还提供一种针对单数据流的网络安全处理装置,包括:
表达式获取单元,用于获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;
抽象语法树获得单元,用于基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;
目标代码生成单元,用于遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;
目标代码文件获得单元,用于将所述目标代码存储在所述代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;
网络安全处理单元,用于基于所述目标代码文件对所述单数据流进行网络安全处理。
进一步的,所述流表信息包括每个流表存储的数据流的标识,所述标识对应的单数据流包括从相同网络设备中获取的网络行为数据;所述初始代码文件中设置有表配置字段,所述表配置字段包括第一子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式不包含所述流表的目标索引的情况下,将所述标识存储在所述第一子字段中,得到所述代码文件;其中,每个所述流表都预先配置有目标索引;
创建存储后标识的索引,并将所述存储后标识的索引作为目标索引。
进一步的,所述目标代码生成单元,具体用于:
在确定所述节点未在索引表达式表中的情况下,基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程;所述索引表达式表是预先配置得到的,所述索引表达式表包含有表征索引的节点。
进一步的,所述表配置字段还包括第二子字段和第三子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式中包含第一类型的流表的第一目标索引和第二类型的流表的第二目标索引的情况下,将所述标识存储在所述第一子字段中;
基于所述第一目标索引生成第一函数的代码信息,并基于所述第二目标索引生成第二函数的代码信息;
将所述第一函数的代码信息对应的第一地址存储在所述第二子字段中,并将所述第二函数的代码信息对应的第二地址存储在所述第三子字段中,得到所述代码文件;
其中,所述第一地址用于调用计算第一类型的第一索引值的第一函数;所述第二地址用于调用计算第二类型的第二索引值的第二函数。
进一步的,所述初始代码文件还包括关联计算字段;
在遍历所述抽象语法树中的节点之后,还包括:
代码信息生成单元,用于基于所述抽象语法树中表征所述关联表达式的节点,生成用于进行关联计算的第三函数的代码信息;所述关联表达式包括每个数据流的参数之间的关联关系;
将所述第三函数的代码信息对应的第三地址存储在所述关联计算字段中,得到新的初始代码文件;基于所述新的初始代码文件,获得所述代码文件;其中,所述第三地址用于调用关联计算的第三函数。
进一步的,在所述将所述标识存储在所述第一子字段中,得到所述代码文件之前,所述装置还包括:
代码文件获得单元,用于:
将每个流表存储的数据流的标识存储在流表集合中;
所述将所述标识存储在所述第一子字段中,得到所述代码文件,包括:
从所述流表集合中获取各所述标识,将所述标识存储在所述第一子字段中,得到所述代码文件。
进一步的,所述网络安全处理单元,具体用于:
基于所述目标代码文件,调用删除处理流程从数据表中查找出与预先输入的待删除数据流关联的第一数据流进行删除处理,所述待删除数据流包含超时数据流;或者,
基于所述目标代码文件,调用插入处理流程从数据表中查找出与输入的待插入数据流关联的第二数据流,并将所述第二数据流插入到命中表中;或者,
基于所述目标代码文件,调用更新处理流程从数据表中查找出与预先输入的待更新数据流关联的第三数据流,并对所述第三数据流进行更新处理。
进一步的,所述抽象语法树获得单元,具体用于:
基于预先定义的词法规则对所述流表信息和所述关联表达式进行词法解析,生成词序列;
根据预先定义的语法规则,对词序列进行语法分析,获得语法分析结果,并将所述语法分析结果存储至语法树的节点中,构建抽象语法树。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述针对单数据流的网络安全处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述针对单数据流的网络安全处理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述针对单数据流的网络安全处理方法。
本发明提供的针对单数据流的网络安全处理方法,通过获取关联分析表达式,并基于关联分析表达式中的流表信息和关联表达式,获得抽象语法树;基于抽象语法树配置初始代码文件的表配置字段,得到第一代码文件;遍历抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于目标代码生成流程生成所述节点对应的目标代码;将目标代码存储在第一代码文件中,得到目标代码文件;基于目标代码文件对数据流进行网络安全处理。该方法能够基于单数据流的关联分析表达式进行编译及代码生成,以实现单数据流的关联分析,从而提高了单数据流的网络安全分析处理的效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的针对单数据流的网络安全处理方法的流程示意图;
图2是本发明提供的关联分析表达式编译和代码生成流程图;
图3是本发明提供的构建抽象语法树流程图;
图4是本发明提供的流表定义分析流程图;
图5是本发明提供的表达式索引分析和代码生成流程图;
图6是本发明提供的表达式定义分析和代码生成流程图;
图7是本发明提供的插入数据流数据流程图;
图8是本发明提供的删除数据流数据流程图;
图9是本发明提供的更新数据流数据流程图;
图10是本发明提供的通知数据流数据删除流程图;
图11是本发明提供的针对单数据流的网络安全处理装置的结构示意图;
图12是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面基于本发明所述的针对单数据流的网络安全处理方法,对其实施例进行详细描述。如图1所示,为本发明实施例提供的针对单数据流的网络安全处理方法的流程示意图,具体过程包括以下步骤:
步骤101:获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据。所述流表信息包括每个流表存储的数据流的标识,所述关联表达式用于表示每个数据流的参数之间的关联关系。
在本发明实施例中,执行本步骤之前可预先获取用户输入的关联分析表达式或者预先存储的关联分析表达式。具体的,所述关联分析表达式的结构可定义为:join[流表定义]if[关联表达式定义]。也就是,关联分析表达式的结构包含两个部分:流表定义和关联表达式定义,即得到相应的流表信息和关联表达式。其中,流表定义为[输入流名]as[流表名],示例如下:stream1 as left,stream1 as right,其中stream1对应输入的数据流的命名,left和right为对应的流表的名,stream1定义为left,同时stream1定义为right。关联表达式为布尔表达式,表达式结果为true或者false,示例如下:left.sip==right.sipand left.sport<right.sport,该关联表达式语义为当左表(即左流表)的源ip与右表(即右流表)的sip相等且左表源端口小于右表时表达式为true,否则为false。具体示例如下:join stream1 as left,stream1 as right if left.sip==right.sip and left.sport<right.sport。所述网络设备可以是指计算机、智能手机、平板等设备。
步骤102:基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点。
具体的,将流表信息和关联分析表达式解析并构建成抽象语法树。通过定位到流表定义语法树根节点,即流表信息语法树根节点,使用预设的流表分析器对抽象语法树进行分析,生成流表配置。通过定位到关联表达式定义语法树根节点,使用预设的表达式索引分析器对抽象语法树进行分析,如果关联表达式存在索引则根据索引接口,将索引表达式生成函数代码,并将函数记录到流表配置中,如果没有索引则无操作。
在本步骤具体实施过程中,可基于预先定义的词法规则对所述流表信息和所述关联表达式进行词法解析,生成词序列;根据预先定义的语法规则,对词序列进行语法分析,获得语法分析结果,并将所述语法分析结果存储至语法树的节点中,构建抽象语法树。例如,如图4所示,首先获取输入到的关联分析表达式,join[流表定义]if[关联表达式定义];然后,可根据词法定义,对关联分析表达式进行词法解析,生成词序列;根据语法定义,对词序列进行语法分析,并构建抽象语法树。根据语义和上下文定义,对抽象语法树进行语义分析、类型检查、函数调用合法性校验,最后输出构建的抽象语法树。
本发明可以基于数据流编写对应的关联分析表达式,再将关联分析表达式转化为抽象语法树,基于对抽象语法树的解析调用代码生成流程,进而得到目标代码文件,从而可以基于目标代码文件对数据流进行自动分析,使得网络安全分析的效率较高。
步骤103:遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码。
在本步骤中,通过遍历所述抽象语法树中的节点,在确定所述节点未在索引表达式表中的情况下,基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码。其中,所述索引表达式表中包含有表征索引的节点。在确定所述节点在所述索引表达式表的情况下,还可调用索引表达式代码生成流程,将所述索引表达式代码生成流程作为所述目标代码生成流程。具体的,可从关联表达式定义语法树根节点开始遍历抽象语法树,对所有节点进行分析并生成对应的代码。将流表配置(即表配置字段)和关联表达式定义生成的代码封装成一个代码文件,提供调用接口。所述表配置字段包括第一子字段。具体的,在基于所述抽象语法树确定所述关联表达式不包含所述流表的目标索引的情况下,将所述标识存储在所述第一子字段中,得到所述第一代码文件。除此之外,所述表配置字段还包括第二子字段和第三子字段。相应的,所述基于所述抽象语法树配置的初始代码文件的表配置字段,得到第一代码文件,对应的具体实现过程包括:在基于所述抽象语法树确定所述关联表达式中包含所述第一类型的流表的第一目标索引和第二类型的流表的第二目标索引的情况下,将所述标识存储在所述第一子字段中;基于所述第一目标索引生成第一函数的代码信息,并基于所述第二目标索引生成第二函数的代码信息;将所述第一函数的代码信息对应的第一地址存储在所述第二子字段中,并将所述第二函数的代码信息对应的第二地址存储在所述第三子字段中,得到所述第一代码文件;所述第一地址用于调用计算第一类型的第一索引值的第一函数;所述第二地址用于调用计算第二类型的第二索引值的第二函数。所述表配置字段对应表配置codeclass.tableconfig。需要说明的是,所述第一子字段为codeclass.tableconfig.inputStreamIDSet;所述第二子字段为codeclass.tableconfig中的caculateLeftIndexValueFunction;第三子字段为codeclass.tableconfig中的caculateRightIndexValueFunction。其中,所述节点包括[流表定义]所在语法树节点和[关联表达式定义]所在语法树节点。
其中,所述初始代码文件包括关联计算字段。在本发明实施例中,遍历完所述抽象语法树中的所有节点时,基于所述抽象语法树中表征所述关联表达式的节点,生成用于进行关联计算的第三函数的代码信息,并将所述第三函数的代码信息对应的第三地址存储在所述关联计算字段中。所述第三地址用于调用关联计算的第三函数。所述第三函数可为Join函数。需要说明的是,在本发明实施例中,将所述标识存储在所述第一子字段中得到所述第一代码文件之前,还包括:将每个流表存储的数据流的标识存储在流名集合中;所述将所述标识存储在所述第一子字段中,得到所述第一代码文件,包括:从所述流表集合中获取各所述标识,将所述标识存储在所述第一子字段中,得到所述第一代码文件。所述数据流的标识对应输入流名。
如图5所示,其为流表定义分析流程图。包括:(1)获取输入的关联分析表达式构建的抽象语法树。(2)在抽象语法树上定位[流表定义]所在语法树节点,并从所述节点(即[流表定义]所在语法树节点)遍历相应的所有子节点。(3)[流表定义]语法树节点是否有没有遍历的孩子节点,如果有则执行步骤(4),如果没有则结束流程。(4)解析[输入流名]as[流表名]结构,将[输入流名]添加到集合inputStreamNameSet中,设置tableName=[流表名],并判断左流表名leftTableName是否是空值,如果是则执行步骤(5),如果不是则执行步骤(6)。(5)设置左流表名leftTableName=tableName,完成后执行步骤(3)。(6)判断判断右流表名rightTableName是否是空值,如果是则执行步骤(7),如果不是则执行步骤(8)。(7)设置右流表名rightTableName=tableName,完成后执行步骤(3)。(8)如果tableName不等于左流表名leftTableName且tableName不等于右流表名rightTableName则报错并退出流程,反之则不做操作,完成后执行步骤(3)。
图6所示,其为表达式索引分析和目标代码生成流程图。包括:(1)获取输入的关联分析表达式构建的抽象语法树。(2)在抽象语法树上定位[关联表达式定义]所在语法树节点。(3)确定当前抽象语法树的节点,使用预设的单数据流关联分析表达式索引分析器进行索引分析。(4)判断关联分析表达式是否有索引,如果有则执行步骤(5),如果没有则执行步骤(8)。(5)建立代码文件codeClass,数据类型为OneStreamJoinCodeClass,设置codeClass的分析接口为IndexedOneStreamJoinInterface,完成后执行步骤(6)。(6)设置表配置字段codeClass.tableConfig为IndexedTableConfig,遍历输入流名集合inputStreamNameSet,将集合所有输入流名映射的输入数据流编号保存到输入数据流编号集合codeClass.tableConfig.inputStreamIDSet中,完成后执行步骤(7)。(7)将索引对应的表达式树节点记录到索引表达式表indexExpressionMap中,根据索引表达式生成接口函数caculateLeftIndexValue和caculateRightIndexValue的代码,并将接口函数地址记录到表配置字段codeClass.tableConfig中的caculateLeftIndexValueFunction和caculateRightIndexValueFunction中,完成后结束流程。(8)建立代码文件codeClass,数据类型为OneStreamJoinCodeClass,设置codeClass的分析接口为OneStreamJoinInterface,完成后执行步骤(9)。(9)设置表配置字段codeClass.tableConfig为TableConfig,遍历输入流名集合inputStreamNameSet,将集合所有输入流名映射的输入数据流编号保存到输入数据流编号集合codeClass.tableConfig.inputStreamIDSet中,完成后结束流程,输出得到的所述节点对应的目标代码。
如图7所示,表达式定义分析和目标代码生成流程图。包括:(1)获取输入的关联分析表达式构建的抽象语法树。(2)在抽象语法树上定位[关联表达式定义]所在语法树节点,并从所述节点(即[关联表达式定义]所在语法树节点)开始遍历所有子节点。(3)判断是否还有没有遍历的子节点,如果有则执行步骤(4),如果没有则执行步骤(7)。(4)判断当前语法树节点是否在索引表达式表indexExpressionMap中,如果是则执行步骤(5),如果不是则执行步骤(6)。(5)调用索引表达式代码生成流程生成代码,完成后执行步骤(3)。(6)根据所述节点类型调用对应的代码生成流程来生成代码,即基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程,完成后执行步骤(3)。(7)根据[关联表达式定义]根节点生成的代码生成接口函数join,并将接口函数地址记录到表配置字段codeClass.joinFunction中,完成后结束流程。
需要说明的是,表达式定义分析和目标代码生成流程具体如下所示:(1)索引表达式代码生成,其流程内容为处理索引表达式并生成代码;(2)逻辑表达式代码生成,其流程内容为将逻辑表达式生成对应的代码;(3)比较表达式代码生成,其流程内容为:将比较表达式生成对应的代码;(4)表字段表达式代码生成,其流程内容为将表字段表达式生成对应的代码;(5)常量值代码生成,其流程内容为将常量值生成对应的代码;(6)函数调用代码生成,其流程内容为将函数调用生成对应的代码。在索引表达式代码生成过程中,生成代码为“true”,设置数据类型为布尔值,并设置代码为常量。在逻辑表达式代码生成过程中,如果是and/or逻辑表达式,则先调用代码生成流程生成左子节点和右子节点的代码,如果是and逻辑表达式,则生成代码:左子节点代码&&右子节点代码,如果是or逻辑表达式,则生成代码:左子节点代码||右子节点代码,设置代码数据类型为布尔值,如果左子节点和右子节点都是常量值,则设置代码为常量;如果是not逻辑表达式,则调用代码生成流程生成右子节点的代码,生成代码:!右子节点代码,设置代码数据类型为布尔值,如果左子节点和右子节点都是常量,则设置代码为常量。在比较表达式代码生成过程中,用代码生成流程生成左子节点和右子节点的代码,然后根据比较的操作符类型生成对应的代码:左子节点代码[比较操作符]右子节点代码,设置代码数据类型为布尔值,如果左子节点和右子节点都是常量值,则设置代码为常量。在表字段表达式代码生成过程中,将表达字段表达式解析为[表名].[字段名],首先判断表名是否等于leftTableName,如果等于则生成代码:左行数据字段值获取函数(字段名),并设置代码数据类型为对象值,如果不等于则继续判断表名是否等于rightTableName,如果等于则生成代码:右行数据字段值获取函数(字段名),如果不等于则报错并退出流程。在常量值代码生成过程中,在代码文件codeClass中生成常量变量,并将常量值赋值到常量变量,生成代码:常量变量名,设置代码数据类型为常量对应数据类型,设置代码为常量。在函数调用代码生成过程中,遍历函数参数,对所有参数都用代码生成流程生成对应的代码,生成代码:函数名(参数1代码,参数2代码…,参数n代码),设置代码数据类型为函数定义对应数据类型。
需要说明的是,所述表字段表达式由表名(左表/右表)加字符点.再加字段名组成,比如表(即流表)的源ip字段:table.sip,表示从输入的数据中获取对应字段的值;所述常量值包括常量字符串、常量数值等其它常量数据;所述函数调用中函数参数可以有,也可以没有,示例:abs(table.value),表示用绝对值函数abs对流表table的字段value值进行绝对值计算。
表达式编译和目标代码生成相关代码接口和数据定义中,包括码接口定义、流表配置定义以及流表配置定义。所述代码接口定义包括实时单数据流关联分析接口定义(OneStreamJoinInterface)和带索引的实时单数据流关联分析接口定义。所述OneStreamJoinInterface中的join(leftRowData,rightRowData)代码接口,作用为关联计算输入的左行数据和右行数据,如果符合关联条件,则返回布尔值true,如果不符合关联条件,则返回布尔false。
IndexedOneStreamJoinInterface中的caculateLeftIndexValue(leftRowData)代码接口,其作用为计算左索引值,输入参数leftRowData为左表行数据,返回值为计算的左索引值;caculateRightIndexValue(rightRowData)代码接口,其作用为计算右索引值,输入参数rightRowData为右表行数据,返回值为计算的右索引值;join(leftRowData,rightRowData)代码接口,其作用为关联计算输入的左行数据和右行数据,如果符合关联条件,则返回布尔值true,如果不符合关联条件,则返回布尔false。
所述流表配置定义包括常规表(TableConfig)、索引表(IndexedTableConfig)。所述常规表参数名inputStreamIDSet,其作用为输入数据流的编号集合,记录输入数据流的所有编号,用于过滤所有输入的数据流数据;所述索引表中参数inputStreamIDSet,其作用为输入数据流的编号集合,记录输入数据流的所有编号,用于过滤所有输入的数据流数据;参数caculateLeftIndexValueFunction,其作用为计算左索引值函数,记录计算左索引值的函数;
caculateRightIndexValueFunction,其作用为计算右索引值函数,记录计算右索引值的函数。代码文件定义(OneStreamJoinCodeClass)中,参数tableConfig,其作用为表配置,如果是无索引的关联表达式,那么参数数据类型是TableConfig,如果是带索引的关联表达式,那么参数数据类型是IndexedTableConfig;参数joinFunction,其作用为关联计算函数,记录关联计算的函数。
步骤104:将所述目标代码存储在代码文件中,得到目标代码文件。具体的,所述代码文件可基于所述抽象语法树配置的初始代码文件获得。
在本发明实施例中,表达式编译和代码生成包含四个流程,具体流程如下表所示:(1)构建抽象语法分析树,其流程内容为将输入的关联分析表达式构建成抽象语法分析树,构建时进行词法分析、语法分析、语义分析;(2)流表定义分析,其流程内容为使用流表分析器对语法树进行分析,生成流表配置;(3)表达式索引分析和目标代码生成,其流程内容为使用表达式索引分析器对语法树进行分析,并生成的的代码;(4)表达式定义分析和代码生成,其流程内容为遍历语法树,对所有节点进行分析并生成对应的代码(即目标代码)。表达式编译和代码生成核心参数定义如下:参数inputStreamNameSet,其定义为输入流名集合,记录所有输入的流名;参数leftTableName,其定义为记录左流表名;参数rightTableName,其定义为记录右流表名;参数indexExpressionMap,其定义为索引表达式表,记录索引所使用的表达式语法树节点;参数codeClass代码文件,记录最终生成的代码(即目标代码文件),数据类型为OneStreamJoinCodeClass。
实时单数据流关联分析参数定义中,参数streamFilter定义为流过滤器,对输入流的数据进行过滤,把不符合过滤条件的数据过滤掉;参数table定义为数据表,用于保存符合条件的输入数据,一条数据对应表中一行;参数matchedTable定义为命中表,保存关联成功的数据,表中一行对应一对关联成功数据joinFilter定义为关联过滤器,对需要进行关联的一对数据进行计算,如果值为true,则表示关联成功,为false则表示关联失败。实时单数据流关联分析方法包含四个流程,其流程如下表所示:(1)插入数据流数据insertStreamData(data),其流程内容为插入对应的数据流数据<data>。(2)删除数据流数据deleteStreamData(data),其流程内容为删除对应的数据流数据<data>;(3)更新数据流数据updateStreamData(oldData,newData),其流程内容为更新对应的数据流数据,包含两个步骤:1.删除数据流数据<oldData>;2.插入数据流数据<newData>;(4)通知数据流数据超时onStreamDataExpire(data),其流程内容为接受数据流数据<data>的超时通知,收到通知后删除对应的数据流数据<data>。
步骤105:基于所述目标代码文件对所述单数据流进行网络安全处理。
具体的,可基于所述目标代码文件,调用删除处理流程从数据表中查找出与预先输入的待删除数据流关联的第一数据流进行删除处理,所述待删除数据流包含超时数据流;或者,基于所述目标代码文件,调用插入处理流程从数据表中查找出与输入的待插入数据流关联的第二数据流,并将所述第二数据流插入到命中表中;或者,基于所述目标代码文件,调用更新处理流程从数据表中查找出与预先输入的待更新数据流关联的第三数据流,并对所述第三数据流进行更新处理。
具体的,如图7所示,其为插入数据流数据流程图。包括:(1)调用insertStreamData(data),输入数据流数据<data>。(2)流过滤器<streamFilter>对输入的数据<data>进行过滤计算,如果结果为true,则执行步骤(3),如果为false则丢弃这条数据。(3)遍历数据表<table>,对表中每一行数据<row>和输入数据<data>进行关联计算,如果表中还有数据则执行步骤(4),如果没有则执行步骤(6)。(4)对<row>和<data>进行左关联计算,即<data>作为左值,<row>作为右值,将参数<data,row>输入关联过滤器<joinFilter>进行关联计算,如果结果为true,则将<data,row>插入到命中表<matchedTable>,并执行步骤(3),如果结果为false则执行步骤(5)。(5)对<row>和<data>进行右关联计算,即<row>作为左值,<data>作为右值,将参数<row,data>输入关联过滤器<joinFilter>进行关联计算,如果结果为true,则将<row,data>插入到命中表<matchedTable>,并执行步骤(3),如果结果为false则执行步骤(3)。(6)遍历完成后将<data>插入到<table>末尾,并向向<data>上注册删除监听器
如图8所示,其为删除数据流数据流程图。包括:(1)调用deleteStreamData(data),输入待删除的数据流数据<data>。(2)取消向<data>注册的删除监听器。(3)从<matchedTable>查询是否有关联的命中行,如果有则删除对应的命中数据。(4)从<table>中删除对应的数据。(5)如果<table>为空,则删除当前计算单元。
如图9所示,其为更新数据流数据流程图。包括:(1)调用updateStreamData(oldData,newData),输入待更新的数据流数据<oldData,newData>。(2)调用删除数据流数据流程deleteStreamData(oldData)来删除<oldData>。(3)调用插入数据流数据流程insertStreamData(NewData)来插入<newData>。
如图10所示,其为通知数据流数据删除流程图。包括:(1)调用onStreamExpire(data),输入超时的数据流数据<data>。(2)从<matchedTable>查询是否有关联的命中行,如果有则删除对应的命中数据。(3)从<table>中删除对应的数据。(4)如果<table>为空,则删除当前计算单元。
本发明实施例所述的针对单数据流的网络安全处理方法,通过获取关联分析表达式,并基于关联分析表达式中的流表信息和关联表达式,获得抽象语法树;基于抽象语法树配置初始代码文件的表配置字段,得到第一代码文件;遍历抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于目标代码生成流程生成所述节点对应的目标代码;将目标代码存储在第一代码文件中,得到目标代码文件;基于目标代码文件对数据流进行网络安全处理。该方法能够基于单数据流的关联分析表达式进行编译及代码生成,以实现单数据流的关联分析,从而提高了单数据流的网络安全分析处理的效率。
与上述提供的一种针对单数据流的网络安全处理方法相对应,本发明还提供一种针对单数据流的网络安全处理装置。由于该装置的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的针对单数据流的网络安全处理装置的实施例仅是示意性的。请参考图11所示,其为本发明实施例提供的一种针对单数据流的网络安全处理装置的结构示意图。
本发明所述的针对单数据流的网络安全处理装置,具体包括如下部分:
表达式获取单元1101,用于获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;
抽象语法树获得单元1102,用于基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;
目标代码生成单元1103,用于遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;
目标代码文件获得单元1104,用于将所述目标代码存储在所述代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;
网络安全处理单元1105,用于基于所述目标代码文件对所述单数据流进行网络安全处理。
进一步的,所述流表信息包括每个流表存储的数据流的标识,所述标识对应的单数据流包括从相同网络设备中获取的网络行为数据;所述初始代码文件中设置有表配置字段,所述表配置字段包括第一子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式不包含所述流表的目标索引的情况下,将所述标识存储在所述第一子字段中,得到所述代码文件;其中,每个所述流表都预先配置有目标索引;
创建存储后标识的索引,并将所述存储后标识的索引作为目标索引。
进一步的,所述目标代码生成单元,具体用于:
在确定所述节点未在索引表达式表中的情况下,基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程;所述索引表达式表是预先配置得到的,所述索引表达式表包含有表征索引的节点。
进一步的,所述表配置字段还包括第二子字段和第三子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式中包含第一类型的流表的第一目标索引和第二类型的流表的第二目标索引的情况下,将所述标识存储在所述第一子字段中;
基于所述第一目标索引生成第一函数的代码信息,并基于所述第二目标索引生成第二函数的代码信息;
将所述第一函数的代码信息对应的第一地址存储在所述第二子字段中,并将所述第二函数的代码信息对应的第二地址存储在所述第三子字段中,得到所述代码文件;
其中,所述第一地址用于调用计算第一类型的第一索引值的第一函数;所述第二地址用于调用计算第二类型的第二索引值的第二函数。
进一步的,所述初始代码文件还包括关联计算字段;
在遍历所述抽象语法树中的节点之后,还包括:
代码信息生成单元,用于基于所述抽象语法树中表征所述关联表达式的节点,生成用于进行关联计算的第三函数的代码信息;所述关联表达式包括每个数据流的参数之间的关联关系;
将所述第三函数的代码信息对应的第三地址存储在所述关联计算字段中,得到新的初始代码文件;基于所述新的初始代码文件,获得所述代码文件;其中,所述第三地址用于调用关联计算的第三函数。
进一步的,在所述将所述标识存储在所述第一子字段中,得到所述代码文件之前,所述装置还包括:
代码文件获得单元,用于:
将每个流表存储的数据流的标识存储在流表集合中;
所述将所述标识存储在所述第一子字段中,得到所述代码文件,包括:
从所述流表集合中获取各所述标识,将所述标识存储在所述第一子字段中,得到所述代码文件。
进一步的,所述网络安全处理单元,具体用于:
基于所述目标代码文件,调用删除处理流程从数据表中查找出与预先输入的待删除数据流关联的第一数据流进行删除处理,所述待删除数据流包含超时数据流;或者,
基于所述目标代码文件,调用插入处理流程从数据表中查找出与输入的待插入数据流关联的第二数据流,并将所述第二数据流插入到命中表中;或者,
基于所述目标代码文件,调用更新处理流程从数据表中查找出与预先输入的待更新数据流关联的第三数据流,并对所述第三数据流进行更新处理。
进一步的,所述抽象语法树获得单元,具体用于:
基于预先定义的词法规则对所述流表信息和所述关联表达式进行词法解析,生成词序列;
根据预先定义的语法规则,对词序列进行语法分析,获得语法分析结果,并将所述语法分析结果存储至语法树的节点中,构建抽象语法树。
本发明实施例所述的针对单数据流的网络安全处理装置,通过获取关联分析表达式,并基于关联分析表达式中的流表信息和关联表达式,获得抽象语法树;基于抽象语法树配置初始代码文件的表配置字段,得到第一代码文件;遍历抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于目标代码生成流程生成所述节点对应的目标代码;将目标代码存储在第一代码文件中,得到目标代码文件;基于目标代码文件对数据流进行网络安全处理。该方法能够基于单数据流的关联分析表达式进行编译及代码生成,以实现单数据流的关联分析,从而提高了单数据流的网络安全分析处理的效率。
与上述提供的针对单数据流的网络安全处理方法相对应,本发明还提供一种电子设备。由于该电子设备的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的电子设备仅是示意性的。如图12所示,其为本发明实施例公开的一种电子设备的实体结构示意图。该电子设备可以包括:处理器(processor)1201、存储器(memory)1202和通信总线1203,其中,处理器1201,存储器1202通过通信总线1203完成相互间的通信,通过通信接口1204与外部进行通信。处理器1201可以调用存储器1202中的逻辑指令,以执行针对单数据流的网络安全处理方法,该方法包括:获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;将所述目标代码存储在代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;基于所述目标代码文件对所述单数据流进行网络安全处理。
此外,上述的存储器1202中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:存储芯片、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在处理器可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的针对单数据流的网络安全处理方法。该方法包括:获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;将所述目标代码存储在代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;基于所述目标代码文件对所述单数据流进行网络安全处理。
又一方面,本发明实施例还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的针对单数据流的网络安全处理方法。该方法包括:获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;将所述目标代码存储在代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;基于所述目标代码文件对所述单数据流进行网络安全处理。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种针对单数据流的网络安全处理方法,其特征在于,包括:
获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;
基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;
遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;
将所述目标代码存储在代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;
基于所述目标代码文件对所述单数据流进行网络安全处理。
2.根据权利要求1所述的针对单数据流的网络安全处理方法,其特征在于,所述流表信息包括每个流表存储的数据流的标识,所述标识对应的单数据流包括从相同网络设备中获取的网络行为数据;所述初始代码文件中设置有表配置字段,所述表配置字段包括第一子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式不包含所述流表的目标索引的情况下,将所述标识存储在所述第一子字段中,得到所述代码文件;其中,每个所述流表都预先配置有目标索引;
创建存储后标识的索引,并将所述存储后标识的索引作为目标索引。
3.根据权利要求1所述的针对单数据流的网络安全处理方法,其特征在于,所述调用所述节点对应的目标代码生成流程,包括:
在确定所述节点未在索引表达式表中的情况下,基于所述节点的运算类型调用所述节点对应的所述目标代码生成流程;所述索引表达式表是预先配置得到的,所述索引表达式表包含有表征索引的节点。
4.根据权利要求2所述的针对单数据流的网络安全处理方法,其特征在于,所述表配置字段还包括第二子字段和第三子字段;
所述代码文件通过如下步骤获取,包括:
基于所述抽象语法树,在确定所述关联表达式中包含第一类型的流表的第一目标索引和第二类型的流表的第二目标索引的情况下,将所述标识存储在所述第一子字段中;
基于所述第一目标索引生成第一函数的代码信息,并基于所述第二目标索引生成第二函数的代码信息;
将所述第一函数的代码信息对应的第一地址存储在所述第二子字段中,并将所述第二函数的代码信息对应的第二地址存储在所述第三子字段中,得到所述代码文件;
其中,所述第一地址用于调用计算第一类型的第一索引值的第一函数;所述第二地址用于调用计算第二类型的第二索引值的第二函数。
5.根据权利要求1所述的针对单数据流的网络安全处理方法,其特征在于,所述初始代码文件还包括关联计算字段;
在遍历所述抽象语法树中的节点之后,还包括:
基于所述抽象语法树中表征所述关联表达式的节点,生成用于进行关联计算的第三函数的代码信息;所述关联表达式包括每个数据流的参数之间的关联关系;
将所述第三函数的代码信息对应的第三地址存储在所述关联计算字段中,得到新的初始代码文件;基于所述新的初始代码文件,获得所述代码文件;其中,所述第三地址用于调用关联计算的第三函数。
6.根据权利要求2所述的针对单数据流的网络安全处理方法,其特征在于,在所述将所述标识存储在所述第一子字段中,得到所述代码文件之前,所述方法还包括:
将每个流表存储的数据流的标识存储在流表集合中;
所述将所述标识存储在所述第一子字段中,得到所述代码文件,包括:
从所述流表集合中获取各所述标识,将所述标识存储在所述第一子字段中,得到所述代码文件。
7.根据权利要求1所述的针对单数据流的网络安全处理方法,其特征在于,基于所述目标代码文件对所述单数据流进行网络安全处理,具体包括:
基于所述目标代码文件,调用删除处理流程从数据表中查找出与预先输入的待删除数据流关联的第一数据流进行删除处理,所述待删除数据流包含超时数据流;或者,
基于所述目标代码文件,调用插入处理流程从数据表中查找出与输入的待插入数据流关联的第二数据流,并将所述第二数据流插入到命中表中;或者,
基于所述目标代码文件,调用更新处理流程从数据表中查找出与预先输入的待更新数据流关联的第三数据流,并对所述第三数据流进行更新处理。
8.根据权利要求1所述的针对单数据流的网络安全处理方法,其特征在于,所述基于所述流表信息和所述关联表达式,构建抽象语法树,包括:
基于预先定义的词法规则对所述流表信息和所述关联表达式进行词法解析,生成词序列;
根据预先定义的语法规则,对词序列进行语法分析,获得语法分析结果,并将所述语法分析结果存储至语法树的节点中,构建抽象语法树。
9.一种针对单数据流的网络安全处理装置,其特征在于,包括:
表达式获取单元,用于获取关联分析表达式;所述关联分析表达式包括待分析的单数据流的流表信息和关联表达式;所述单数据流为从网络设备中获取的网络行为数据;
抽象语法树获得单元,用于基于所述流表信息和所述关联表达式,构建抽象语法树;所述抽象语法树包含用于表征所述关联表达式的节点以及用于表征所述流表信息的节点;
目标代码生成单元,用于遍历所述抽象语法树中的节点,调用预先设置的所述节点对应的目标代码生成流程,并基于所述目标代码生成流程生成所述节点对应的目标代码;
目标代码文件获得单元,用于将所述目标代码存储在所述代码文件中,得到目标代码文件;其中,所述代码文件基于所述抽象语法树配置的初始代码文件获得;
网络安全处理单元,用于基于所述目标代码文件对所述单数据流进行网络安全处理。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述针对单数据流的网络安全处理方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述针对单数据流的网络安全处理方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述针对单数据流的网络安全处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140904.3A CN116389049A (zh) | 2023-02-15 | 2023-02-15 | 一种针对单数据流的数据安全分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140904.3A CN116389049A (zh) | 2023-02-15 | 2023-02-15 | 一种针对单数据流的数据安全分析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116389049A true CN116389049A (zh) | 2023-07-04 |
Family
ID=86973961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310140904.3A Pending CN116389049A (zh) | 2023-02-15 | 2023-02-15 | 一种针对单数据流的数据安全分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116389049A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614877A (zh) * | 2023-11-27 | 2024-02-27 | 中国电子科技集团公司第十五研究所 | 一种网络安全检测系统 |
-
2023
- 2023-02-15 CN CN202310140904.3A patent/CN116389049A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614877A (zh) * | 2023-11-27 | 2024-02-27 | 中国电子科技集团公司第十五研究所 | 一种网络安全检测系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559554B (zh) | 一种查询语句优化方法及装置 | |
CN110908997A (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN110427188B (zh) | 单测断言程序的配置方法、装置、设备及存储介质 | |
CN110543356A (zh) | 异常任务检测方法、装置、设备及计算机存储介质 | |
CN116389049A (zh) | 一种针对单数据流的数据安全分析方法及装置 | |
CN108710662B (zh) | 语言转换方法和装置、存储介质、数据查询系统和方法 | |
CN113672628A (zh) | 数据血缘分析方法、终端设备及介质 | |
CN111813803A (zh) | 语句块执行计划的生成方法、装置、设备和存储介质 | |
CN115114325B (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN110147396B (zh) | 一种映射关系生成方法及装置 | |
CN116069667A (zh) | 基于代码分析的测试用例辅助定位方法及装置 | |
CN107273293B (zh) | 大数据系统性能测试方法、装置及电子设备 | |
CN115438341A (zh) | 提取代码循环计数器的方法、装置、存储介质和电子设备 | |
CN115048673A (zh) | 一种日志掩码方法及装置 | |
CN116561154A (zh) | Sql语句优化方法及装置 | |
CN114547083A (zh) | 数据处理方法、装置及电子设备 | |
CN112433943A (zh) | 基于抽象语法树的环境变量检测方法、装置、设备及介质 | |
CN116339741A (zh) | 基于多数据流的代码生成方法、安全告警方法及装置 | |
CN111736848A (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN111723104A (zh) | 一种数据处理系统中语法分析的方法、装置及系统 | |
CN114254207B (zh) | 企业同名高管识别方法、装置、电子设备及存储介质 | |
CN111381827A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
CN116541887B (zh) | 一种大数据平台数据安全保护方法 | |
CN112416966B (zh) | 即席查询方法、装置、计算机设备和存储介质 |
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 |