一种基于Kohonen神经网络的最佳攻击路径规划方法技术

技术编号:16558626 阅读:94 留言:0更新日期:2017-11-14 17:42
本发明专利技术涉及一种基于Kohonen神经网络的最佳攻击路径规划方法,属于信息安全技术领域。具体操作步骤为:步骤一、获取网络结构。步骤二、收集网络系统中主机及漏洞信息。步骤三、建立Kohonen神经网络模型。步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型。步骤五、使用训练好的Kohonen神经网络模型,对实验数据进行预测,得到输出向量Ym。步骤六、构造K‑攻击图。步骤七、根据K‑攻击图构造概率矩阵以及最佳原子攻击矩阵。步骤八、得到最佳攻击路径。本发明专利技术提出的基于Kohonen神经网络的攻击路径规划方法与已有技术相比较,具有以下优点:①生成的攻击图只保留最可能的攻击节点,避免了状态爆炸问题。②泛化性能强。③最优攻击路径生成速度快。

An optimal attack path planning method based on Kohonen neural network

The invention relates to an optimal attack path planning method based on Kohonen neural network, which belongs to the field of information security technology. The specific steps are as follows: Step 1. Obtain network structure. Step two: collect host and vulnerability information in network system. Step three, establish the Kohonen neural network model. Step four, train the Kohonen neural network model, and get the trained Kohonen neural network model. Step five, the trained Kohonen neural network model is used to predict the experimental data, and the output vector Ym is obtained. Step six, K attack graph structure. Step seven, according to the K attack graph probability matrix and the optimal atomic attack matrix. Step eight, get the best attack path. The invention provides a method of path planning attacks based on Kohonen neural network is compared with the existing technology, has the following advantages: the attack graph generated only attack nodes most likely to retain, to avoid the state explosion problem. Second, the generalization performance is strong. (3) the optimal attack path generates fast.

【技术实现步骤摘要】
一种基于Kohonen神经网络的最佳攻击路径规划方法
本专利技术涉及一种基于Kohonen神经网络的最佳攻击路径规划方法,属于信息安全

