基于SimHash算法的大数据网络安全态势的评估

2022-06-15 06:12:56童伟传
机械设计与制造工程 2022年5期
关键词:哈希态势向量

童伟传

(淳安县数据资源中心,浙江 淳安 311700)

针对网络的研究中网络安全态势评估非常重要,基于安全态势评估工作的准确与高效,能够分析设备安全事件,通过构建数学模型,采用数学算法评估网络系统的安全程度,发现网络中存在的安全隐患,为网络提供针对性的保护,避免系统受到攻击和破坏。网络安全态势评估是一个系统的理论体系,很多学者对其进行了研究。陈秀真等[1]构建了一种网络安全态势评估模型,其指标包括检测系统报警信息、网络性能指标、主机及服务权重等,评估策略是先局部后整体,自下而上,得出的评估结果可以衡量报警信息的严重性和发生频率,并通过攻击、服务、主机及网络的权重加权得出相应的网络安全威胁指数,最后得到网络安全态势评估结果;韦勇等[2]根据不同来源的网络安全数据构建了多信息融合网络安全态势评估模型,采用Dempster/Shafer理论实现网络安全态势要素的融合计算,获得了网络安全态势评估的最终结果;Noel等[3]借助于攻击图执行对攻击步骤的刻画任务,并在对攻击传播路径进行模拟的过程中达到测量网络安全实际情况的目的。上述研究存在的不足是,当数据规模较小时处理效果较好,而在大数据环境下由于数据量大、数据的结构比较复杂,导致网络安全态势评估的结构准确性较差、反馈延迟。针对这些问题,本文提出了基于SimHash算法的大数据网络安全态势评估模型,通过大规模划分网络得到多个网络模块,进行安全要素数据预处理并存储于大数据平台,利用SimHash算法获取节点安全态势评估结果,完成安全态势评估。

1 SimHash算法

SimHash算法是2002年由Charikar提出的一种将文本映射成指纹后对指纹进行相似性识别的算法,该算法检索速度非常快,可处理规模较大的数据样本,通过哈希函数将文本映射成指纹,显著降低了数据转换过程中的计算量。SimHash算法有两个显著的优点:1)对高维向量进行转化,用维数较低的哈希值表示;2)SimHash算法可以定量分析节点被攻击的严重程度[4-7]。SimHash算法具体流程如下:

步骤1,输入需要计算的SimHash关键词集合W,例如W={computer}。SimHash的维度d根据实际需求确定。τ维的向量V和S分别初始化为0,τ的值与哈希函数h产生的哈希值具有同样的维数。用户提交关键词后获得一个由关键词集合组成的字符串str,不同的关键词之间用“,”分隔,字符串前和字符串后加“#”,字符串str提取n-gram集合后的s_gram为{#c,co,om,...,er,r#},s_gram集合中的各元素为关键词W的特征。

步骤2,为了保护隐私信息索引,需要计算s_gram中每个元素的哈希值,哈希值的计算使用哈希函数h,哈希函数h选择Hmac-SHA1或Hmac-MD5等。

步骤3,初始化向量R作为最终的SimHash,R的维度与SimHash序列相同,向量R的维度为d,将向量R根据长度k分段,得到d/k个子向量,分段后得到的子向量集合为{R1,R2,…,Rd/k}。

步骤4,函数s_hash中每个二进制序列si分别对应R中的各个子向量Ri,若si的某位为1,则对应子向量Ri中的相应位加1,若si的某位为0,则子向量Ri中的相应位减1。

步骤5,步骤4中计算得到的向量R,如果某一维的值大于0,则该维度的位置上为1,如果某一维的值小于0,则该维度的位置上为0。得到的比特向量即为关键词集合W的SimHash,以此为基础将相应的签名求解出来,并对两个不同签名之间的实际汉明距离进行计算,完成相似性估算。如果汉明距离较小,意味着两个向量表现出较高的相似度,反之,则两个向量的相似度较低[8-10]。

2 节点安全态势要素预处理

网络安全态势评估中涉及的要素较多,容易出现数据不一致、噪声及缺失数据的问题,这些问题的发生均会降低网络安全态势评估的可靠性和评估精度。因此,在进行网络安全态势评估之前需要采用数据预处理技术消除数据中的噪声,并解决数据不一致等问题。数据预处理首先需要统一数据格式,定义攻击信息、漏洞信息、拓扑信息、节点信息等不同的类型;然后进行数据清洗,主要是通过规则进行数据匹配、数据标注,形成精准的安全数据,数据融合主要是根据不同的特征对数据进行合并,形成具有相同属性或特征的数据族;最后根据时序关系、IP关系、交互特征等实现不同数据的关联,得到数据关联图谱。进一步地,编写MapReduce程序,读取数据,实现数据去噪、缺失弥补等[11-12]。数据预处理步骤如下。

