来源:Detection of advanced persistent threat using machine-learning correlation analysis
高级持续性威胁(Advanced Persistent threat, APT)作为最严重的网络攻击类型之一,在全球范围内引起了广泛关注。APT是指一种持续的、多阶段的攻击,目的是对系统进行破坏,从目标系统中获取信息,具有造成重大损害和经济损失的可能性。APT的准确检测和预测是一个持续的挑战。本文提出了一种新的基于机器学习的MLAPT系统,该系统能够系统地准确、快速地检测和预测APT攻击。MLAPT经过三个主要阶段:(1)威胁检测,其中开发了八种方法来检测各种APT步骤中使用的不同技术。这些方法的实际流量的实现和验证是对当前研究机构的重要贡献;(2)预警关联,设计关联框架,将检测方法的输出链接起来,识别可能相关、属于单一APT场景的预警;(3)攻击预测,根据关联框架输出,提出一种基于机器学习的预测模块,由网络安全团队用来确定早期预警的概率,从而发现一个完整的APT攻击。对MLAPT进行了实验评价,该系统能够对APT进行早期预测,预测准确率为84.8%。
一、介绍
网络攻击的数量、复杂性和多样性不断增加。这一趋势目前正受到网络战和物联网兴起的推动[1-3]。2015年网络攻击的年成本为3万亿美元,到2021年预计将增加到6万亿美元以上。这一高昂的成本为研究和投资开发新的网络攻击防御方法和技术带来了极大的兴趣[5-8]。虽然病毒扫描器、防火墙和入侵检测和预防系统(IDPSs)已经能够检测和预防许多网络攻击,但网络犯罪分子反过来开发了更先进的方法和技术来入侵目标的网络并利用其资源,目标既有有线通信,也有无线通信[9,10]。此外,许多针对网络攻击的防御方法都认为这些攻击是针对随机网络的,因此它们假设如果公司的网络受到良好的保护,攻击者可以投降并转移到更容易的目标上。然而,根据Trend Micro[11]的一份技术报告,随着有针对性攻击、高级持续性威胁(APTs)的兴起,这种假设不再成立。在APTs中,网络罪犯和黑客都将目标锁定在特定的组织,并持续攻击,直到他们实现目标。
APT攻击是针对特定组织的持续的、有针对性的攻击,通过几个步骤[12]执行。APT的主要目的是进行间谍活动,然后进行数据泄露。因此,APT被认为是一种新的、更复杂的多步攻击。这些apt对当前的检测方法提出了挑战,因为它们使用了先进的技术并利用了未知的漏洞。此外,APT攻击成功造成的经济损失也十分显著。攻击的潜在成本是投资于入侵检测和预防系统[13]的主要动机。APTs是目前对企业和政府最严重的威胁之一。
APT检测领域的研究大多集中于分析已识别的APTs[15-21],或者检测使用特定恶意软件[22]片段的特定APT。一些工作试图检测新的APT攻击。但在实时检测[23]、检测所有APT攻击步骤[23]、平衡假阳性和假阴性率[22]、关联长时间事件等方面存在严重缺陷[24,25]。现有的工作令人鼓舞。然而,准确、及时地检测APT仍然是一个挑战。
在本项工作中,我们开发了一种基于机器学习的新型系统MLAPT,该系统能够全面、准确、快速地检测和预测APT攻击,为入侵检测系统(IDS)领域做出了重要贡献。MLAPT主要分为三个阶段:威胁检测、预警关联和攻击预测,其主要贡献包括:
威胁检测:第一阶段的目标是在多步APT攻击中检测威胁。我们已经开发了8种方法/模块来检测APT攻击步骤中使用的各种攻击。其中包括伪装的exe文件检测(DeFD)、恶意文件哈希检测(MFHD)、恶意域名检测(MDND)、恶意IP地址检测(MIPD)、恶意SSL证书检测(MSSLD)、域通量检测(DFD)、扫描检测(SD)和Tor连接检测(TorCD)。这个阶段的输出是警报,也称为事件,由各个模块触发。所有的方法都使用真实的网络流量进行了评估。
警报关联:警报关联的第二阶段打算将第一阶段生成的警报与APT攻击场景关联起来。利用相关框架的主要目的是降低MLAPT检测系统的假阳性率。这一阶段的流程经历三个主要步骤:警报筛选(AF),以识别冗余或重复的警报;警报聚类(AC),它们很可能属于同一个APT攻击场景;和关联索引(CI),以评估每个聚类警报之间的关联程度。
攻击预测:最后根据监控网络的历史记录,设计并实现了一个基于机器学习的预测模块(PM)。网络安全团队可以使用这个模块来确定早期警报的概率,从而发现一个完整的APT攻击。
提出的MLAPT系统能够实时处理和分析网络流量,而不需要存储数据,使APT攻击的早期预测成为可能,从而在攻击完成生命周期之前做出适当及时的响应。
2. 相关工作
APT检测是当前入侵检测系统(IDSs)面临的一个挑战,针对这类多阶段攻击已经进行了大量的研究。表1描述了当前APT检测系统,并指出了它们的局限性。
TerminAPTor,描述一个合适的APT探测器,在[26]。该检测器使用信息流跟踪来查找APT生命周期内触发的基本攻击之间的链接。TerminAPTor取决于一个代理,它可以是一个标准的入侵检测系统,检测这些基本攻击。作者仅通过模拟两种APT场景来评估TerminAPTor,并证明了APT检测器需要通过过滤误报来改进。
介绍了一种基于C&C域检测的APT检测系统。本文分析了C&C通信的特点,提出了C&C域的访问是独立的,而合法域的访问是相互关联的。尽管在公共数据集上验证该检测系统取得了显著的效果,但作者提到,当受感染主机连接到C&C域,而用户正在上网时,该检测很容易被逃避。此外,由于本系统仅检测APT生命周期的一个阶段,因此缺少对C&C域的检测导致APT检测失败。
在[28]中探索了一种基于鱼叉式钓鱼检测的APT检测方法。这种方法依赖于数学和计算分析来过滤垃圾邮件。标记被认为是一组单词和字符,如(点击这里,免费,伟哥,副本),应该为检测算法定义,以区分合法和垃圾邮件。然而,鱼叉式钓鱼邮件可能不包括算法过程中所需要的任何符号。此外,APT检测依赖于一个步骤,当缺少该步骤时,系统会失败。
统计APT探测器,类似于TerminAPTor探测器,由[29]提出。本系统认为APT有交付、利用、安装、C&C和行动五种状态;并且在每个状态下进行若干活动。每个状态中生成的事件都以统计方式相关联。该系统的建立和维护需要大量的专家知识。
在[30]中提出了一种基于主动学习的恶意pdf检测框架。这些恶意pdf可以在APT的早期步骤中使用,以获得入口点。系统收集通过网络传输的所有pdf文件,然后根据白名单、信誉系统和防病毒签名库,通过“已知文件模块”对所有已知的良性和恶意文件进行过滤。接下来,将检查其余“未知文件”作为可行PDF文件的兼容性。这种方法只检测APT生命周期的一个步骤。
在[31]中提出了一种基于数据泄漏预防的方法。该方法重点检测APT的最后一个步骤即数据溢出。利用DLP算法对数据流量进行处理,检测数据泄漏,根据泄漏特征生成“指纹”。该系统利用外部网络反情报(CCI)传感器来跟踪泄漏数据的位置或路径。该方法仅检测APT的一个步骤,即数据泄露。此外,CCI分析单元需要等待来自传感器的信息,无法实现实时检测。此外,CCI传感器不能保证能够提供泄漏数据指纹所需的信息。这种方法还引入了隐私问题,CCI中的参与者可以访问系统的所有用户存储和传输的数据。
在[23]中给出了一个工作原型SPuNge。该方法依赖于主机端收集的数据,旨在检测可能的APT攻击。SPuNge经历了两个主要阶段,第一个阶段是对检测到的恶意url进行分析。这些url可以通过主机的计算机通过HTTP与Internet浏览器连接,也可以通过安装在受感染计算机上的恶意软件连接。然后确定显示类似活动的计算机。本系统依赖于检测APT攻击的一个活动,即恶意URL连接,而不考虑APT的其他活动。也就是说,如果检测系统遗漏了恶意URL连接,将无法检测到整个APT场景。此外,系统不能实现实时检测。
[32]解释了APT检测的基于上下文的框架。该框架基于将APT建模为攻击金字塔,金字塔的顶部表示攻击目标,侧向平面表示APT生命周期所涉及的环境。这个检测框架需要大量的专家知识来建立和维护。
最后,现有APT检测系统在实现实时检测、假阳性率与假阴性率之间的平衡以及长时间事件关联等方面存在严重缺陷。针对这些不足,本文提出了一种新的APT检测和预测方法。
3.一种基于关联的APT实时检测与预测系统
3.1 设计原理
APTs是多步骤攻击,因此有效的检测应该通过检测APT生命周期每个阶段所使用的技术。应该开发检测模块来检测APT攻击步骤中最常用的技术。
然而,检测APT技术本身的一个阶段并不意味着检测APT攻击。即使单个模块警报指示了一种可能用于APT攻击的技术,但是这种技术也可以用于其他类型的攻击,甚至可以是良性的攻击。例如,用于APT攻击的域流、端口扫描和恶意C&C通信,也可以用于僵尸网络攻击[33]。此外,Tor网络连接在APT攻击中用于数据外泄,也可以合法使用,保护用户流量[34]的机密性。因此,这些检测模块单独是无效的,应该融合它们的信息来构建关于APT攻击的完整图像。因此,需要建立一个关联框架来链接检测模块的输出,降低检测系统的假阳性率。
在APT攻击的早期阶段对其进行预测,可以最大限度地减少攻击造成的损失,防止攻击者达到数据泄露的目的。利用相关框架输出的历史记录,机器学习算法可以用来训练预测模型。由于预测模型的目的是对关联框架的预警进行分类,因此需要选择分类算法对模型进行训练。
3.2 MLAPT架构
基于设计原理,本文提出的系统架构如图1所示。MLAPT经过三个主要阶段:威胁检测、警报关联和攻击预测。
首先,对网络流量进行扫描和处理,以检测APT生命周期中可能使用的技术。为此,开发了8个检测模块;每个模块实现一个方法来检测APT攻击步骤中使用的一种技术,并且它独立于其他模块。MLAPT实现了8个模块,稍后在3.3节中介绍,用于检测APT生命周期中最常用的技术。这个阶段的输出是警报,也称为事件,由各个模块触发。
然后,各个检测模块发出的警报被反馈到相关框架。关联框架的目的是发现警报可能是相关的,属于一个APT攻击场景。此阶段的流程经历三个主要步骤:警报筛选器来识别冗余或重复的警报;最有可能属于同一APT攻击场景的警报集群;和关联索引,以评估每个集群警报之间的关联程度。
在最后阶段,网络安全团队使用一个基于机器学习的预测模块来确定早期警报的概率,从而发现一个完整的APT攻击。这使得网络安全团队能够在其早期步骤中预测APT攻击,并在攻击完成之前应用所需的程序来阻止攻击,并将损害最小化。APT的检测不同于预测。当APT的两个或多个步骤相关时,可以进行检测。但是,APT的前两个步骤相关联后,可以实现预测。检测模块已在[35-42]中提出,本文主要研究相关框架和预测模块。
3.3 MLAPT检测模块
考虑APT步骤,表2给出了每个APT步骤的MLAPT检测模块。这些模块有:
检测伪装的exe文件(DeFD):这个模块检测通信连接中伪装的exe文件。换句话说,它检测文件的内容是否是exe而扩展名不是exe。处理网络流量,分析所有通信连接,过滤通过连接传输时识别的所有exe文件。此筛选基于文件内容。接下来,应该检查文件名扩展名,以决定是否对伪装的exe文件检测[35]发出警报。
恶意文件哈希检测(MFHD):该模块检测网络主机下载的任何恶意文件。它基于恶意文件散列的黑名单。处理网络流量,分析所有连接,并为在连接上传输时标识的每个新文件计算MD5、SHA1和SHA256散列。然后将计算的散列与黑名单[36]匹配。
恶意域名检测(MDND):此模块用于检测到恶意域名的任何连接。它是基于恶意域名的黑名单。过滤DNS流量,分析所有DNS请求,并将查询与黑名单[37]匹配。
恶意IP地址检测(MIPD):该模块检测受感染主机和C&C服务器之间的任何连接。该检测基于C&C服务器的恶意ip黑名单。MIPD处理网络流量,以在源IP地址和目标IP地址中搜索与IP黑名单[38]中的每个连接的匹配。
恶意SSL证书检测(MSSLD):该模块基于恶意SSL证书黑名单检测C&C通信。这个黑名单包括两种形式的SSL证书,SHA1指纹和serial & subject,它们与恶意软件和恶意活动有关。处理网络流量并过滤所有安全连接。然后将每个安全连接的SSL证书与SSL证书黑名单[39]匹配。
域通量检测(DFD):该模块检测算法生成的域通量,其中受感染的主机查询存在大量域,而所有者只需注册一个域。这导致许多DNS查询失败。DFD利用DNS查询失败来检测域通量攻击。处理网络流量,特别是DNS流量。对所有DNS查询失败进行分析,并对来自相同IP地址的DNS查询失败设置阈值,以检测域通量攻击并识别受感染主机[40]。
扫描检测(SD): SD模块检测端口扫描攻击,目的是识别值得注意的服务器和服务,以便于未来的数据利用。SD基于跟踪所有失败的连接尝试,并在特定的时间间隔内为这些失败的尝试设置一个阈值,以检测扫描攻击并识别受感染的主机[41]。
Tor连接检测(TorCD):这个模块检测到与Tor网络的任何连接。它基于公开发布的Tor服务器列表。处理网络流量,并将每个连接的源和目标IP地址与Tor服务器列表[42]匹配。