技术介绍
在对信息系统网络进行渗透时,攻击者都希望选择代价小而回报大的攻击路径,其中,攻击回报与攻击代价只比最大的攻击路径为最佳攻击路径,目前的获取最佳攻击路径的方法主要是基于攻击图来获取所有的源节点与目标节点间的攻击路径后,再选取这些路径中的一条作为最佳攻击路径。目前,比较常用的网络攻击图有:基于脆弱性的网络攻击图以及基于网络状态的攻击图。基于上述两种攻击图的攻击路径或保护路径的生成方法存在的问题是:①生成速度慢;②为了解决状态爆炸的问题,采用限定攻击路径的方式,导致攻击路径包含不全等问题。为了解决上述问题对产生最佳攻击路径的影响,印度科学家NirnayGhosh,SauravNanda,S.K.Ghosh在2010年提出了基于最小攻击图(minimalattackgraph)并使用蚁群算法来对攻击路径进行优化以选取最佳攻击路径的方法。但是此方法由于算法开销太大,当面对大规模计算机机群时,即时使用最小攻击图,也无法快速拟合出最佳攻击路径。网络攻击图的定义:攻击图G=(N,E),N是一组节点,E是一组边。n∈N,n为节点,n是一个权限(privilege)节点或者漏洞利用(vulnerabilityexploit)节点。E为边,e∈E,e是一个二元素元组<SourceNode,TargetNode>。SourceNode和TargetNode代表了边e的源节点(source)和目标节点(target)
技术实现思路
本专利技术的目的是提出一种基于Kohonen神经网络的最佳攻击路径规划方法,通过生成一个K-攻击图,解决已有的最佳攻击路径规划方法中存在的生成速度慢以及状态爆炸或者攻击路径并非收敛到最优等问题。本专利技术的目的是通过以下技术方案实现的。本专利技术的一种基于Kohonen神经网络的最佳攻击路径规划方法,具体操作为:步骤一、获取网络结构。步骤1.1:获取网络系统中各主机的软件应用,建立软件应用与主机对应表。所述网络系统包括内部网络和“非军事化区”(demilitarizedzone,DMZ)。所述软件应用与主机对应表包含:软件应用名称和主机名称。步骤1.2:获取网络系统中各主机之间以及网络系统中各主机与网络系统外部的攻击者主机之间的会话链接,建立主机间会话链接表。所述主机间会话链接表包括:源主机名和目标主机名。步骤二、收集网络系统中主机及漏洞信息。具体为:步骤2.1:收集CVE数据库中的漏洞ID,并将漏洞ID转换成七元组向量,用符号Xm表示第m个漏洞的七元组向量;Xm=<S,C,I,U,Co,Av,Au>其中,S为CVSS漏洞评分;C,I,U分别为漏洞对信息系统的机密性、完整性和可用性影响评分;Co是利用漏洞的攻击复杂度评分;Av是漏洞攻击向量评分;Au代表攻击是否需要身份认证。步骤2.2:收集漏洞被利用后产生的概率最大的攻击结果,并用二元组向量表示。所述二元组向量用符号Ym表示,Ym=<Category,Pr>。其中,Category表示漏洞被利用后,获取漏洞所在主机的权限评分,Pr表示攻击成功率。所述主机的权限评分是根据主机的权限对主机的机密性、完整性和可用性影响,由人为预先设定。步骤三、建立Kohonen神经网络模型。所述Kohonen神经网络模型为3层神经网络,分别是:输入层、Kohonen层和输出层。其中,输入层包括7个输入节点;输出层包括2个输出节点;Kohonen层包括15-25个节点。步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型。具体为:步骤4.1:设置Kohonen神经网络模型的参数,包括:Kohonen层的最大学习率,用符号δmax表示,δmax∈(0,1);输出层的最小学习率,用符号δmin表示;δmin∈(0,1);最大邻域,用符号Rmax表示,Rmax∈(1,2);最小邻域,用符号Rmin表示,Rmin∈(0,1)。步骤4.2:为Kohonen神经网络模型各节点之间的权值设置初始值。具体为:用符号ωij表示输入层节点到Kohonen层节点间的权值,用符号ωjk表示Kohonen层节点到输出层节点间的权值,i∈[1,7],j∈[1,N],k∈[1,2],N为Kohonen层节点的个数。随机设置ωij和ωjk的值,满足ωij∈(0,1),ωjk∈(0,1)。步骤4.3:设置总迭代次数,用符号maxgen表示,maxgen≥5000。设置当前迭代次数,用符号l表示,l的初始值为1。将七元组向量Xm=<S,C,I,U,Co,Av,Au>作为输入数据,S,C,I,U,Co,Av,Au分别对应一个输入节点;将二元组向量Ym=<Category,Pr>作为输出数据,Category,Pr分别对应一个输出节点。步骤4.4:通过自适应函数来对邻域进行调整。自适应函数如公式(1)所示。其中,r为Kohonen层的最佳输出节点的邻域半径;所述最佳输出节点通过步骤4.5得到。步骤4.5:通过公式(2)寻找Kohonen层的最佳输出节点。posc=mindj(2)其中,posc表示Kohonen层的最佳输出节点;dj表示输入层的第i个输入节点与Kohonen层的第j个节点之间的欧氏距离,dj通过公式(3)计算得到。其中,xi表示输入层的第i个输入节点的值。步骤4.6:通过公式(4)寻找posc的邻域节点。Nc(t)=(t|find(norm(post,posc)<r)(4)其中,Nc(t)表示posc的邻域节点;post表示Kohonen层除了posc以外的任一节点;norm(post,posc)表示posc和post之间欧几里得距离;(t|find(norm(post,posc)<r)表示将所有满足norm(post,posc)<r的节点作为posc的邻域节点。步骤4.7:通过公式(5)和(6)对Kohonen层的最佳输出节点posc和posc的邻域节点以及对应的输出层节点进行权值修正。ωij=ωij+δmax(xi-ωij)(5)ωjk=ωjk+δmin(yk-ωjk)(6)其中,yk为输出层第k个输出节点的输出值。步骤4.8:使迭代次数l的值自增1,然后重复执行步骤4.2至步骤4.8的操作,直到迭代次数l与maxgen的值相等,结束操作。通过以上步骤的操作,得到训练好的Kohonen神经网络模型。步骤五、使用训练好的Kohonen神经网络模型,对实验数据进行预测,得到输出向量Ym。步骤5.1:收集网络系统中主机存在的漏洞,构造漏洞信息表。所述漏洞信息表包括:漏洞ID、主机名称、软件应用名称、主机权重。然后,利用漏洞ID得到七元组向量,用符号Xn表示第n个漏洞的七元组向量;Xn=<S,C,I,U,Co,Av,Au>。所述主机权重是根据主机所在位置及提供的服务,由人为设定的值。步骤5.2:将七元组向量Xn=<S,C,I,U,Co,Av,Au>作为输入数据输入训练好的Kohonen神经网络模型,S,C,I,U,Co,Av,Au分别对应一个本文档来自技高网
...
一种基于Kohonen神经网络的最佳攻击路径规划方法

【技术保护点】
一种基于Kohonen神经网络的最佳攻击路径规划方法,其特征在于:其具体操作为:步骤一、获取网络结构;步骤1.1:获取网络系统中各主机的软件应用,建立软件应用与主机对应表;所述网络系统包括内部网络和非军事化区DMZ;所述软件应用与主机对应表包含:软件应用名称和主机名称;步骤1.2:获取网络系统中各主机之间以及网络系统中各主机与网络系统外部的攻击者主机之间的会话链接,建立主机间会话链接表;所述主机间会话链接表包括:源主机名和目标主机名;步骤二、收集网络系统中主机及漏洞信息;具体为:步骤2.1:收集CVE数据库中的漏洞ID,并将漏洞ID转换成七元组向量,用符号Xm表示第m个漏洞的七元组向量;Xm=<S,C,I,U,Co,Av,Au>其中,S为CVSS漏洞评分;C,I,U分别为漏洞对信息系统的机密性、完整性和可用性影响评分;Co是利用漏洞的攻击复杂度评分;Av是漏洞攻击向量评分;Au代表攻击是否需要身份认证;步骤2.2:收集漏洞被利用后产生的概率最大的攻击结果,并用二元组向量表示;所述二元组向量用符号Ym表示,Ym=<Category,Pr<;其中,Category表示漏洞被利用后,获取漏洞所在主机的权限评分,Pr表示攻击成功率;所述主机的权限评分是根据主机的权限对主机的机密性、完整性和可用性影响,由人为预先设定;步骤三、建立Kohonen神经网络模型;所述Kohonen神经网络模型为3层神经网络,分别是:输入层、Kohonen层和输出层;其中,输入层包括7个输入节点;输出层包括2个输出节点;Kohonen层包括15‑25个节点;步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型;具体为:步骤4.1:设置Kohonen神经网络模型的参数,包括:Kohonen层的最大学习率,用符号δmax表示,δmax∈(0,1);输出层的最小学习率,用符号δmin表示;δmin∈(0,1);最大邻域,用符号Rmax表示,Rmax∈(1,2);最小邻域,用符号Rmin表示,Rmin∈(0,1);步骤4.2:为Kohonen神经网络模型各节点之间的权值设置初始值;具体为:用符号ωij表示输入层节点到Kohonen层节点间的权值,用符号ωjk表示Kohonen层节点到输出层节点间的权值,i∈[1,7],j∈[1,N],k∈[1,2],N为Kohonen层节点的个数;随机设置ωij和ωjk的值,满足ωij∈(0,1),ωjk∈(0,1);步骤4.3:设置总迭代次数,用符号maxgen表示,maxgen≥5000;设置当前迭代次数,用符号l表示,l的初始值为1;将七元组向量Xm=<S,C,I,U,Co,Av,Au>作为输入数据,S,C,I,U,Co,Av,Au分别对应一个输入节点;将二元组向量Ym=<Category,Pr>作为输出数据,Category,Pr分别对应一个输出节点;步骤4.4:通过自适应函数来对邻域进行调整;自适应函数如公式(1)所示;...

【技术特征摘要】
1.一种基于Kohonen神经网络的最佳攻击路径规划方法,其特征在于:其具体操作为:步骤一、获取网络结构;步骤1.1:获取网络系统中各主机的软件应用,建立软件应用与主机对应表;所述网络系统包括内部网络和非军事化区DMZ;所述软件应用与主机对应表包含:软件应用名称和主机名称;步骤1.2:获取网络系统中各主机之间以及网络系统中各主机与网络系统外部的攻击者主机之间的会话链接,建立主机间会话链接表;所述主机间会话链接表包括:源主机名和目标主机名;步骤二、收集网络系统中主机及漏洞信息;具体为:步骤2.1:收集CVE数据库中的漏洞ID,并将漏洞ID转换成七元组向量,用符号Xm表示第m个漏洞的七元组向量;Xm=<S,C,I,U,Co,Av,Au>其中,S为CVSS漏洞评分;C,I,U分别为漏洞对信息系统的机密性、完整性和可用性影响评分;Co是利用漏洞的攻击复杂度评分;Av是漏洞攻击向量评分;Au代表攻击是否需要身份认证;步骤2.2:收集漏洞被利用后产生的概率最大的攻击结果,并用二元组向量表示;所述二元组向量用符号Ym表示,Ym=<Category,Pr<;其中,Category表示漏洞被利用后,获取漏洞所在主机的权限评分,Pr表示攻击成功率;所述主机的权限评分是根据主机的权限对主机的机密性、完整性和可用性影响,由人为预先设定;步骤三、建立Kohonen神经网络模型;所述Kohonen神经网络模型为3层神经网络,分别是:输入层、Kohonen层和输出层;其中,输入层包括7个输入节点;输出层包括2个输出节点;Kohonen层包括15-25个节点;步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型;具体为:步骤4.1:设置Kohonen神经网络模型的参数,包括:Kohonen层的最大学习率,用符号δmax表示,δmax∈(0,1);输出层的最小学习率,用符号δmin表示;δmin∈(0,1);最大邻域,用符号Rmax表示,Rmax∈(1,2);最小邻域,用符号Rmin表示,Rmin∈(0,1);步骤4.2:为Kohonen神经网络模型各节点之间的权值设置初始值;具体为:用符号ωij表示输入层节点到Kohonen层节点间的权值,用符号ωjk表示Kohonen层节点到输出层节点间的权值,i∈[1,7],j∈[1,N],k∈[1,2],N为Kohonen层节点的个数;随机设置ωij和ωjk的值,满足ωij∈(0,1),ωjk∈(0,1);步骤4.3:设置总迭代次数,用符号maxgen表示,maxgen≥5000;设置当前迭代次数,用符号l表示,l的初始值为1;将七元组向量Xm=<S,C,I,U,Co,Av,Au>作为输入数据,S,C,I,U,Co,Av,Au分别对应一个输入节点;将二元组向量Ym=<Category,Pr>作为输出数据,Category,Pr分别对应一个输出节点;步骤4.4:通过自适应函数来对邻域进行调整;自适应函数如公式(1)所示;其中,r为Kohonen层的最佳输出节点的邻域半径;所述最佳输出节点通过步骤4.5得到;步骤4.5:通过公式(2)寻找Kohonen层的最佳输出节点;posc=mindj(2)其中,posc表示Kohonen层的最佳输出节点;dj表示输入层的第i个输入节点与Kohonen层的第j个节点之间的欧氏距离,dj通过公式(3)计算得到;其中,xi表示输入层的第i个输入节点的值;步骤4.6:通过公式(4)寻找posc的邻域节点;Nc(t)=(t|find(norm(post,posc)<r)(4)其中,Nc(t)表示posc的邻域节点;post表示Kohonen层除了posc以外的任一节点;norm(post,posc)表示posc和post之间欧几里得距离;(t|find(norm(post,posc)<r)表示将所有满足norm(post,posc)<r的节点作为posc的邻域节点;步骤4.7:通过公式(5)和(6)对Kohonen层的最佳输出节点posc和posc的邻域节点以及对应的输出层节点进行权值修正;ωij=ωij+δmax(xi-...

【专利技术属性】
技术研发人员:胡昌振陈韵吕坤
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1