步骤1,map函数。输入条件属性,决策属性,对象C、D、X,提取C、D属性及属性值,存入key中。输出〈key,1〉。

步骤2,map函数。输入前次MapReduce任务的结果〈key,1〉,读出HDFS(分布式文件系统)中的键值对〈key,value〉。输出〈key,value〉,得到map聚类后的结果〈key,values_list〉。去掉key中D的属性及其属性值,输出〈key,value〉,去掉key中C的属性值,输出〈key,value〉。

步骤3,reduce函数。输入map聚类后的结果

步骤4,fori=1 to value_list.size(),sum=sum+value_list[i],输出〈key,value〉。

在上述工作全部完成后,将已经实现预处理的各项数据上传给HDFS,作为网络安全态势评估的输入值[13]。

3 基于SimHash算法的大数据网络安全态势评估

3.1 评估算法构建

随着网络规模的不断扩大,各种网络安全设备产生的数据量越来越大,维度也越来越高,传统的网络安全态势评估模型存储量小、执行率低,难以有效应对这些问题。因此,将SimHash算法引入到网络安全态势感知中,能够在比较短的时间内对某一节点受到攻击的严重程度进行测量,计算其受到攻击的严重程度、类型以及次数。

在网络攻击尚未开始时,获得各节点初始状态信息,基于SimHash算法计算各节点当前状态的哈希值H1;待结束数据预处理工作后,读取相关数据,同时在SimHash算法实际运行时将已经过数据处理的哈希值H2确定下来;求解H1与H2的汉明距离d,同时结合攻击类型求解此次攻击的严重程度;继续借助SimHash算法计算哈希值Hn等,求解Hn与Hn-1的汉明距离,获得此次攻击的严重程度,对所有攻击严重程度量化处理,结合汉明距离可以确定节点在该时间段内受到攻击的总严重程度,获取其安全态势[14]。大数据网络节点安全态势评估算法如下。

Input:Attack information A,vulnerability information V.

Output:Node security situation NSA…

1:Begin

2:b←the length of hash

3:d←0

4:To←Generate n-bit hash value based on the current state of the node

5:Fo(t)←feature vector on To

6:for a∈A and i=1 to t do

7:Ti←Generate n-bit hash value based on the current state of the node

8:Fi(t)←feature vector on Ti

9:for j=1 to b do

10:if H1[j]=H2[j] then

11:d←d+1

12:end if

13:end for

14:if idvin V then

15:NSA←NSA+d impactvprov

16:else

17:NSA←NSA+0

18:end if

19:end for

20:return NSA/t

21:end

每有一次攻击发生,便对当前状态和上一状态的汉明距离进行计算,针对节点中的漏洞,不同类型的攻击会有不同的成功概率,结合汉明距离和相应的攻击成功概率,便可以量化处理攻击的严重程度。

3.2 基于SimHash的大数据网络安全态势评估模型

模型构建前设定一些必要概念:

1)拓扑结构T。表示节点及其连接的信息。

2)服务信息S。节点提供的具体服务,是为了确定节点的权重。

3)日志信息L。各日志信息能够通过一个六元组(idl,timel,type,infol,idst,iddt)来表示,其中,idl、timel、type、infol、idst分别为日志记录的标识、生成时间、类型、描述信息以及节点标识;iddt为某一安全事件中目标的节点标识。

4)漏洞信息V。节点存在的漏洞信息,用以明确攻击发生时的成功概率,用(idv,timev,prov,impactv,infov)表征,其中,idv为某一漏洞的标识,具有唯一性;timev为此漏洞被扫描出来的时间;prov为此漏洞被成功利用的概率;impactv为漏洞的攻击性;infov为漏洞的描述信息。

5)攻击信息A。对节点的攻击信息用(ida,timea,st,dt,infoa,idv)表示,其中,ida为攻击的唯一标识;timea为攻击发生的时间;st与dt分别为攻击的起始与目的节点;infoa为攻击的描述信息;idv为被攻击利用的漏洞标识信息。

6)节点安全态势NSA。NSA是针对节点安全状况的一个量化值,主要由拓扑、漏洞以及攻击3类信息构成,NSA=(T,V,A)。

7)模块安全态势MSA。MSA是针对模块安全状况的一个量化值,通过NSA与模块中节点权重综合得到,MSA=(NSA,ωnode),ωnode为节点对应的权重。

