APP下载

基于模糊聚类的报警数据并行融合方法

2021-01-22陶晓玲赵培超陈隆生

桂林电子科技大学学报 2020年4期
关键词:报警聚类距离

陶晓玲, 赵培超, 陈隆生

(1.桂林电子科技大学 广西高校云计算与复杂系统重点实验室,广西 桂林 541004;2.桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004)

互联网规模的不断扩大和日益复杂的网络环境给网络安全防护工作造成了极大的挑战,为抵御层出不穷的网络攻击,并克服单一数据源产生的报警信息较为片面的缺陷,管理人员通过部署多个传感器对网络环境进行实时监测。然而在实际运行时这些检测单元往往各自为政,产生海量的报警数据,这些多源异构的报警数据中存在大量的冗余报警和重复报警,严重加大了管理人员的工作难度。与此同时多个检测单元之间的相互不兼容也会导致误报警的产生,从而影响检测精度。因此,通过报警融合技术强化报警信息可读性并提高检测系统准确率,对于网络安全建设具有重要意义。

报警融合技术是一种将不同来源信息进行关联和集成,以获得更有效数据的信息处理过程。Adel[1]提出了一种基于主成分分析法的报警数据融合方法,从特征层的角度出发实现数据降维并去除冗余,但该方法在数据维度较大时主成分缺乏可解释性,融合效果较差。文献[2-3]利用报警特征相似度进行聚类与融合,提高了聚合结果准确性,但该方法对数据一致性要求较高,不适用于多传感器数据融合,并且未能减少误报警数据,存在一定的局限性。多传感器部署扩展了入侵检测系统的信息来源,保障了检测结果的准确性和全面性,但多源异构的报警信息也为后续的分析和感知造成一定的困扰。为此,Smock等[4]利用递归合并的思想融合多源报警信息,将不同检测器的置信输出映射到一个共享范围内,有效降低了误报率,但该方案的计算复杂度与检测器的数量成指数增长。邱辉等[5]采用时间对抗策略对一个较长时间窗口的报警数据进行深度融合,该方法提高了检测率,并降低了误报率,但最终的融合效果受时间窗的大小影响。随着机器学习和深度学习的发展,诸如决策树理论[6]、支持向量机[7]、动态贝叶斯网络[8]以及长短期记忆网络[9]等理论被广泛应用于报警数据融合,这些方法可主动获取知识,不过分依赖专家知识,在海量异构数据融合方面具有较好的处理效果。

虽然国内外有大量研究对多源报警数据进行聚合分析,但至今未形成统一的融合方案和标准,现有方法在提高融合率的同时不可避免地会加大时间开销,难以达到实时的融合分析。与此同时,多数的研究方法并未关注较高的误报率对检测精度造成的影响。因此,针对多源报警数据海量、异构的特点,提出一种基于模糊聚类的多源报警数据并行融合方法。

1 改进的FCM聚类算法

1.1 FCM聚类算法

模糊聚类分析是一种无监督机器学习算法,通过模糊理论建立对样本类属的不确定性描述,能够客观地反映现实世界。Dunn首次提出根据模糊聚类的概念,后来由Bezdek在聚类算法中加入模糊因子提出了模糊C-均值聚类(fuzzy C-means,简称FCM)算法。FCM算法通过优化目标函数得到每个样本点对所有类中心的隶属度,并经过多次迭代运算寻找最优化聚类中心,从而决定样本点的类属,以达到对样本数据进行分类的目的。该算法将n个数据样本点划分到c个类中,通过反复迭代使目标函数最小化,从而实现聚类。其目标函数定义为

(1)

其中:uij为第i个聚类中心到第j个数据样本点的隶属度;m为模糊加权指数,隶属度uij计算式为

(2)

dij=‖xj-vi‖为第j个数据样本点到第i个聚类中心的欧式距离。聚类中心的迭代式为

(3)

FCM算法具有设计简单、聚类效果好的特点,已广泛应用于图像处理、大规模数据分析及入侵检测等领域。Jafari等[10]提出一种基于模糊理论的电动机故障诊断数据融合方法,并采用模糊C均值分析方法对感应电动机的不同模式进行分类,降低了误报率。Aparicio-Navarro等[11]在入侵检测系统中将上下文信息纳入检测过程,并结合FCM算法定义DS证据理论中的基本概率分配值,从而进行数据融合,通过降低入侵检测系统中的误报率,提高了系统的检测率。

1.2 改进的FCM算法

虽然模糊聚类算法与传统的硬聚类算法相比有更好的聚类效果,但仍存在一些不足。现有的FCM算法对初始聚类中心较为敏感,由于该算法采用逐步迭代的思想,在迭代过程中目标函数不断减小,因此若开始时在所有样本数据集中随机选取的c个聚类中心之间的几何距离较小,会导致最终的聚类结果陷入局部最优解,不利于发现全局最优解。因此,合理地选取初始聚类中心是解决局部最优解的有效手段。最大最小距离算法是模式识别中的一种试探算法,其核心思想是寻找距离尽可能远的样本对象作为聚类中心。本研究借助最大最小距离算法来确定初始聚类中心,避免出现随机选取的聚类中心之间的几何距离较小或分布相对集中的情况。文献[12]通过最大最小距离算法来动态地确定K-means聚类算法的初始聚类中心,但该方法未限制聚类中心的个数,过多的聚类簇对聚类效果造成较大影响。因此,采用动态的方式确定FCM初始聚类中心,并对聚类中心的个数进行了限制。最大最小距离算法的具体步骤如下:

