文摘

恶意软件检测在网络基础设施水平仍然是一个开放的研究问题,考虑malwares的进化和高检测精度需要检测这些威胁。基于内容的分类技术已被证明能够检测恶意软件不匹配的恶意软件签名。然而,分类技术的性能取决于训练样本观察。在本文中,一种新的检测方法,包含了Snort恶意软件签名的朴素贝叶斯模型提出了培训。通过实验工作,我们证明拟议的工作结果在低功能搜索空间有效检测包级别的。本文还演示了在无状态级别检测恶意软件的可行性(使用包)以及在状态级别(使用TCP字节流)。结果表明,它是可行的,检测恶意软件在无状态级别与有状态相似的精度水平,因此需要对造成资源实施很小。无状态的检测可以给一个更好的保护最终用户通过检测恶意软件造成,而无需重建有状态会话和malwares到达最终用户之前。

1。介绍

基于内容的恶意软件检测可以在用户的端站使用防病毒解决方案。这需要代码(如数据包的有效载荷)完全构造端站的恶意软件检测到文件。即使部分代码可能是杀毒软件检测到的,代码已经走到了尽头。检测在这个层次上有其局限性,因为完整的可观测性;也就是说,重新组装和状态检测需要在互联网上字节流(1]。随着网络速度的增加,内部重组的网络节点,即使在网络边界,需要增加计算资源的计算开销(2]。因此,无状态的检测是一个更好的选择来检测恶意软件而代码是在运输过程中源(路由器或网关)和目的地之间的放松状态数据包缓冲和重组等的限制。这提供了早期发现和没有的可能性来构造整个流恶意软件检测。

使用入侵检测系统(IDS) (3和入侵预防系统(IPS)4)是一个受欢迎的改造策略补充恶意软件检测的局限性末站。然而,今天的现代恶意软件的进化使得这些基于签名的方法无效的检测快速传播复杂的恶意软件(例如,多态的恶意软件(2])。机器学习技术有可能成功地检测零日恶意软件(5,6]。这种技术通常需要特征提取、特征选择和分类。而不是使用纯文本数据,n她们是常用的5,6)来表示信息特征。这n -克技术有能力捕捉隐性特征的恶意软件内容明确很难发现。然而,当使用的问题n -克特性计算开销和搜索空间的特性。因此,新方法是需要克服的缺点。

本文提出的朴素贝叶斯训练Snort签名(7包级别的检测恶意软件。签名应用于机器学习技术潜在的补充保护网络使用精确模式匹配技术,如id, IPS, Varghese等提出的方法。1]。与有状态的检测水平还包括评估的有效性提出了工作。基于离线流量,测量无状态的检测精度水平低2%左右,有状态的水平。这一发现显示了该方法的可行性在运输途中检测恶意软件。

恶意软件字符串也可以检测到网络基础设施层面在主机级别。今天网络安全运营商部署安全等造成id和IPS保护网络免受传入和传出的恶意流量(3,4]。id被几乎所有主要部署组织出于安全意识。Snort (IDS等开放源码工具7通常将检测与提醒管理员。然而,快速移动的攻击(如蠕虫)的出现会造成相当大的损害而IDS是提高警报,在人类的管理员可以回复。这使得IDS市场演变成所谓的“诱导多能性”市场。IPS允许必要的行动放弃任何数据包匹配规则,虽然IDS可以挖掘数据生成警报。

IDS / IPS的问题是逃避攻击(8]。攻击者改变攻击使用场景支离破碎的数据包的内容可以绕过模式匹配的过程。这个问题是研究和解决由Varghese et al。1]。这项工作提出了一个新的检测方案称为Split-Detect补充传统IDS / IPS在检测成功逃避攻击。基本的想法是提供一个快速检测通过分割IDS / IPS签名的签名子字符串,使用字符串精确匹配和两个加工路径,快速路径和慢速路径。签名块用于检测攻击数据包的有效载荷快速路径。如果没有发现数据包,快速良性的数据包路径处理器发布包。如果数据包包含可信的证据(例如,包含一个签名),可疑的数据包转向慢路径处理器为进一步的行动将数据包转发给接收者或把数据包和重置TCP连接。Split-Detect方案已被证明能够检测所有字节流闪躲。然而,两个处理器路径的要求似乎太高造成的运营成本。