8)网络安全态势SA。SA是针对大规模网络安全状况的一个量化值,通过MSA与模块的权重综合得到,MSA=(SA,ωmodule),ωmodule为模块的权重[15]。

基于上述概念设定,构建基于SimHash算法的大数据网络安全态势评估模型,如图1所示。

图1 网络安全态势评估模型

4 基于SimHash模型的大数据网络安全态势的量化

将攻击的成功率及其严重程度作为重要的参考依据,基于节点权重计算各节点的安全态势值,完成对模块安全态势的求解。将大规模网络划分成为不同的模块,明确各个模块的实际权重,以此为基础,通过对模块权重及其安全态势的分析,完成对网络安全态势的最终求解。此处运用改进熵值法执行求解任务,步骤如下。

步骤1,在大数据网络中,将相关的网络节点筛选出来,明确各个节点可能对网络安全产生影响的服务,并据此完成对矩阵C的构建。

(1)

式中:cij为第i个节点上第j个服务的量化值,若此项服务确实存在,则将该值设定为1,若不存在,则设置为0;m,n分别为存在于该网络中的实际节点数量以及节点提供的服务数量。

步骤2,确定第j个服务的熵Hj,熵Hj的值越小,说明该服务对节点的影响越大。

(2)

(3)

式中:fij为第j个服务中第i个节点占比。为了避免出现lnfij无意义的情况,对fij进行定义,见式(4):

(4)

步骤3,根据式(5)和式(6)计算第j个服务的差异系数gj。

gj=(1-Hj)/(m-Ec)

(5)

(6)

步骤4,根据式(7)计算每个节点的权重ωi。

(7)

结合节点安全态势和节点对应的权重ωnode,根据式(8)计算模块的安全态势MSA,根据式(9)计算网络安全态势SA。

(8)

(9)

5 实验和讨论

5.1 实验环境

选择PC服务器、snort工具、MySQL数据库,利用tcpreplay工具进行数据重放,利用snort+MySQL实现数据收集。根据3.1的步骤对数据进行预处理,将数据存入HDFS,同时在数据库中存储分类数据,最后在MATLAB2017a的环境下分析与计算这些数据。实验环境设定如下:PC服务器为Dell Power Edge R730;客户端PC为ThinkPadE14,CPU为Intel i3,内存为8 GB,硬盘容量为500 GB;操作系统为Windows 10。

5.2 实验数据

实验数据为我国某互联网中心数据库中受到攻击的主机数据、网站数据以及安全漏洞数据等。2018年9月—2019年5月,每隔1周进行一次数据观测,采用平滑处理方式预处理原始数据,得到表1中20个连续时段的数据。

表1 实验样本数据

5.3 实验结果

将本文实验模型评估结果与实际专家评估结果进行对比,结果如图2所示。由图可知,起初实验评估值与实际专家评估值基本一样,到后期两者之间有较小的偏差,实验评估值略高于实际专家评估值,但偏差不大。SimHash算法均方误差为0.006,均方根误差为0.053,可知该算法对网络安全态势的评估表现出较为明显的全面性、及时性以及准确性。

图2 态势评估结果

6 结束语

网络安全态势评估的主要目的在于在较短时间内将网络实际情况真实反映出来,保证其客观性与准确性。传统的网络安全态势评估已有了一些具有代表性的方案,可较好地应用于规模较小的网络之中,然而目前人们所处的是大数据环境,传统方案愈发彰显出不足。本文提出的以SimHash算法为支持的大数据网络安全态势评估模型,能在较短的时间内获取节点遭受攻击的严重程度,量化节点、模块以及网络安全态势,使网络管理人员随时对整个网络的安全状态有一个清楚、准确的了解。今后,将持续完善大规模网络环境下的安全态势评估模型及方法,做好对大规模网络环境下安全态势的预测工作,让网络安全管理人员能够事先有充分的准备和应对措施。

猜你喜欢
哈希态势向量
向量的分解
聚焦“向量与三角”创新题
2019年12月与11月相比汽车产销延续了增长态势
汽车与安全(2020年1期)2020-05-14 13:27:19
汇市延续小幅震荡态势
中国外汇(2019年19期)2019-11-26 00:57:36
我国天然气供需呈现紧平衡态势
向量垂直在解析几何中的应用
基于OpenCV与均值哈希算法的人脸相似识别系统
工业设计(2016年8期)2016-04-16 02:43:34
向量五种“变身” 玩转圆锥曲线
县乡一体化探索呈加速态势
中国卫生(2015年2期)2015-11-12 13:13:58
基于维度分解的哈希多维快速流分类算法
计算机工程(2015年8期)2015-07-03 12:20:04