CN111294310B - 自动提取工作流程方法和在分布式系统中检测侵入方法 - Google Patents
自动提取工作流程方法和在分布式系统中检测侵入方法 Download PDFInfo
- Publication number
- CN111294310B CN111294310B CN201811485731.4A CN201811485731A CN111294310B CN 111294310 B CN111294310 B CN 111294310B CN 201811485731 A CN201811485731 A CN 201811485731A CN 111294310 B CN111294310 B CN 111294310B
- Authority
- CN
- China
- Prior art keywords
- vector
- node
- clock
- global
- events
- 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.)
- Active
Links
Images
Classifications
-
- 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/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及自动提取工作流程的方法。分布式系统包括N个节点以及一全局客户端,其中,N个节点中的每个节点上发生的事件对应于一个N维的向量时钟,向量时钟存储在全局客户端中,该方法包括以下步骤:确定分布式系统中的目标事件;基于目标事件对应的向量时钟获取与目标事件关联的多个事件;基于目标事件对应的向量时钟和多个事件中的每个事件对应的向量时钟在全局客户端中对多个事件进行排序,以自动提取工作流程。以此,提高了提取工作流程的效率。本申请还涉及在分布式系统中检测侵入的方法,来提高系统的安全。最后,本申请还涉及自动提取工作流程的装置和在分布式系统中检测侵入的装置以及实现本申请方法的相应的存储介质。
Description
技术领域
本申请涉及分布式系统领域。具体地,本申请涉及自动提取工作流程的方法以及在分布式系统中检测侵入的方法。
背景技术
现有的X射线生成过程中,有很多复杂且不稳定的工作流程,例如在3D成像技术中。在工作流程中断时,开发者和技术支持人员都很难在大量传输的报文中找到根源或者究竟发生了什么。通过文件和技术人员的经验是唯一的总结工作流程的方法。然而,如果工作流程很新、易变且复杂,是不可能找到所有对于整个工作流程必要的工作步骤的。存在难以高效提取工作流程的问题。
此外,网络安全如今成为了一个很重要的话题。当一个未授权的侵入者故意攻击原始系统时,所规划的工作流程将中断,这将引起不期望的系统行为。在现今的分布式系统中出存在难以对黑客侵入进行监控的问题。
发明内容
本申请实施例提供了在分布式系统中的自动提取工作流程的方法,以至少解决现有技术中难以高效地在分布式系统提取工作流程的问题。
根据本申请实施例的一个方面,提供了自动提取工作流程的方法,自动提取工作流程的方法,分布式系统包括N个节点以及一全局客户端,其中,N个节点中的每个节点上发生的事件对应于一个N维的向量时钟,向量时钟存储在全局客户端中,方法包括以下步骤:确定分布式系统中的目标事件;基于目标事件对应的向量时钟获取与目标事件关联的多个事件;基于目标事件对应的向量时钟和多个事件中的每个事件对应的向量时钟在全局客户端中对多个事件进行排序,以自动提取工作流程。
在分布式系统中,因为不能完美地同步时钟,因此通常不能使用物理时间指出在分布式系统中发生的任何一对事件的顺序,而由此Lamport提出了逻辑时钟,它可数字化地捕获事件发生的在先顺序。逻辑时钟是一个单调增长的软件计数器,它的值与任何物理时钟无关。但是这种的时钟具有局限性,只能由事件的先后顺序推出逻辑时钟的大小,而不能由逻辑时钟的大小推出事件的先后顺序。为了克服这个缺点,在此基础上开发出了向量时钟,以此能够通过事件的向量时钟来判断它们发生的先后顺序,或者确定它们是并发的。
以这样的方式,通过全局客户端对所有事件的向量时钟进行监控并且基于各个事件的向量时钟将各个事件排序,能够自动的产生从所指定的目标事件开始的工作流程,极大地减少了技术支持人员的工作量,并且提高了工作效率以及精度。
根据本申请的示例性实施例,在确定所述分布式系统中的目标事件之前,方法还包括:为N个节点中的每个节点设置对应的N维零向量作为初始的向量时钟,在一节点有事件发生时,更新该节点的向量时钟。
在整个工作开始时,对分布式系统中的N个节点进行初始设置并在事件发生时进行更新,以这样的方式来以统一的规则监控各个节点,以实现全局监控。
根据本申请的示例性实施例,其中,N个节点中的第i个节点的向量时钟的第j个元素对应于第i个节点已知的N个节点中的第j个节点的事件计数值,其中,更新该节点的向量时钟包括:第i个节点处,当本地事件发生时,第i个节点的向量时钟中的第i个元素增加一第一预设值;在第i个节点将报文连同向量时钟发送给第j个节点之后,第j个节点的向量时钟的第j个元素增加第一预设值,并且如果接收到的第i个节点的向量时钟中存在大于当前的第j个节点的向量时钟中的相应元素的元素时,将第j个节点的向量时钟的相应元素更新为第i个节点的向量时钟中的元素。
以这样的方式,简单有效地对在节点发生的事件进行计数。在此,第一预设值优选地设置为1,这能够进一步简化计算。
根据本申请的示例性实施例,在获取与目标事件关联的多个事件之前,方法还包括:对比目标事件与所有其他事件所对应的向量时钟。
以这样的方式,在全局客户端中,通过分别将各个事件对应的向量时钟与目标事件对应的向量时钟进行对比,以得到事件与目标事件的关系。
根据本申请的示例性实施例,对比目标事件与所有其他事件所对应的向量时钟包括:在目标事件对应的向量时钟中的每个元素小于等于其他事件对应的向量时钟的每个对应元素时,其他事件在目标事件之后发生,在目标事件对应的向量时钟中存在至少一个大于其他事件对应的向量时钟中的相应元素的元素并同时也存在小于等于其他事件对应的向量时钟中的相应元素的元素时,目标事件与其他事件并发。
以这样的方式,能够准确的得出各个事件与目标事件发生的先后顺序。
根据本申请的示例性实施例,在全局客户端中对多个事件进行排序包括:在全局客户端中将多个事件对应的M个向量时钟组成一个集合P0;a.在集合P0中剔除具有各个元素都为最小的一个向量时钟,以得到集合PM;b.将所得到的集合PM设置为集合P0;重复步骤a和步骤b直到集合PM为空集,将对应于剔除的向量时钟的事件按照剔除的顺序排序以自动提取工作流程。
以这样的方式,能够通过在全局客户端执行该算法,自动地提取出从目标事件开始的工作流程。
根据本申请的示例性实施例,在全局客户端中对多个事件进行排序包括:将目标事件作为起始点,将与目标事件关联的多个事件中的每一个作为顶点形成有向无环图,其中,有向无环图的棱边指向在后发生的事件,利用拓扑排序算法将所有事件排序,以自动提取工作流程。
所谓的有向无环图是一个无回路的有向图。由于正常的工作流程没有循环,所以工作流程中的事件通常能形成有向无环图。以这种方式,能够更高效地对事件进行排序。
根据本申请的示例性实施例,拓扑排序算法包括:a.找出有向无环图中只有指向其他顶点的棱边的零入度顶点;b.依次在图中删除零入度顶点以及与零入度顶点连接的棱边;重复步骤a和步骤b直至删除所有顶点,将顶点按删除的顺序排序以完成拓扑排序。
在此的所谓的拓扑排序是将有向无环图中的顶点以线性方式进行排序。而对此的典型算法有Kahn算法和基于DFS的拓扑排序。在此应用的便是Kahn算法。以这样的方式,通过使用成熟的算法对事件进行排序使得排序更简便准确。
根据本申请实施例的另一方面,为了提高系统安全性,还提供了在分布式系统中检测侵入的方法。在此,分布式系统包括N个节点以及一个全局客户端,其中,每个节点包括一个N维的向量时钟,全局客户端具有全局授权并且是安全的,方法包括以下步骤:全局客户端存储在N个节点上发生的事件对应的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;全局客户端在有事件发生后基于全局向量时钟表,判断系统是否被侵入。
全局客户端是安全的,并且被授权访问所有的节点并记录在各个节点发生的事件的向量时钟。全局客户端对事件的向量时钟进行实时的监控,当发现更新的向量时钟相对于之前的向量时钟出现异常时,便确定系统被侵入,此时发出警报以避免产生错误的工作流程。
根据本申请的示例性实施例,生成相应的向量时钟矩阵作为全局向量时钟表之前,方法还包括:为N个节点中的每个节点设置对应的N维的零向量作为初始的向量时钟,在一节点有事件发生时,更新该节点的向量时钟。
根据本申请的示例性实施例,N个节点中的第i个节点的向量时钟的第j个元素对应于第i个节点已知的N个节点中的第j个节点的事件计数值,其中,更新该节点的向量时钟包括:在第i个节点处,当本地事件发生时,第i个节点的向量时钟中的第i个元素增加一第一预设值;在第i个节点将报文连同向量时钟发送给第j个节点之后,第j个节点的向量时钟的第j个元素增加第一预设值,并且如果接收到的第i个节点的向量时钟中存在大于当前的第j个节点的向量时钟的相应元素的元素,将第j个节点的向量时钟的相应元素更新为第i个节点的向量时钟中的元素。
在此,利用了同样的方式来更新向量时钟。
根据本申请的示例性实施例,判断系统是否被侵入包括:在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文后,全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行中存在有大于第i行中的相应元素的元素且同时存在小于等于第i行中的相应元素的元素时,判断为系统被侵入。
以这样的方式,确定出节点接收报文事件与前一节点的发送报文事件是并发事件,与事实矛盾,所以判断为受到侵入。
根据本申请的示例性实施例,判断系统是否被侵入包括:在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文后,全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行第i列的元素与第i行第i列的元素不同时,判断为系统被侵入。
以这样的方式,发现在第j节点接收到的报文没有根据来自于第i个节点的向量时钟跟新,与事实矛盾,所以判断为受到侵入。
根据本申请的示例性实施例,判断所述系统是否被侵入包括:在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文时,全局客户端更新全局向量时钟表,用更新的全局向量时钟表减去之前的全局向量时钟表得到全局向量时钟表差值,当全局向量时钟表差值的第i行、第j列元素等于第一预设值并且全局向量时钟表差值的第i行、第j列元素小于等于第二预设值时,判断为系统被侵入。
在此,当向量时钟以1作为第一预设值更新时,在此第二预设值为2。
以这样的方式,通过以上三种判断规则,能够准备地判断出系统是否被侵入。
根据本申请实施例的另一方面,还提供有自动提取工作流程的装置,包括:确定模块,被配置为确定分布式系统中的目标事件;获取模块,被配置为基于目标事件对应的向量时钟获取与目标事件关联的多个事件;排序模块,被配置为基于目标事件对应的向量时钟和多个事件中的每个事件对应的向量时钟对多个事件进行排序,以自动提取工作流程。
以这样的方式,通过自动提取工作流程的装置对所有事件的向量时钟进行监控并且基于各个事件的向量时钟将各个事件排序,能够自动的产生从所指定的目标事件开始的工作流程,极大地减少了技术支持人员的工作量,并且提高了工作效率以及精度。
根据本申请实施例的另一方面,还提供有在分布式系统中检测侵入的装置,包括:存储模块,被配置为存储在分布式系统中的多个节点上发生的事件对应的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;判断模块,被配置为在有事件发生后基于全局向量时钟表,判断分布式系统是否被侵入。
在此,在分布式系统中检测侵入的装置是安全的,并且被授权访问所有的节点并记录在各个节点发生的事件的向量时钟。该装置对事件的向量时钟进行实时的监控,当发现更新的向量时钟相对于之前的向量时钟出现异常时,便确定系统被侵入,此时发出警报以避免产生错误的工作流程。
根据本申请实施例的另一方面,还提供有存储介质,其包括存储的程序,其中,在该程序运行时控制存储介质所在设备执行根据本发明的方法。
在本申请实施例中,提供了基于向量时钟自动提取工作流程的方法的技术方案,以至少解决难以高效地提取工作流程的技术问题,实现了自动提取工作流程的技术效果。此外,在本申请实施例中,还提供了基于向量时钟在分布式系统中检测侵入的方法,实现了对分布式系统的侵入的准确检测,提高了分布式系统的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的自动提取工作流程的方法的事件流程图;
图2是根据本申请实施例的分布式系统中的工作流程的流程图的具体实例;
图3是基于图2中的实例所形成的有向无环图;
图4是根据本申请实施例的在分布式系统中检测侵入的方法的流程图;
图5是分布式系统在受到三种侵入时的事件流程图;
图6是根据本申请实施例的自动提取工作流程的装置的框图;
图7是根据本申请实施例的在分布式系统中检测侵入的装置的框图。
其中,上述附图包括以下附图标记:
S102: 确定分布式系统中的目标事件;
S104: 基于向量时钟获取与目标事件关联的多个事件;
S106: 基于目标事件的向量时钟和多个事件中每个事件的向量时钟进行排序,以自动提取工作流程;
E1-E14: 事件;
A、B、C: 节点;
S202: 全局客户端存储N个节点的事件的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;
S204: 全局客户端在有事件发生时基于全局向量时钟表,判断系统是否被侵入;
Attacker1: 侵入者;
Attacker2: 侵入者;
Attacker3: 侵入者;
E21-E26: 事件;
H1-H3: 事件;
3: 自动提取工作流程的装置;
302: 确定模块;
304: 获取模块;
306: 排序模块;
4: 在分布式系统中检测侵入的装置;
402: 存储模块;
404: 判断模块。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块或单元。
为了高效地在分布式系统提取工作流程,在此提供了自动提取工作流程的方法。图1是根据本申请实施例的基于向量时钟自动提取工作流程的方法的事件流程图。分布式系统包括N个节点以及一个全局客户端,其中,每个节点包括一个N维的向量时钟,并且向量时钟存储在全局客户端中,该方法如图1所示包括以下步骤:
在步骤S102中,确定分布式系统中的目标事件,其中,目标事件中包括目标事件发生时的向量时钟;在步骤104中,基于向量时钟获取与目标事件关联的多个事件;在步骤106中,基于目标事件的向量时钟和多个事件中每个事件的向量时钟进行排序,以确定出从目标事件开始的工作流程。
以这样的方式,通过全局客户端对所有事件的向量时钟进行监控并且基于各个事件的向量时钟将各个事件排序,能够自动的产生从所指定的目标事件开始的工作流程,极大地减少了技术支持人员的工作量,并且提高了工作效率以及精度。
根据本申请的示例性实施例,在步骤S102之前,该方法还包括:为N个节点中每个节点设置对应的N维的零向量作为初始的向量时钟,在一节点有事件发生时,更新该节点的向量时钟。
进一步地,N个节点中的第i个节点的向量时钟的第j个元素对应于第i个节点已知的N个节点中的第j个节点的事件计数值,更新该节点的向量时钟包括:第i个节点处,当本地事件发生时,第i个节点的向量时钟中的第i个元素增加1;在第i个节点将报文连同向量时钟发送给第j个节点时之后,第j个节点的向量时钟的第j个元素增加1,并且如果接收到的第i个节点的向量时钟中存在大于当前的第j个节点的向量时钟的相应元素的元素,将第j个节点的向量时钟的相应元素更新为第i个节点的向量时钟中的元素。
根据本申请的示例性实施例,在获取与目标事件关联的多个事件之前,方法还包括:对比目标事件与所有其他事件所对应的向量时钟。
以这样的方式,在全局客户端中,通过分别将各个事件的向量时钟与目标事件的向量时钟进行对比,以得到事件与目标事件的关系。
根据本申请的示例性实施例,对比目标事件与所有其他事件所对应的向量时钟包括:在目标事件的向量时钟中的每个元素小于等于其他事件的每个对应元素时,其他事件在目标事件之后发生,在目标事件的向量时钟中存在至少一个大于其他事件对应的向量时钟中的相应元素的元素并同时也存在小于等于其他事件对应的向量时钟中的相应元素的元素时,目标事件与第二事件并发。
以这样的方式,能够准确的得出各个事件与目标事件发生的先后顺序。
下面根据本申请实施例的分布式系统中的工作流程的事件流程图的具体实例来说明上述过程。在图2中示出了一个分布式系统的工作流程的事件流程图。该分布式系统包括三个节点,即节点A、节点B、节点C。首先分别为节点A、节点B、节点C设置初始向量时钟:CA=[0 0 0]、CB=[0 0 0]、CC=[0 0 0],此时,全局向量时钟表为
事件E2:随后,节点C将报文以及向量时钟CC=[0 0 1]发送给节点B。节点B接收到来自节点C的报文,B的时钟加一更新为CB=[0 1 0],将CB与CC比较,将向量时钟CB中的各个元素更新为两个向量时钟CB与CC中的相应元素中较大的元素,即CB被更新为CB=[0 1 1],此时,
在此,可以看出事件E3:CB=[0 2 1]中的每个元素都不大于事件E11:CC=[2 54],则事件E3在事件E11之前发生,即E3→E11。另一方面,事件E9:CC=[0 3 3]中的元素,存在大于事件E10:CB=[2 5 1]中的相应元素也存在有小于事件E10中的相应元素的,则事件E9与事件E10并发。
如此,工作流程结束,综上能够得到先在发生的部分序列,例如:E1:CC=[0 0 1]→E2:CB=[0 1 1]→E3:CB=[0 2 1]→E4:CA=[1 2 1]→E5:CA=[2 2 1]→E7:CB=[2 41]→E10:CB=[2 5 1]→E11:CC=[2 5 4]→E13:CC=[2 5 5]→E14:CA=[4 5 5]。由此便得到了一个工作流程。同样得也能找其他的几个工作流程。
根据本申请的示例性实施例,由全局客户端对多个事件进行排序包括:在全局客户端中将多个事件对应的M个向量时钟组成一个集合P0;a.在集合P0中剔除具有各个元素都为最小的一个向量时钟,以得到集合PM;b.将所得到的集合PM设置为集合P0;重复步骤a和步骤b直到集合PM为空集,将对应于剔除的向量时钟的事件按照剔除的顺序排序以自动提取工作流程。
以这样的方式,能够通过在全局客户端执行该算法,自动地提取出从目标事件开始的工作流程。
在此主要介绍另一种方法,即有向无环图的拓扑排序算法。该方法包括:将目标事件作为起始点,将与目标事件关联的多个事件中的每一个作为顶点形成有向无环图,其中,有向无环图的棱边指向在后发生的事件,利用拓扑排序算法将所有事件排序,从而得到从目标事件开始的工作流程。
所谓的有向无环图示一个无回路的有向图。由于正常的工作流程没有循环,所以工作流程中的事件通常能形成有向无环图。以这种方式,能够更高效地对事件进行排序。
根据本申请的示例性实施例,拓扑排序算法包括:a.找出有向无环图中只有指向其他顶点的零入度顶点;b.依次在图中删除零入度顶点以及与零入度顶点连接的棱边;重复步骤a和步骤b直至删除所有顶点,将顶点按删除的顺序排序以完成拓扑排序。
在此的所谓的拓扑排序是将有向无环图中的顶点以线性方式进行排序。而对此的典型算法有Kahn算法和基于DFS的拓扑排序。在此应用的便是Kahn算法。以这样的方式,能够使用成熟的算法对事件进行排序并得到工作流程。
图3中示出了基于图2中的实例所形成的有向无环图。下面集合图3来阐述Kahn算法的应用实例。在此,将事件E6选择为目标事件,在所有事件中选取了事件在E6后发生的事件E7、事件E8、事件E9、事件E10、事件E11、事件E12、事件E13、事件E14作为顶点,并根据向量时钟按它们之间发生的先后顺序给棱边加上方向。首先,可以看出入度为0的顶点为E6,则将顶点E6及其指向E7和E8的棱边删除。在剩下的图中,入度为0的顶点为E7和E8,则将顶点E7和E8及其棱边一并删除。按照该方法,依次删除了E10和E9、E11和E12然后是E13最后是E14,由此得到最后的步骤为E14。在此,能够看出E7与E8、E10与E9、E11与E12都是并发的,无法确定它们的先后顺序,那么需要从E14开始向前推来获得从E6开始的工作流程,以这样的方法能够节省大量的计算资源和时间。
下面给出有向无环图的拓扑排序的Kahn算法,其包括:
步骤a.设置将要包含所有被排序的元素的空集L;
步骤b.设置包含所有入度为0的节点的集合S,
判断集合S是否非空,在集合S非空时执行以下步骤:
步骤b1.在集合S中删除节点n;
步骤b2.将节点n插入到集合L中;
步骤b3.对每个具有从n指向m的棱边e的节点m执行以下步骤:
步骤b31.在图中删除棱边e;
步骤b32.如果节点m没有其他输入的棱边则将节点m插入集合S中;
步骤c.判断图是否包含棱边,
如果包含棱边则算法终止,确定图包含至少一个环,
如果不包含棱边算法终止并得到集合L,由集合L中元素的顺序确定拓扑排列的顺序。
根据本申请实施例的另一方面,还提供了基于向量时钟在分布式系统中检测侵入的方法。图4示出了基于向量时钟在分布式系统中检测侵入的方法的流程图,其中,分布式系统包括N个节点以及一个全局客户端,其中,每个节点包括一个N维的向量时钟,并且全局客户端具有全局授权,方法包括以下步骤:在步骤S202中,全局客户端存储N个节点的事件的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;在步骤S204中,全局客户端在有事件发生时基于全局向量时钟表,判断系统是否被侵入。
全局客户端是安全的,并且被授权访问所有的节点并记录在各个节点发生的事件对应的向量时钟。全局客户端对事件的向量时钟进行实时的监控,当发现更新的向量时钟相对于之前的向量时钟出现异常时,便确定系统被侵入,此时发出警报以避免产生错误的工作流程。
判断系统是否被侵入的规则包括:
1.在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文后,全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行中存在有大于第i行中的相应元素的元素且同时存在小于等于第i行中的相应元素的元素时,判断为系统被侵入。
2.在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文后,全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行第i列的元素与第i行第i列的元素不同时,判断为系统被侵入。
3.在分布式系统中的第j个节点接收到来自在系统的第i个节点的报文时,全局客户端更新全局向量时钟表,用更新的全局向量时钟表减去之前的全局向量时钟表得到全局向量时钟表差值,当全局向量时钟表差值的第i行、第j列元素等于1并且全局向量时钟表差值的第i行、第j列元素小于等于第二预设值时,判断为系统被侵入。在此,在向量时钟以1作为第一预设值进行更新时,第二预设值选择为2。
下面基于图5来阐述全局客户端如何判断系统被侵入。在图5中示出的分布式系统包括节点A、节点B、节点C,并且有三个侵入者Attacker 1、Attacker 2以及Attacker3试图伪装为节点B给节点A发送报文以将流程继续下去。首先分别为节点A、节点B、节点C设置初始向量时钟:CA=[0 0 0]、CB=[0 0 0]、CC=[0 0 0],此时,全局向量时钟表为节点C发生本地事件,向量时钟加一得到CC=[0 0 1],此时,全局向量时钟表为之后,节点C将报文和向量时钟一并发给节点B,节点B收到报文时向量时钟加一,得到CB=[0 1 0],对比后更新为CB=[0 1 1],此时,全局向量时钟表为这时节点B决定不再继续工作流程,而侵入者Attacker 1伪装为节点B以具有向量时钟CB1=[0 2 1]的事件H1向节点A发送报文,节点A接收的报文、即事件E24发生后,向量时钟加一,并更新为CA=[1 2 1],此时,全局向量时钟表为可以看出,在节点A接收到节点B的报文后,所以节点A的与节点B对应的元素应和节点B的相同,即应该为1,但在此为2,不符合规律,所以全局客户端确定系统受到了侵入。
另一方面,侵入者Attacker 2伪装为节点B以具有向量时钟CB2=[0 0 1]的事件H2向节点A发送报文,节点A接收的报文、即事件E25发生后,向量时钟加一,并更新为CA=[1 01],此时,全局向量时钟表为可以看出,事件E25与事件E22并发,不符合规律,所以全局客户端确定系统受到了侵入。
再者,侵入者Attacker 3伪装为节点B以具有向量时钟CB3=[0 1 1]的事件H3向节点A发送报文,节点A接收的报文、即事件E26发生后,向量时钟加一,并更新为CA=[1 1 1],此时,全局向量时钟表为一般性地,在节点处发生的工作流程能够被总结为:
1)接收报文,向量时钟Cii增加,
2)发生本地事件,向量时钟Cii增加,
3)发送报文以及向量时钟。
给定全局向量时钟表CG=Cij,1≤i≤n,1≤j≤n。当第j个节点接收报文,发生本地事件然后向第i个节点发送报文和向量时钟,第j个节点的向量时钟的第j个元素增加了两次,此时向量时钟表变为当第i个节点接收到报文时,向量时钟表变为
以这样的方式,通过一般性的规律,能够准备地判断出系统是否被侵入。
综上所述,本申请实施例提供了在分布式系统中的自动提取工作流程的方法,以至少解决现有技术中难以高效地在分布式系统提取工作流程的问题。并且另一方面,还提供了在分布式系统中检测侵入的方法,以提高系统安全性。
根据本申请实施例的另一方面,还提供有自动提取工作流程的装置。图6是根据本申请实施例的自动提取工作流程的装置的框图。参见图6,自动提取工作流程的装置3包括:
确定模块302,被配置为确定分布式系统中的目标事件;
获取模块304,被配置为基于目标事件对应的向量时钟获取与目标事件关联的多个事件;
排序模块306,被配置为基于目标事件对应的向量时钟和多个事件中的每个事件对应的向量时钟对多个事件进行排序,以自动提取工作流程。
根据本申请实施例的自动提取工作流程的装置3实现的方法与参考图1所描述的自动提取工作流程的方法相同,此处不再赘述。
根据本申请实施例的另一方面,还提供有在分布式系统中检测侵入的装置。图7是根据本申请实施例的在分布式系统中检测侵入的装置的框图。参见图7,在分布式系统中检测侵入的装置4,包括:
存储模块402,被配置为存储在分布式系统中的多个节点上发生的事件对应的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;
判断模块404,被配置为在有事件发生后基于全局向量时钟表,判断分布式系统是否被侵入。
根据本申请实施例的在分布式系统中检测侵入的装置4实现的方法与参考图4所描述的在分布式系统中检测侵入的方法相同,此处不再赘述。
根据本申请实施例的另一方面,还提供有存储介质,其包括存储的程序,其中,在该程序运行时控制存储介质所在设备执行根据本发明的上述方法。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理单元或模块,即可以位于一个地方,或者也可以分布到多个网络单元或模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是各个单元或模块单独物理存在,也可以两个或两个以上单元或模块集成在一个单元或模块中。上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元或模块的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.自动提取工作流程的方法,其特征在于,分布式系统包括N个节点以及一全局客户端,其中,所述N个节点中的每个节点上发生的事件对应于一个N维的向量时钟,所述向量时钟存储在所述全局客户端中,所述方法包括以下步骤:
确定所述分布式系统中的目标事件;
对比所述目标事件与所有其他事件所对应的向量时钟,在所述目标事件对应的向量时钟中的每个元素小于等于所述其他事件对应的向量时钟中的每个对应元素时,所述其他事件在所述目标事件之后发生,在所述目标事件对应的向量时钟中存在至少一个大于所述其他事件对应的向量时钟中的相应元素的元素并同时也存在小于等于所述其他事件对应的向量时钟中的相应元素的元素时,所述目标事件与所述其他事件并发;
由所述全局客户端对所述多个事件进行排序,在所述全局客户端中将所述多个事件对应的M个向量时钟组成一个集合P0;
a.在集合P0中剔除具有各个元素都为最小的一个向量时钟,以得到集合PM;
b.将所得到的集合PM设置为集合P0;
重复步骤a和步骤b直到集合PM为空集,将对应于剔除的向量时钟的事件按照剔除的顺序排序以自动提取工作流程。
2.根据权利要求1所述的方法,其特征在于,在确定所述分布式系统中的目标事件之前,所述方法还包括:
为所述N个节点中的每个节点设置对应的N维零向量作为初始的向量时钟,在一节点有事件发生时,更新该节点的向量时钟。
3.根据权利要求2所述的方法,其特征在于,所述N个节点中的第i个节点的向量时钟的第j个元素对应于所述第i个节点已知的所述N个节点中的第j个节点的事件计数值,其中,更新该节点的向量时钟包括:
在所述第i个节点处,当本地事件发生时,所述第i个节点的向量时钟中的第i个元素增加一第一预设值;
在所述第i个节点将报文连同向量时钟发送给所述第j个节点之后,所述第j个节点的向量时钟的第j个元素增加所述第一预设值,并且如果接收到的所述第i个节点的向量时钟中存在大于当前的所述第j个节点的向量时钟中的相应元素的元素时,将所述第j个节点的向量时钟中的相应元素更新为所述第i个节点的向量时钟中的元素。
4.根据权利要求1所述的方法,其特征在于,由所述全局客户端对所述多个事件进行排序包括:
将所述目标事件作为起始点,将与所述目标事件关联的多个事件作为顶点形成有向无环图,其中,有向无环图的棱边指向在后发生的事件,利用拓扑排序算法对多个事件排序,以自动提取工作流程。
5.根据权利要求4所述的方法,其特征在于,拓扑排序算法包括:
a.找出所述有向无环图中只具有指向其他顶点的棱边的零入度顶点;
b.依次在图中删除所述零入度顶点以及与所述零入度顶点连接的棱边;
重复步骤a和步骤b直至删除所有顶点,将顶点按删除的顺序排序以完成拓扑排序。
6.在分布式系统中检测侵入的方法,其特征在于,分布式系统包括N个节点以及一个全局客户端,其中,每个节点包括一个N维的向量时钟,所述全局客户端具有全局授权并且是安全的,所述方法包括以下步骤:
所述全局客户端存储在所述N个节点上发生的事件对应的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;
所述全局客户端在有事件发生后基于所述全局向量时钟表,判断所述系统是否被侵入;
判断所述系统是否被侵入包括:
在所述分布式系统中的第j个节点接收到来自在所述系统的第i个节点的报文后,所述全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行中存在有大于第i行中的相应元素的元素且同时存在小于等于第i行中的相应元素的元素时,判断为所述系统被侵入。
7.根据权利要求6所述的方法,其特征在于,生成相应的向量时钟矩阵作为全局向量时钟表之前,所述方法还包括:
为所述N个节点中的每个节点设置对应的N维零向量作为初始的向量时钟,在一节点有事件发生时,更新该节点的向量时钟。
8.根据权利要求7所述的方法,其特征在于,所述N个节点中的第i个节点的向量时钟的第j个元素对应于所述第i个节点已知的所述N个节点中的第j个节点的事件计数值,其中,更新该节点的向量时钟包括:
在所述第i个节点处,当本地事件发生时,所述第i个节点的向量时钟中的第i个元素增加一第一预设值;
在所述第i个节点将报文连同向量时钟发送给所述第j个节点之后,所述第j个节点的向量时钟的第j个元素增加所述第一预设值,并且如果接收到的所述第i个节点的向量时钟中存在大于当前的所述第j个节点的向量时钟中的相应元素的元素,将所述第j个节点的向量时钟的相应元素更新为所述第i个节点的向量时钟中的元素。
9.根据权利要求6所述的方法,其特征在于,判断所述系统是否被侵入包括:
在所述分布式系统中的第j个节点接收到来自在所述系统的第i个节点的报文后,所述全局客户端更新全局向量时钟表,在更新的全局向量时钟表的第j行第i列的元素与第i行第i列的元素不同时,判断为所述系统被侵入。
10.根据权利要求6所述的方法,其特征在于,判断所述系统是否被侵入包括:
在所述分布式系统中的第j个节点接收到来自在所述系统的第i个节点的报文时,所述全局客户端更新全局向量时钟表,用更新的全局向量时钟表减去之前的全局向量时钟表得到全局向量时钟表差值,当所述全局向量时钟表差值的第i行、第j列元素等于第一预设值并且所述全局向量时钟表差值的第i行、第j列元素小于等于第二预设值时,判断为所述系统被侵入。
11.自动提取工作流程的装置,其特征在于,所述装置包括:
确定模块,被配置为确定分布式系统中的目标事件;
获取模块,被配置为基于所述目标事件对应的向量时钟获取与所述目标事件关联的多个事件;
排序模块,被配置为基于所述目标事件对应的向量时钟和所述多个事件中的每个事件对应的向量时钟对所述多个事件进行排序,以自动提取工作流程;
其中,所述装置用于实现如权利要求1所述的方法。
12.在分布式系统中检测侵入的装置,其特征在于,所述装置包括:
存储模块,被配置为存储在分布式系统中的多个节点上发生的事件对应的向量时钟并生成相应的向量时钟矩阵作为全局向量时钟表;
判断模块,被配置为在有事件发生后基于所述全局向量时钟表,判断所述分布式系统是否被侵入;
其中,所述装置用于实现如权利要求6所述的方法。
13.存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至10中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811485731.4A CN111294310B (zh) | 2018-12-06 | 2018-12-06 | 自动提取工作流程方法和在分布式系统中检测侵入方法 |
US16/704,251 US11089037B2 (en) | 2018-12-06 | 2019-12-05 | Method for automatically retrieving workflow and method for detecting intrusion in distributed system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811485731.4A CN111294310B (zh) | 2018-12-06 | 2018-12-06 | 自动提取工作流程方法和在分布式系统中检测侵入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294310A CN111294310A (zh) | 2020-06-16 |
CN111294310B true CN111294310B (zh) | 2022-04-29 |
Family
ID=70972228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811485731.4A Active CN111294310B (zh) | 2018-12-06 | 2018-12-06 | 自动提取工作流程方法和在分布式系统中检测侵入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11089037B2 (zh) |
CN (1) | CN111294310B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3824532A (en) * | 1971-09-27 | 1974-07-16 | Us Air Force | Seismic signal intrusion detection classification system |
AUPR464601A0 (en) * | 2001-04-30 | 2001-05-24 | Commonwealth Of Australia, The | Shapes vector |
US8364642B1 (en) * | 2010-07-07 | 2013-01-29 | Palantir Technologies, Inc. | Managing disconnected investigations |
CN102122254A (zh) * | 2011-02-25 | 2011-07-13 | 南京大学 | 一种基于逻辑时钟的智能空间感知方法 |
GB2526501A (en) * | 2013-03-01 | 2015-11-25 | Redowl Analytics Inc | Modeling social behavior |
US20140249785A1 (en) * | 2013-03-01 | 2014-09-04 | RedOwl Analytics, Inc. | Modeling social behavior |
US10171635B2 (en) * | 2013-12-04 | 2019-01-01 | Cloudera, Inc. | Ensuring properly ordered events in a distributed computing environment |
CN104615478A (zh) * | 2014-12-31 | 2015-05-13 | 电子科技大学 | 一种用于分布式仿真的仿真推进顺序错误识别及修正方法 |
CN106453594A (zh) * | 2016-10-26 | 2017-02-22 | 成都易云知科技有限公司 | 一种全局逻辑时钟同步分布式方法 |
GB201701592D0 (en) * | 2017-01-31 | 2017-03-15 | Nchain Holdings Ltd | Computer-implemented system and method |
CN107181805B (zh) * | 2017-05-26 | 2019-11-12 | 上交所技术有限责任公司 | 一种在微服务架构下实现全局有序重演的方法 |
US11106789B2 (en) * | 2019-03-05 | 2021-08-31 | Microsoft Technology Licensing, Llc | Dynamic cybersecurity detection of sequence anomalies |
-
2018
- 2018-12-06 CN CN201811485731.4A patent/CN111294310B/zh active Active
-
2019
- 2019-12-05 US US16/704,251 patent/US11089037B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200186551A1 (en) | 2020-06-11 |
CN111294310A (zh) | 2020-06-16 |
US11089037B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3343869B1 (en) | A method for modeling attack patterns in honeypots | |
JP6528448B2 (ja) | ネットワーク攻撃監視装置、ネットワーク攻撃監視方法、及びプログラム | |
CN107943949B (zh) | 一种确定网络爬虫的方法及服务器 | |
CN110995482B (zh) | 告警分析方法、装置、计算机设备及计算机可读存储介质 | |
CN108491720B (zh) | 一种应用识别方法、系统以及相关设备 | |
CN111935172A (zh) | 基于网络拓扑的网络异常行为检测方法、计算机装置及计算机可读存储介质 | |
WO2003100619A1 (fr) | Dispositif, programme et procede de detection d'acces non autorise | |
CN112385196B (zh) | 用于报告计算机安全事故的系统和方法 | |
EP3639185B1 (en) | Network, method and computer program product for organizing and processing data | |
EP3812997B1 (en) | Blockchain-based data processing method and apparatus, and server | |
CN111221722A (zh) | 行为检测方法、装置、电子设备及存储介质 | |
CN112671767A (zh) | 一种基于告警数据分析的安全事件预警方法及装置 | |
CN112084500A (zh) | 病毒样本的聚类方法、装置、电子设备和存储介质 | |
CN113259364B (zh) | 一种网络事件关联分析方法及装置、计算机设备 | |
US20180181871A1 (en) | Apparatus and method for detecting abnormal event using statistics | |
CN113377869B (zh) | 一种区块链共享信息均衡存储方法 | |
CN111294310B (zh) | 自动提取工作流程方法和在分布式系统中检测侵入方法 | |
CN113596040A (zh) | 安全策略部署方法、访问控制方法及装置、访问控制系统 | |
CN113704569A (zh) | 信息的处理方法、装置及电子设备 | |
CN110730063B (zh) | 安全验证方法、系统、物联网平台、终端和可读存储介质 | |
CN110192196B (zh) | 攻击/异常检测装置、攻击/异常检测方法和存储介质 | |
CN115146263A (zh) | 用户账号的失陷检测方法、装置、电子设备及存储介质 | |
CN114547655A (zh) | 区块链的节点入网及装置、电子设备 | |
CN108123960B (zh) | 直播房间人气验证方法、装置及电子设备 | |
CN112765010A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |