买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于两层贝叶斯网络模型的网络安全推断方法_中国人民解放军国防科技大学_201810370982.1 

申请/专利权人:中国人民解放军国防科技大学

申请日:2018-04-24

公开(公告)日:2020-12-25

公开(公告)号:CN108540329B

主分类号:H04L12/24(20060101)

分类号:H04L12/24(20060101);H04L29/06(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.12.25#授权;2018.10.16#实质审查的生效;2018.09.14#公开

摘要:本发明公开了一种基于两层贝叶斯网络模型的网络安全推断方法及推断系统,包括对网络攻击数据进行预处理;预先构建两层贝叶斯网络模型框架;利用贝叶斯网络结构学习方法在每一层利用网络攻击预处理后的数据构建贝叶斯网络结构;分别对第一层和第二层框架中的贝叶斯网络中重要节点的马尔科夫边界节点重要程度进行排序,取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点;输出关键的观察节点。本发明通过对每一层模型中的重要节点的马尔科夫边界节点的最大JSD值进行排序,得到关键的观察节点,从而在对网络攻击进行安全检测时,可更快对可能攻击点做出反应,是对现有网络监控系统功能的一种有效改进。

主权项:1.一种基于两层贝叶斯网络模型的网络安全推断方法,其特征在于,包括以下步骤:步骤1,对网络攻击数据中的连续型数据离散化;步骤2,预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;步骤3,利用贝叶斯网络结构学习在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络结构;步骤4,分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;步骤5,取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点;所述步骤4中一个重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,表达公式如下:mbX=πX∪chX∪∪Y∈chXπY其中,πX代表节点X的所有父节点,chX代表节点X的子节点,∪Y∈chXπY代表所有子节点的父节点,mbX表示变量X的马尔科夫边界节点;所述步骤4中马尔科夫边界节点重要程度的排序步骤包括:步骤41,设得到的两层模型框架中的全部贝叶斯网络数量为Nbn,对于每个贝叶斯网络BNii=1,2,...,Nbn进行下一个步骤;步骤42,计算每个马尔科夫边界节点指标值,获取最大JSDMaxJensen-Shannondivergence,最大杰森-香农散度指标值;步骤43,判断当前是否有BN剩余:若有,返回步骤42;若没有,进行下一步骤;步骤44,对每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列;所述步骤42中最大JSD指标值的计算步骤为:步骤421,设重要节点Xt的马尔科夫边界为mbXt={X1,...,Xi,...,XM},i=1,2,...,M,M表示重要节点Xt的马尔科夫边界节点数量,节点Xi有ri个可能的取值;步骤422,改变重要节点Xt的马尔科夫边界中一个节点Xi的观测值,采用联结树算法junctiontreealgorithm计算重要节点Xt在马尔科夫边界节点Xi的取值为e时的后验概率分布PXt|Xi=e,一个马尔科夫边界节点Xi可以计算得到重要节点Xt的ri个后验概率分布;步骤423,计算JSD值: 其中P1、P2表示重要节点Xt在马尔科夫边界节点Xi值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点Xi,共有个组合,相应计算出个JSD值其中,KL代表KLKullback-Leiblerdivergence散度,其计算公式为: p和q为两个后验概率分布,pxi、qxi代表相应后验概率分布中取值为xi时对应的概率值;步骤424,获得重要节点Xt的所有马尔科夫边界节点Xi的JSD值后,计算最大JSD指标值: JSDmaxXi表示马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。

全文数据:基于两层贝叶斯网络模型的网络安全推断方法技术领域[0001]本发明属于网络安全技术领域,尤其涉及一种基于两层贝叶斯网络模型的网络安全推断方法及推断系统。背景技术[0002]目前的主流网络监控系统提供的大都是统计指标,如某个时段的全局平均网络流量、个体平均网络流量、异常流量等,管理人员可以对网络的总体情况进行宏观掌握。在攻击检测方面,传统的入侵检测系统(IntrusionDetectionSystem,IDS大部分利用既定规则对网络攻击进行检测,或是利用机器学习方法对异常进行检测,这些方法通常基于黑盒模型black-boxmodel,使用者不能了解为何产生了报警,在进行安全事件的处理或溯源时有较大的困难。通常,一次网络攻击的发动会产生很多的连带反应,会反映在网络的一些数据中,IDS通常只会给出自身的判断结果,不能对实际意义进行解释。[0003]现有的网络监控系统多半显示统计指标,网络管理员要根据这些统计指标和自身经验对目前可能的异常行为进行分析。对于整合了IDS的监控系统,这些系统通常会给当前监控环境提供定量化的评分,这个评分可以给管理人员提供参考。但是,在一些具体的攻击发生时,网络管理人员通常要对大量日志进行分析来找到攻击发生的原因并进行修复,这种方式极大浪费了管理人员的时间和精力。同时,在网络的攻击行为中,不同的攻击类型数据在一个公司的内部数据中量上会有较大差距,有些攻击类型数据量丰富,在分类器模型中对该类型的攻击进行了较好的建模,而有些则数据量很少,对这些类型的攻击的建模就难以很好的进行。现有模型多是将所有数据均放在一个分类器中,所使用的分类器不能对自身的实际意义进行分析,属于黑盒模型。[0004]概率图模型在网络安全领域具有广泛的应用,可以刻画不同攻击场景中的变量之间的关系。然而,在网络安全领域不同类型的网络攻击数据量不同,直接对所有攻击类型进行建模的话会对一些数据集中数据量很少的攻击遗漏,难以达到很好的识别效果。[0005]贝叶斯网络是利用广泛的概率图模型,可以表征网络中不同节点之间的关系,并通过条件概率表来对这种依赖关系进行定量表示。贝叶斯网络通常与攻击图结合形成贝叶斯攻击图来对攻击者的一次完整的渗透攻击行为进行建模,不过这种方式通常较为宏观,不涉及到底层指标的利用。发明内容[0006]本发明提供一种基于两层贝叶斯网络模型的网络安全推断方法及推断系统,用于克服现有技术中网络攻击检测的范围较大、对人工观测的依赖性强等缺陷,实现对网络攻击进行检测,并能追踪到攻击点且减轻管理人员日常观测压力。[0007]为解决上述问题,本发明采用的技术方案是:构建两层贝叶斯网络,对贝叶斯网络中重要节点的马尔科夫边界节点利用杰森-香农散度值(Jensen-Shannondivergence,JSD进行分析,找到马尔科夫边界节点的重要度排序,为管理人员对不同攻击类型进行观测提供依据。具体的网络安全推断方法如下:[0008]—种基于两层贝叶斯网络模型的网络安全推断方法,包括以下步骤:[0009]步骤1,对网络攻击数据中的连续型数据离散化;[0010]步骤2,预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;[0011]步骤3,利用贝叶斯网络结构学习法在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络;[0012]步骤4,分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;[0013]步骤5,取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点。[0014]进一步地,所述步骤3中贝叶斯网络结构学习是对预处理后的网络攻击数据进行学习,所述结构学习方法采用的是以贝叶斯信息准则BayesianInformationCriteria作为评分函数和禁忌搜索TabuSearch作为搜索算法的基于评分搜索的算法。[0015]进一步地,所述基于评分搜索的算法包括以下步骤:[0016]步骤31,将网络攻击数据集中的每条记录的属性作为贝叶斯网络中的变量;[0017]步骤32,调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习获取贝叶斯网络的结构。[0018]进一步地,所述步骤4中一个重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,表达公式如下:[0019]mbX=πXUchXUUYechxπY[0020]其中,π⑵代表重要节点X的父节点,ch⑵代表重要节点X的子节点,UYecMx3T⑺代表重要节点X的所有子节点的父节点,mb⑵表示变量X的马尔科夫边界。[0021]进一步地,所述步骤4中马尔科夫边界中的节点重要程度的排序方法为:[0022]步骤41,预设得到的两层模型中的全部贝叶斯网络数量为Nbn,对于每个贝叶斯网络BNii=1,2,…,Nbn进行下一个步骤;[0023]步骤42,计算每个马尔科夫边界中节点的指标值:最大JSDMaxJensen-Shannondivergence指标值;[0024]步骤43,判断当前是否有BN剩余:若有,返回步骤42;若没有,进行之后的步骤;[0025]步骤44,对每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列,并取排名靠前的节点作为关键的观察节点;。[0026]进一步地,所述步骤42中最大JSD指标值的计算方法为:[0027]步骤411,设重要节点Xt的马尔科夫边界为MbXt=X1,…,Xi,…,Xm},i=1,2,…,M,M表示重要节点Xt的马尔科夫边界节点数量;[0028]步骤412,改变重要节点Xt的马尔科夫边界中一个节点观测值,采用联结树算法junctiontreealgorithm计算重要节点Xt在马尔科夫边界节点Xi的取值为e时的后验概率分布PXt|Xi=e,一个马尔科夫边界节点X^ri个可能的取值,计算得到重要节点乂*的rl个后验概率分布;[0029]步骤413,计算JSD值;[0030][0031]其中PuP2表示重要节点Xt在马尔科夫边界节点X1值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点X1,共有·个组合,相应计算出个JSD值[0032]KL代表KLKullback-Leiblerdivergence散度,其计算公式为:[0033][0034]p和q为两个后验概率分布,pXi、qXi代表相应后验概率分布中取值为Xi时对应的概率值。[0035]步骤414,获得重要节点Xt的所有马尔科夫边界节点Xi的JSD值后,计算最大JSD指标值[0036][0037]JSDmaxXi表示马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。[0038]进一步地,步骤5中所述排名靠前的节点取排名前三的节点。[0039]为实现本发明目的,本发明还提供一种基于两层贝叶斯网络模型的网络安全推断系统,包括:[0040]预处理模块,用于对网络攻击数据中的连续型数据离散化;[0041]模型框架模块,用于预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;[0042]网络结构模块,用于利用贝叶斯网络结构学习法在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络;[0043]节点排序模块,用于分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;[0044]节点输出模块,用于取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点。[0045]与现有技术相比,本发明所取得的有益效果是:[0046]本发明提供了一种基于两层贝叶斯网络模型的网络安全推断方法及相应推断系统,通过构建两层贝叶斯网络模型对网络攻击进行监控和检测,第一层模型对大类攻击类型进行分类,第二层分别对每个攻击大类进行细微攻击类型分类,从而使该模型可以较好地为网络管理人员对不同网络攻击的推断进行支持。进一步地,计算每一层模型中的重要节点的马尔科夫边界节点的最大杰森-香农散度值,哪个马尔科夫边界节点的最大杰森-香农散度值越大,该马尔科夫边界节点对重要节点的影响程度就越大,通过对每一层模型中的重要节点的马尔科夫边界节点的最大杰森-香农散度值进行排序,得到关键的观察节点,从而在对网络攻击进行安全检测时,可更快对可能攻击点做出反应,是对现有网络监控系统功能的一种有效改进。附图说明[0047]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。[0048]图1为本发明实施例提供的基于两层贝叶斯网络模型的网络安全推断方法中贝叶斯两层模型架构;[0049]图2为图1中第一层模型中贝叶斯网络节点X41的马尔科夫边界图;[0050]图3为图1中第二层模型中的贝叶斯网络节点X41的马尔科夫边界图;[0051]图4为本发明实施例提供的基于两层贝叶斯网络模型的网络安全推断系统的结构框图。[0052]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0053]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0054]需要说明,本发明实施例中所有方向性指示诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。[0055]另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。[0056]在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。[0057]另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。[0058]本发明提出一种基于两层贝叶斯网络模型的网络安全推断方法及推断系统。[0059]实施例一[0060]参见图1〜3,本发明实施例提供一种基于两层贝叶斯网络模型的网络安全推断方法,本发明以著名的入侵检测数据集KDD99对本发明提出的方法进行说明,该数据集可以从http:kdd.ics.uci·edudatabaseskddcup99kddcup99.html中获得。[0061]具体包括:[0062]步骤1:对网络攻击数据进行预处理;[0063]因贝叶斯网络处理的数据通常为离散型,在采集到的网络攻击数据集中,不同的变量具有不同的类型,离散型和连续型都有,因此对于连续型的数据要进行离散化。所述预处理是指将网络攻击中的非名义变量的数据进行基于熵的分箱离散化,处理后可以使这些变量适合于接下来的模型的拟合,在对数据进行采集时,将一行作为一条记录,一列作为一个属性变量),本实施例中,一条记录包含了目标主机的网络服务类型、从源主机到目标主机的数据的字节数、访问系统敏感文件和目录的次数等41个属性及1个指示该条记录类型正常或是某种类型的攻击的属性。[0064]步骤2:预先构建两层贝叶斯网络模型框架;[0065]根据不同的攻击类型预先设置好两层贝叶斯网络模型框架,其中第一层模型框架对攻击大类进行分类,所述攻击大类指的是包含有多种子攻击类型的攻击,第二层模型框架对第一层模型框架中的每一个攻击大类进行细分类;本实施例中,贝叶斯网络模型是典型的白盒模型white-boxmodel,其训练需要大量的数据支持。然而在现实的环境中,某型种类的网络攻击的观测样本数很少,如图1所示,例如在KDD99的训练数据中,只有0.0105%的数据属于U2R攻击本地非授权用户非法获取本地超级用户权限),直接进行分类的话很可能导致本类型的攻击被忽视。不同网络攻击的处理方式不同,对于管理人员来说,首先要做的是识别出可能的大类例如DOS-拒绝服务攻击),利用该大类攻击的防御手段进行初步防御或排除威胁,之后再对细分后的攻击采用更准确的防御手段。为此,本发明构建两层贝叶斯网络模型对攻击进行监控和检测,第一层贝叶斯网络模型用于利用已知变量对大类攻击例如拒绝服务攻击进行分类,第二层贝叶斯网络模型分别对每个大类攻击中的子攻击类型进行分类例如DOS-拒绝服务攻击可以细分为泪滴攻击、邮件炸弹、死亡之Ping等),从而使该模型可以较好为网络管理人员对不同网络攻击的推断进行支持。[0066]步骤3:利用贝叶斯网络结构学习方法对网络攻击预处理后的数据构建贝叶斯网络结构;[0067]贝叶斯网络结构结构学习是在贝叶斯网络的结构和节点后验概率分布均未知的情况下,从目前已经获取的数据采集后预处理得到的数据对二者进行学习获取。本发明中采用现有的基于评分搜索的算法Scoringandsearchinglearningalgorithm来对贝叶斯网络的结构进行学习获取。基于评分搜索的算法的实施包括以下步骤:[0068]步骤31:将网络攻击数据集中的每条记录的属性作为贝叶斯网络中的变量;[0069]步骤32:调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习获取贝叶斯网络的结构;[0070]将数据集中的每条记录的属性作为贝叶斯网络中的变量,采用贝叶斯信息准则评分BayesianInformationCriteria,BIC和禁忌搜索算法TabuSearch结合的评分搜索算法,调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习来获取贝叶斯网络的结构。bnlearn是一个R语言的扩展包,内置了多个贝叶斯网络学习算法,通过调用相应函数即可使用相应的学习算法。BIC是G.Schwarz在1978年提出的评分准则,也是最常见的评分准则之一。禁忌搜索算法是Glover教授最早在1986年提出的经典算法,是对局部领域搜索的一种扩展,是一种性能优越的最优解搜索算法。在本实施例中,利用KDD99数据集的训练集,先利用bnlearn中的tabu函数对原始数据进行拟合,再利用plot函数对训练出来的模型进行绘图表示。在KDD99数据集中异常类型被细分为四大类共39种攻击类型,其中四大类攻击类型包括DOSDenialofService,拒绝服务攻击)、PR0BE监视和嗅探)、U2R攻击和R2L攻击(unauthorizedaccessfromaremotemachinetoalocalmachine,远程主机对本地主机的未授权访问)。本实施例中得到的第一层贝叶斯网络如图2所示,第二层框架中的四个贝叶斯网络如图3所示。本发明在有大量数据的情况下,没有使用专家经验来决定贝叶斯网络的结构,而是从网络攻击预处理后的数据集中利用结构学习来进行获取。[0071]步骤4:分别对第一层和第二层贝叶斯网络中重要节点的马尔科夫边界节点重要程度进行排序,取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点,即通常的带标签数据集中的标签变量;[0072]重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,用下面的关系式表达:[0073]mbX=πXUchXUUYech⑴πY[0074]其中,π⑵代表节点X的所有父节点,ch⑵代表节点X的所有子节点,UYec;h〇〇π⑺代表所有子节点的父节点,mb⑵表示变量X的马尔科夫边界。[0075]马尔科夫边界节点重要程度的排序方法为:[0076]步骤41:计算每个马尔科夫边界节点指标值:最大JSDMaxJensen-Shannondivergence指标值;[0077]最大JSD指标值的计算方法为:[0078]步骤411:设重要节点Xt的马尔科夫边界为mbXt=X1,…,Xi,…,Xm},i=1,2,…,M,M表示重要节点Xt的马尔科夫边界节点数量,X1表示马尔科夫边界中的第i个节点;[0079]步骤412:改变重要节点Xt的马尔科夫边界中一个节点观测值,采用联结树算法junctiontreealgorithm计算重要节点Xt在马尔科夫边界节点Xi的取值为e时的后验概率分布PXt|X1=e,因为一个马尔科夫边界节点乂1有^个可能的观测值,所以一个马尔科夫边界节点可以计算得到重要节点1的^个后验概率分布;[0080]在贝叶斯网络的结构获取之后,通过对节点的观测来获取所关心的节点的后验概率。本发明采用联结树算法junctiontreealgorithm对节点的后验概率进行推断,利用R语言扩展包bnlearn中的函数setFinding和querygrain即可完成在给定节点观测值的情况下对重要节点的推断,setFinding函数用于设置证据,querygrain函数用于获取后验概率分布。在推断中,需要了解马尔科夫边界中的节点对重要节点的影响程度,因此,本发明计算在每次改变马尔科夫边界中一个节点观察值的情况下推断得出重要节点的后验概率分布,并计算杰森-香农散度Jensen-Shannondivergence,JSD来衡量每两个后验分布之间的差距。假设重要节点Xt的马尔科夫边界为mbXt=U1,…,X1,…,XM}TfAX1Q=I,2,-·_,Μ有^个可能的观测值。本发明每次只更改一个观测节点的观测值而保持马尔科夫边界中的其他节点的值不变,这样相应节点就有^个后验概率分布,之后计算每两个后验概率分布的JSD值,从而相应节点有1^JSD值。[0081]步骤413:计算JSD指标值;[0082][0083]其中PuP2表示重要节点Xt在马尔科夫边界节点X1值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点X1,共有个组合,相应计算出个JSD值[0084]其中KL代表KLKullback-Leiblerdivergence散度,其计算公式为:[0085][0086]p和q为两个后验概率分布,pXi、qXi代表相应后验概率分布中取值为Xi时对应的概率值。[0087]步骤414:获得重要节点Xt的所有马尔科夫边界节点X1的杰森-香农散度值后,计算最大JSD指标值:[0088][0089]JSDmaxXi表示重要节点Xt的马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。[0090]步骤42:对重要节点Xt的每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列,并取排名靠前的节点作为关键的观察节点。[0091]本实施例在KDD99数据集上进行了应用,得到第一层模型中贝叶斯网络重要节点的马尔科夫边界,如图4所示,各个节点代表变量,S卩KDD99数据集中的属性,X41为本数据集中的重要节点,可以揭示对应记录的性质(该条记录为正常还是某种攻击)。本马尔科夫边界中的节点意义如下所示:[0092]表1第一层模型中X41马尔科夫边界中的节点意义[0093:[0094][0095]这些属性反映了正常数据和四类异常数据的差别,利用协议类型、目标网络类型、连接状态等在不同的攻击类型中显然是不一样的,而是否获得root权限、对于敏感文件进行操作等与未授权的访问行为有较大的关联,剩余属性都是基于时间的网络流量统计特征或基于主机的网络流量统计特征。拒绝服务攻击、监视和嗅探等会引起较明显的网络流量异常,尤其是拒绝服务攻击,由于目标网络同时被大量连接阻塞使合法用户的合理请求无法被实现,导致在连接情况上会出现明显的统计异常。从以上分析可以看出,马尔科夫边界中节点的实际意义可以让管理者对最终状态的成因有一定的了解,方便管理人员在网络构建完毕后进行合理的推理。[0096]在本发明利用KDD99数据集构造的两层模型中,对第一层模型中重要节点X41的马尔科夫边界进行计算,得到如下结果:[0097]表2最大JSD指标值的计算结果[0098][0099][0100]从上表可以得到不同节点的JSD排序:[0101]JSDmax:X2X3X12X4XlX33X13X29X40X22X28X39X7X9[0102]本实施例中,取排名前三的节点作为关键的观察节点,S卩:节点X2、X3和X12,因而返回数据集查看节点的具体含义:X2代表目标主机的服务。在不同大类的攻击类型中服务是不一样的,对攻击类型的推断具有更大的影响,因此在本发明的实例中认为X2更重要。节点X3代表连接状态,Xl2代表“compromised”条件出现的次数。因此在本发明实例中,对于四大类攻击类型的推断的关键观察节点为X2、X3和Π2,通过实验验证,与实际相符,从而说明本发明通过构建两层贝叶斯网络,在对网络攻击进行安全检测时,可更快地发现关键的观察节点,从而更快地对可能攻击点做出反应,是对现有网络监控系统功能的一种有效改进。同理,依次计算剩下的四个贝叶斯网络中的重要节点。[0103]步骤5:用于取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出关键的观察节点。[0104]本实施例中,关键观察节点如下所示:[0105][0106]实施例二[0107]参见图4,本发明实施例提供一种基于两层贝叶斯网络模型的网络安全推断系统,包括预处理模块1、模型框架模块2、网络结构模块3、节点排序模块4和节点输出模块5,其中:[0108]预处理模块1用于对网络攻击数据中的连续型数据离散化;[0109]模型框架模块2用于预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;[0110]网络结构模块3用于利用贝叶斯网络结构学习法在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络结构;[0111]节点排序模块4用于分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;[0112]节点输出模块5用于取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点。[0113]所述网络结构模块3还用于对预处理后的网络攻击数据进行学习,所述结构学习方法是基于评分搜索的算法;[0114]所述网络结构模块3还包括:变量子模块31、获取子模块32,其中:[0115]变量子模块31用于将网络攻击数据集中的每条记录的属性作为贝叶斯网络中的变量;[0116]获取子模块32用于调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习,获取贝叶斯网络结构。[0117]所述节点排序模块4中的一个重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,表达公式如下:[0118]mbX=JTXUchXUUYech⑴πY[0119]其中,π⑵代表节点X的所有父节点,ch⑵代表节点X的子节点,UYh〇〇π⑺代表所有子节点的父节点,mb⑵表示变量X的马尔科夫边界节点。[0120]所述节点排序模块包括:数量子模块41、指标值子模块42、判断子模块43、排序子模块44,其中:[0121]数量子模块41用于预设得到的两层模型中的全部贝叶斯网络数量为Nbn;[0122]指标值子模块42用于对于每个贝叶斯网络BN1Q=U,-^Nbn计算每个马尔科夫边界节点指标值,获取最大JSD指标值;[0123]判断子模块43用于在当前有BN剩余时,返回指标值子模块反馈;用于在当前没有BN剩余时,进入排序子模块44;[0124]所述排序子模块44用于对每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列。[0125]所述指标值子模块42包括:边界单元421、后验概率单元422、JSD值单元423、JSD指标值单元424,其中:[0126]边界单元421用于设重要节点Xt的马尔科夫边界为mbXt=X1,,i=I,2,…,M,M表示重要节点Xt的马尔科夫边界节点数量,节点Xi有ri个可能的取值;[0127]后验概率单元422用于改变重要节点Xt的马尔科夫边界中一个节点的观测值,采用联结树算法计算重要节点Xt在马尔科夫边界节点的取值为e时的后验概率分布PXtIX1=e,一个马尔科夫边界节点可以计算得到重要节点1的^个后验概率分布;[0128]JSD值单元423用于计算JSD值;[0129][0130]其中PuP2表示重要节点Xt在马尔科夫边界节点X1值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点X1,共有:I个组合,相应计算出个JSD值[0131]KL代表KLKullback-Leiblerdivergence散度,其计算公式为:[0132][0133]p和q为两个后验概率分布,pXi、qXi代表相应后验概率分布中取值为Xi时对应的概率值;[0134]JSD指标值单元424用于获得重要节点Xt的所有马尔科夫边界节点Xi的JSD值后,计算最大JSD指标值:[0135][0136]其中,JSDmaxXi表示马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。[0137]本实施例推断系统的具体实现过程参照上述推断方法。[0138]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

权利要求:1.一种基于两层贝叶斯网络模型的网络安全推断方法,其特征在于,包括以下步骤:步骤1,对网络攻击数据中的连续型数据离散化;步骤2,预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;步骤3,利用贝叶斯网络结构学习在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络结构;步骤4,分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;步骤5,取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点。2.根据权利要求1所述的基于两层贝叶斯网络模型的网络安全推断方法,其特征在于:所述步骤3中贝叶斯网络结构学习是对预处理后的网络攻击数据进行学习,所述结构学习方法是基于评分搜索的算法;所述步骤3包括以下步骤:步骤31,将网络攻击数据集中的每条记录的属性作为贝叶斯网络中的变量;步骤32,调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习获取贝叶斯网络的结构。3.根据权利要求1所述的基于两层贝叶斯网络模型的网络安全推断方法,其特征在于:所述步骤4中一个重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,表达公式如下:mbX=πXUchXUUYech⑴JiY其中,π⑵代表节点X的所有父节点,ch⑻代表节点X的子节点,UYhW3T⑺代表所有子节点的父节点,mbX表示变量X的马尔科夫边界节点。4.根据权利要求3所述的基于两层贝叶斯网络模型的网络安全推断方法,其特征在于:所述步骤4中马尔科夫边界节点重要程度的排序步骤包括:步骤41,设得到的两层模型框架中的全部贝叶斯网络数量为Nbn,对于每个贝叶斯网络BNii=1,2,…,Nbn进行下一个步骤;步骤42,计算每个马尔科夫边界节点指标值,获取最大JSDMaxJensen-Shannondivergence,最大杰森-香农散度指标值;步骤43,判断当前是否有BN剩余:若有,返回步骤42;若没有,进行下一步骤;步骤44,对每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列。5.根据权利要求4所述的基于两层贝叶斯网络模型的网络安全推断方法,其特征在于:步骤42中最大JSD指标值的计算步骤为:步骤421,设重要节点乂*的马尔科夫边界为11113乂*=»1,〜,乂1,.",乂[«},1=1,2,〜,,1表示重要节点Xt的马尔科夫边界节点数量,节点有^个可能的取值;步骤422,改变重要节点Xt的马尔科夫边界中一个节点观测值,采用联结树算法junctiontreealgorithm计算重要节点Xt在马尔科夫边界节点Xi的取值为e时的后验概率分布PXtlX1Ie,一个马尔科夫边界节点乂1可以计算得到重要节点1的^个后验概率分布;步骤423,计算JSD值:其中Pi、P2表示重要节点Xt在马尔科夫边界节点X1值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点X1,共有个组合,相应计算出个JSD值其中,KL代表KLKullback-Leiblerdivergence散度,其计算公式为:P和q为两个后验概率分布,PX1、qX1代表相应后验概率分布中取值为X1时对应的概率值;步骤424,获得重要节点Xt的所有马尔科夫边界节点Xi的JSD值后,计算最大JSD指标值:JSDmaxXi表示马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。6.—种基于两层贝叶斯网络模型的网络安全推断系统,其特征在于,包括:预处理模块,用于对网络攻击数据中的连续型数据离散化;模型框架模块,用于预先构建两层贝叶斯网络模型框架;其中第一层模型框架对攻击大类进行分类,所述攻击大类包含有多种子攻击类型,第二层模型框架对所述第一层模型框架中的每一个攻击大类进行细分类;网络结构模块,用于利用贝叶斯网络结构学习法在所述第一层模型框架和第二层模型框架分别利用对网络攻击数据进行预处理后的数据构建贝叶斯网络结构;节点排序模块,用于分别对第一层模型框架和第二层模型框架中的贝叶斯网络结构中重要节点的马尔科夫边界节点重要程度进行排序,所述重要节点是指贝叶斯网络中用来指示当前攻击类型的节点;节点输出模块,用于取马尔科夫边界节点重要程度排序在前的节点作为关键的观察节点,输出所述观察节点。7.根据权利要求6所述的基于两层贝叶斯网络模型的网络安全推断系统,其特征在于,所述网络结构模块还用于对预处理后的网络攻击数据进行学习,所述结构学习方法是基于评分搜索的算法;所述网络结构模块还包括:变量子模块,用于将网络攻击数据集中的每条记录的属性作为贝叶斯网络中的变量;获取子模块,用于调用R语言中的bnlearn扩展包中的tabu函数进行贝叶斯结构学习,获取贝叶斯网络结构。8.根据权利要求6所述的基于两层贝叶斯网络模型的网络安全推断系统,其特征在于,所述节点排序模块中的一个重要节点X的马尔科夫边界节点包括其父节点、子节点以及子节点的父节点,表达公式如下:mbX=JTXUchXUUYech⑴JiY其中,π⑵代表节点X的所有父节点,ch⑻代表节点X的子节点,UYh〇〇3T⑺代表所有子节点的父节点,mbX表示变量X的马尔科夫边界节点。9.根据权利要求8所述的基于两层贝叶斯网络模型的网络安全推断系统,其特征在于,所述节点排序模块包括:数量子模块,用于预设得到的两层模型中的全部贝叶斯网络数量为Nbn;指标值子模块,用于对于每个贝叶斯网络BN1i=1,2,…,Nbn计算每个马尔科夫边界节点指标值,获取最大JSD指标值;判断子模块,用于在当前有BN剩余时,返回指标值子模块反馈;用于在当前没有BN剩余时,进入排序子模块;所述排序子模块,用于对每个马尔科夫边界节点的最大JSD指标值进行排序,形成一个排序序列。10.根据权利要求9所述的基于两层贝叶斯网络模型的网络安全推断系统,其特征在于,所述指标值子模块包括:边界单元,用于设重要节点Xt的马尔科夫边界为mbXt={Χι,…,Xi,…,Xm},i=1,2,…,M,M表示重要节点Xt的马尔科夫边界节点数量,节点Xi有ri个可能的取值;后验概率单元,用于改变重要节点Xt的马尔科夫边界中一个节点的观测值,采用联结树算法计算重要节点Xt在马尔科夫边界节点乂:的取值为e时的后验概率分布PXtlX1Ie,一个马尔科夫边界节点可以计算得到重要节点1的^个后验概率分布;JSD值单元,用于计算JSD值;其中Pi、P2表示重要节点Xt在马尔科夫边界节点X1值变化时的任意两个后验概率分布值,依次计算每两个后验概率分布值的JSD值,则对于重要节点Xt的马尔科夫边界节点X1,共有个组合,相应计算出IfJSD值KL代表KLKullback-Leiblerdivergence散度,其计算公式为:P和q为两个后验概率分布,PX1、qX1代表相应后验概率分布中取值为X1时对应的概率值;JSD指标值单元,用于获得重要节点Xt的所有马尔科夫边界节点JSD值后,计算最大JSD指标值:其中,JSDmaxXi表示马尔科夫边界节点Xi的最大JSD值,JSDj表示马尔科夫边界节点Xi的第j个JSD值。

百度查询: 中国人民解放军国防科技大学 基于两层贝叶斯网络模型的网络安全推断方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。