一种基于安全基线模型的网络数据安全检测方法及系统与流程

文档序号:17179930发布日期:2019-03-22 20:48阅读:505来源:国知局
一种基于安全基线模型的网络数据安全检测方法及系统与流程

本发明涉及计算机网络、网络安全和机器学习技术,具体涉及一种基于安全基线模型的网络数据安全检测方法及系统。



背景技术:

随着移动互联时代的到来,网络数据流量出现了指数爆炸式的增长。由此产生了网络攻击防范、网络安全等问题。在国家安全层面,网络安全及内部网络数据安全仍然面临着各方面的威胁。2013年美国利用震网蠕虫病毒攻击伊朗核电站,导致伊朗核电站推迟供电。该事件作为高级持续性威胁(apt)攻击的里程碑式事件,随后apt攻防对抗越来越受到网络安全领域的关注。

apt具有很强的隐蔽性,apt攻击通过社会工程学等方法,获得政府、企业的内部网络权限,并逐步渗透,直至掌控内部网络核心机密数据设备,并通过合法权限逐步搬运内部数据,潜伏周期可达2-3年之久。一方面,apt攻击采用的病毒和木马的反杀毒软件能力越来越强;另一方面,apt攻击会采用私有协议或者加密协议进行数据传输,并控制网络流量来躲避监控。因此传统的ids、防火墙的网络安全设备很难检测出apt攻击。针对上述情况,传统的针对特定应用层网络协议的黑名单式防御手段收效甚微。



技术实现要素:

本发明的目的在于解决基于应用层协议的黑名单式或规则式防御手段无法有效防御apt攻击这一情况,为从网络数据层面防御apt攻击,提出了一种基于安全基线模型的网络数据安全检测方法,并用于apt攻击的网络数据检测中。

为了实现上述目的,本发明提供了一种基于安全基线模型的网络数据安全检测方法,所述方法包括如下步骤:

步骤1)采用n个不同的时间窗口长度,用隔离后的以太网包数据构造n个训练数据集;

步骤2)采用步骤1)的n个不同的时间窗口长度分别构造n个不同的安全基线模型,并分别利用相同时间窗口长度的训练数据集训练对应的安全基线模型;

步骤3)分别将n个训练数据集输入到训练后的相同时间窗口长度的安全基线模型得到n个输出值,并将n个输出值拼接在一起,记作安全基线y;

步骤4)对实时网络数据进行检测和划分,利用训练后的n个安全基线模型计算得到基线y’,将基线y’与安全基线y进行比较实现对网络环境异常状态的告警。

作为上述方法的一种改进,所述步骤1)具体包括:

步骤101)获取隔离后网络流量数据,数据格式为以太网包;

步骤102)预设时间窗口长度组l包含不同的窗口长度:{l1,l2,l3,…,ln};n为窗口长度的个数;

步骤103)对于包含不同的数据包的以太网包数据集x,根据包的时间戳排序后得到[x1,x2,…,xt],xi为数据包,t为数据的时间戳总数;

步骤104)对于选定的一个时间窗口长度lk,利用数据包构造一个基于lk的训练数据集mk,1≤k≤n。

作为上述方法的一种改进,所述步骤104)具体包括:

步骤104-1)对任一数据包xi进行处理,使xi包含多个关键字段v,除了payload外,其余关键字段是定长的,则不进行做处理;而payload部分采用hash方法进行处理,得到定长数据;数据包xi经过处理后包含若干个关键字段vx;

步骤104-2)一个子样本由lk个数据包的关键字段排列构成,1≤k≤n,

步骤104-3)训练数据集mk包含t-lk+1个训练数据子样本,每个子样本由连续的lk个数据包构成。

作为上述方法的一种改进,所述步骤104-1)中采用的hash方法为md5或sha。

作为上述方法的一种改进,所述步骤2)的安全基线模型为受限玻尔兹曼机模型。

作为上述方法的一种改进,所述步骤3)具体包括:

步骤301)对于不同的时间窗口长度{l1,l2,l3,…,ln},构造n个不同的受限玻尔兹曼机模型,形成受限玻尔兹曼机模型组,记作{rbml1,rbml2,rbml3,…,rbmln};

步骤302)对于时间窗口为lk的模型rbmlk,,输入层input_layer节点个数为pk,隐含层hidden_layer节点个数为qk;pk=lk*length(x),其中length(x)表示处理后数据包x的字节长度;qk无关窗口长度,为固定值;

步骤303)分别利用相同窗口长度的训练数据集训练受限玻尔兹曼机模型,得到训练后的受限玻尔兹曼机模型组{rbml1,rbml2,rbml3,…,rbmln};

受限玻尔兹曼机模型的自由能e(v,h)计算如下:

上述公式中,v为输入层向量,h为输出层向量,aj,bj,wij为模型参数,参数值通过n个训练数据集训练得到;visible和hidden分别为可见层与隐含层的神经元个数;

基于模型的自由能e(v,h)计算得到似然概率函数将似然概率最小化作为目标函数,利用cd-k算法进行受限玻尔兹曼机模型的训练,得到训练好的rbm模型组{rbml1,rbml2,rbml3,…,rbmln}。

