APP下载

基于R计算智能技术的桌面用户大数据安全分析的研究*

2019-06-11陈立军蒋慧勇

网络安全与数据管理 2019年6期
关键词:IP地址数据包日志

陈立军,张 屹,蒋慧勇

(广州大学华软软件学院 软件工程系,广东 广州 510990)

0 引言

由于防火墙日志、事件日志、应用程序日志、Web日志和许多其他安全日志等形式的不同安全工具生成了大量数据,安全性分析对于桌面用户来说正变得越来越复杂,有效处理这些收集的数据需要大量的系统资源和功能强大的分析工具。但是,传统的系统和工具无法处理和分析这些大型非结构化的数据。在没有适合这些大型数据集的处理机制的情况下,有价值的数据集可能变得无用,并且构成其他重要应用程序的资源开销。因此,桌面用户需要易于实施且价格低廉的大数据安全分析方法,以满足其数据处理要求。然而,由于其成本和对系统的要求,大多数安全分析解决方案对普通桌面用户来说是不可承受的;加之使用复杂,许多普通用户都是未经培训的IT用户,或者不愿接受长期复杂的IT应用培训,因此,桌面用户需要相对简单、经济且资源有效的数据分析方法。R是一个开源数据分析工具,由各种CI包组成,用于高级数据分析,但是,它需要对任何数据分析所需的统计数据有基本的了解,R可能不适用于数据收集或清洁功能,但可以通过一些其他支持工具用于各种分析。

本文介绍了一种直观且廉价的安全分析方法,该方法在R for Windows桌面用户中使用CI技术。Windows桌面的选择是其受欢迎的结果,其中安装的Microsoft Windows操作系统占据了大约70%的计算机操作系统市场[1]。因此,Windows桌面用户数量很多,如果Windows桌面用户可以找到或设计一个易于实施且价格低廉的大数据安全分析解决方案,那么他们就可以分析非常大的安全日志来提取有意义的安全信息,从而提高系统安全性,使其更加强大[2-3]。在这种提议的安全分析方法中,Windows批处理编程EmEditor(可以用任何强大的编辑器替换)和R的组合用于桌面用户分析的目的。R主持了几个与人工神经网络、进化算法、模糊系统和混合智能系统相关的CI软件包,用于设计智能系统。此安全性分析方法涉及多个阶段,其中使用Windows批处理脚本执行数据收集和合并,使用EmEditor进行数据清理和编辑,最后,R用于构造数据,使用CI技术执行分析、可视化和解释结果。实验模拟基于1 006 889 160 B(1.01 GB)的实际数据集,具有超过1 000万个观测值(从Windows防火墙日志中收集30天)。随后,对收集的Windows防火墙日志执行安全性分析,以演示桌面用户如何深入了解其丰富且未触及的数据并提取有用信息,以防止其系统受到当前和未来的安全威胁[2]。这种基于CI的大数据安全分析方法还可以扩展到其他类型的安全日志,例如事件日志、应用程序日志和Web日志。

本文首先解释了数据分析工具R、Windows防火墙和模糊推理的理论背景;然后说明了所提出的安全分析方法的设计和实施过程,包括其各个阶段:收集和合并日志、清理和编辑日志、将文本日志转换为R表结构、使用CI技术分析R数据集以及可视化和解释结果;接着解释了这种方法对桌面用户的大数据可扩展性;最后提出了未来的延伸领域。

1 理论背景

1.1 R

R是一种开源统计计算和数据可视化软件工具,适用于所有主要操作系统,如UNIX、Windows和MacOS平台。R包括数据处理设施,用于矩阵计算的优越机制、过多的数据分析和图形包以及简单的编程语言[4]。R最强大的特征是对外部包的支持。目前,R已经通过CRAN系列的互联网网站整合了大约5 000个包[5]。R还拥有多个与人工神经网络、演化算法、模糊系统和混合智能系统相关的CI软件包,用于设计智能系统。因此,将R与一些数据收集和清理工具相结合可以为桌面用户提供潜在的数据分析解决方案。R被许多官方统计机构用作常规统计生产的计算工具。除官方统计外,它还被用于金融、零售、制造、科学和学术研究等许多领域,这使其成为统计学家和研究人员的热门工具[4]。

1.2 Windows防火墙

