CN107347069A - 一种基于Kohonen神经网络的最佳攻击路径规划方法 - Google Patents
一种基于Kohonen神经网络的最佳攻击路径规划方法 Download PDFInfo
- Publication number
- CN107347069A CN107347069A CN201710556626.4A CN201710556626A CN107347069A CN 107347069 A CN107347069 A CN 107347069A CN 201710556626 A CN201710556626 A CN 201710556626A CN 107347069 A CN107347069 A CN 107347069A
- Authority
- CN
- China
- Prior art keywords
- mrow
- main frame
- attack
- node
- kohonen
- 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
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/1433—Vulnerability analysis
-
- 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
- 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/147—Network analysis or design for predicting network behaviour
-
- 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/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
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)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于Kohonen神经网络的最佳攻击路径规划方法,属于信息安全技术领域。具体操作步骤为:步骤一、获取网络结构。步骤二、收集网络系统中主机及漏洞信息。步骤三、建立Kohonen神经网络模型。步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型。步骤五、使用训练好的Kohonen神经网络模型,对实验数据进行预测,得到输出向量Ym。步骤六、构造K‑攻击图。步骤七、根据K‑攻击图构造概率矩阵以及最佳原子攻击矩阵。步骤八、得到最佳攻击路径。本发明提出的基于Kohonen神经网络的攻击路径规划方法与已有技术相比较,具有以下优点:①生成的攻击图只保留最可能的攻击节点,避免了状态爆炸问题。②泛化性能强。③最优攻击路径生成速度快。
Description
技术领域
本发明涉及一种基于Kohonen神经网络的最佳攻击路径规划方法,属于信息安全技术领域。
背景技术
在对信息系统网络进行渗透时,攻击者都希望选择代价小而回报大的攻击路径,其中,攻击回报与攻击代价只比最大的攻击路径为最佳攻击路径,目前的获取最佳攻击路径的方法主要是基于攻击图来获取所有的源节点与目标节点间的攻击路径后,再选取这些路径中的一条作为最佳攻击路径。
目前,比较常用的网络攻击图有:基于脆弱性的网络攻击图以及基于网络状态的攻击图。基于上述两种攻击图的攻击路径或保护路径的生成方法存在的问题是:①生成速度慢;②为了解决状态爆炸的问题,采用限定攻击路径的方式,导致攻击路径包含不全等问题。
为了解决上述问题对产生最佳攻击路径的影响,印度科学家Nirnay Ghosh,Saurav Nanda,S.K.Ghosh在2010年提出了基于最小攻击图(minimal attack graph)并使用蚁群算法来对攻击路径进行优化以选取最佳攻击路径的方法。但是此方法由于算法开销太大,当面对大规模计算机机群时,即时使用最小攻击图,也无法快速拟合出最佳攻击路径。
网络攻击图的定义:攻击图G=(N,E),N是一组节点,E是一组边。n∈N,n为节点,n是一个权限(privilege)节点或者漏洞利用(vulnerability exploit)节点。E为边,e∈E,e是一个二元素元组<SourceNode,TargetNode>。SourceNode和TargetNode代表了边e的源节点(source)和目标节点(target)。
发明内容
本发明的目的是提出一种基于Kohonen神经网络的最佳攻击路径规划方法,通过生成一个K-攻击图,解决已有的最佳攻击路径规划方法中存在的生成速度慢以及状态爆炸或者攻击路径并非收敛到最优等问题。
本发明的目的是通过以下技术方案实现的。
本发明的一种基于Kohonen神经网络的最佳攻击路径规划方法,具体操作为:
步骤一、获取网络结构。
步骤1.1:获取网络系统中各主机的软件应用,建立软件应用与主机对应表。
所述网络系统包括内部网络和“非军事化区”(demilitarized zone,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=min dj (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分别对应一个输入节点;
步骤5.3:运行训练好的Kohonen神经网络模型,得到的输出结果为二元组向量,用符号Yn表示,Yn=<Category,Pr>。七元组向量Xn与二元组向量Yn一一对应。
步骤六、构造K-攻击图。
步骤6.1:使用步骤五中所述漏洞信息表和二元组向量Yn构造漏洞利用表。所述漏洞利用表包括:漏洞ID、主机名称、主机操作系统、主机权重、攻击结果(Category)和攻击成功率(Pr)。然后,在K-攻击图上显示漏洞利用表中全部信息。
步骤6.2:根据主机间会话链接表,在K-攻击图上绘制从源主机到目的主机之间的有向边,在有向边上标注攻击成功率(Pr)。同时,在每个节点上标注:节点类型、主机名称、攻击结果(Category)、主机应用名称和漏洞ID。
所述节点类型包括:权限(privilege)节点和漏洞利用(vulnerability exploit)节点。
通过上述步骤的操作,完成K-攻击图。
步骤七、根据K-攻击图构造概率矩阵以及最佳原子攻击矩阵。
步骤7.1:通过公式(7),计算漏洞利用表中漏洞的权重。
其中,Wv表示漏洞利用表中第v个漏洞的权重;d表示包含漏洞v的主机的个数;Wg为包含漏洞v的第g个主机的权重,g为正整数;f为主机g的第f种权限,f∈[1,h],h为主机g的权限数量;表示利用漏洞v获取主机g的第f种权限对应的评分值;Wp为网络系统中的第p台主机权重,从主机权重表中获取,p∈[1,e];e为网络系统中主机的个数。
步骤7.2:根据公式(8),构造概率矩阵。
其中,Pvi′j′表示主机i′利用主机j′中漏洞v的概率,1≤i′,j′≤t,t为网络系统中主机个数与网络系统外部的攻击者主机个数之和;cli′j′表示主机i′与主机j′之间的连通情况,cli′j′∈[0,1],0表示第i′台主机与第j′台主机之间处于未连通状态;1表示第i′台主机与第j′台主机之间处于连通状态;Wi′为主机i′的主机权重;Wj′为主机j′的主机权重。
步骤7.3:从主机i′利用主机j′的各个漏洞的概率中,挑选出最大值,用符号P′ij′表示,然后用P′ij′构成最佳原子攻击矩阵。
步骤八、得到最佳攻击路径。
步骤8.1:根据最佳原子攻击矩阵,遍历从源节点到目标节点的所有的可能攻击路径,并计算每条攻击路径的攻击概率,挑选出最大值,用符号Vhp表示;Vhp对应的攻击路径为最大概率攻击路径,用符号Hp表示。
步骤8.2:根据公式(9),寻找在最大概率攻击路径的邻域路径,用符号Hn表示。
Nh(q)=(q|find(Vhp-Vq)<r′) (9)
其中,r′为最大概率攻击路径的邻域半径,r′通过公式(10)计算得到;(q|find((Vhp-Vq)<r′))表示将所有满足(Vhp-Vq)<r′的攻击路径作为最大概率攻击路径Hp的邻域路径;Nh(q)表示攻击成功率在[Vhp-r′,Vhp]间的攻击路径,即最佳攻击路径。
其中,Wh为最大概率攻击路径Hp中的主机权重和。
本发明提出的基于Kohonen神经网络的攻击路径规划方法与已有技术相比较,具有以下优点:
①生成的攻击图只保留最可能的攻击节点,避免了状态爆炸问题。
②泛化性能强。
③最优攻击路径生成速度快。
附图说明
图1为本发明具体实施方式中基于Kohonen神经网络的攻击路径规划方法的流程图;
图2为本发明具体实施方式中的网络拓扑图;
图3为本发明具体实施方式中的K-攻击图;
图4为本发明具体实施方式中的攻击概率矩阵;
图5为本发明具体实施方式中最优原子攻击矩阵。
具体实施方式
根据上述技术方案,下面结合附图和实施实例对本发明进行详细说明。
使用本发明提出的基于Kohonen神经网络的攻击路径规划方法寻找网络系统中的最佳攻击路径,其操作流程如图1所示,具体操作步骤如下:
步骤一、获取网络结构。
如图2所示,网络系统中设置了初始的防御策略:外网人员可以访问DMZ区中主机H2,H3和H4的浏览器和DNS域名。主机H2和H3可以访问H4中的mail服务以及H5和H6上的SQL服务。主机H7为FTP服务器,除主机H8外,其它的主机只能读取和下载公开文件,不能修改文件。主机H2,H3和H4都禁止访问管理服务器H8。H8可以访问其它主机上的各种服务。
步骤1.1:获取网络系统中各主机的软件应用,建立软件应用与主机名称对应表,如表1所示。
表1软件应用与主机对应表
软件应用名称 | 主机名称 |
IIS7.0 | H2,H3 |
BIND 9 | H4 |
Sendmail 8.13 | H4 |
MySQL 5.7 | H5,H6 |
Serv-U 10.5 | H7 |
IE6.0 | H8 |
所述网络系统包括内部网络和“非军事化区”(demilitarized zone,DMZ)。
所述软件应用与主机对应表包含:软件应用名称和主机名称。
步骤1.2:获取网络系统中各主机之间以及网络系统中各主机与网络系统外部的攻击者主机之间的会话链接,建立主机间会话链接表,如表2所示。所述主机间会话链接表包括:源主机名和目标主机名。
表2主机间会话链接表
步骤二、收集网络系统中主机及漏洞信息。具体为:
步骤2.1:收集CVE数据库中的漏洞ID,并将漏洞ID转换成七元组向量,用符号Xm表示第m个漏洞的七元组向量;Xm=<S,C,I,U,Co,Av,Au>其中,S为CVSS漏洞评分;C,I,U分别为漏洞对信息系统的机密性、完整性和可用性影响评分;Co是利用漏洞的攻击复杂度评分;Av是漏洞攻击向量评分;Au代表攻击是否需要身份认证。七元组向量Xm根据表3确定。
表3输入输出属性取值表
属性 | 可能值 | 描述 |
S | 0~10 | 漏洞的CVSS评分 |
C | 无(0),部分(1),全部(2) | 漏洞对系统的机密性影响 |
I | 无(0),部分(1),全部(2) | 漏洞对系统的完整性影响 |
U | 无(0),部分(1),全部(2) | 漏洞对系统的可用性影响 |
Co | 低(1),中(2),高(3) | 利用漏洞的复杂度 |
Av | 本地(1),远程(2) | 漏洞的执行类型 |
Au | 无(0),一次(1),多次(2) | 利用漏洞需要进行身份验证的次数 |
Category | 取值如表5所示 | 成功利用漏洞后获得的权限 |
Pr | 0~1 | 攻击成功率 |
步骤2.2:收集漏洞被利用后产生的概率最大的攻击结果,并用二元组向量表示。所述二元组向量用符号Ym表示,Ym=<Category,Pr>。其中,Category表示漏洞被利用后,获取漏洞所在主机的权限评分,Pr表示攻击成功率。Pr根据表4确定。主机的权限类别包括:断开(Broken)、连接(Connection)、用户权限(User)、管理员权限(Root)、拒绝服务攻击(DoS)和摧毁(Crash),主机的权限评分是根据主机的权限对主机的机密性、完整性和可用性影响,由人为预先设定,本实施例中Category根据表5确定。
表4攻击成功率赋值标准
等级 | Pr | 描述 |
1 | 0.9 | 不需要攻击工具,有详细的攻击方法 |
2 | 0.7 | 有可用的攻击工具和详细的攻击方法 |
3 | 0.5 | 无攻击工具但有详细的攻击方法 |
4 | 0.3 | 弱点信息发布,粗略说明攻击方法 |
5 | 0.1 | 弱点信息发布,未给出攻击方法 |
表5主机权限评分表
步骤三、建立Kohonen神经网络模型。
所述Kohonen神经网络模型为3层神经网络,分别是:输入层、Kohonen层和输出层。其中,输入层包括7个输入节点;输出层包括2个输出节点;Kohonen层包括18个节点。
步骤四、训练Kohonen神经网络模型,得到训练好的Kohonen神经网络模型。具体为:
步骤4.1:设置Kohonen神经网络模型的参数,包括:Kohonen层的最大学习率,用符号δmax表示,δmax=0.1;输出层的最小学习率,用符号δmin表示;δmin=0.05;最大邻域,用符号Rmax表示,Rmax=1.5;最小邻域,用符号Rmin表示,Rmin=0.4。
步骤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=10000。设置当前迭代次数,用符号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:通过公式(2)寻找Kohonen层的最佳输出节点。
posc=min dj (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(CVE number)、主机名称(Host)、软件应用名称(Service)、主机权重(Weight),所述主机权重是根据主机所在位置及提供的服务,由人为设定的值。本实施例中,漏洞信息表如表6所示。然后,利用漏洞ID得到七元组向量,用符号Xn表示第n个漏洞的七元组向量;Xn=<S,C,I,U,Co,Av,Au>。
表6漏洞信息表
步骤5.2:将七元组向量Xn=<S,C,I,U,Co,Av,Au>作为输入数据输入训练好的Kohonen神经网络模型,S,C,I,U,Co,Av,Au分别对应一个输入节点;
步骤5.3:运行训练好的Kohonen神经网络模型,得到的输出结果为二元组向量,用符号Yn表示,Yn=<Category,Pr>。七元组向量Xn与二元组向量Yn一一对应。
步骤六、构造K-攻击图。
步骤6.1:使用步骤五中所述漏洞信息表和二元组向量Yn构造漏洞利用表。所述漏洞利用表包括:漏洞ID(CVE number)、主机名称(Host)、软件应用名称(Service)、主机权重(Weight)、攻击结果(Category)和攻击成功率(Pr),具体如表7所示。然后,在K-攻击图上显示漏洞利用表中全部信息。
表7漏洞利用表
步骤6.2:根据主机间会话链接表,在K-攻击图上绘制从源主机到目的主机之间的有向边,在有向边上标注攻击成功率(Pr)。同时,在每个节点上标注:节点类型、主机名称(Host)、攻击结果(Category)、主机应用名称(Service)和漏洞ID(CVE number)。所述节点类型包括:权限(privilege)节点和漏洞利用(vulnerability exploit)节点。
通过上述步骤的操作,完成K-攻击图,攻击图如图3所示。
步骤七、根据K-攻击图构造概率矩阵以及最佳原子攻击矩阵。
步骤7.1:通过公式(7),计算漏洞利用表中漏洞的权重。
其中,Wv表示漏洞利用表中第v个漏洞的权重;d表示包含漏洞v的主机的个数;Wg为包含漏洞v的第g个主机的权重,g为正整数;f为主机g的第f种权限,f∈[1,h],h为主机g的权限数量;表示利用漏洞v获取主机g的第f种权限对应的评分值;Wp为网络系统中的第p台主机权重,从主机权重表中获取,p∈[1,e];e为网络系统中主机的个数。
步骤7.2:根据公式(8),构造概率矩阵。
其中,Pvi′j′表示主机i′利用主机j′中漏洞v的概率,1≤i′,j′≤t,t为网络系统中主机个数与网络系统外部的攻击者主机个数之和;cli′j′表示主机i′与主机j′之间的连通情况,cli′j′∈[0,1],0表示第i′台主机与第j′台主机之间处于未连通状态;1表示第i′台主机与第j′台主机之间处于连通状态;Wi′为主机i′的主机权重;Wj′为主机j′的主机权重。概率矩阵如图4所示。图4中,三个轴分别是:源主机名称(SourceHostName)、目标主机名称(TargetHostName)和概率(Probability)。图4中的概率(Probability)即Pvi′j′。
步骤7.3:从主机i′利用主机j′的各个漏洞的概率中,挑选出最大值,用符号P′ij′表示,然后用P′ij′构成最佳原子攻击矩阵。最佳原子攻击(Optimal Atomic Attack)矩阵如图5所示。图5中,三个轴分别是:源主机名称(SourceHostName)、目标主机名称(TargetHostName)和概率(Probability)。图5中的概率(Probability)即P′ij′。
步骤八、得到最佳攻击路径。
步骤8.1:根据最佳原子攻击矩阵,遍历从源节点到目标节点的所有的可能攻击路径,如表8所示,并计算每条攻击路径的攻击概率,挑选出最大值,用符号Vhp表示,Vhp=0.5402;Vhp对应的攻击路径为最大概率攻击路径,用符号Hp表示,Hp=No.8=(H1→H4→H6)。
表6可能攻击路径
序号 | 目标节点 | 攻击路径 | 攻击概率 |
1 | H8 | (H1,H8) | 0.1342 |
2 | H5 | (H1,H2)(H2,H3)(H3,H5) | 0.3833 |
3 | H5 | (H1,H2)(H2,H5) | 0.5187 |
4 | H5 | (H1,H3)(H3,H5) | 0.5036 |
5 | H6 | (H1,H2)(H2,H3)(H3,H4)(H4,H6) | 0.2954 |
6 | H6 | (H1,H2)(H2,H4)(H4,H6) | 0.4207 |
7 | H6 | (H1,H3)(H3,H4)(H4,H6) | 0.3886 |
8 | H6 | (H1,H4)(H4,H6) | 0.5402 |
步骤8.2:根据公式(9),寻找在最大概率攻击路径的邻域路径,用符号Hn表示。
Nh(q)=(q|find(Vhp-Vq)<r′) (9)
其中,r′为最大概率攻击路径的邻域半径,r′通过公式(4)计算得到,r′=0.4;(q|find((Vhp-Vq)<r′))表示将所有满足(Vhp-Vq)<r′的攻击路径作为最大概率攻击路径Hp的邻域路径;Nh(q)表示攻击成功率在[Vhp-r′,Vhp]间的攻击路径,即最佳攻击路径:Nh(q)=(No.3,No.4,No.8)。
其中,Wh为最大概率攻击路径Hp中的主机权重和。
Claims (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)所示;
<mrow>
<mi>r</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo>(</mo>
<mi>R</mi>
<mi> </mi>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
<mo>-</mo>
<mi>l</mi>
<mo>)</mo>
<mo>&times;</mo>
<mo>(</mo>
<mi>R</mi>
<mi> </mi>
<mi>m</mi>
<mi>a</mi>
<mi>x</mi>
<mo>-</mo>
<mi>R</mi>
<mi> </mi>
<mi>min</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>max</mi>
<mi>g</mi>
<mi>e</mi>
<mi>n</mi>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,r为Kohonen层的最佳输出节点的邻域半径;所述最佳输出节点通过步骤4.5得到;
步骤4.5:通过公式(2)寻找Kohonen层的最佳输出节点;
posc=min dj (2)
其中,posc表示Kohonen层的最佳输出节点;dj表示输入层的第i个输入节点与Kohonen层的第j个节点之间的欧氏距离,dj通过公式(3)计算得到;
<mrow>
<msub>
<mi>d</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<mo>|</mo>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mn>7</mn>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>x</mi>
<mi>i</mi>
</msub>
<mo>-</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
<mo>|</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,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分别对应一个输入节点;
步骤5.3:运行训练好的Kohonen神经网络模型,得到的输出结果为二元组向量,用符号Yn表示,Yn=<Category,Pr>;七元组向量Xn与二元组向量Yn一一对应;
步骤六、构造K-攻击图;
步骤6.1:使用步骤五中所述漏洞信息表和二元组向量Yn构造漏洞利用表;所述漏洞利用表包括:漏洞ID、主机名称、主机操作系统、主机权重、攻击结果Category和攻击成功率Pr;然后,在K-攻击图上显示漏洞利用表中全部信息;
步骤6.2:根据主机间会话链接表,在K-攻击图上绘制从源主机到目的主机之间的有向边,在有向边上标注攻击成功率Pr;同时,在每个节点上标注:节点类型、主机名称、攻击结果Category、主机应用名称和漏洞ID;
所述节点类型包括:权限节点和漏洞利用节点;
通过上述步骤的操作,完成K-攻击图;
步骤七、根据K-攻击图构造概率矩阵以及最佳原子攻击矩阵;
步骤7.1:通过公式(7),计算漏洞利用表中漏洞的权重;
<mrow>
<msub>
<mi>W</mi>
<mi>v</mi>
</msub>
<mo>=</mo>
<msub>
<mi>P</mi>
<mi>r</mi>
</msub>
<mo>+</mo>
<mfrac>
<mrow>
<msubsup>
<mo>&Sigma;</mo>
<mrow>
<mi>g</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>d</mi>
</msubsup>
<msub>
<mi>W</mi>
<mi>g</mi>
</msub>
<mo>&times;</mo>
<msubsup>
<mo>&Sigma;</mo>
<mrow>
<mi>f</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>h</mi>
</msubsup>
<msubsup>
<mi>T</mi>
<mi>g</mi>
<mi>f</mi>
</msubsup>
</mrow>
<mrow>
<msubsup>
<mo>&Sigma;</mo>
<mrow>
<mi>p</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>e</mi>
</msubsup>
<msub>
<mi>W</mi>
<mi>p</mi>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Wv表示漏洞利用表中第v个漏洞的权重;d表示包含漏洞v的主机的个数;Wg为包含漏洞v的第g个主机的权重,g为正整数;f为主机g的第f种权限,f∈[1,h],h为主机g的权限数量;表示利用漏洞v获取主机g的第f种权限对应的评分值;Wp为网络系统中的第p台主机权重,从主机权重表中获取,p∈[1,e];e为网络系统中主机的个数;
步骤7.2:根据公式(8),构造概率矩阵;
<mrow>
<msub>
<mi>P</mi>
<mrow>
<msup>
<mi>vi</mi>
<mo>&prime;</mo>
</msup>
<msup>
<mi>j</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</msub>
<mo>=</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>cl</mi>
<mrow>
<msup>
<mi>i</mi>
<mo>&prime;</mo>
</msup>
<msup>
<mi>j</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</msub>
<mo>&times;</mo>
<msub>
<mi>W</mi>
<mi>v</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>&times;</mo>
<mfrac>
<msub>
<mi>W</mi>
<msup>
<mi>i</mi>
<mo>&prime;</mo>
</msup>
</msub>
<mrow>
<msub>
<mi>W</mi>
<msup>
<mi>i</mi>
<mo>&prime;</mo>
</msup>
</msub>
<mo>+</mo>
<msub>
<mi>W</mi>
<msup>
<mi>j</mi>
<mo>&prime;</mo>
</msup>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>8</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Pvi′j′表示主机i′利用主机j′中漏洞v的概率,1≤i′,j′≤t,t为网络系统中主机个数与网络系统外部的攻击者主机个数之和;cli′j′表示主机i′与主机j′之间的连通情况,cli′j′∈[0,1],0表示第i′台主机与第j′台主机之间处于未连通状态;1表示第i′台主机与第j′台主机之间处于连通状态;Wi′为主机i′的主机权重;Wj′为主机j′的主机权重;
步骤7.3:从主机i′利用主机j′的各个漏洞的概率中,挑选出最大值,用符号Pi″j′表示,然后用Pi″j′构成最佳原子攻击矩阵;
步骤八、得到最佳攻击路径;
步骤8.1:根据最佳原子攻击矩阵,遍历从源节点到目标节点的所有的可能攻击路径,并计算每条攻击路径的攻击概率,挑选出最大值,用符号Vhp表示;Vhp对应的攻击路径为最大概率攻击路径,用符号Hp表示;
步骤8.2:根据公式(9),寻找在最大概率攻击路径的邻域路径,用符号Hn表示;
Nh(q)=(q|find(Vhp-Vq)<r′) (9)
其中,r′为最大概率攻击路径的邻域半径,r′通过公式(10)计算得到;(q|find((Vhp-Vq)<r′))表示将所有满足(Vhp-Vq)<r′的攻击路径作为最大概率攻击路径Hp的邻域路径;Nh(q)表示攻击成功率在[Vhp-r′,Vhp]间的攻击路径,即最佳攻击路径;
<mrow>
<msup>
<mi>r</mi>
<mo>&prime;</mo>
</msup>
<mo>=</mo>
<mfrac>
<mrow>
<mi>R</mi>
<mi>m</mi>
<mi>i</mi>
<mi>n</mi>
</mrow>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>p</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>e</mi>
</munderover>
<msub>
<mi>W</mi>
<mi>p</mi>
</msub>
</mrow>
</mfrac>
<mo>&times;</mo>
<msub>
<mi>W</mi>
<mi>h</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>10</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Wh为最大概率攻击路径Hp中的主机权重和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710556626.4A CN107347069A (zh) | 2017-07-10 | 2017-07-10 | 一种基于Kohonen神经网络的最佳攻击路径规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710556626.4A CN107347069A (zh) | 2017-07-10 | 2017-07-10 | 一种基于Kohonen神经网络的最佳攻击路径规划方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107347069A true CN107347069A (zh) | 2017-11-14 |
Family
ID=60256866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710556626.4A Pending CN107347069A (zh) | 2017-07-10 | 2017-07-10 | 一种基于Kohonen神经网络的最佳攻击路径规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107347069A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123962A (zh) * | 2018-01-19 | 2018-06-05 | 北京理工大学 | 一种利用Spark实现BFS算法生成攻击图的方法 |
CN108153200A (zh) * | 2017-12-29 | 2018-06-12 | 贵州航天南海科技有限责任公司 | 一种三层神经网络路径规划的立体车库控制方法 |
CN108197704A (zh) * | 2017-12-29 | 2018-06-22 | 贵州航天南海科技有限责任公司 | 一种立体车库控制方法 |
CN108270774A (zh) * | 2017-12-22 | 2018-07-10 | 杭州安恒信息技术有限公司 | 一种基于攻击图的攻击行为检测和防护方法 |
CN110958177A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种片上网络路由优化方法、装置、设备及可读存储介质 |
-
2017
- 2017-07-10 CN CN201710556626.4A patent/CN107347069A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270774A (zh) * | 2017-12-22 | 2018-07-10 | 杭州安恒信息技术有限公司 | 一种基于攻击图的攻击行为检测和防护方法 |
CN108153200A (zh) * | 2017-12-29 | 2018-06-12 | 贵州航天南海科技有限责任公司 | 一种三层神经网络路径规划的立体车库控制方法 |
CN108197704A (zh) * | 2017-12-29 | 2018-06-22 | 贵州航天南海科技有限责任公司 | 一种立体车库控制方法 |
CN108123962A (zh) * | 2018-01-19 | 2018-06-05 | 北京理工大学 | 一种利用Spark实现BFS算法生成攻击图的方法 |
CN110958177A (zh) * | 2019-11-07 | 2020-04-03 | 浪潮电子信息产业股份有限公司 | 一种片上网络路由优化方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107347069A (zh) | 一种基于Kohonen神经网络的最佳攻击路径规划方法 | |
CN108933793B (zh) | 基于知识图谱的攻击图生成方法及其装置 | |
CN105871882B (zh) | 基于网络节点脆弱性和攻击信息的网络安全风险分析方法 | |
CN107317756A (zh) | 一种基于q学习的最佳攻击路径规划方法 | |
CN107623697A (zh) | 一种基于攻防随机博弈模型的网络安全态势评估方法 | |
CN103368976B (zh) | 一种基于攻击图邻接矩阵的网络安全评估装置 | |
CN109902283A (zh) | 一种信息输出方法及装置 | |
CN103795723B (zh) | 一种分布式物联网安全态势感知方法 | |
CN102638458B (zh) | 识别脆弱性利用安全威胁并确定相关攻击路径的方法 | |
CN106131017B (zh) | 基于可信计算的云计算信息安全可视化系统 | |
CN106709613A (zh) | 一种适用于工业控制系统的风险评估方法 | |
CN104466959B (zh) | 电力系统关键线路辨识方法和系统 | |
CN105991521A (zh) | 网络风险评估方法和装置 | |
CN106657144A (zh) | 一种基于增强学习的动态保护路径规划方法 | |
CN107196955A (zh) | 基于漏洞关联性分析的网络系统主动防御方法 | |
CN105681338A (zh) | 漏洞利用成功概率计算方法及网络安全风险管理方法 | |
CN109087079A (zh) | 数字货币交易信息分析方法 | |
CN107370732A (zh) | 基于神经网络和最优推荐的工控系统异常行为发现系统 | |
CN107832631A (zh) | 一种数据发布的隐私保护方法和系统 | |
Ding et al. | HYBRID-CNN: An efficient scheme for abnormal flow detection in the SDN-Based Smart Grid | |
CN107948137A (zh) | 一种基于改进的q学习的最佳攻击路径规划方法 | |
Xiao et al. | Network security situation prediction method based on MEA-BP | |
CN110097079B (zh) | 一种基于分类边界的用户隐私保护方法 | |
CN108536825A (zh) | 一种识别房源数据是否重复的方法 | |
CN106101071A (zh) | 一种基于行为触发的防御链路耗尽型cc攻击的方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171114 |