作为上述方法的一种改进,所述步骤4)具体包括:

步骤401)实时采集一批网络数据包集合x’,采用步骤102)的过程,得到处理后n个数据集mk’,1≤k≤n;

步骤402)将数据集mk’分别输入模型rbmlk,1≤k≤n,得到对应当前一段时间内,该网络数据的模型rbmlk的输出值,并将所有的输出值拼接在一起,记作基线y’;

步骤403)计算y’和y的差值,当差值超过预设值时,进行安全告警。

一种基于安全基线模型的网络数据安全检测系统,包括存储器、处理器和存储在存储器上的并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述方法的步骤。

本发明的优势在于:

1、本发明的方法不需要进行应用层协议解析即可对网络数据和网络环境进行安全评估,一方面节省了计算资源,另一方面,也有效的针对apt攻击采用私有协议或数据加密进行传输的特征;

2、本发明采用无监督机器学习方法受限玻尔兹曼机(rbm)模型,一方面提高的安全基线计算的精确度,另一方面相比于有监督机器学习方法,rbm方法不需要人工标记历史数据,节约了人工成本。

附图说明

图1为本发明的基于安全基线模型的网络数据安全检测方法的整体流程图;

图2为本发明的方法中安全基线rbm模型的示意图。

具体实施方式

现结合附图和具体实施例对本发明做进一步的描述。

如图1所示,一种基于安全基线模型的网络数据安全检测方法,所述方法包括如下步骤:

步骤1)采用n个不同的时间窗口长度,用隔离后的以太网包数据构造n个训练数据集;具体包括:

步骤101)获取网络流量数据,数据格式为以太网包;

所述隔离后网络流量数据为安全的网络数据。

步骤102)采用不同的时间窗口长度,用以太网包数据构造训练数据集;

如图2所示,所述步骤102)包括:

步骤102-1)预设时间窗口长度组l包含不同的窗口长度:{l1,l2,l3,…,ln};n为窗口长度的个数;

步骤102-2)对于包含不同的数据包的以太网包数据集x,根据包的时间戳排序后得到[x1,x2,…,xt],xi为数据包,t为数据的时间戳总数;

步骤102-3)对于选定的一个时间窗口长度lk,构造一个基于lk的训练数据集mk;具体包括:

步骤102-3-1)对于任一数据包xi进行处理,使xi包含多个关键字段v,除了payload外,其余关键字段是定长的,则不进行做处理;而payload部分,采用hash方法进行处理,得到定长数据;数据包xi经过处理后包含若干个关键字段vx;

采用的hash方法包括但不限于md5、sha。

步骤102-3-2)一个子样本由lk个数据包的关键字段排列构成,

步骤102-3-3)训练数据集mk包含t-lk+1个训练数据子样本,每个子样本由连续的lk个数据包构成;

步骤2)对于n个不同的时间窗口长度分别构造n个不同的安全基线模型,形成安全基线模型组;所述安全基线模型为受限玻尔兹曼机(rbm)模型;分别利用相同窗口长度的训练数据集训练rbm模型,得到训练后的rbm模型组{rbml1,rbml2,rbml3,…,rbmln};具体包括:

步骤201)对于不同的时间窗口长度{l1,l2,l3,…,ln},构造n个不同的rbm模型,形成rbm模型组,记作{rbml1,rbml2,rbml3,…,rbmln};

步骤202)对于时间窗口为lk的模型rbmlk,,输入层input_layer节点个数为pk,隐含层hidden_layer节点个数为qk;pk=lk*length(x),其中length(x)表示处理后数据包x的字节长度(单位:bytes);qk无关窗口长度,为固定值;

步骤203)利用前述步骤102)生成的n个训练数据集分别训练n个rbm模型;

模型的自由能如下:

上述公式中,v为输入层向量,h为输出层向量,ai,bj,wij为模型参数,参数值通过n个训练数据集训练得到;visible和hidden分别为可见层(输入层)与隐含层(输出层)的神经元个数,即输入和输出的向量维度;对于前述步骤102)中的n个训练数据集,构造的n个rbm模型的visible是不同的,而hidden是相同的。

基于系统的自由能e(v,h)可以计算得到系统的似然概率函数,该函数是关于自由能的函数利用cd-k算法并将似然概率最小化作为目标函数进行模型的训练,得到训练好的rbm模型组{rbml1,rbml2,rbml3,…,rbmln}。

步骤3)分别将训练数据集mk输入到训练后模型rbmlk得到输出值,并将所有的输出值拼接在一起,记作安全基线y。

步骤4)基于安全基线rbm模型组,对实时网络数据进行检测并对网络环境异常状态告警;具体包括:

步骤401)实时采集一批网络数据包集合x’,采用步骤102)的过程,得到处理后n个数据集mk’;

步骤402)将数据集mk’分别输入对应的窗口长度的rbm模型rbmlk,得到对应当前一段时间内,该网络数据的模型rbmlk的输出值,并将所有的输出值拼接在一起,记作基线y’;

步骤403)计算y’和y的差值,当差值超过预设值时,进行安全告警。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1