自Windows XP SP2发布以来,Microsoft在Windows操作系统中嵌入了防火墙实用程序,现在可用于所有版本的Windows,具有“高级安全性”功能的Windows防火墙是一种状态防火墙,可检查和过滤IPv4和IPv6流量的所有数据包,数据包过滤过程基于用户或管理员定义的规则,并在此基础上允许或阻止网络流量。防火墙会自动阻止所有传入流量,除非它是对主机请求的响应,或者通过编写防火墙规则特别允许。Windows防火墙还可以为特定端口号、应用程序名称、服务名称或其他基于标准的流量配置“高级安全性”,然后可以明确允许这种流量[6]。这些功能专为需要在企业环境中管理网络安全性的高级用户而设计,它通常不适用于家庭网络。

1.3 模糊推理

模糊推理是从现有模糊规则库中导出逻辑结论的过程[7],它模仿人类思维总结数据的能力,并专注于决策相关信息[8]。模糊推理对于那些由于不确定性、不可预测的动力学和其他未知现象,无法用精确的数学术语或模型来定义系统的有效和有用[9]。在网络安全中,大部分信息和流量数据本质上是不完整和不精确的,因此,模糊推理比其他类型的推理方法更为合适[10-13]。模糊推理基于模糊规则库,可以由主题专家推导出来,也可以通过规则归纳过程从数据中提取出来。如果模糊规则库是一个密集的规则库,则可以使用任何规则推断方法,如Mamdani推理[14]或Takagi-Sugeno推理[15]。

2 利用R中的计算智能技术对WINDOWS防火墙进行安全性分析

由于系统资源和IT技能的限制,桌面用户的安全性分析是一项具有挑战性的任务。因此,本节介绍了为桌面用户提供的基于CI的大数据安全分析方法的设计和实现,以便在其限制内执行安全性分析。此安全性分析仅关注Windows桌面用户,该实验在Windows 7操作系统和桌面上进行配置(处理器为Intel Core i7 3.0 GHz(4核),RAM为16 GB,L2 Cache为8 MB,以太网为100 Mb/s),此安全性分析需要两个软件工具:EmEditor和R(使用RStudio IDE)。与其他安全分析不同,任何具有统计学基础知识和基本IT技能的用户都可以在没有任何技术培训的情况下进行安全分析,这种面向桌面的安全分析方法有几个阶段,如图1所示。各个阶段的描述如下。

2.1 使用Windows批处理脚本收集和合并Windows防火墙日志

默认情况下,Windows防火墙日志记录在“pfire-wall.log”中,“pfirewall.log”文件的最大大小为4 096 KB,超过此限制后,会将日志保存在名为“pfirewall.log.old”的备份文件中,该文件为4 096 KB。两个日志文件都不会超出此大小,并且当“pfirewall.log”文件再次超过最大限制时,将删除旧的日志条目,以便为新创建的日志条目腾出空间。在Windows防火墙日志的安全性分析中,需要一个合理的日志文件来执行大量分析,并且通过编写Windows批处理脚本以最简单的方式创建,如图2所示,此批处理脚本在后台工作完成实验的一段时间,最初,“mergedLog”文件是使用包含“pfirewall.log”文件的所有17个默认变量的标题。最后,在逐渐日志记录过程中获得了具有超过1 000万个观测值的1 006 889 160 B(1.01GB)的“mergedLog”文件。

图1 用于分析Windows防火墙日志的

图2 用于创建Windows防火墙日志的mergedLog文件的Windows批处理脚本

把“mergedLog”文件内容复制到EmEditor(有些用户关闭了防火墙的功能,导致找不到mergedLog文件),但是,仍需要手动检查“mergedLog”文件以用于各种目的,并根据R的要求进行对齐,如果“mergedLog”文件不适合R格式,则R可能会生成错误消息,并且无法导入数据,因此,“mergedLog”文件中的主要清理和编辑任务是检查两个字段之间的空格,并根据需要对齐。

图3 在EmEditor中清理和编辑mergedLog文本文件

2.2 使用EmEditor清理和编辑“mergedLog”文本文件

通常,收集的数据可能不正确、不完整、格式不正确或重复,需要清理和编辑才能去除这些杂质[16-17]。虽然日志文件是一个简单文本文件,但Notepad ++和其他桌面编辑器无法处理样品非常大的文本文件,而EmEditor可以轻松处理高达248 GB的文件大小[18]。对于此分析,使用EmEditor清理和编辑“mergedLog”文件(大于1 GB),如图3所示,“mergedLog”文件的创建方式与“pfirewall.log.old”的前五行相同。

2.3 将“mergedLog”文本文件转换为R表结构