1)初始化θ值,θ∈(0,1),在所有数据样本点集合X={x1,x2,…,xn}中随机选取一个样本作为第一个聚类中心Z1,即Z1=x1。

2)通过计算除x1以外的所有数据样本到Z1的距离,距离最大的作为第一个聚类中心Z2。

3)计算剩下的所有数据样本点到聚类中心Z1和Z2的距离,分别记为集合Di1和集合Di2。其中Di1=‖xi-Z1‖,Di2=‖xi-Z2‖。

4)若Dl=max{min(Di1,Di2)},i=3,4,…,n,同时满足条件Dl>θD12,则取第3个聚类中心为Z3,Z3=x1,D12为聚类中心Z1到聚类中心Z2的距离。

5)若Z3存在,则计算新的阈值Dj:

Dj=max{min(Di1,Di2,Di3)},i=4,5,…,n。

(4)

若Dj>θD12,则把Zj=xj作为第4个聚类中心。依此类推,直到最大最小距离不大于θD12时,或者聚类中心的个数等于预先设定的阈值,结束聚类中心的寻找。

2 基于FCM的多源报警数据并行融合方法

2.1 并行化融合方法设计

当需要处理的数据量较大时,FCM算法的时间复杂度较高,算法的复杂度主要集中在各数据样本点到聚类中心的隶属度计算以及更新聚类中心2个过程。大量的数据样本点导致聚类过程中迭代次数过多,直接影响了FCM算法的计算效率。具有高处理效率和可扩展性的MapReduce编程模型适用于对大型数据集的并行化处理。该模型由Map和Reduce两个编程函数来共同实现分布式的并行计算任务,因此,借助该模型将FCM算法分布到大数据集群的各个节点进行并行计算,可大幅提高FCM算法的运算效率。

并行FCM算法流程图如图1所示。FCM算法的并行化设计主要分为Map和Reduce两个过程。首先接收来自网络的Snort报警数据和来自主机的OSSEC报警数据,对2种数据进行属性筛选和数据标准化,然后将FCM算法的思想结合MapReduce模型进行数据融合,其中Map阶段的主要功能是根据数据样本点到聚类中心的隶属度进行样本数据的归类,而Reduce阶段的主要功能是对从属于同一个聚类中心的数据进行合并,来减少冗余报警,最后判断是否达到收敛或者超过预定义的迭代次数,若不满足,则把Reduce的结果输入Map,并进行下一轮迭代运算,直到满足收敛条件或者迭代次数超过阈值,就退出运算。

图1 并行FCM算法流程图

2.2 Map函数的设计

Map过程的主要任务是计算数据样本点到聚类中心的几何距离,再通过隶属度计算公式将几何距离转化成隶属度,最后将该样本点数据、所属的聚类中心点以及对应的隶属度输出。首先从HDFS上读取数据,并以指定的(key,value)对输入格式作为Map函数的输入值,其中key为数据样本点的id编号,value为整条样本点数据;然后读取利用最大最小距离算法计算出来的初始聚类中心,并计算数据样本点到各个聚类中心的欧式距离,并结合式(2)计算出隶属度,比较该样本点到不同聚类中心的隶属度,找出最大值,把该数据样本点归类到最大值对应的聚类中心所属的类别;最后以〈center,(sample,membership)〉的键值对的形式作为Map函数的输出。其中center表示聚类中心,sample表示该聚类中心所属类的一个数据样本点,membership表示该样本点到聚类中心的隶属度。Map函数设计的伪代码如下:

Input:(key,value)

Output:〈center,(sample,membership)〉

Map(Text key,Text value,Context context)

