CN113965469A - 网络数据分析模型的构建方法 - Google Patents
网络数据分析模型的构建方法 Download PDFInfo
- Publication number
- CN113965469A CN113965469A CN202111137372.5A CN202111137372A CN113965469A CN 113965469 A CN113965469 A CN 113965469A CN 202111137372 A CN202111137372 A CN 202111137372A CN 113965469 A CN113965469 A CN 113965469A
- Authority
- CN
- China
- Prior art keywords
- attack
- events
- sequence
- event
- target
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种网络数据分析模型的构建方法,涉及网络安全技术领域,所述方法包括:对获取的网络数据进行分析,获得攻击序列集合;依据所述攻击序列集合构建至少两个攻击树;确定不同攻击树之间的攻击通道;将所述攻击通道加入对应的攻击树之间,得到分析模型。本申请的方法所建立的分析模型,提取攻击树之间的通道,使不同攻击树之间通过攻击通道相关联,不但能够描述攻击过程、对网络攻击的受害目标分析,还能够描述不同受害目标之间的攻击活动,更好地还原攻击场景,为分析复杂网络攻击提供了支持。
Description
技术领域
本申请实施例涉及网络安全技术领域,具体而言,涉及一种网络数据分析模型的构建方法。
背景技术
网络攻击(Cyber Attacks,也称赛博攻击)是指针对计算机信息***、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问任何计算机的数据,都会被视为于计算机和计算机网络中的攻击。
网络攻击的发展趋势是从内部发起的网络攻击增多,攻击破坏性持续增强,攻击影响范围扩大,攻击更具有针对性。攻击者的目标包括破坏设施、盗取数据、获取经济利益等。攻击手段呈现多样化,包括利用恶意软件家族制作攻击工具,钓鱼邮件,勒索攻击,DDOS攻击等。
大量事实表明,已经遭受攻击的目标设施再次遭受攻击的概率较大。为了更好地保护重要设施,需要评估不同网络攻击活动和网络攻击工具的危害程度,帮助发现***的安全薄弱点,同时对高危害性的攻击采取针对性的防御措施。
但是由于网络攻击的复杂性和不断的变化,使得难以通过防火墙或IDS检测所有攻击行为,因此现有技术往往通过对网络数据建立分析模型,帮助检测网络攻击,还原网络攻击场景,并借助模型预测后续攻击活动,提高目标设施的防御性能。但是现有方法所构建的模型都存在着一定程度的不足,如不能实现从受害目标的角度来分析攻击活动、难以应对复杂网络攻击场景。因此,本领域亟需一种有效、可靠的模型构建方法。
发明内容
本申请实施例提供一种网络数据分析模型的构建方法,旨在解决以上至少一项技术问题。
本申请实施例第一方面提供一种网络数据分析模型的构建方法,所述方法包括:
对获取的网络数据进行分析,获得攻击序列集合;
依据所述攻击序列集合构建至少两个攻击树;
确定不同攻击树之间的攻击通道;
将所述攻击通道加入对应的攻击树之间,得到分析模型。
可选地,所述对获取的网络数据进行分析,获得攻击序列集合,包括:
对获取的网络数据进行分析,得到多个攻击事件;
基于所述多个攻击事件,获得攻击序列集合,所述攻击序列集合包括至少两个攻击序列,其中,每个所述攻击序列包括:至少两个攻击事件、以及该攻击序列对应的攻击目标。
可选地,所述基于所述多个攻击事件,获得攻击序列集合,包括:
基于所述多个攻击事件之间的关联度,对所述多个攻击事件进行聚类,得到所述至少两个攻击事件集,其中,攻击事件集中所包括的每两个攻击事件之间的关联度大于预设阈值,不同的攻击事件集对应不同的攻击场景;
对每个攻击事件集中的攻击事件,基于攻击事件的发生时间,生成该攻击事件集对应的攻击序列;
对每个攻击序列进行分析,确定每个攻击序列的攻击目标。
可选地,依据所述攻击序列集合构建至少两个攻击树,包括:
确定所述攻击序列集合中的攻击目标与攻击事件之间的相互关系、以及不同攻击事件之间的相互关系;
基于确定出的所述攻击目标与攻击事件之间的相互性关系,以及所述不同攻击事件之间的相互关系,构建至少两个攻击树;其中,不同的攻击树对应不同的攻击目标。
可选地,所述相互关系包括:父子关系、兄弟关系,所述确定所述攻击序列集合的攻击目标与攻击事件之间的相互关系、以及不同攻击事件之间的相互关系包括:
针对每一个攻击目标,执行相互关系挖掘步骤,包括:
挖掘与攻击目标存在父子关系的攻击事件及攻击事件的兄弟关系;
对于攻击目标的每一个子事件,向下迭代挖掘相互关系,直到到达最底层子事件。
可选地,所述兄弟关系包括:顺序与、与、或关系,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行顺序与挖掘步骤:
挖掘攻击目标的k-频繁序列,攻击目标的k-频繁序列中的事件都与攻击目标存在父子关系,且相互之间存在顺序与关系,所述顺序与关系表示攻击事件必须按照顺序发生;
执行以下顺序与关系挖掘迭代步骤,直到不能挖掘出k-频繁序列,包括:将k-频繁序列中的所有事件作为父事件;挖掘每个父事件的k-频繁序列,依据挖掘出的k-频繁序列记录对应事件的父子关系、顺序与关系。
可选地,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行与关系挖掘步骤:
挖掘攻击目标的k-频繁项集,攻击目标的k-频繁项集中的事件都与攻击目标存在父子关系,且相互之间存在与关系,所述与关系表示攻击事件必须共同发生;
执行以下与关系挖掘迭代步骤,直到不能挖掘出k-频繁项集,包括:筛选出k-频繁项集已经被挖掘顺序与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的k-频繁项集,依据挖掘出的k-频繁项集记录对应事件的父子关系、与关系。
可选地,所述方法还包括:
对每一个攻击序列,执行或关系挖掘步骤:
挖掘攻击序列的攻击目标在该攻击序列内关联攻击事件,攻击目标的关联攻击事件都与攻击目标存在父子关系,且相互之间存在或关系,所述或关系表示攻击事件之间任一发生即可;
执行以下或关系挖掘步骤,直到不能挖掘出关联攻击事件,包括:筛选出关联攻击事件已经被挖掘顺序与或与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的关联攻击事件,依据挖掘出的关联攻击事件记录对应事件的父子关系、或关系。
可选地,所述方法还包括:
从多个维度确定不同攻击树之间的攻击通道,所述多个维度包括:所述攻击树之间的信息通道、所述攻击树之间的相似性。
可选地,所述方法还包括:
从多个维度确定不同攻击树之间的攻击通道,所述多个维度包括:所述攻击树之间的信息通道、所述攻击树之间的相似性,包括:
执行以下迭代,直到所有攻击树完成攻击通道的构建:
选择任意一个攻击树,计算所述攻击树中的每一个节点与其他所有攻击树中的节点的信息通道利用概率;
当信息通道利用概率大于预设阈值时,在对应节点之间构建攻击通道。
采用本申请提供的网络数据分析模型的构建方法,分析网络数据获取攻击序列,通过攻击序列建立多个攻击树,提取攻击树之间的通道,使不同攻击树之间通过攻击通道相关联,通过本申请的方法所建立的分析模型不但能够描述攻击过程、对网络攻击的受害目标分析,还能够描述不同受害目标之间的攻击活动,更好地还原攻击场景,为分析复杂网络攻击提供了支持。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的网络数据分析模型的构建方法的流程图;
图2是本申请一实施例提出的一种DDOS攻击的网络拓扑图;
图3是本申请一实施例提出的一种攻击树的示意图;
图4是本申请一实施例提出的攻击树中兄弟节点之间关系示意图;
图5是本申请一实施例提出的另一种攻击树的示意图;
图6是本申请一实施例提出的攻击树之间的攻击通道的示意图;
图7是本申请一实施例提出的一种随机游走的示意图;
图8是本申请一实施例提出的一种分析模型的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
国内外关于网络攻击建模技术和攻击效果评估方法的研究已经有较多,常见的网络攻击模型包括攻击链模型、攻击树模型、攻击图模型、Petri net模型、攻击金字塔模型等。
攻击链模型又被称为杀伤链模型,Kim认为现有的攻击链模型具有局限性,因此提出了一种修正的网络攻击链模型,该模型既能解释组织内部的威胁,也能解释外部的威胁。但攻击链模型在划分攻击阶段时较为粗糙,无法刻画攻击细节,因此直接使用该模型来检测网络攻击的效果往往不够理想。
攻击金字塔模型最早由Wei W等人提出,攻击金字塔的顶部表示攻击目标,侧面表示攻击发生的环境,包括以下多个层面的环境:物理层面、用户层面、网络层面、应用程序层面等。
攻击树的概念最早由Schneier提出,并使用树形结构对网络攻击建模。在不同研究中研究人员对攻击树的节点、目标、成功标志、攻击行为等给出了不同的定义。除了攻击树语义上的区别,部分研究侧重于对攻击树改进和扩展。此外,Audinot M等人研究了攻击树模型的合理性,并对攻击树模型的所有正确性属性进行讨论,以协助建立攻击树模型。
攻击图模型包含了攻击者所有的攻击路径和攻击概率,是结合物理环境拓扑、漏洞知识、***脆弱性等因素综合建立的抽象模型。从节点和边所表示的含义来看,攻击图可分为状态攻击图、属性攻击图。Petrinet最早用于***异步并发过程的建模,包含库所、变迁、边和令牌这四种组分,攻击状态可由库所节点表示,攻击行为由变迁节点表示,攻击条件即为令牌。
现有的方法构建的网络攻击模型都存在着一定程度的不足,例如攻击图、攻击链、Petri net等侧重于分析攻击过程的模型,对攻击过程的描述较为详细,但未从受害目标的角度来分析攻击活动。而攻击树模型、攻击金字塔模型等尽管能够描述攻击过程,还侧重于对受害目标分析,适用于具有目的性的网络攻击活动,但是上述模型难以描述不同受害目标之间的攻击活动,例如黑客将受害主机作为跳板,攻击内网其余主机的过程难以在攻击树模型中体现。
本申请则是通过以攻击目标为根节点建立多个攻击树,提取攻击树之间的通道,使不同攻击树之间通过攻击通道相关联,使得所建立的分析模型不但能够描述攻击过程、对网络攻击的受害目标分析,还能够描述不同受害目标之间的攻击活动,更好地还原攻击场景,为分析复杂网络攻击提供了支持。
参考图1,图1是本申请一实施例提出的网络数据分析模型的构建方法的流程图。
如图1所示,该方法包括以下步骤:
步骤S110、对获取的网络数据进行分析,获得攻击序列集合。
分析网络数据,得到其中包括的攻击事件,本申请的攻击事件是指在一定时间范围内主机或网络中发生的特定攻击行为,用于分析的网络数据是指流量数据、主机日志、网络日志等。网络攻击并非是毫无痕迹的,网络攻击过程会产生大量的流量数据、海量的告警记录等,本申请图2示出了一种DDOS攻击的网络拓扑图,如图2所示,攻击者想要实现对攻击目标的DDOS攻击,必须经过多个软、硬件设备,其会在经过的设备中留下诸多数据,因此准确及时地分析软、硬件的数据能够发现攻击方的痕迹,使后续的预警、处置和溯源才能够实现有据可循。例如,对网络数据进行分析,当发现日志数据中日志量特别大,且流量数据中还发现攻击源IP相对固定,攻击持续时间短或长或短,可以推断当前大概率存在扫描探测类的攻击。
攻击序列(Attack Sequence),是指在同一攻击场景下按时间顺序发生的攻击事件的序列集合。
分析网络数据得到多个攻击事件后,区分攻击事件的攻击场景如根据软硬件分为软件场景、硬件场景等,或者业务分为通信场景、计算服务场景等,将用同一类攻击场景中的攻击事件按照时间顺序排序,得到多个攻击序列。
步骤S120、依据所述攻击序列集合构建至少两个攻击树。
获得攻击序列后,即可基于攻击序列构建树。
攻击树模型主要用于描述***受到的攻击或威胁,在最初的定义中,攻击树包含三种类型的节点:根节点、内部节点、叶节点。其中,根节点表示攻击者的最终攻击目标,每一个内部节点指定了攻击者的一个子目标(或者攻击事件,因为每一个攻击事件都对应一个子目标),这些子目标的完成有助于实现攻击者的总体目标,而攻击树的叶节点指定了攻击者的初始攻击行为。
将攻击事件按照攻击树模型的定义分配为多个节点,连接节点,形成攻击树。对每一个攻击序列都构建一个攻击树,可以得到多个攻击树。
步骤S130、确定不同攻击树之间的攻击通道。
本申请在建立攻击森林后,还需要挖掘攻击树之间的攻击通道。
一个攻击树表示同一个攻击目标下的多种攻击手段,但是本申请还进一步的观察到不同攻击树之间并非是完全隔绝的。不同攻击树的节点之间具有一定的路径,如***、服务、进程之间的通信,攻击者可能利用这些关系实现对不同攻击树的攻击。例如,横向攻击事件,攻击者通过一个受害主机攻击其内部网络中的其他主机,常见的横向攻击通过弱口令暴力破解、免密登录、软件漏洞等方式。
本申请将不同攻击树的节点之间存在能被攻击者利用的路径称为攻击通道(Attack Channel)。当攻击者成功实现对一个攻击树中节点的攻击后,其可能通过攻击通道完成另一个攻击树,实现攻击的扩散与隐蔽,造成极大的危害,因此,及时发现不同攻击树之间的攻击通道是十分重要的。
步骤S140、将所述攻击通道加入对应的攻击树之间,得到分析模型。
步骤将S130得到的攻击通道加入攻击森林中,构建一个分析模型,该分析模型是一种Channel-AT网络攻击关联模型,其包括了每一个攻击目标的攻击树模型和不同攻击树之间相关联的攻击通道,Channel-AT网络攻击关联模型可用于构建具有多个中间跳板的复杂网络攻击场景下的攻击关联模型,为分析复杂网络攻击提供了支持。
在本申请一个可选实施例中,所述对获取的网络数据进行分析,获得攻击序列集合,包括:
1、对获取的网络数据进行分析,得到多个攻击事件。
对获取的网络数据如主机日志、网络日志等进行分析,分析方法可以是特征分析、关键提取等,分析其中的攻击事件。
2、基于所述多个攻击事件,获得攻击序列集合,所述攻击序列集合包括至少两个攻击序列,其中,每个所述攻击序列包括:至少两个攻击事件、以及该攻击序列对应的攻击目标。
由于攻击序列是在同一攻击场景下按时间顺序发生的攻击事件的序列集合。因此在本申请中,对于网络攻击的攻击序列的获取,首先,需要通过对分析得到的攻击事件进行场景梳理,然后,将同一攻击场景中的事件按照时间顺序排序。示例的,假设分析得到攻击事件a1,a2,a3,a4,a5,继续判断他们的攻击场景分别得到1号攻击场景和2号攻击场景,将同一攻击场景中的事件按照时间顺序排序,建立得到攻击序列S1(a1,a2,a3)和攻击序列S2(a4,a5)。
进一步的,攻击序列的构建方法可以是:
步骤11、将所述网络数据与预设的知识特征库进行匹配,获取多个攻击事件;所述知识特征库中包括多种不同网络攻击的特征数据;
知识库(Knowledge Base)有两种含义:一种是指专家***设计所应用的规则集合,包含规则所联系的事实及数据,它们的全体构成知识库。这种知识库是与具体的专家***有关,不存在知识库的共享问题;另一种是指具有咨询性质的知识库,这种知识库是共享的,不是一家所独有的。本申请的知识库即属于前者。本申请一个实施例中通过预先分析多种已知的攻击行为/事件,根据专家知识提取攻击行为的特征、类型、描述等,将提取的特征与攻击行为的类型、描述等相关联,建立预设的知识特征库(专家知识特征库)。
当需要构建攻击序列时,在网络数据如流量数据、日志数据等中提取必要字段,将提取出的字段与知识特征库进行匹配,从而判断攻击数据中包含的攻击事件。例如,对网络数据进行提取,在某一http请求的playload(载荷)中发现有“webdav”的字段,其与专家知识特征库中的一个特征相匹配,说明在攻击数据中发现一个攻击事件,则读取专家知识库中该攻击事件保存的知识信息,知识信息包括:攻击类型type、攻击威胁程度level、对该攻击事件的描述description。
示例的,通过专家知识特征库对图2中的DDOS攻击进行匹配得到下表1中编号1至29的攻击事件:
表1
在判断出攻击事件后,还需在攻击数据中提取该事件的特征信息如源IP、目标IP、源端口号、目的端口号、攻击发生时间等,来进一步丰富攻击事件的信息。
获取特征信息和知识信息后,为攻击事件分配attack ID,攻击事件的attack ID是唯一自增的,也就是说,这个ID对应的是某一种攻击事件,示例的,设置一个全局变量i,提取第一个攻击事件为“端口扫描”,设置id为1,第二个攻击事件是“ssh暴力破解”,设置id为2,之后又遇到了“端口扫描”,那么其id也设置为1,但不同攻击事件的其他属性是不同的,id只是某一种攻击事件的代号。因此,在不同时间可能会发生attack ID相同的攻击事件,进一步的,也会出现不同攻击序列里面是会存在相同的攻击事件的attack ID的情况,不同时间但相同attack ID的攻击事件的区别在于两者的其他属性不同,如ip,端口,时间等。
将特征信息、知识信息、attack ID作为攻击事件的属性信息生成攻击事件,示例的,攻击事件a可表示为:
其中,attack ID表示攻击事件的ID;srcIP表示攻击事件的源IP;dstIP—表示攻击事件的目的IP;srcPort表示攻击事件的源端口号;dstPort表示攻击事件的目的端口号;timestamp表示攻击事件的攻击发生时间;type表示攻击事件的攻击类型;level表示攻击事件的攻击威胁程度;description表示对该攻击事件的描述。
步骤12、基于所述多个攻击事件之间的关联度,对所述多个攻击事件进行聚类,得到所述至少两个攻击事件集,其中,攻击事件集中所包括的每两个攻击事件之间的关联度大于预设阈值,不同的攻击事件集对应不同的攻击场景;形成攻击事件后,需要划分攻击场景来提取攻击序列。通常在同一个攻击场景下,攻击者使用某种方式成功达到攻击目标后,不会再尝试其它攻击方式来达成相同的攻击目标,而是会沿着攻击路径向下一个目标发起攻击。在同一攻击场景中,攻击事件的各个属性有一定的关联性。
例如,对属性满足以下多种情况之一的两个攻击事件而言,它们发生在同一攻击场景下的概率较大,情况包括:a)攻击事件源IP相同;b)攻击事件目的IP相同;c)攻击事件源端口相同;d)攻击事件目的端口相同;e)攻击事件发生时间相近;f)攻击事件的攻击类型相同。因此,可以通过攻击事件的属性来计算攻击事件之间的关联度,当关联程度大于预设阈值时可以认为选择这两个攻击事件是属于同一攻击场景的。
在本实施例中,对于知识特征库匹配得到的多个攻击事件,任意选择一个攻击事件,计算该事件与其他所有攻击事件的关联度,得到关联度后,将关联度大于预设阈值的事件都划为一个攻击场景(也就是说,依据攻击事件之间的关联度对攻击事件进行聚类,同一类别的攻击事件即表示其都是属于同一个攻击场景的),之后再次选择未划分攻击场景的事件进行以上迭代,直到所有事件都被划分了攻击场景。
示例的,有攻击事件a1,a2,a3,a4,a5,取出a1,a1逐个与剩下的a2,a3,a4,a5计算关联度,关联度计算方法可以是任意的,如逐个属性比较,每当一个属性相同则得一分,计算得到关联度分别是(3,0,3,1),阈值为2,则说明a1与a2,a4应当被划为一个攻击场景,再取出a3,计算关联度得到(2)说明二者应当被划为一个攻击场景。
在本实施例中,可通过以下公式计算攻击事件间的关联度,所述公式为:
其中,R(ai,aj)表示攻击事件ai与攻击事件aj之间的关联度,ps表示攻击事件ai的属性,pt表示攻击事件aj的属性,s,t表示攻击事件的属性序号,R(ps,pt)表示两个属性之间的关联度,n表示攻击事件的属性个数,wst表示权重。
本实施例中采用攻击事件关联度R(ai,aj)来量化攻击事件的这种关联性,R(ai,aj)反映了攻击事件ai和aj的各个属性之间的关联程度,取值越大,表明关联性越强。攻击事件关联度的计算方法如下式所示。
攻击事件的属性包括源IP、目的IP、源端口、目的端口、攻击时间、攻击类型、攻击危害程度和攻击描述。R(ai,aj)的取值范围是[0,1],在计算R(ai,aj)后,通过设定阈值,将关联度超过阈值的攻击事件划分到同一个攻击场景中。
步骤13、对每个攻击事件集中的攻击事件,基于攻击事件的发生时间,生成该攻击事件集对应的攻击序列;
得到攻击场景后,将同一攻击场景下攻击事件按时间顺序发生生成一个序列集合,该序列集合即是攻击序列。攻击序列可表示为:
s=<a1,a2,…,ai,…,an>,其中:ai表示攻击事件(1≤i≤n)。
步骤14、对每个攻击序列进行分析,确定每个攻击序列的攻击目标。
得到攻击序列后,还需要提取攻击序列的攻击目标,攻击目标是指网络攻击的实施对象,攻击目标按不同级别可分为以下几类:设备、操作***、应用软件、服务、数据。攻击者在达到攻击目标后可能会造成不良影响,例如信息窃取、恶意篡改数据、设备或***瘫痪等。在本申请中将只将最终攻击目标作为攻击目标。
对于攻击目标的提取,在得到攻击序列后,可以通过专家经验/特征来确定。
对于从网络数据中获取的多个攻击事件,可能存在多个场景,因而能够得到多个攻击序列如(s1s2…si…sN),并且,在一个攻击目标中可存在多个网络攻击场景(如下面D中的s1和s2),本申请将攻击数据中所有的攻击序列及其攻击场景、攻击目标保存在一个集合中,其如下集合D所示:
其中,D表示所有攻击序列的集合,si表示一条攻击序列(1≤i≤N),scenej表示一个攻击场景(1≤j≤M),goalk表示一个攻击目标(1≤k≤L)。
通过相似度进行划分攻击场景,能够避免人为设定存在的类型不全、更新设定不及时等缺点,并且能够寻找事件的相似之处,尽量将相同场景的攻击事件归为一个攻击场景。
在本申请一个可选实施例中,通过节点间的相互关系指导攻击树的构建。依据所述攻击序列集合构建至少两个攻击树,包括:
步骤21、确定所述攻击序列集合中的攻击目标与攻击事件之间的相互关系、以及不同攻击事件之间的相互关系。
本申请的攻击树,同样由多个节点组成,节点分为根节点和内部节点,根节点表示攻击目标,内部节点表示攻击事件(或者攻击子目标,每一个攻击事件都对应一个子目标)。本申请中节点之间的相互关系分为以下两种关系:父子关系、兄弟关系。父子关系表示存在节点之间攻击事件(或子目标)的转换,兄弟关系表示对同一攻击事件存在转换关系的节点。
为了构建攻击树,需要确定攻击序列集合中的每一个攻击目标与攻击事件之间的相互关系以及不同攻击事件之间的相互关系。
对于相互关系的确定,示例的,可以提取出攻击序列集合中的所有攻击目标,对于每一个攻击目标,挖掘其在攻击序列集合中的所有父子关系,对攻击目标的子节点再挖掘父子关系,迭代的寻找子节点,直到再找不到新的子节点。
步骤22、基于确定出的所述攻击目标与攻击事件之间的相互性关系,以及所述不同攻击事件之间的相互关系,构建至少两个攻击树;其中,不同的攻击树对应不同的攻击目标。依据相互关系,构建至少两个攻击树,包括:针对每一个攻击目标,执行攻击树构建步骤,其包括:
将攻击目标作为攻击树的根节点,依据该攻击目标的父子关系添加攻击事件;迭代执行关联步骤,其包括:对于所添加的每一个攻击事件,依据对应的父子关系、兄弟关系继续添加攻击事件。
挖掘出所有攻击序列中攻击事件的父子、兄弟关系后,通过这些关系构建攻击树。在构建攻击树模型时首先选择攻击目标作为根节点,换而言之,攻击树模型的根节点表示攻击者的攻击目标,值得注意的是,此时攻击树的建立过程中是在所有攻击序列中选择的,即攻击目标相同的攻击序列应当在一个攻击树中。从根节点开始添加节点,添加根节点的子节点,在添加子节点的下一级子节点,直到所有存在关系的节点都被添加进入攻击树中。根节点的子节点攻击树的边是由子节点指向父节点的有向边,由于在攻击树中,所有的边均是从子节点指向父节点。为简化分析,本申请在后续攻击树的图形表示中未加方向箭头。本申请图3示出了一种攻击森林,如图3所示,从图3左侧说明了从网络数据中得到各攻击事件及事件含义,可以看出G0是攻击目标,并可以分析出G0的子节点为G1,G2,分别对G1,G2进行分析,得出G1的子节点为G3,G4,再分别对G3,G4进行分析,得到G3的子节点为G5,G6,G7,G8,G4的子节点为G9,G10。分析得到关系后,从根节点G0开始添加子节点,首先添加G0的G1,G2,由于G2不存在子节点,因此不添加,G1的子节点为G3,G4,在G1节点下方添加G3,G4,在分别对G3,G4添加子节点,完成攻击树的构建。构建完成的攻击树如图3左侧所示。
对每一个攻击目标执行上述攻击树构建步骤,可以得到多个攻击树。本申请将基于攻击序列集合构建的多个攻击树称为攻击森林,即攻击森林是由多个攻击树构成,视为一个图结构。
攻击者可以通过不同手段达到攻击目标,尽可能完善攻击树,使一个攻击目标下,能够包括多种攻击手段。
通过挖掘节点之间的相互关系,通过相互关系指导攻击树的构建,在清楚的表明攻击事件之间的相互关联,使分析模型包含的信息量更多、更具体,便利于分析模型的后续使用。
进一步的,本申请认为节点的相互关系包括:父子关系、兄弟关系,此时相互关系的挖掘,包括:
针对每一个攻击目标,执行相互关系挖掘步骤,包括:
挖掘与攻击目标存在父子关系的攻击事件及攻击事件的兄弟关系;
对于攻击目标的每一个子事件,向下迭代挖掘相互关系,直到到达最底层子事件。
本申请以攻击目标为区分构建攻击树,使一个攻击树包含了对一个攻击目标的所有攻击手段。
对每一个攻击目标在攻击序列集合中进行父子关系挖掘,得到攻击目标的子节点(与攻击目标存在父子关系的攻击事件)后,执行迭代步骤,对于每一个子节点,挖掘其的父子关系、兄弟关系,得到属于子节点的新的子节点,上述迭代在没有新的子节点出现,此时子节点已经是父子关系的最底层,停止迭代。
示例的,首先,将攻击目标作为根节点,挖掘根节点的父子节点的序列模式,序列模式中的事件都是根节点的子节点/子事件,并依据序列模式提取子节点(兄弟节点之间)之间的关系,
挖掘根节点的序列模式,可以结合已有的序列模式挖掘方法来提取攻击序列,序列模式挖掘是指从包含多个事务的数据中挖掘具有频繁模式的事务,例如当序列模式挖掘的结果为(a,b,c)→(d),则该结果的含义是若事务a,b,c发生了,则事务d发生的概率较大。序列模式挖掘方法可以是Apriori算法、FP-growth算法、PrefixSpan算法等。
对于每一个子节点,挖掘其的序列模式,提取父子关系、兄弟关系,得到属于子节点的新的子节点,选择新的子节点继续执行,迭代到不能提取出序列模式时停止。
在本申请一个实施例中,不仅挖掘了父子关系、兄弟关系,还进一步的细分了兄弟关系。
本申请认为兄弟节点之间也存在一定关系,包括以下三种:“与”、“或”、“顺序与”,“顺序与”兄弟节点表示节点中的子目标按时间顺序实现,攻击者才可攻击这些节点的父节点,在攻击树中如图4中(a)所示。“或”兄弟节点表示兄弟节点中任意一个子目标实现,攻击者即可攻击该节点对应的父节点,在攻击树中如图4中(b)所示。“与”兄弟节点表示兄弟节点中所有节点(子目标)均实现,攻击者才可攻击这些节点的父节点,在攻击树中如图4中(c)所示。
示例的,挖掘节点的序列模式,将序列模式中的节点作为根节点的子节点,并通过序列模式判断子节点之间的“与”、“或”、“顺序与”关系。
优选的,对于兄弟节点之间的关系挖掘,需要首先挖掘“顺序与”兄弟节点,然后挖掘“与”兄弟节点,最后挖掘“或”兄弟节点。在不同攻击场景下挖掘“或”兄弟节点,然后合并同一攻击树中不同攻击场景下的或节点。因为攻击树的或节点、与节点、顺序与节点在攻击序列中的关联规则是不同的。相比于或节点、与节点,顺序与节点对应的攻击事件需要满足更苛刻的条件,即攻击事件按时间顺序发生后,攻击者才可到达父节点。而或节点满足的条件最为简单,任意一个攻击事件发生后,即可到达父节点。因此,本申请从攻击序列中挖掘三种节点逻辑关系时,考虑不同的优先级,优先挖掘顺序与节点,其次是与节点、最后是或节点。
将根节点的所有子节点加入父节点队列,将父节点队列中的节点逐个弹出,对每一个弹出的节点执行与根节点同样的挖掘步骤:挖掘其的序列模式,从序列模式中找到子节点、子节点之间的相互关系,所有节点都弹出后,说明将父节点队列中的所有节点挖掘完毕后,当前父节点队列所挖掘出的所有子节点加入父节点队列,作为新一轮的父节点进行挖掘,迭代以上步骤,直到挖掘父节点队列中的节点都挖掘不出新的子节点,换而言之,此时没有子节点出现。
进一步的,所述兄弟关系包括:顺序与、与、或关系,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行顺序与挖掘步骤:
挖掘攻击目标的k-频繁序列,攻击目标的k-频繁序列中的事件都与攻击目标存在父子关系,且相互之间存在顺序与关系,所述顺序与关系表示攻击事件必须按照顺序发生;
执行以下顺序与关系挖掘迭代步骤,直到不能挖掘出k-频繁序列,包括:将k-频繁序列中的所有事件作为父事件;挖掘每个父事件的k-频繁序列,依据挖掘出的k-频繁序列记录对应事件的父子关系、顺序与关系。
上述顺序与型关系的挖掘示例的:
A、判断将父事件队列Q是否为空;
初始化顺序与关系字典SAND、无效事件集合Rem、父事件队列Q,将攻击目标作为初始父事件添加到Q中将攻击目标添加至队列Q中。
将顺序与关系字典SAND、无效事件集合Rem、父事件队列Q都初始化,置为空集。
由于本申请是从攻击目标出发找到在攻击序列集合D中所有可能的顺序与攻击手段,因此将攻击目标作为起始点,开始寻找下级关联。
B、判断将父事件队列Q是否为空;
C、如果父事件队列Q为非空,则从父事件队列Q中弹出任意一个事件作为父事件r;
如果父事件队列Q为空,则跳转到步骤E。
判断将队列Q是否为空,如果其不为空,则弹出一个节点,将弹出的节点作为父事件r,如果队列Q为空,则跳转至步骤E中。
D、对于当前父事件r,通过计算支持度和置信度来对父事件r进行k-频繁序列挖掘;
对于父事件r,在攻击序列集合D中挖掘其的频繁序列,频繁序列是指在不同的攻击场景中,多次按一定顺序先后发生的攻击事件的序列,也就是说,k-频繁序列为攻击序列的子攻击序列。在初始条件下(即攻击目标的为r的首轮挖掘中),在攻击序列集合D寻找其的最长频繁序列,即k=1,2,…,k的最大取值应当为D中的攻击序列最大长度减一。
对于频繁序列的寻找,采用递增的方式进行迭代,直到找到最长频繁序列:
先在攻击序列中搜索出长度为1的频繁序列(即k=1时的k-频繁序列),所述搜索过程采用以下2个公式计算支持度和置信度,当支持度和置信度都大于预设阈值时,则认为其是父节点的频繁序列,
支持度计算公式:
其中:ay表示父事件r,ax表示攻击序列,support(ax,ay)表示攻击事件ax对攻击事件ay的支持度,num(ax∪ay)表示同时包含攻击事件ax、ay的攻击序列数量,num(D)表示攻击序列总数。
置信度的计算公式:
其中,ay表示事件r,ax表示攻击序列,confidence(ax,ay)表示ax发生对攻击事件ay发生的置信度,num(ax∪ay)表示同时包含ax、ay的攻击序列数量,num(ax)表示包含攻击事件ax的攻击序列数量。
以上两式中,由于频繁序列的增加,ax具有不同的含义,例如,在初始条件下,ax为攻击序列集合D中除攻击目标外的任意攻击事件。
得到多个(k=1)的k-频繁序列后,按照事件发生顺序对(k=1)的频繁序列集进行连接,得到多个(k=2)的待选频繁序列,通过计算支持度和置信度筛选去掉低于阈值的(k=2)候选频繁序列,得到(k=2)的k-频繁序列。
对得到的(k=2)频繁序列,按照事件发生顺序连接一个长度为1的频繁序列,或者说在(k=2)频繁序列按照事件发生顺序连接一个(k=1)频繁序列,得到多个(k=3)的待选频繁序列,通过计算支持度和置信度筛选去掉低于阈值的(k=3)候选频繁序列,得到(k=3)的k-频繁序列。迭代进行此频繁序列获取过程,直到没有频繁序列的支持度和置信度大于阈值,此时,能够找到一个或者多个最大个数的频繁序列,即(k-1)-频繁序列。(k-1)-频繁序列中的节点就是r的子事件(或者说,子节点,因为在攻击树中其表现为子节点),且是存在顺序与关系的兄弟节点。
示例的,假设攻击序列集合为在对goal1构建攻击树时,选择第一行和第二行的攻击序列来构建,对于(第一行和第二行中的)每一个攻击序列,首先,计算goal1与每一个攻击事件的支持度和置信度,得到结果如(0.2和0.3,0.1和0.1,0.8和0.6,0.4和0.3,0.6和0.9,0.7和0.5),假设两个阈值都为0.5,则得到(k=1)的k-频繁序列为(a3)、(a5)、(a6),按照发生顺序将其进行连接,使k+1=2,得到(k=2)的候选频繁序列(a3a5)和(a5a6),再次计算支持度和置信度,得到结果如(0.7和0.9,0.4和0.1),得到(k=2)的k-频繁序列为(a3a5),再次连接一个长度为1的频繁序列得到(k=3)的候选频繁序列(a3a5a6),计算支持度和置信度,得到(0.2和0.1),不满足条件,则说明(a3a5)就是最长的频繁序列。
E、将k-频繁序列中的事件添加到父事件队列Q、无效事件集合Rem;
将k-频繁序列中的事件与r的之间的关系添加到SAND中,跳转到步骤B中。
挖掘得到k-频繁序列后,k-频繁序列中的所有节点都是父节点r的子节点,且子节点存在顺序与关系,将挖掘出的子节点加入父节点队列,跳转至步骤B,对新的父节点进行顺序与关系挖掘。
F、输出SAND。
通过上述步骤即实现了一个攻击目标下所有顺序与关系的挖掘,将该关系输出用于攻击树的构建中。
与节点的特性是父子节点有序,而兄弟节点无序,因此在挖掘与节点关系时,既需要挖掘父子节点的序列模式,又需要挖掘兄弟节点的关联规则。
在本实施例中,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行与关系挖掘步骤:
挖掘攻击目标的k-频繁项集,攻击目标的k-频繁项集中的事件都与攻击目标存在父子关系,且相互之间存在与关系,所述与关系表示攻击事件必须共同发生;
执行以下与关系挖掘迭代步骤,直到不能挖掘出k-频繁项集,包括:筛选出k-频繁项集已经被挖掘顺序与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的k-频繁项集,依据挖掘出的k-频繁项集记录对应事件的父子关系、与关系。
示例的,与型关系的挖掘方法为:
1.初始化与关系字典AND、父事件队列Q,将攻击目标添加到Q中。
初始化与关系字典AND、父事件的队列Q,将AND和Q置为空集。将攻击目标作为初始的父事件加到Q中,将攻击目标作为起始点,开始寻找下级关联的与节点。
2.判断将父事件队列Q是否为空;
3.如果父事件队列Q不为空,则从父事件队列Q中弹出任意一个事件作为父事件r。
如果父事件队列Q为空,则跳转到步骤6。
进行队列判断,Q为非空,则从Q中弹出一个节点作为父事件r;如果Q为空,则跳转到步骤6。
4.对当前父事件r,通过计算支持度和置信度来对父事件r进行k-频繁项集挖掘。
对于与关系挖掘,将通过对攻击序列集合D中频繁项集的挖掘来实现,频繁项集是指在不同的攻击场景中,多次一起发生的攻击事件的集合。此处的“一起”表示集合里的攻击事件均会发生,且不考虑时间顺序。也就是说,频繁项集是攻击序列的子攻击集合,对于一个攻击序列s,取call为序列s中所有攻击事件的集合,子攻击集合c为call的子集,及
对中挖掘k-频繁项集的挖掘方法为:
迭代的,计算k-频繁项集(k=1,2,……)对父节点r的支持度和置信度,当支持度和置信度都大于预设阈值时,则认为其是父节点r的频繁序列增大k值,直到k-频繁项集的支持度和置信度小于预设阈值。
与顺序与关系挖掘类似的,与关系挖掘也是采用递增的方式进行迭代,直到找到最长频繁项集。二者的不同在于,顺序与关系挖掘使用的是k-频繁序列,k-频繁序列为攻击序列的子攻击序列,与关系挖掘则使用k-频繁项集,k-频繁项集是攻击序列的子攻击集合。
5、依据无效事件集合Rem筛选k-频繁项集合中的事件,将筛选后的事件添加到父事件队列Q、Rem;
将筛选后的事件与r的之间的关系添加到AND中,跳转到步骤2中。
本申请认为每个节点只能和其他节点存在一种关系,也就是说,已经被挖掘出任意一种关系(如本实施例中已经被挖据出顺序与关系)的节点将不再被用来挖掘和其他节点的与关系,在攻击树中,一个攻击事件只能作为一个攻击节点出现。随着关系挖掘的深入,剩余节点的数量将越来越少。因此,本实施例中由于无效节点集合Rem包含所有顺序与节点,对Rem中的节点将不再挖掘其的关系,将k-频繁项集合中已经位于Rem的节点去除,将剩余的节点添加到父节点队列Q、Rem中,并将这些剩余的节点与r的父子关系添加到AND中。
6、输出AND。
通过上述步骤即实现了一个攻击目标下所有与关系的挖掘,将该关系输出用于攻击树的构建中。
进一步的,或节点的特性是父子节点有序,而兄弟节点无序,且或节点需要在不同攻击场景下挖掘,
在本实施例中,对每一个攻击序列,执行或关系挖掘步骤:
挖掘攻击序列的攻击目标在该攻击序列内关联攻击事件,攻击目标的关联攻击事件都与攻击目标存在父子关系,且相互之间存在或关系,所述或关系表示攻击事件之间任一发生即可;
执行以下或关系挖掘步骤,直到不能挖掘出关联攻击事件,包括:筛选出关联攻击事件已经被挖掘顺序与或与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的关联攻击事件,依据挖掘出的关联攻击事件记录对应事件的父子关系、或关系。
示例的,或型关系的挖掘方法为:
对每一个攻击场景,执行或关系挖掘步骤:
一、初始化或关系字典OR、父事件队列Q,将攻击目标添加到Q中。
将或节点关系字典OR、父节点的队列Q初始化,置为空集。将攻击目标作为初始父节点添加到Q中。
二、判断将父事件队列Q是否为空;
三、如果父事件队列Q为非空,则从父事件队列Q中弹出任意一个事件作为父事件r;
如果父事件队列Q为空,则结束执行。
四、对当前父事件r,挖掘支持度和置信度超过预设阈值的关联攻击事件。
对于当前的父节点r,逐攻击场景计算挖掘,对于一个攻击场景,逐攻击事件ai计算对根节点r的支持度和置信度,或者说,在每一个攻击场景中挖掘所有与父节点r存在一定程度关联关系的单个攻击事件。示例的,对于初始的根节点r(攻击目标)寻找所有关联的攻击序列,寻到该攻击目标的所有攻击序列后,任意选取一个攻击序列,计算攻击目标与攻击序列中每一个攻击事件的支持度和置信度,若超过阈值,则将其提取出来。
五、依据无效事件集合Rem筛选关联攻击事件,将筛选后的关联攻击事件添加到Q、Rem中;
将筛选后的关联攻击事件与r的之间的关系添加到OR中,跳转到步骤二中;
得到攻击场景中与所有攻击目标存在关联的单个攻击事件后,利用无效节点集合Rem筛选这些事件,此时Rem包含所有顺序与节点、与节点,将筛选出的关联攻击事件添加到Q、Rem,同时将节点与r的父子关系添加到OR中。
在OR中合并不同攻击场景下的或事件,输出OR。
对所有攻击场景重复步骤一至五,直到处理完所有攻击场景,对于所有攻击场景中的关联攻击事件,对或关系从攻击树自上而下(从攻击目标开始往下的父子关系)合并。合并结束后,输出OR。
对每一个攻击目标执行以上顺序与、与、或关系挖掘迭代,挖掘出攻击目标及攻击事件的父子、顺序与、与、或关系,依据挖掘出的关系构建攻击树。
示例的,图2提取的攻击事件发生在不同的目标IP上,包括Mill、Pascal、Locke和其它被扫描的内网IP,对Mill、Pascal、Locke三个攻击目标逐个建立攻击树,以Mill主机为攻击目标的攻击树如图5。Pascal主机和Locke主机中提取的攻击树和Mill主机的攻击树类似,Mill、Pascal、Locke三个攻击树组成图2中网络攻击的攻击森林。
本申请更进一步的对攻击事件之间的关系进行了细分,使得事件之间、目标与事件之间的关系,更加清楚明白,更能反应攻击过程之间各事件的相互作用,实现对网络更加清楚的分析。
进一步的,从多个维度确定不同攻击树之间的攻击通道,所述多个维度包括:所述攻击树之间的信息通道、所述攻击树之间的相似性。
本申请将从多个维度挖掘攻击树之间的攻击通道,多个维度包括:所述攻击树之间的通信通道、所述攻击树之间的相似性。
信息通道指不同攻击树的节点之间具有的通信关系,包括***、服务、进程之间的通信。本申请图6示出了一种攻击通道示意图,如图6左侧的拓扑图所示,服务器1与服务器2之前存在一条信息通道:SSH免密登录,这样当攻击者通过暴力破解获取服务器1中X用户权限成功入侵服务器1后,由于服务器1中X用户可免密登录服务器2,其可能会通过SSH免密登录获取服务器2中X用户权限,实现对服务器2的攻击,其在攻击森林中表示为图6右侧所示,将物理***中的信息通道抽象为攻击树之间的攻击通道,可见服务器1-攻击树中的节点a与服务器2-攻击树中的节点b存在一条攻击通道a→b。
在本申请一个可选实施例中对从攻击树之间的通信通道的角度挖掘攻击树之间的攻击通道的方法进行了说明,包括:
执行以下迭代,直到所有攻击树完成攻击通道的构建:
选择任意一个攻击树,计算所述攻击树中的每一个节点与其他所有攻击树中的节点的信息通道利用概率;
当信息通道利用概率大于预设阈值时,在对应节点之间构建攻击通道。
攻击通道包含攻击转移概率属性,攻击转移概率即是攻击者成功利用攻击通道的概率,攻击转移概率越大表示攻击通道越容易被利用,表明攻击者可能转移攻击目标,展开了横向攻击。在由信息通道构建的Attack Channel中,攻击转移概率可用信息量来量化,其计算方式如下:
式中:p(c)表示信息通道channel利用概率;info(c)表示利用channel所需的信息量;info(l)表示channel已泄露的信息量。
示例的,假设A、B两个节点的都存在同一个用户,用户密码都是采用二进制,不同在于A节点密码为6位,B节点用户密码为8位,则当A节点被攻击时已泄露的信息量为26,而B节点的所需的信息量为28,计算得到攻击转移概率为
本申请认为除了信息通道外,攻击树中还可能存在未被发现的攻击通道,可从攻击树的相似性来进行挖掘。
进一步的,基于攻击树的相似性构建攻击通道的方法,包括:
执行以下迭代,直到所有攻击树完成攻击通道的构建:
选择任意一个攻击树,计算所述攻击树中的每一个节点与其他所有攻击树中的节点的相似性;
当相似性大于预设阈值时,在对应节点之间构建攻击通道。
进一步的,计算所述攻击树中的每一个节点与其他所有攻击树中的节点的相似性,包括:
迭代计算节点之间的相似性,直到所述相似性收敛,其包括:
使用以下公式执行第0次迭代:
其中,Ni、Nj分别表示一个节点,Ni对应的节点属性为Pi=[x1,x2,x3,…,xm],Nj对应的节点属性为Pj=[y1,y2,y3,…,ym];
使用以下公式计算第k+1次的迭代:
基于攻击树的相似性构建攻击通道,本申请将从树节点的属性的相似度和树结构的相似度两个方向考虑相似性:
第一方向是节点的属性的相似度,攻击树节点表示攻击事件,包含IP、端口、事件的发生时间、攻击类型、攻击描述等属性,若两个攻击事件相似,则对应攻击树节点存在通路的概率较大。例如攻击者在不同的目标***中利用相同的漏洞实施攻击行为,可在这两个目标***中创建攻击通道。
另一方向是两个攻击树的结构相似,即攻击路径相似,则两个攻击树的节点之间存在通路的概率较大。
本申请将建立基于节点的属性的相似度指标和基于攻击树结构的相似度指标,并结合这两个相似度指标来衡量不同攻击树的节点之间的相似性,并选择相似性较高的节点对来构建攻击通道。
对于攻击树节点的属性的相似度指标,本申请采用采用余弦距离来计算,目的是衡量不同攻击树中的攻击事件的相似程度,因此在计算时采用的属性包括:源端口号、目的端口号、攻击类型、攻击威胁程度、攻击描述。示例的,若N1、N2分别为两个不同攻击树上的节点,对应的节点属性为P1=[x1,x2,x3,…,xm]、P2=[y1,y2,y3,…,ym],则两个节点N1、N2的余弦相似度为:
攻击树节点属性的相似度越高,节点之间产生攻击通道的概率越大。
对于攻击树结构的相似度指标,本申请采用随机游走策略(Random WalkStrategy)来计算。将所有攻击树构成的攻击森林视为一个图结构,每个攻击树为一个子图,子图的连接边为已有的信息通道,攻击者在到达某个攻击树节点时,随机尝试不同的攻击路径来完成横向攻击,且攻击者更倾向于在最短时间或操作步数内达成目标。示例的,如图7所示,在图7中包含三个攻击树AT1、AT2、AT3,且这三个攻击树之间包含信息通道,攻击者处于AT1树的根节点,基于随机游走的策略,攻击者可先到达AT2攻击树,再通过AT2的根节点到达AT3的根节点;也可直接到达AT3攻击树,再到达根节点。
攻击树结构的相似度指标可由SimRank指标来量化,同时本申请也将该相似度指标作为不同攻击树之间存在攻击通道的概率,即两个节点之间的结构相似度越高,两个节点之间存在攻击通道的可能性越大。SimRank是基于图的拓扑结构信息来衡量任意两个对象之间的相似程度,两节点间SimRank的相似度表示为两个随机游走者分别从节点a和b出发到最后相遇的总时间的期望函数。假设有两个攻击者分别从N1、N2节点出发并在攻击森林中随机游走,SimRank指标描述了这两个攻击者中途相遇的步数期望。
本申请采用随机游走作为计算思路,计算不同节点间的SimRank指标。将攻击者在攻击树之间的攻击过程视为随机游走过程,且不同攻击树的两个节点N1、N2所连接的邻居节点相似度较高时,这两个节点的相似度较高。
为了更好地描述攻击树的结构相似性,在计算时将攻击树简化为无向图,即认为子节点和父节点的边为无向。
其中:c表示衰减系数(0<c<1),ni表示N1的邻居节点,nj表示N2的邻居节点。
由于本申请同时考虑攻击树节点属性的相似性和网络结构的相似性,需要将二者结合起来,并且上述计算为迭代过程,
在迭代过程中将节点的属性的相似度作为第0次迭代,因此初始相似值为:
上式表示初始条件下,如果节点相同(Ni=Nj)则相似性的值为1,如果节点不同,则相似性的值为节点的属性的相似度。
利用攻击树结构的相似度来进行第1,2……,k+1次迭代,计算第k+1次迭代过程的攻击树节点的相似度为,
迭代结束的条件是相似性的结果收敛,即本次计算出的相似性与上一次计算出的相似性之间的差值小于预设阈值,此时攻击树节点的相似性矩阵基本稳定。
对于得到的攻击树的相似性,判断其是否超过阈值,超过阈值时,即可建立攻击通道,且该攻击通道被攻击者利用的概率用节点相似性表示。
将通过信息通道和攻击树之间的相似性挖掘得到的攻击通道加入攻击树,得到分析模型。示例的,对图2中建立的攻击森林,Mill、Pascal、Locke三个攻击树,通过信息通道和相似性建立攻击通道,得到分析模型建模,得到的结果如图8所示,图8是示出了一种分析模型的示意图,该模型从上到下依次包含Pascal、Mill、Locke三个攻击树和两个攻击通道。
从多个角度,全面的挖掘攻击树的攻击通道,理清各攻击树之间的关联,有效发现攻击过程中的攻击扩散行为,能够更加精准的分析复杂攻击行为,便于分析模型在后续过程如预防网络攻击、攻击追踪中的使用。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的网络数据分析模型的构建方法。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的网络数据分析模型的构建方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种网络数据分析模型的构建方法,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种网络数据分析模型的构建方法,其特征在于,所述方法包括:
对获取的网络数据进行分析,获得攻击序列集合;
依据所述攻击序列集合构建至少两个攻击树;
确定不同攻击树之间的攻击通道;
将所述攻击通道加入对应的攻击树之间,得到分析模型。
2.根据权利要求1所述的方法,其特征在于,所述对获取的网络数据进行分析,获得攻击序列集合,包括:
对获取的网络数据进行分析,得到多个攻击事件;
基于所述多个攻击事件,获得攻击序列集合,所述攻击序列集合包括至少两个攻击序列,其中,每个所述攻击序列包括:至少两个攻击事件、以及该攻击序列对应的攻击目标。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个攻击事件,获得攻击序列集合,包括:
基于所述多个攻击事件之间的关联度,对所述多个攻击事件进行聚类,得到所述至少两个攻击事件集,其中,攻击事件集中所包括的每两个攻击事件之间的关联度大于预设阈值,不同的攻击事件集对应不同的攻击场景;
对每个攻击事件集中的攻击事件,基于攻击事件的发生时间,生成该攻击事件集对应的攻击序列;
对每个攻击序列进行分析,确定每个攻击序列的攻击目标。
4.根据权利要求1所述的方法,其特征在于,依据所述攻击序列集合构建至少两个攻击树,包括:
确定所述攻击序列集合中的攻击目标与攻击事件之间的相互关系、以及不同攻击事件之间的相互关系;
基于确定出的所述攻击目标与攻击事件之间的相互性关系,以及所述不同攻击事件之间的相互关系,构建至少两个攻击树;其中,不同的攻击树对应不同的攻击目标。
5.根据权利要求4所述的方法,其特征在于,所述相互关系包括:父子关系、兄弟关系,所述确定所述攻击序列集合的攻击目标与攻击事件之间的相互关系、以及不同攻击事件之间的相互关系包括:
针对每一个攻击目标,执行相互关系挖掘步骤,包括:
挖掘与攻击目标存在父子关系的攻击事件及攻击事件的兄弟关系;
对于攻击目标的每一个子事件,向下迭代挖掘相互关系,直到到达最底层子事件。
6.根据权利要求5所述方法,其特征在于,所述兄弟关系包括:顺序与、与、或关系,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行顺序与挖掘步骤:
挖掘攻击目标的k-频繁序列,攻击目标的k-频繁序列中的事件都与攻击目标存在父子关系,且相互之间存在顺序与关系,所述顺序与关系表示攻击事件必须按照顺序发生;
执行以下顺序与关系挖掘迭代步骤,直到不能挖掘出k-频繁序列,包括:将k-频繁序列中的所有事件作为父事件;挖掘每个父事件的k-频繁序列,依据挖掘出的k-频繁序列记录对应事件的父子关系、顺序与关系。
7.根据权利要求5所述方法,其特征在于,所述针对每一个攻击目标,执行相互关系挖掘步骤包括:
对每一个攻击目标,执行与关系挖掘步骤:
挖掘攻击目标的k-频繁项集,攻击目标的k-频繁项集中的事件都与攻击目标存在父子关系,且相互之间存在与关系,所述与关系表示攻击事件必须共同发生;
执行以下与关系挖掘迭代步骤,直到不能挖掘出k-频繁项集,包括:筛选出k-频繁项集已经被挖掘顺序与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的k-频繁项集,依据挖掘出的k-频繁项集记录对应事件的父子关系、与关系。
8.根据权利要求5所述方法,其特征在于,所述方法还包括:
对每一个攻击序列,执行或关系挖掘步骤:
挖掘攻击序列的攻击目标在该攻击序列内关联攻击事件,攻击目标的关联攻击事件都与攻击目标存在父子关系,且相互之间存在或关系,所述或关系表示攻击事件之间任一发生即可;
执行以下或关系挖掘步骤,直到不能挖掘出关联攻击事件,包括:筛选出关联攻击事件已经被挖掘顺序与或与关系的事件,将筛选后的事件作为父事件;挖掘每个父事件的关联攻击事件,依据挖掘出的关联攻击事件记录对应事件的父子关系、或关系。
9.根据权利要求1所述方法,其特征在于,所述方法还包括:
从多个维度确定不同攻击树之间的攻击通道,所述多个维度包括:所述攻击树之间的信息通道、所述攻击树之间的相似性。
10.根据权利要求9所述方法,其特征在于,从多个维度确定不同攻击树之间的攻击通道,所述多个维度包括:所述攻击树之间的信息通道、所述攻击树之间的相似性,包括:
执行以下迭代,直到所有攻击树完成攻击通道的构建:
选择任意一个攻击树,计算所述攻击树中的每一个节点与其他所有攻击树中的节点的信息通道利用概率;
当信息通道利用概率大于预设阈值时,在对应节点之间构建攻击通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111137372.5A CN113965469B (zh) | 2021-09-27 | 2021-09-27 | 网络数据分析模型的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111137372.5A CN113965469B (zh) | 2021-09-27 | 2021-09-27 | 网络数据分析模型的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965469A true CN113965469A (zh) | 2022-01-21 |
CN113965469B CN113965469B (zh) | 2023-01-13 |
Family
ID=79462380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111137372.5A Active CN113965469B (zh) | 2021-09-27 | 2021-09-27 | 网络数据分析模型的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965469B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230078713A1 (en) * | 2021-09-16 | 2023-03-16 | Microsoft Technology Licensing, Llc | Determination of likely related security incidents |
CN115811550A (zh) * | 2022-12-19 | 2023-03-17 | 深信服科技股份有限公司 | 攻击信息呈现方法、装置、平台及存储介质 |
CN117439826A (zh) * | 2023-12-21 | 2024-01-23 | 江苏禾冠信息技术有限公司 | 基于多模态验证的网络安全识别方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117637A (zh) * | 2018-07-03 | 2019-01-01 | 北京航空航天大学 | 基于攻击树的智能网联车辆信息安全事件发生概率评估方法与*** |
CN111935192A (zh) * | 2020-10-12 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 网络攻击事件溯源处理方法、装置、设备和存储介质 |
CN112039914A (zh) * | 2020-09-07 | 2020-12-04 | 中国人民解放军63880部队 | 一种网络攻击链效率建模方法 |
US11128654B1 (en) * | 2019-02-04 | 2021-09-21 | Architecture Technology Corporation | Systems and methods for unified hierarchical cybersecurity |
-
2021
- 2021-09-27 CN CN202111137372.5A patent/CN113965469B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117637A (zh) * | 2018-07-03 | 2019-01-01 | 北京航空航天大学 | 基于攻击树的智能网联车辆信息安全事件发生概率评估方法与*** |
US11128654B1 (en) * | 2019-02-04 | 2021-09-21 | Architecture Technology Corporation | Systems and methods for unified hierarchical cybersecurity |
CN112039914A (zh) * | 2020-09-07 | 2020-12-04 | 中国人民解放军63880部队 | 一种网络攻击链效率建模方法 |
CN111935192A (zh) * | 2020-10-12 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 网络攻击事件溯源处理方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
代廷合: "一种基于攻击树的网络攻击模型", 《中国优秀博硕士学位论文全文数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230078713A1 (en) * | 2021-09-16 | 2023-03-16 | Microsoft Technology Licensing, Llc | Determination of likely related security incidents |
US12026253B2 (en) * | 2021-09-16 | 2024-07-02 | Microsoft Technology Licensing, Llc | Determination of likely related security incidents |
CN115811550A (zh) * | 2022-12-19 | 2023-03-17 | 深信服科技股份有限公司 | 攻击信息呈现方法、装置、平台及存储介质 |
CN115811550B (zh) * | 2022-12-19 | 2024-05-28 | 深信服科技股份有限公司 | 攻击信息呈现方法、装置、平台及存储介质 |
CN117439826A (zh) * | 2023-12-21 | 2024-01-23 | 江苏禾冠信息技术有限公司 | 基于多模态验证的网络安全识别方法及*** |
CN117439826B (zh) * | 2023-12-21 | 2024-03-01 | 江苏禾冠信息技术有限公司 | 基于多模态验证的网络安全识别方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113965469B (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113965469B (zh) | 网络数据分析模型的构建方法 | |
Alasmary et al. | Analyzing and detecting emerging Internet of Things malware: A graph-based approach | |
Durkota et al. | Optimal network security hardening using attack graph games | |
Sharad et al. | An automated social graph de-anonymization technique | |
Lelarge et al. | Network externalities and the deployment of security features and protocols in the internet | |
CN114257420B (zh) | 一种基于知识图谱的网络安全测试的生成方法 | |
Yang et al. | Poirot: Causal correlation aided semantic analysis for advanced persistent threat detection | |
Du et al. | Toward ensemble characterization and projection of multistage cyber attacks | |
Vidal et al. | Online masquerade detection resistant to mimicry | |
CN115277127A (zh) | 基于***溯源图搜索匹配攻击模式的攻击检测方法及装置 | |
Elekar | Combination of data mining techniques for intrusion detection system | |
Lounis | Stochastic-based semantics of attack-defense trees for security assessment | |
Mauw et al. | Robust active attacks on social graphs | |
Das et al. | An efficient feature selection approach for intrusion detection system using decision tree | |
Sakthivelu et al. | Advanced Persistent Threat Detection and Mitigation Using Machine Learning Model. | |
Zhao et al. | Defense against poisoning attack via evaluating training samples using multiple spectral clustering aggregation method | |
Brittorameshkumar | OSS-RF: Intrusion detection using optimized sine swarm based random forest classifier on unsw-nb15 dataset | |
Bar et al. | Scalable attack propagation model and algorithms for honeypot systems | |
Zhao et al. | Bidirectional RNN-based few-shot training for detecting multi-stage attack | |
Paul et al. | Survey of polymorphic worm signatures | |
Pogossian et al. | Effective discovery of intrusion protection strategies | |
Budynek et al. | Evolving computer intrusion scripts for vulnerability assessment and log analysis | |
Darem | A Novel Framework for Windows Malware Detection Using a Deep Learning Approach. | |
Shen et al. | SR2APT: A Detection and Strategic Alert Response Model against Multistage APT Attacks | |
Carlsson et al. | User and Entity Behavior Anomaly Detection using Network Traffic |
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 |