R支持基于R数据帧的表格式数据结构,因此,数据帧是R中的基本数据结构,read.table()以表格格式读取文件并从中创建数据帧,该函数的语法如公式1所示:

数据框名称=read.table(文件名,标题= F / T,sep =“”)

(1)

其中“标题”是一个逻辑值,表示文件是否包含变量名并作为第一行,“sep”是字段分隔符,在该实现中,使用read.table()函数将合并的日志文件“mergedLog”转换为表格类型的数据结构,如图4所示。

图4 在R中创建“mergedLogDataSet”

如果合并日志文件的结构,标题和内容准确,则在R中创建一个名为“mergedLogDataSet”的数据集,如图5所示。该数据集显示在RStudio IDE的“环境和历史窗格”中,并包含10 866 240个观测值和17个类似于防火墙标题变量的变量,“mergedLogDataSet”(参见图6)的实际表结构可以在“脚本编辑器菜单”中看到。

通过“str”命令可以看到该“mergedLogDataSet”的结构相关信息,如图7所示。

这个“mergedLogDataSet”是直接从Windows防火墙合并日志文本文件创建的,因此,所有17个变量的数据类型都是“因子”,这种数据类型信息对于大多数统计分析来说非常重要,因为“因子”是R中的分类数据,对于许多计算模型,它需要转换为数值数据。

2.4 使用CI技术对mergedLogDataSet进行安全性分析

根据需求,不同用户的安全性分析的主要目的可能不同,此特定分析侧重于总结“mergedLogDataSet”以提取重要信息,使用零假设和二项分析确定桌面的安全状态,根据目标协议和IP地址调查细节异常,设计智能系统来预测攻击风险。

(1)用于安全性分析的Windows防火墙规则:基于规则的流量数据被收集在“pfirewall.log”文件中,创建了两个入站规则来阻止特定流量的两台特定计算机,如图8所示。创建第一条规则是为了阻止计算机,IP地址为192.168.0.50,仅用于ICMP数

图5 使用观察数和变量数创建“mergedLogDataSet”

据包;第二条规则用于计算机的IP地址 192.168.0.51,仅用于TCP数据包。因此,在日志生成期间可以记录足够的丢弃活动。同样,为了停止主机端的某些活动(192.168.0.154),还创建了一个出站规则来阻止传出的ICMP数据包到其他计算机,如图9所示。这些阻塞规则在防火墙中产生了足够的“丢弃”流量。

(2)Windows防火墙日志的初步统计分析:R中最简单的数据分析命令是“摘要”命令,它提供有关给定数据集的合理统计信息,但是,它可能不足以进行详细调查或预测未来趋势。因此,根据研究的性质,可能需要一些高级分析包,如图10所示,summary命令显示了很少有关“mergedLog”文件的统计信息,这对于进一步调查非常有用,此摘要包括与日期、时间、操作、协议、源地址、目标地址、源端口和目标端口相关的信息,这些信息非常清晰且易于理解。

图6 R中“mergedLogDataSet”的表结构

图7 创建了包含观察和变量数量的“mergedLogDataSet”

图8 IP地址分别为192.168.0.50和192.168.0.51的传入ICMP和TCP丢弃规则

图9 主机IP地址192.168.0.154的传出ICMP丢弃规则

图10 “mergedLogDataSet”的摘要分析

(3)零假设和二项精确分析:所提出的摘要分析只是表面数据,防火墙日志变得非常巨大,普通用户很难从该防火墙日志中提取有意义的安全信息。用户的第一步是确定收集的流量数据是否接近正常/理想流量水平,因此,需要不同的统计分析来评估桌面的当前安全状态,R中的零假设是最简单的分析,用于比较数据的统计显著性,而不会使分析与进一步的细节复杂化,任何防火墙的核心操作都是根据规则允许或丢弃数据包,为此,“table()”函数显示每个因子级别组合的计数表,在图11中,table()函数显示并简化了针对所有10 866 240数据包的防火墙操作,其中7 952 160数据包是“允许的”,2 913 840数据包是“丢弃”的。因此,基于允许的分组数(成功),构造零假设以确定收集的业务状态/级别。

图11 允许、丢弃和丢失数据包的摘要