基于内容的分类(5,6)是基于主机的恶意软件检测,他们观察到的字节n -克的恶意软件的可执行文件末站。尤其是当使用分类基于内容n -克特性需要巨大的培训功能,这需要庞大的搜索空间和高计算开销9]。高计算开销并不适合于基于网络的检测尤其当需要重新训练模型随着时间的推移,以反映网络中流量的变化趋势。本文提出了使用n -克和机器学习技术来检测未知恶意软件。使用字节的原因n -克以下。首先,n -克有能力提取恶意软件字节隐式形式的网络流量的数据包或字节流。因此,可能性来检测恶意软件内容以意想不到的模式是高于纯文本模式。其次,检测字节n -克允许检测恶意软件在网络层(例如,造成),而不是只在主机级别。动态检测可以通过提取恶意数据包有效载荷而分组网络中传播。

基于签名分裂成碎片检测攻击的想法通过Varghese et al。1应用),类似的想法。这种新方法提出了Snort签名(这是7提取出签名n克(固定长度和重叠n克)。使用这些签名的主要原因是限制特性被训练来解决实际计算开销的问题。第二,使用已知的恶意软件签名功能来生成模型可能会更频繁地检测恶意软件。因此,使用签名n克和聚合(分类)技术可能不需要单独处理路径(快速和慢速路径),预计能够检测零日恶意软件。

3所示。Snort签名辅助分类方法

3.1。生成模型的部署

数据传输(如TCP流量)发生主机之间建立连接后通过三方握手过程(10]。TCP数据包属于同一个流(比如,一个流p)在两台机器之间的传输将重组原始流在目的地机器。观察到的有状态数据作为一个完整的字节流(例如,数据包的有效载荷后重新在目的地主机),而无状态数据作为单独的数据包有效载荷(如数据包有效载荷重新组装之前)[10]。分类过程的差异负载有状态的和无状态的层次如图1

在有状态的层面,完整的字节流分为恶意软件和正常如图1(一)。例如,流包含2 Kb大小的有效载荷是生成模型来确定流是否观察到恶意软件或正常。相比之下,无状态的水平,在同一载荷仍作为单独的数据包有效载荷如图1 (b)。1 Kb的有效载荷的大小,500 b、500 b是由单独的分组和分类生成独立的模型。

有状态的水平相比,无状态的检测是不同的,所有的包都是部分分类而数据包通过网络传播。换句话说,无状态检测不需要包重新组装完成。

2显示了顶级学习过程将Snort签名(7)来生成模型(朴素贝叶斯)。生成模型生成后学习一些样品流量(训练集)。在这种监督学习方法,样品流量正确标记并保存在各自的类。每个类只的样品预处理提取有效载荷(包括头信息)n她们的特性。例如,一个有效载荷序列,dd 25 64铁69 d3 a3 1 f,生成相应的4 g的dd2564fe, 2564 fe69和64 fe69d3如图3。我们设置n -克大小四个自我们的研究(5,6)观察到这个数字作为文本分类的最优特征尺寸。提取过程产生百万(例如,数量的特性n4,功能的数量是24 * 8(11])。

特征选择选择最丰富的功能训练。本文特征的数量裁剪基于Snort签名。签名的原始签名由可变长度的字符串。相同的特征提取过程应用于生产4克签名签名字符串。比4克消除短签名字符串。消除重复4克后,只有91127 4克签名是用来协助特征选择,如图2。图4显示了生成的过程生成模型的协助下Snort签名。只有4克Snort签名特征子集选择。然而,某些特性的91127特性可以进一步减少使用其他特征选择技术,如信息增益(IG) [12]。搞笑是统计测量和计算分别为每个特性。搞笑的价值总是非负,和更高的分数表明更多的区别的功能。它排名功能常见的恶意软件和正常类低,队伍有效鉴别器类高的特性。虽然搞笑计算时间不可以忽略不计,搞笑特征选择不需要。最后选定的功能(如图所示的阴影颜色)训练生成朴素贝叶斯模型。由于重叠n -克,这些的发生n -克特性被认为是独立的。

3.2。无状态的有效载荷用朴素贝叶斯分类Snort签名

我们以前的工作在13]表明,朴素贝叶斯处理时间和准确性权衡与其他分类器相比,也就是说,J48 SMO。因为未来目标是部署硬件实现的恶意软件检测,朴素贝叶斯模型是一个很好的候选人被应用到我们的方法在这个工作。

使用生成的朴素贝叶斯模型,有效载荷在有状态的和无状态的级别进行分类正常或攻击类(参见图1)。基于朴素贝叶斯定理,一个流或包的后验概率 是在课堂上 在哪里 的概率是 发生在训练类 它取决于使用的朴素贝叶斯模型(14]。 的先验概率流或包被在课堂上 在哪里 双阶级分类。