{

center=readcenter.read(center); //读取初始聚类中心

for(int h=0;h

{

uijcenter[h]=Fun uij(sample,center[h]);

}

for (int i=0;i

{

max uij=Funmax uij(uijcenter[i]);

max index=i;

}

context.write〈center[max index], (sample,max uij)〉;

}

2.3 Reduce函数的设计

Reduce函数主要任务是接收来自Map函数输出的若干个(key,value)对,并对其进行规约处理,找出聚类的全局最优解。首先接收来自Map函数的键值对,其中key为聚类中心,value为该聚类中心对应的数据样本点;然后将属于同一个聚类中心的样本点放在同一个集合里面,分别对每个属于不同聚类中心的集合的数据样本进行数据融合,并根据式(3)计算出新的聚类中心;最后判断新聚类中心与前一轮对应的聚类中心之间的几何距离是否足够小或者迭代次数是否超过预定义的阈值,若满足,则退出迭代运算,把最终的聚类结果存放到HDFS,否则就把新的聚类中心作为下一轮迭代运算的聚类中心,并把Reduce的输出结果作为Map的输入进行下一轮的迭代运算,直到满足收敛条件或者迭代次数大于阈值。Reduce函数设计的伪代码如下:

Input: 〈center[max index], (sample,max uij)〉

Output:〈key,value〉

Reduce (Text Key, Iterable〈Text〉 Values, Context context)

{

for(Text va: Values)

{

classlist.add(va.toString());

}

hebing.comb(classlist);

String srtmp=

updatecenter.newcenter(classlist,currutcenter);

readcenter.filewriter(srtmp);

if Convergence(cluster);

output(key,value);

else gobackMap(key,value);

}

3 实验及结果分析

3.1 实验环境

通过搭建真实的Ambari版本的大数据平台来验证所提方法的有效性。分布式大数据处理平台环境为CentOS7开源平台下的分布式集群。实验环境的整体拓扑图如图2所示,其中Ambari分布式集群由4个节点组成,包括1台服务器主节点Master和3台服务器作为从节点,分别为Slave1、Slave2和Slave3。主节点负责整个集群的管理,从节点负责接收主节点分配的任务,路由器的主要任务是负责4台服务器之间的相互通信并给4台服务器提供网络服务。

图2 Ambari大数据平台拓扑图

3.2 实验数据

通过在OSSIM开源平台下搭建真实的入侵检测系统来采集报警数据,整个环境由防火墙、内外网交换机以及5个主机节点构成,在7个月的时间内,攻击手对目标靶场不定时地发动各种攻击,包括漏洞扫描、获取用户权限、暴力破解和资源抢占等。为了证明所提方法的有效性,同时采用了蜜罐数据集[13]作为对比实验。蜜罐数据就是通过使用网络诱骗技术来骗取攻击者发动攻击,然后捕获攻击数据,并对其进行特征分析来发现攻击者的攻击缺陷,进而做出相应的防御措施。

3.3 实验结果分析

为了给本算法选择合适的模糊指数,以达到更好的数据融合效果,分别在真实入侵检测数据集和蜜罐数据集上取不同的模糊值进行融合效果的对比,具体如图3所示。从图3可看出,当模糊指数m=2时,融合率最高,当2

图3 不同模糊指数下的融合率对比

图4 运行时间对比

图5 融合率对比

同时,为验证本设计的并行融合方法比常规的FCM融合方法在单台服务器上运行的时间效率和数据融合率更高,通过控制大数据集群工作的服务器数量,来进行时间效率和数据融合率的对比。图4和图5分别给出了不同模糊指数下改进的并行融合方法和常规的FCM融合方法的运行时间和数据融合率对比图。

由图4可知,本算法提出的基于MapReduce编程模型的并行融合方法比常规的FCM融合方法在运行效率上有明显的优势,当1≤m≤3时,消耗的时间缩短,当m>3时,融合所需要的时间开始变长,并随着模糊指数的增大趋向平稳,虽然当m=3时所消耗的时间最短,但是从图5可知,m=2时的融合效果最好,而且模糊指数取2和3所消耗的时间相差并不大,经综合分析,模糊指数取值为2比较合理。

为进一步验证以上结论,在取模糊指数m=2的基础上,分别通过融合率、检测率和误报率3个指标将本方法与文献[14]的方法在真实入侵检测环境中进行对比实验。其中,融合率=(融合前的报警数量-融合后的报警数量)/原始报警数量×100%,检测率=融合后真报警的数量/融合后的报警数量×100%,误报率=融合后假报警的数量/融合后报警的数量×100%。两者的对比情况如表1所示。

表1 融合率、检测率与误报率对比 %

4 结束语

针对现有的报警数据融合方法融合效率较差、检测精度较低的问题,提出了一种基于模糊聚类的报警数据并行融合方法。本方法通过最大最小距离算法改进传统的模糊C均值聚类算法,克服了聚类过程中初始聚类中心分布过于密集,导致聚类结果容易陷入局部最优解的缺陷,同时结合MapReduce编程模型对各数据样本点和聚类中心间的隶属度进行并行化计算。实验结果表明,本方法提高了多源异构报警数据的融合率及入侵检测系统的检测率,并能对数据密度分布不均匀的数据集进行合理的分析处理,有效去除数据冗余。对并行化融合处理后的数据作进一步的安全分析和评估是下一步研究工作的重点。

猜你喜欢

报警聚类距离
基于K-means聚类的车-地无线通信场强研究
算距离
LKD2-HS型列控中心驱采不一致报警处理
基于高斯混合聚类的阵列干涉SAR三维成像
2015款奔驰E180车安全气囊报警
基于Spark平台的K-means聚类算法改进及并行化实现
每次失败都会距离成功更近一步
基于改进的遗传算法的模糊聚类算法
死于密室的租住者
奔驰E260车安全气囊报警