在零假设中,当所有数据包(10 866 240)可以允许检查两个样本之间的统计相似性时,将允许数据包的数量(7 952 160)与理想流量状况进行比较,以便可以使用其理想评估桌面安全级别交通状况,当显著性水平= 0.05且置信水平= 95%时,prop.test()函数给出的p值为2.2×10-16(即,R中的p值<.Machine MYM double.eps),如图12中所示,该值实际上接近于零并且远小于显著性水平的值(0.05),另外,值0不在置信区间(0.2 684 409和0.2 679 139)内,因此,相关性具有统计学意义,并且零假设被高度拒绝。该结果表明桌面当前的流量状况不正常,因此需要对攻击/威胁的类型进行进一步的详细调查。

图12 基于允许的流量确定桌面安全状态的空假设分析

零假设检验的结果也通过R中的二项精确检验精确地验证,在图12中,成功的概率是0.7 318 226,因此,使用binom.test()函数计算二项精确值,如图13所示,但是,p值与prop.test()函数计算的先前p值相同,两个测试均拒绝零假设,显著性水平= 0.05,置信水平= 95%,因此,需要进行进一步的详细分析,以获得对桌面的风险和攻击的性质。

(4)ICMP / TCP / UDP数据包和IP地址分析:零假设和二项分析导致进一步调查防火墙日志以确定安全漏洞的原因,在图10所示的摘要分析结果中,可以容易地观察到协议和IP地址相关信息,并且可以用于分析原因,图14显示了总ICMP、TCP和UDP的汇总表。

图13 二项精确分析,根据允许的流量确定桌面安全状态

图14 总ICMP,TCP和UDP数据包的摘要

在Windows防火墙中,可用的协议选项是TCP、UDP和平CMP,因此,“2”是协议号,“ - ”用于丢失的分组(参见图11中的信息-事件-丢失)。

图15和16显示了两个协议ICMP和TCP以及两个IP地址为192.168.0.50和192.168.0.51的计算机系统的详细分析,IP地址为192.168.0.50的系统在实验期间仅在最长时间内阻止ICMP数据包,但在整个持续时间内均未阻止,因此,图15指出了几乎所有ICMP分组(350 640)作为丢弃的分组,其中源IP地址是192.168.0.50,为主机(192.168.0.154)编写了另一条规则来停止任何传出的ICMP数据包,因此,所有532 800数据包都被丢弃,试图发送到目标IP地址192.168.0.50,但是,允许其他TCP和UDP数据包通过防火墙,IP地址为192.168.0.51的系统被阻止。

图15 IP地址192.168.0.50的协议摘要

图16 IP地址192.168.0.51的协议摘要

图16示出几乎所有TCP分组(1 507 680)作为丢弃分组,其中源IP地址是192.168.0.51,先前为主机(192.168.0.154)编写的规则,以阻止任何传出的ICMP数据包在此处强制执行,因此,所有522 720数据包都被丢弃,试图发送到目标IP地址192.168.0.51,但是,允许其他TCP和UDP数据包通过防火墙。

(5)设计用于预测攻击风险的模糊推理系统:分析通常需要建模和开发智能系统以用于未来的事件响应和预防目的[19]。R包含几个与人工神经网络、进化算法、模糊系统和混合智能系统相关的CI软件包,用于设计智能系统。在R中使用这些CI技术相对容易,使用集合包(参见图17)设计模糊推理系统,以基于先前的分析来预测攻击的风险,如图18、图19、图20所示。

图17 用于在R中设计模糊推理系统的集合包的安装

图18 在R中定义语言模糊变量

图19 在R中设计模糊规则库

图20 R中的结果模糊推理系统

对“mergedLog”文件及其数据集的详细分析表明,除了防火墙规则之外,ICMP和TCP数据包的速率可以帮助系统预测未来的攻击风险,随后,对于该主机的基线,确定ICMP分组的范围(0~2 000分组/秒)和TCP分组(0~8 000分组/秒)以确定正常和异常的业务状况,基线信息用于设计两个模糊输入变量icmprate和tcprate,其进一步的细节可以在文献[10-13]中找到,基于这两个模糊输入变量,确定模糊输出变量攻击风险,以百分比(0~100%)预测攻击风险。

预测攻击的风险:此系统可与防火墙规则一起使用,以预测Windows防火墙中无法实现的攻击的可能性和级别,其进一步的细节可以在文献[10-13]中找到。

R中模糊智能系统的这种简单易行的设计可以监控和预测攻击风险,这只是R强度及其对CI技术支持的一个例子。

进化算法和混合智能系统也可以以相同的方式用于设计各种智能系统,另外,可以根据特定主机/网络的要求来调整和操纵基线分析和参数范围。