从(1),我们可以编写一个流发生在类的后验概率 的形式 在哪里 是一个数组选择特性从一个完整的流程。 的概率是 发生在训练集,通过假设功能独立的可能性概率 发生在课堂上, 的话,是

基本上,在这个层次上,检测完成后所有传输数据包到达目的地主机和重建到原始流。

在无状态的层面,特征选择统一在每个数据包。流,由w包可以用w近似特性数组如下:

方程(4)代表 特性数组,每个从一个单独的包。包的特性数组, ,是 在哪里 从包的数量特征选择,用于分类。事件的可能性概率特性 发生在课堂上, , 的话,是

插入(6)(2),我们可以计算概率得分为每个包和数据包分类为恶意软件或正常。这些数据包分类属于流重组原始流的目的地与类流被确定基于数据包类。例如,一个流包含数据包分类 , , 。当至少有一个这些包是一个攻击数据包,然后流决定作为一个攻击。

所做的决策过程流或包分类模型中描述的算法1

(1)所有选定的特性
(2)特性、fre_norm pb_norm, fre_att,
pb_att = > splitFlow
(3)= > field1(特性)
(4)(pb_norm) = > field3
(5)(pb_att) = > field5
(6)结束了
(7)每个捕获的流
(8)提取有效载荷= > allFlow
(9)结束了
(10)allFlow行
(11)分裂行
(12)如果测试功能eachrow = field1然后
(13)积累不同field5, field3
(14)如果
(15)计算概率(Pb)使用(2)
(16)如果Pb >阈值然后
(17)流= >恶意软件
(18)其他的
(19)流= >正常
(20)如果
(21)结束了

在算法1,分类过程分为几个部分。第一部分(1到6行)描述了特征频率等重要信息的提取和朴素贝叶斯概率模型。第二部分(7 - 9行)描述的提取n蟋蟀在每个测试流特性。最后一部分(10 - 21行)描述了整体分类步骤包括匹配n蟋蟀之间的特征模型和测试流程,确定测试流概率值,并确定测试流类。

4所示。实验设计

4.1。数据集集合

