本发明属于网络安全技术领域,更准确地说本发明涉及一种基于关联矩阵的面向对象网络攻击建模方法及装置。
背景技术:
随着泛在电力物联网的建设,电网和通信信息网的结构将日趋复杂,耦合将更加紧密,这就给电力系统的安全稳定运行带来了新的威胁——信息通信系统的安全威胁。黑客对信息通信系统的攻击可以直接或间接影响电力系统的量测和控制,并进一步影响电力系统安全稳定运行,甚至导致大规模停电事故的发生。面对层出不穷的网络攻击案例,需要从网络的整体态势对攻击过程进行建模,预测网络攻击可能发生的路径,及其概率,实现对网络状态的安全评估,为安全措施提供参考意见。
目前,国内外已提出诸多针对网络攻击的建模方法,包括攻击语言、攻击树、攻击图、攻击网、状态转移图等,这些方法对网络攻击行为分析和形式化进行了相应的描述:
攻击树模型:用一个树形结构来描述对系统的攻击,把攻击要达到的一个总目标作为树的根节点,达到这个总目标的子目标作为子节点,逐步细分,每一条从根节点到叶子节点的路径表示实现这个攻击目标而进行的一个完整的攻击过程。攻击树仅限于描述、形式化分析,主观性太强,且自身存在的规模问题使其不适用于大规模的网络环境。
攻击图模型:攻击图模型就是通过模拟攻击者对存在的安全漏洞进行模拟攻击,找到所有能够达到目标的攻击路径,是一组攻击者能够破坏网络系统的攻击预案的集合。与攻击树和petri网相比,攻击图对网络攻击过程的描述能力更强。通过攻击图可以展示出攻击者试图入侵通信或信息网络时,如何从初始状态到达目的状态的过程,一个完整的攻击图就是一个可能达到被攻击目标的操作序列。攻击图生成主要有两大类,一类为状态的变迁,通过算法可生成完整的攻击图,但应用在大规模商业网络中时常引发“状态空间爆炸”;另一类以主机为中心,可应用在大规模网络中,但缺点是不能列出所有的攻击路径。
基于petri网的攻击网模型:通过由位置、变迁、弧和令牌构成的,位置与攻击网中的节点相对应,攻击行为通过令牌在位置间的变迁转换来描述。该方法可以较好地表示攻击所处的状态、攻击的动作和攻击的进展等。但该方法由于受到规模的限制,难以用来分析较大规模和复杂网络拓扑的网络信息系统,因此对网络信息的利用不全面。
网络攻击语言:是最早出现的对网络攻击进行描述的建模方法,其通过一种形式化的描述语言对网络攻击进行描述,包括nasl,statl,面向对象的语言建模等,通过直接对一个或一类攻击行为进行语言化描述。网络攻击语言的方法适用于工程化应用,但不适用于描述阶段性的攻击行为,也不能展现整个信息通信网络的安全形势。
状态转移图建模:该建模方法通过有限状态机模型为基础来表示攻击过程。攻击者的入侵过程可以看作从有限特权开始,利用通信和信息系统存在的漏洞和错误的配置等不断提升其操作权限的过程。但该模型中系统状态仅是一个标记,其含义不明确,应用面较窄。
技术实现要素:
本发明的目的在于提供一种基于关联矩阵的面向对象网络攻击建模方法及装置,采用关联矩阵的方法准确描述攻击数据包在网络中的传输过程,以及在攻击过程中网络节点和链路的状态变化,较为直观地建立网络攻击者与被攻击对象之间的关系,展现可能的攻击路径。
为达到上述目的,本发明采用的技术方案如下:
本发明提供一种基于关联矩阵的面向对象网络攻击建模方法,包括:
将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径基于抽象的网络攻击行为建立攻击行为对象关联矩阵;
对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵。
进一步的,所述将通信信息网络中的节点和通信链路进行抽象,包括:
采用面向对象的方法将节点和通信链路的实例封装为一个网络对象;所述节点包括通信节点和信息节点;
将网络对象的网络属性用一个二元组<t,v>表示,将网络对象的网络方法用一个二元组<o,w>表示;所述网络属性是对被攻击的网络对象状态特征的表示;所述网络方法是被攻击的网络对象对攻击行为的处理方法;
其中,t为网络属性的名称,v为网络属性的具体值,用0、1和-1表示,0表示该网络对象没有相应的网络属性,1表示网络属性为未被攻击者利用,-1表示网络属性已经被攻击者所利用;o为网络方法的名称,w为网络方法的具体值,用0、1和-1表示,0表示该网络方法不存在,1表该网络方法有效,-1表示该网络方法已被攻击者利用。
进一步的,所述将网络攻击行为进行抽象,包括:
采用面向对象的方法将攻击者的攻击实例封装为一个攻击行为对象;
将攻击行为对象属性用一个二元组<r,p>表示,将攻击行为对象的攻击行为方法用一个二元组<s,q>表示,所述攻击行为对象属性是对攻击行为对象的操作的描述;所述攻击行为方法是对攻击行为对象的攻击动作的描述;
其中,r为攻击行为对象属性的名称,p为攻击行为对象属性的具体值,用0和-1表示,0表示攻击行为对象属性无效,-1表示攻击行为对象属性有效;s为攻击行为方法的名称,q为攻击行为方法的具体值,用0和-1表示,0表示攻击行为方法无效,-1表示攻击行为方法有效。
进一步的,所述根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵,包括:
通信网络对象关联矩阵中的元素为通信信息网络中网络对象的状态,用nij表示网络对象ij的状态,nij=[am],
若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示通信信息网络中从节点ii到jj的单向链路状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示;
a为网络对象抽象的网络属性二元组<t,v>的集合,m为网络对象抽象的网络方法二元组<o,w>的集合;
如果通信信息网络被攻击,则采用nkij表示网络对象ij经过k次网络攻击后的状态,k=0,1,2,……,当k=0时,为初始状态。
进一步的,所述根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径,基于抽象的网络攻击行为建立攻击行为对象关联矩阵,包括:
攻击行为对象关联矩阵中的元素为攻击者对网络对象进行的一次攻击,采用onij表示攻击者对网络对象ij进行的一次攻击,onij=[oaom];
若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点进行的攻击行为或是一个转发行为,若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击,若攻击者没有攻击对象或没有利用从节点ii到jj的单向链路,则矩阵中对应的onij和onji用0表示;
oa为抽象的攻击行为对象属性二元组<r,p>的集合,om为抽象的攻击行为方法二元组<s,q>的集合;
采用onkij表示对网络对象ij进行的攻击次序为k的一次攻击,k=0,1,2,……。
进一步的,所述对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信网络对象状态矩阵,包括:
其中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为对象关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示所属攻击次序的攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间;
进一步的,所述攻击行为对象与网络对象之间的逻辑匹配,包括:
对攻击行为对象的攻击行为属性集合和网络对象的网络方法集合进行逻辑匹配,判断攻击行为是否有效;
当确定攻击行为有效后,对攻击行为对象的攻击行为方法集合和网络对象的网络属性集合进行逻辑匹配,判断攻击是否成功。
进一步的,所述对攻击行为对象的攻击行为属性集合和网络对象的网络方法集合进行逻辑匹配,判断攻击行为是否有效,包括:
将网络方法的二元组<o,w>集合中的o的描述与攻击行为属性的二元组集合<r,p>中的r的描述进行匹配,当描述一致时,对相应的二元组中的w的值和p的值进行计算;
如果w为1,则攻击行为属性二元组<r,p>中,对应的p值变为0即攻击行为被过滤;如果w为0或-1,则对应的p值依旧为-1,表示攻击行为有效。
进一步的,所述对攻击行为对象的攻击行为方法集合和网络对象的网络属性集合进行逻辑匹配,判断攻击是否成功,包括:
将攻击行为方法的二元组<s,q>集合中的s的描述与网络属性的二元组集合<t,v>中的t的描述进行匹配,当描述一致时,对相应的二元组中的q的值和v的值进行计算;
如果q为-1,则网络属性二元组<t,v>中,对应的v值变为-1即攻击成功;否则,保持不变。
进一步的,所述攻击行为被过滤时,通信网络对象关联矩阵中元素保持不变。
本发明还提供一种基于关联矩阵的面向对象网络攻击建模装置,包括:
初始化模块,用于将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
建模模块,用于根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径基于抽象的网络攻击行为建立攻击行为对象关联矩阵;
以及,
匹配模块,用于对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵。
进一步的,所述初始化模块具体用于,
采用面向对象的方法将节点和通信链路的实例封装为一个网络对象;所述节点包括通信节点和信息节点;
将网络对象的网络属性用一个二元组<t,v>表示,将网络对象的网络方法用一个二元组<o,w>表示;所述网络属性是对被攻击的网络对象状态特征的表示;所述网络方法是被攻击的网络对象对攻击行为的处理方法;
其中,t为网络属性的名称,v为网络属性的具体值,用0、1和-1表示,0表示该网络对象没有相应的网络属性,1表示网络属性为未被攻击者利用,-1表示网络属性已经被攻击者所利用;o为网络方法的名称,w为网络方法的具体值,用0、1和-1表示,0表示该网络方法不存在,1表该网络方法有效,-1表示该网络方法已被攻击者利用;
以及,
采用面向对象的方法将攻击者的攻击实例封装为一个攻击行为对象;
将攻击行为对象属性用一个二元组<r,p>表示,将攻击行为对象的攻击行为方法用一个二元组<s,q>表示,所述攻击行为对象属性是对攻击行为对象的操作的描述;所述攻击行为方法是对攻击行为对象的攻击动作的描述;
其中,r为攻击行为对象属性的名称,p为攻击行为对象属性的具体值,用0和-1表示,0表示攻击行为对象属性无效,-1表示攻击行为对象属性有效;s为攻击行为方法的名称,q为攻击行为方法的具体值,用0和-1表示,0表示攻击行为方法无效,-1表示攻击行为方法有效。
进一步的,所述建模模块具体用于,
通信网络对象关联矩阵中的元素为通信信息网络中网络对象的状态,用nij表示网络对象ij的状态,nij=[am],
若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示通信信息网络中从节点ii到jj的单向链路状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示;
a为网络对象抽象的网络属性二元组<t,v>的集合,m为网络对象抽象的网络方法二元组<o,w>的集合;
如果通信信息网络被攻击,则采用nkij表示网络对象ij经过k次网络攻击后的状态,k=0,1,2,……,当k=0时,为初始状态;
攻击行为对象关联矩阵中的元素为攻击者对网络对象进行的一次攻击,采用onij表示攻击者对网络对象ij进行的一次攻击,onij=[oaom];
若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点进行的攻击行为或是一个转发行为,若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击,若攻击者没有攻击对象或没有利用从节点ii到jj的单向链路,则矩阵中对应的onij和onji用0表示;
oa为抽象的攻击行为对象属性二元组<r,p>的集合,om为抽象的攻击行为方法二元组<s,q>的集合;
采用onkij表示对网络对象ij进行的攻击次序为k的一次攻击,k=0,1,2,……。
进一步的,所述匹配模块具体用于,
其中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为对象关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示所属攻击次序的攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间;
本发明的有益效果如下:
本发明通过将通信信息网络中的节点和通信链路进行抽象和将网络攻击行为进行抽象,建立通信网络对象关联矩阵和攻击行为对象关联矩阵,以及通过对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵,能够更细致描述了攻击行为在信息通信网络拓扑中的传播路径,以及动态的描述了攻击行为对网络中节点和链路的影响;通过该方法可以检视、分析攻击路径中各节点的状态变化;确定攻击行为是否有效;发现各节点是否有存在可被攻击者利用的漏洞;发现攻击行为在网络中的传播路径,为发现潜在的网络漏洞,以及为提高网络安全防御能力提供有效的分析方法。
附图说明
图1是本发明具体实施方式中的一种网络攻击模型的建模框图。
图2是本发明具体实施方式中的一种通信信息网络拓扑图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
面向对象的研究分析方法是一种认识和表示客观世界的方法,其特点是把描述事物静态特征的属性和表示动态行为的操作放在一起构成一个整体,并采用有限的步骤建立起一个客观的世界模型。由于网络攻击行为的特点,使得面向对象所构造的模型可以清楚的描述网络攻击的方式和过程,同时也可以为网络安全维护人员直观的展现系统漏洞,并可以展现攻击者成功攻击系统的步骤,为网络安全人员发现攻击行为,提升系统安全提供一个有效的方法。
本发明提供一种基于关联矩阵的面向对象网络攻击建模方法,建模的框图如图1所示。根据攻击者的攻击目标和攻击方式建立攻击行为对象矩阵。根据攻击目标的不同和攻击时间段的不同,分别建立攻击对象矩阵,并按发生的时间顺序进行分别与信息通信网络矩阵进行计算,描述攻击者分多次在不同的时间段,对不同的目标发起攻击。
实施例1
本发明提供一种基于关联矩阵的面向对象网络攻击建模方法,包括:
将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵,关联矩阵中各元素由一个包含节点/通信链路的属性向量和方法向量的状态空间构成;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径建立攻击行为对象关联矩阵,关联矩阵中各元素由一个包含攻击行为属性向量和方法向量的状态空间构成;
通过通信网络对象关联矩阵和攻击行为对象关联矩阵中元素的一一匹配得到网络攻击后的通信网络对象状态矩阵。该矩阵描述了信息通信系统拓扑结构,以及攻击数据包在通信信息网络中进行网络攻击的路径。
具体的,将通信信息网络中的节点和通信链路进行抽象,包括:
采用面向对象的方法对节点和通信链路进行定义,其中,节点包括通信节点和信息节点,通信节点为通信信息网络中通信设备组成的节点如路由器、交换机等,信息节点为信息设备组成的节点,如服务器、数据库、网络计算机等;通信链路为节点之间的路径。
网络对象(n):将通信链路或节点的实例封装为一个网络对象,网络对象可以是通信信息网络中的一个通信节点,如路由器、交换机、sdh设备等,也可以是通信节点间的通信链路,如光纤链路,无线通信链路等,同时也可以是一个变电站或数据中心的系统级抽象。
网络对象的属性,简称网络属性(a):网络属性是对被攻击对象状态特征的表示,包括服务、漏洞、带宽、硬件资源、系统版本等。网络属性可以用一个二元组表示<t,v>,t为该属性的名称,v为该属性的具体值,用0、1和-1表示,其中0表示对象没有相应的属性,1表示该属性为未被攻击者利用,-1表示该属性已经被攻击者所利用。
网络对象的方法,简称网络方法(m):网络方法是网络对象对接收到的数据包或用户操作请求的处理方法,也可以表示为对攻击行为的处理方法,比如对端口扫描行为的拒绝回复、数据包包过滤等;网络方法可以用一个二元组表示<o,w>,o为该方法的名称,w为该方法的具体值,用0、1和-1表示,其中0表示方法不存在,1表示该方法有效,-1表示该方法已被攻击者利用。
具体的,将网络攻击行为进行抽象,包括:
采用面向对象的方法将攻击行为进行定义:
攻击行为对象(on):将攻击者的攻击实例封装为一个攻击行为对象,攻击行为对象可以被表示为单一的攻击,也可被表示为多种攻击的组合,成功的攻击行为将造成一个或多个元件对象属性的改变。
攻击行为属性(oa):攻击行为属性是对攻击行为对象某个操作的描述,攻击行为属性是攻击行为的前提条件,在充分满足一个或多个攻击行为属性的条件下,攻击动作将被启动。攻击行为属性可以用一个二元组表示<r,p>,r为该属性的名称,p为该属性的具体值,用0和-1表示,其中0表示该攻击行为属性无效,-1表示该攻击行为属性有效。
攻击行为方法(om):攻击行为方法是对攻击行为对象的攻击动作的描述,在满足攻击行为属性的前提条件下,将通过攻击行为方法修改网络对象的一个或多个属性,从而完成攻击动作。攻击行为方法可以用一个二元组表示<s,q>,s为该方法的名称,q为该方法的具体值,用0和-1表示,其中0表示方法无效,-1表示攻击方法有效。
具体的,根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵,包括:
建立通信网络对象关联矩阵,来描述通信信息网络的拓扑和特性。通信网络对象关联矩阵可以描述整个通信信息网络中的各对象元素的状态特征。
通信网络对象关联矩阵中的元素用nij表示,nij=[am],若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示该单向链路的状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示。通信节点,信息节点和链路均属于网络对象。
a为该网络对象的网络属性集合,为二元组<t,v>的集合,可以包括:链路带宽、链路中通信设备的cpu、内存、远程登陆、提供的服务等,m为该网络对象的网络方法集合,为二元组<o,w>的集合,可以包括:远程登陆密码保护、链路中通信设备对特定数据的过滤能力,如病毒,蠕虫等。
矩阵元素采用上标表示经过几次网络攻击后的状态,如nkij表示经过k次网络攻击后的状态,如果上标为0则为初始状态。
以图2的通信信息网络为例,该通信信息网络共有8个节点,结合各节点之间的连接关系,得到该通信信息网络对象关联矩阵初始状态矩阵如下:
具体的,根据网络攻击行为的目标和攻击数据包在通信信息网络中的传输路径建立攻击行为对象关联矩阵,包括:
建立攻击行为对象关联矩阵on来描述攻击路径,攻击方法,以及攻击过程。
攻击行为对象关联矩阵中的元素用onij表示,表示对网络对象ij进行的一次攻击,onij=[oaom];若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点的攻击行为或是一个简单的转发行为;若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击;若攻击者没有攻击对象或没有利用连接节点ii到jj的链路,则矩阵中对应的onij和onji用0表示。
oa为抽象的攻击行为属性二元组<r,p>的集合,可以包括:攻击的端口号、攻击的ip地址、攻击包的数量等,om为抽象的攻击行为方法二元组<s,q>的集合,可以包括:消耗链路带宽消耗系统资源、修改配置信息、植入木马等。
矩阵中的元素采用上标表示攻击行为的发生次序,如onkij表示对网络对象ij进行的攻击次序为k的一次攻击。攻击次序从0开始计算,如下述矩阵on0表示对图2所示的通信信息网络进行攻击次序为0的一次攻击,矩阵中on033表示对网络对象33进行攻击次序为0的一次攻击。
攻击行为对象关联矩阵可以描述攻击者通过通信信息网络的各节点和链路来攻击目标对象的路径和方法。
参见图1的网络攻击模型,通过通信网络对象关联矩阵和网络攻击行为对象关联矩阵中元素的一一匹配得到网络攻击后的通信网络对象状态矩阵,包括:
式中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示攻击次序为i的网络攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间。
例如,对于发生了两次攻击行为,则通信信息网络最终状态矩阵为:
式中,nt为通信信息网络最终状态矩阵,on0表示对通信信息网络进行攻击次序为0的一次攻击,on1表示对通信信息网络进行攻击次序为1的一次攻击;
e-t0s0和e-t1s1表示第0次攻击行为的延时环节和第1次攻击行为的延时环节,上标t1表示第1次攻击行为发生的时刻,上标s1表示第1次攻击行为的持续时间,上标t0表示第0次攻击行为发生的时刻,上标s0表示第0次攻击行为的持续时间。
逻辑匹配规则如下:
a.当进行攻击行为对象与网络对象逻辑匹配时,先对攻击行为对象的攻击行为属性集合和网络对象的网络方法集合进行逻辑匹配,当某种网络方法与攻击行为属性匹配时,即攻击行为被过滤;反之,则攻击行为有效。
攻击行为属性集合和网络方法集合匹配过程如下:
当网络方法的二元组<o,w>集合中的一个o的描述与攻击行为属性的二元组集合<r,p>中的r的描述相同时,对w的值和p的值进行计算;如果w为1,匹配攻击行为的属性时,则攻击行为属性二元组<r,p>中,对应的p值变为0即攻击行为被过滤。如果w为0或-1,则对应的p值依旧为-1,表示攻击行为有效。攻击行为有效表现为:在矩阵n中相应元素能否被改变状态。如果攻击行为有效,则可以用相应的攻击行为的方法去改变相应的网络属性二元组<t,v>中v值。
b.当确定攻击行为有效后,对攻击行为对象的攻击行为方法集合和网络对象的网络属性集合进行逻辑匹配,即攻击行为方法对被攻击对象网络属性的操作,如果操作有效,则网络对象的网络属性将被修改,攻击成功;反之,则网络对象的网络属性不被修改,攻击失败或表明攻击利用了该属性。
攻击行为方法集合和网络属性集合匹配过程如下:
当攻击行为方法的二元组<s,q>集合中的一个s的描述与网络属性的二元组<t,v>集合中的t的描述相同时,对q的值和v的值进行计算;如果q为-1,则网络属性二元组<t,v>中,对应的v值变为-1,否则,保持不变。
c.当攻击行为被过滤时,该通信网络对象关联矩阵中元素的方法向量所对应的通信网络对象关联矩阵中元素的属性向量保持不变,表示通信信息网络的状态没有被攻击行为改变。
综上所述,本发明通过利用关联矩阵的方法,实现了对信息通信网络拓扑结构的描述以及网络攻击路径的描述;利用面向对象的方法对攻击方法、攻击步骤和攻击过程,以及攻击后信息通信网络的状态进行描述。由于本发明可以分析攻击行为对单个节点或链路的影响,因此可以有助于发现存在的漏洞。
实施例2
本发明还提供一种基于关联矩阵的面向对象网络攻击建模装置,包括:
初始化模块,用于将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
建模模块,用于根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径基于抽象的网络攻击行为建立攻击行为对象关联矩阵;
以及,
匹配模块,用于对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵。
进一步的,所述初始化模块具体用于,
采用面向对象的方法将节点和通信链路的实例封装为一个网络对象;所述节点包括通信节点和信息节点;
将网络对象的网络属性用一个二元组<t,v>表示,将网络对象的网络方法用一个二元组<o,w>表示;所述网络属性是对被攻击的网络对象状态特征的表示;所述网络方法是被攻击的网络对象对攻击行为的处理方法;
其中,t为网络属性的名称,v为网络属性的具体值,用0、1和-1表示,0表示该网络对象没有相应的网络属性,1表示网络属性为未被攻击者利用,-1表示网络属性已经被攻击者所利用;o为网络方法的名称,w为网络方法的具体值,用0、1和-1表示,0表示该网络方法不存在,1表该网络方法有效,-1表示该网络方法已被攻击者利用;
以及,
采用面向对象的方法将攻击者的攻击实例封装为一个攻击行为对象;
将攻击行为对象属性用一个二元组<r,p>表示,将攻击行为对象的攻击行为方法用一个二元组<s,q>表示,所述攻击行为对象属性是对攻击行为对象的操作的描述;所述攻击行为方法是对攻击行为对象的攻击动作的描述;
其中,r为攻击行为对象属性的名称,p为攻击行为对象属性的具体值,用0和-1表示,0表示攻击行为对象属性无效,-1表示攻击行为对象属性有效;s为攻击行为方法的名称,q为攻击行为方法的具体值,用0和-1表示,0表示攻击行为方法无效,-1表示攻击行为方法有效。
进一步的,所述建模模块具体用于,
通信网络对象关联矩阵中的元素为通信信息网络中网络对象的状态,用nij表示网络对象ij的状态,nij=[am],
若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示通信信息网络中从节点ii到jj的单向链路状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示;
a为网络对象抽象的网络属性二元组<t,v>的集合,m为网络对象抽象的网络方法二元组<o,w>的集合;
如果通信信息网络被攻击,则采用nkij表示网络对象ij经过k次网络攻击后的状态,k=0,1,2,……,当k=0时,为初始状态;
攻击行为对象关联矩阵中的元素为攻击者对网络对象进行的一次攻击,采用onij表示攻击者对网络对象ij进行的一次攻击,onij=[oaom];
若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点进行的攻击行为或是一个转发行为,若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击,若攻击者没有攻击对象或没有利用从节点ii到jj的单向链路,则矩阵中对应的onij和onji用0表示;
oa为抽象的攻击行为对象属性二元组<r,p>的集合,om为抽象的攻击行为方法二元组<s,q>的集合;
采用onkij表示对网络对象ij进行的攻击次序为k的一次攻击,k=0,1,2,……。
进一步的,所述匹配模块具体用于,
其中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为对象关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示所属攻击次序的攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间;
值得指出的是,该装置实施例是与上述方法实施例对应的,上述方法实施例的实现方式均适用于该装置实施例中,并能达到相同或相似的技术效果,故不在此赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
1.一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,包括:
将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径基于抽象的网络攻击行为建立攻击行为对象关联矩阵;
对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵。
2.根据权利要求1所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述将通信信息网络中的节点和通信链路进行抽象,包括:
采用面向对象的方法将节点和通信链路的实例封装为一个网络对象;所述节点包括通信节点和信息节点;
将网络对象的网络属性用一个二元组<t,v>表示,将网络对象的网络方法用一个二元组<o,w>表示;所述网络属性是对被攻击的网络对象状态特征的表示;所述网络方法是被攻击的网络对象对攻击行为的处理方法;
其中,t为网络属性的名称,v为网络属性的具体值,用0、1和-1表示,0表示该网络对象没有相应的网络属性,1表示网络属性为未被攻击者利用,-1表示网络属性已经被攻击者所利用;o为网络方法的名称,w为网络方法的具体值,用0、1和-1表示,0表示该网络方法不存在,1表该网络方法有效,-1表示该网络方法已被攻击者利用。
3.根据权利要求1所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述将网络攻击行为进行抽象,包括:
采用面向对象的方法将攻击者的攻击实例封装为一个攻击行为对象;
将攻击行为对象属性用一个二元组<r,p>表示,将攻击行为对象的攻击行为方法用一个二元组<s,q>表示,所述攻击行为对象属性是对攻击行为对象的操作的描述;所述攻击行为方法是对攻击行为对象的攻击动作的描述;
其中,r为攻击行为对象属性的名称,p为攻击行为对象属性的具体值,用0和-1表示,0表示攻击行为对象属性无效,-1表示攻击行为对象属性有效;s为攻击行为方法的名称,q为攻击行为方法的具体值,用0和-1表示,0表示攻击行为方法无效,-1表示攻击行为方法有效。
4.根据权利要求2所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵,包括:
通信网络对象关联矩阵中的元素为通信信息网络中网络对象的状态,用nij表示网络对象ij的状态,nij=[am],
若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示通信信息网络中从节点ii到jj的单向链路状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示;
a为网络对象抽象的网络属性二元组<t,v>的集合,m为网络对象抽象的网络方法二元组<o,w>的集合;
如果通信信息网络被攻击,则采用nkij表示网络对象ij经过k次网络攻击后的状态,k=0,1,2,……,当k=0时,为初始状态。
5.根据权利要求3所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径,基于抽象的网络攻击行为建立攻击行为对象关联矩阵,包括:
攻击行为对象关联矩阵中的元素为攻击者对网络对象进行的一次攻击,采用onij表示攻击者对网络对象ij进行的一次攻击,onij=[oaom];
若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点进行的攻击行为或是一个转发行为,若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击,若攻击者没有攻击对象或没有利用从节点ii到jj的单向链路,则矩阵中对应的onij和onji用0表示;
oa为抽象的攻击行为对象属性二元组<r,p>的集合,om为抽象的攻击行为方法二元组<s,q>的集合;
采用onkij表示对网络对象ij进行的攻击次序为k的一次攻击,k=0,1,2,……。
6.根据权利要求5所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信网络对象状态矩阵,包括:
其中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为对象关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示所属攻击次序的攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间;
7.根据权利要求6所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述攻击行为对象与网络对象之间的逻辑匹配,包括:
对攻击行为对象的攻击行为属性集合和网络对象的网络方法集合进行逻辑匹配,判断攻击行为是否有效;
当确定攻击行为有效后,对攻击行为对象的攻击行为方法集合和网络对象的网络属性集合进行逻辑匹配,判断攻击是否成功。
8.根据权利要求7所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述对攻击行为对象的攻击行为属性集合和网络对象的网络方法集合进行逻辑匹配,判断攻击行为是否有效,包括:
将网络方法的二元组<o,w>集合中的o的描述与攻击行为属性的二元组集合<r,p>中的r的描述进行匹配,当描述一致时,对相应的二元组中的w的值和p的值进行计算;
如果w为1,则攻击行为属性二元组<r,p>中,对应的p值变为0即攻击行为被过滤;如果w为0或-1,则对应的p值依旧为-1,表示攻击行为有效。
9.根据权利要求7所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述对攻击行为对象的攻击行为方法集合和网络对象的网络属性集合进行逻辑匹配,判断攻击是否成功,包括:
将攻击行为方法的二元组<s,q>集合中的s的描述与网络属性的二元组集合<t,v>中的t的描述进行匹配,当描述一致时,对相应的二元组中的q的值和v的值进行计算;
如果q为-1,则网络属性二元组<t,v>中,对应的v值变为-1即攻击成功;否则,保持不变。
10.根据权利要求8所述的一种基于关联矩阵的面向对象网络攻击建模方法,其特征在于,所述攻击行为被过滤时,通信网络对象关联矩阵中元素保持不变。
11.一种基于关联矩阵的面向对象网络攻击建模装置,其特征在于,包括:
初始化模块,用于将通信信息网络中的节点和通信链路进行抽象;以及,将网络攻击行为进行抽象;
建模模块,用于根据通信信息网络的拓扑结构基于抽象的节点和通信链路建立通信网络对象关联矩阵;以及,根据网络攻击行为的目标和攻击数据包经过的通信信息网络的路径基于抽象的网络攻击行为建立攻击行为对象关联矩阵;
以及,
匹配模块,用于对通信网络对象关联矩阵和攻击行为对象关联矩阵中的元素进行一一匹配,得到网络攻击后的通信信息对象状态矩阵。
12.根据权利要求11所述的一种基于关联矩阵的面向对象网络攻击建模装置,其特征在于,所述初始化模块具体用于,
采用面向对象的方法将节点和通信链路的实例封装为一个网络对象;所述节点包括通信节点和信息节点;
将网络对象的网络属性用一个二元组<t,v>表示,将网络对象的网络方法用一个二元组<o,w>表示;所述网络属性是对被攻击的网络对象状态特征的表示;所述网络方法是被攻击的网络对象对攻击行为的处理方法;
其中,t为网络属性的名称,v为网络属性的具体值,用0、1和-1表示,0表示该网络对象没有相应的网络属性,1表示网络属性为未被攻击者利用,-1表示网络属性已经被攻击者所利用;o为网络方法的名称,w为网络方法的具体值,用0、1和-1表示,0表示该网络方法不存在,1表该网络方法有效,-1表示该网络方法已被攻击者利用;
以及,
采用面向对象的方法将攻击者的攻击实例封装为一个攻击行为对象;
将攻击行为对象属性用一个二元组<r,p>表示,将攻击行为对象的攻击行为方法用一个二元组<s,q>表示,所述攻击行为对象属性是对攻击行为对象的操作的描述;所述攻击行为方法是对攻击行为对象的攻击动作的描述;
其中,r为攻击行为对象属性的名称,p为攻击行为对象属性的具体值,用0和-1表示,0表示攻击行为对象属性无效,-1表示攻击行为对象属性有效;s为攻击行为方法的名称,q为攻击行为方法的具体值,用0和-1表示,0表示攻击行为方法无效,-1表示攻击行为方法有效。
13.根据权利要求12所述的一种基于关联矩阵的面向对象网络攻击建模装置,其特征在于,所述建模模块具体用于,
通信网络对象关联矩阵中的元素为通信信息网络中网络对象的状态,用nij表示网络对象ij的状态,nij=[am],
若i=j,则ij表示该网络对象为一个通信节点或信息节点,nij表示该通信节点或信息节点的状态;若i≠j,则ij表示通信信息网络中的一个从节点ii到jj的单向链路,nij表示通信信息网络中从节点ii到jj的单向链路状态;若没有连接节点ii到jj的链路,则矩阵中对应的nij和nji用0表示;
a为网络对象抽象的网络属性二元组<t,v>的集合,m为网络对象抽象的网络方法二元组<o,w>的集合;
如果通信信息网络被攻击,则采用nkij表示网络对象ij经过k次网络攻击后的状态,k=0,1,2,……,当k=0时,为初始状态;
攻击行为对象关联矩阵中的元素为攻击者对网络对象进行的一次攻击,采用onij表示攻击者对网络对象ij进行的一次攻击,onij=[oaom];
若i=j,则onij表示对通信信息网络中的一个通信节点或信息节点进行的攻击行为或是一个转发行为,若攻击者没有攻击对象或攻击数据包未经过该网络对象ij,则矩阵中对应的onij用0表示;若i≠j,则onij表示攻击者攻击通信信息网络中的一个从节点ii到jj的单向链路或利用这条链路向目标网络对象发动攻击,若攻击者没有攻击对象或没有利用从节点ii到jj的单向链路,则矩阵中对应的onij和onji用0表示;
oa为抽象的攻击行为对象属性二元组<r,p>的集合,om为抽象的攻击行为方法二元组<s,q>的集合;
采用onkij表示对网络对象ij进行的攻击次序为k的一次攻击,k=0,1,2,……。
14.根据权利要求13所述的一种基于关联矩阵的面向对象网络攻击建模装置,其特征在于,所述匹配模块具体用于,
其中,nt为通信网络对象最终状态矩阵,n0为通信网络对象初始状态关联矩阵,ont为多次不同的网络攻击行为共同作用的关联矩阵;onij为攻击次序为i的攻击行为对网络对象j进行攻击的攻击行为对象关联矩阵;t表示通信信息网络受到的有先后次序的不同网络攻击行为的集合;k表示所属攻击次序的攻击行为攻击的网络对象的集合;e-tjsj为延时环节,上标tj表示对网络对象j进行攻击的发生时刻,sj表示对网络对象j进行攻击的持续时间;