2.5 使用R中的图表对安全性分析结果进行可视化解释

R是一个强大的数据可视化工具,由于许多外部软件包,如ggplot2、vcd或hexbin,用于增强信息的图形显示[20]。使用简单的内置图形函数“plot”呈现了一些主要发现,然而,高级包“ggplot2”也可用于更具信息性和吸引力的表示。图21表示绘图命令,图22描述了其关于所有允许、丢弃和丢失分组的结果信息,其显示桌面允许73%的分组与丢弃的27%的分组相比。图23表示绘制源IP地址及其相应动作的绘图命令。图24显示了从特定源IP地址允许或丢弃了多少分组的绘图命令的结果图。红色和绿色分别显示该源IP地址的允许和丢弃数据包。

图21 绘制允许和丢弃数据包的绘图命令

图22 允许和丢弃数据包的图示

图23 用于绘制源IP地址和相应操作的绘图命令

类似地,图25表示绘制目的地IP地址及其相应动作的绘图命令,图26指出了针对特定目的地IP地址允许或丢弃了多少分组的绘图命令的结果图,红色显示允许的数据包,青色显示该目标IP地址的丢弃数据包,在所有安全性分析中,分析的性质及其解释由用户/分析师确定。

3 桌面用户的大数据可扩展性

桌面用户的任何大数据分析方法都应该能够应对不断增加的数据量及其有效处理,今天的台式机包括多核处理器和增加的内存,因此,大数据分析方法应优化处理器和内存资源的使用。R被用于提出的方法,但需要额外软件包的支持才能优化使用处理器和内存[21-22]。

R被设计为一次只使用一个线程(处理器),除非与多核/多线程库相关联,否则R的运行方式相同[21]。为了利用多核,R需要支持与高性能和并行计算(HPPC)相关的附加软件包[23]。在R中有几个可用于并行处理的包,例如并行、多核、Rmpi、pbdMPI、Rborist、h2o、randomForestSRC、Rdsm和Rhpc。包“并行”基于包“mul- ticore”和“snow”构建,并提供了这些包的大部分功能的替代[24]。程序包“并行”处理并行运行更大的计算块,典型的例子是在许多不同的数据集上评估相同的R函数,对于Windows桌面用户,Microsoft R Open包含多线程数学库以提高R的性能,并且适用于所有操作系统(Windows / UNIX / Mac)[25]。这些库使得几种常见的R操作(例如矩阵乘法/逆矩阵、矩阵分解和一些更高级别的矩阵操作)可以并行计算并使用所有可用的处理能力来减少计算时间[26]。

图24 源IP地址和相应操作的图示

图25 用于绘制目标IP地址和相应操作的绘图命令

图26 目标IP地址和相应操作的图示

大型数据集也需要大量内存,如果文件大小与系统的现有存储器相比非常大,则可以使用“ff”包来执行有效和快速的数据处理,“ff”包提供了存储在磁盘上的数据结构,但它们就像在RAM中一样,只透明地映射主内存中的一个部分(页面)[27]。处理不断增加的数据量的另一个解决方案是“大”软件包系列,它由几个软件包组成,用于在大型数据集上执行任务,如bigmemory[28]、biganalytics、bigtabulate、synchronicity和bigalgebra[22]。

4 结论

本文介绍了一种直观且廉价的大数据安全分析方法,该方法使用针对Windows桌面用户的计算智能(CI)技术,基于Windows批处理脚本EmEditor和R的组合。这种安全分析方法是在1 006 889 160 B(1.01 GB) 的真实数据集上进行的,超过1 000万次观察,这些观察在Windows防火墙日志文件“pfirewall.log”中收集并在30天内整合到“mergedLog”文件中。这种面向桌面的安全分析可以成功地推断出桌面的安全状态,以及安全漏洞的来源和原因。在分析结果的基础上,设计了一个模糊推理系统来预测攻击风险并保护桌面。这种安全分析方法及其在适度桌面配置上的成功实施,显示了所提出方法的潜力。但是,这种特殊的实现仅限于基于某些防火墙规则、少数协议和IP地址的模拟数据。扩展规则和领域并收集外部流量以使这种方法成为一种通用的安全分析方法,是今后努力的方向。

猜你喜欢

IP地址数据包日志
二维隐蔽时间信道构建的研究*
一名老党员的工作日志
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
扶贫日志
C#串口高效可靠的接收方案设计
雅皮的心情日志
雅皮的心情日志
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计
计算机的网络身份IP地址