由于这项工作使用双阶级机器学习分类、正常和恶意软件的数据集都是必要的。获得一个可靠的生成模型,恶意软件和正常的交通应该是来自同一个地方同时采样流量相同的趋势。在这里,我们的校园网络的流量捕获,如图5(一个)。本节解释方法用于获取训练和分类的数据集。工具,如Snort (7]和Tcpdump [15在捕获过程中使用。Snort应用于嗅学术网络中传播的恶意流量,同时执行Tcpdump捕捉背景交通提取nonmalware交通。

5 (b)显示了该恶意软件和流程示例nonmalware流量。当一个数据包匹配Snort的签名,Snort将产生警报。这个警报触发Tcpdump存储数据包之前和之后的时间(例如, )的警觉。没有警报时,没有将采取行动,直到另一个警报是在另一个时间触发(例如, ),将采取同样的措施。通过这样做,交通类都收集在同一时间和地点。

4.2。评估标准

为目的的评估结果的分类,下列指标中描述表1: :数量的正确识别恶意软件负载; :数量的错误识别正常的负载; :数量的正确识别正常的负载; :数量的错误识别恶意软件负载。

因为这项工作的重点是检测恶意软件在无状态的层面,回忆和假阴性是最重要的测量的分类。安全方面而言有更高的优先级和不应该妥协。假阳性的数量和精度反映正常交通列为恶意软件。这些测量中也扮演着重要的角色在我们的验证,因为我们需要减少的数量正常数据包被错误归类的攻击。最终用户可能会觉得不开心当他们有效的交通(数据包),错误分类为恶意软件,尽管他们被安全设备浏览一个合法的网站没有任何恶意软件的威胁。比例之间的这些测量无状态和有状态水平可以显示检测内部网络的可行性。仿真还生产日志文件,其中包含IP地址和交通分类类分类的结果。

4.3。实验装置

自检测精度是主要的焦点,而不是实际的检测时间,本文所有实验进行离线使用现有的机器学习算法(朴素贝叶斯)通过改进的方法选择功能(使用Snort签名)。这工作是证明辅助机器学习的概念可以被应用到无状态的恶意软件检测。检测状态水平作为基准。图6展示了整个恶意软件检测方法在本文提出。有效载荷从之前的时间(从线下流量槽 )被训练来生成模型。模型是用于分类的有效载荷(从线下流量槽 )到他们的类。

2介绍了数据集用于分析有状态的和无状态的检测水平。基于图6,T1用作训练集生成朴素贝叶斯模型的协助下Snort签名。T1的形式仍然是完整的流(重建流),由于生成的可靠性模型。T2是用作测试组包括两种形式:完整的数据包流和相应的块。让我们假设L3是无状态的水平同时L4是有状态的水平。评价首先回顾的载荷水平使用朴素贝叶斯模型的分类过程。当检测准确性的差异部分载荷在L3和完整的负载在L4。

5。结果与讨论

5.1。有状态的和无状态的分类

仿真产生错误的速度、精度召回,一个日志文件,其中包含的流量/数据包信息格式地址> < indexnumber > < classtype > < classresult >。获得类似的结果检测L3、L4测量假阴性(FN),假阳性(FP),精度和召回完成基于流的数量,而不是包的数量。因此,对于L3,分类包装之前必须重新到原始流计算这些值。

3介绍了分类结果的检测L3、L4。总的来说,检测精度是发现了类似的(约2%)的精度差异L3、L4。FP是L3更高,同时FN对抽象级别都不会改变。结果表明,正常流量分类错误在L3更频繁。

5.2。恶意软件分析木马数据包和正常的HTTP数据包

本节描述和解释的结果分类L4和L3之间。数据7(一)7 (b)显示L3、L4的恶意软件检测的结果。恶意软件和正常流量的IP和端口地址列出他们的类。验证完成交通标记。L3,分类数据包重组原始流之前确定流恶意软件或正常。如果一个或多个数据包属于流正确归类为恶意软件,然后流将被定义为恶意软件流程。这是基于基于签名的方法当大多数杀毒软件只看到部分匹配的文件当扫描(16]。

例如,特洛伊流161:139:220:91_62412的源地址和目的地址66:220:151:77_80包含2包,如图7(一)。两个数据包正确归类为恶意软件,因此,流动是归类为恶意软件。否则,如果所有的数据包属于流动并被错误地归类为正常,则该流将并被错误地归类为正常。类似的方法用于确定为正常流量的类。如果一个数据包分类错误的数据包的恶意软件,然后流并被错误地归类为恶意软件流程。例如,正常的HTTP流161:139:21:101_8080的源地址和目的地址125:78:192:180_50677包含4包,如图7 (b)。三个数据包正确分类为正常除了一个数据包的流动并被错误地归类为恶意软件,因此,流动并被错误地归类为恶意软件流。之后,流L3的类与类相同的流动在L4。

基于可用的数据集,这是观察到正常交通包含长有效载荷(如10 Kb)恶意软件相比,交通(1 Kb)。因此,在最大传输单位(MTU)以太网,即1.5 Kb (17),正常的载荷分布和由几个数据包,而恶意软件负载是由一个单一的包。L3,每个数据包检测是基于局部载荷而L4的完整有效载荷。正常的数据包的误分类是信息的缺乏造成的,可以观察到的部分载荷导致较低的检测精度为L4 L3相比。然而,对于恶意软件数据包,检测结果仍然是L3、L4类似恶意软件负载通常是较短的(例如,监狱蠕虫),以确保更快的传播时间(18]。因此,恶意软件负载仍在一个数据包是否L3、L4。

基于这一发现,有一个潜在的应用检测基于middlebox内容。使用Snort的签名n克立即帮助生成模型,准确地检测恶意软件在包级别不需要双通道处理,由Varghese et al。(1]。检测到恶意软件数据包在移动过程中可以删除之前。因此,包缓冲和包不需要重组。这种技术可以降低整体的检测时间。因此,在无状态级别检测使用机器学习技术似乎可行的实现为一种控制网络中的恶意软件。

6。结论

恶意软件检测是观察到的最好的字节流层面主要是由于有限的负载信息在包级别。然而,这在运输过程中不允许恶意软件检测。工作的发现证明,检测精度在包级别相当完整的字节流的水平。本文证明了恶意软件检测在无状态级别(部分载荷)是可行的。恶意软件检测在无状态级别承诺更好的恶意软件检测,可能对安全造成内部网络因为恶意软件检测在较低的抽象可以放松状态实施限制。此外,无状态的检测可以进一步提高恶意软件控制的有效性,如提高检测速度(例如,检测恶意软件来源如路由器和网关)附近。防止恶意软件的传播在早期阶段可以防止疫情结束时系统。

由于本文建议的方法仍在探索阶段,测试完成离线,而不是实时的。在未来,这种方法的可行性在真实网络尤其是网络可以快速评估。我们还计划进一步研究恶意软件检测在包级别以及如何执行不完整的特征下,分裂,插入,逃避攻击。

利益冲突

本文的内容只反映了作者的意见与独立的从属关系。作者没有直接的财务关系本文提到的商业实体。