由于我的关注点是基于流量分析的网络层面的入侵检测,所以只翻译整理了相关的内容。
A Survey of Stealth Malware Attacks, Mitigation Measures, and Steps Toward Autonomous Open World Solutions
摘要
随着我们的专业、社会和金融生活方式变得日益数字化,以及我们的政府、医疗保健和军事基础设施越来越依赖于计算机技术,它们为恶意软件提供了规模更大、更有利可图的目标。隐形恶意软件尤其构成更大的威胁,因为它是专门设计来逃避检测机制,传播休眠,在野外长时间,收集敏感信息或定位本身来达到高影响的零日攻击。监督日益增长的攻击面需要开发高效的具有不断改进的泛化能力的反恶意软件解决方案以检测新类型的恶意软件,并解决这些事件,尽可能减少对人类专家的负担。在本文中,我们调查了恶意隐形技术以及现有的自动检测和分类这些隐形技术的解决方案。虽然机器学习在网络层面和主机层面为能够泛化到新的恶意软件类型的不断增加的自动检测能力的方案提供了有前途的潜力,我们的发现表明,大多数识别算法继承了几个有缺陷的假设,阻止了隐形恶意软件识别问题和机器学习解决方案之间的直接映射。在这些有缺陷的假设中,最值得注意的是封闭世界假设:在查询时,属于静态训练集之外的类的样本将不会出现。我们提出了一个针对隐形恶意软件识别的形式化的自适应开放世界框架,并将其从数学上与其他机器学习领域的研究联系起来。
关键词:秘密的,恶意软件,rootkit(获取管理员特权的工具),入侵检测,机器学习,开集,识别,异常检测,离群值检测,极值理论,新颖性检测
I 介绍
恶意软件通常被归为病毒、蠕虫、木马、rootkit等类别。然而,今天的高级恶意软件通常包含许多具有不同功能的组件。例如,相同的恶意软件在主机上传播时可能表现为病毒,在通过网络传播时表现为蠕虫,在与命令控制(C2)服务器通信或与其他感染机器同步时出现僵尸网络行为,在隐藏自己逃避入侵检测系统时表现为rootkit。对恶意软件的所有方面的全面研究对于开发安全产品和计算机取证方案是很重要的,但是隐形组件带来了特别困难的挑战。如果恶意软件可以首先逃避检测,那么修复措施的轻松或困难是无关紧要的。
虽然一些作者将所有隐形恶意软件称为rootkit,但术语rootkit通常指的是重定向代码执行并破坏预期操作系统功能的模块。关于这个术语的用法,rootkit偏离了其他隐形特性,如复杂的代码突变引擎,旨在改变恶意代码的外观,以便在不改变底层功能的情况下逃避签名检测。
随着恶意软件的数量和复杂性的不断增加,我们可以使解决方法改善泛化到以前未见过的恶意软件样本/类型,同时提供足够的诊断信息以尽可能少的人为负担来解决威胁,这种解决方案正变得越来越可取。机器学习在帮助隐形恶意软件入侵识别方面提供了巨大的潜力,但由研究社区提出的许多基于机器学习的入侵检测“解决方案”与IDS软件中实际部署之间仍然存在严重的脱节。Sommer和Paxson[1]讨论了导致这种脱节的几个因素,并为在实际的IDS设置中应用机器学习提出了有用的指导方针。虽然他们的建议是一个很好的开始,但我们认为,必须对机器学习算法本身进行改进,以便有效地将这些算法应用到秘密恶意软件的识别中。具体来说,许多算法都存在几个有缺陷的假设,扭曲了它们到现实的隐形恶意软件入侵识别问题的映射。其中最主要的是封闭世界的假设——在分类时,只有在训练集中可用的固定数量的已知类会出现。
我们的贡献如下:
- 我们首次对隐形恶意软件的技术和对策进行了全面的学术调查。关于rootkit[2]-[4],已经进行了一些浅显的和狭窄范围的学术调查,以及许多关于入侵检测问题的更广泛的调查,例如,[5]-[7],一些特别讨论了机器学习入侵检测技术[1],[8]-[10]。但是,这些工作都没有在技术和数学细节上走进解决秘密恶意软件和对策的机制,而我们在本文中做到了。相比与任何现有的学术rootkit调研,我们的调研范围更广泛,细节更严格,不仅详细讨论远远超出rootkit的隐形恶意软件机制,而且提供了对对策的概述,包含严格的数学细节和应用机器学习对策的实例。
- 我们分析了许多机器学习算法所固有的六个有缺陷的假设,这些假设阻碍了它们在隐形恶意软件入侵识别和其他IDS领域的应用。
- 我们提出了一个应用于秘密恶意软件识别的自适应的开放世界数学框架,排除了六个不适当的假设。本文包括了与其他入侵识别算法/框架的关系的数学证明,并且对开放世界识别的正式处理在数学上被推广出来,超越了以前在这一主题上的工作。
在整个工作过程中,我们将主要提供微软Windows系列操作系统的示例,并在适当的地方补充来自其他操作系统类型的示例。我们做出这一决定的主要理由是,根据最近来自反恶意软件供应商和研究小组[11]-[19]的大量技术报告,用于windows系列操作系统的恶意软件仍然比任何其他类型的操作系统更为普遍(见图1)。我们的次要理由是,在我们所检查的学术文献中,我们发现讨论Windows安全性的研究相对较少。我们认为,这一差距需要得到填补。请注意,许多应用于Windows的隐形恶意软件攻击和防御在其他系统中都有各自的类似物,但每个系统都有其独特的优势和敏感性。这可以通过将我们的调查与[20]的部分进行比较来看出,其中Faruki等人提供了通用的安卓安全问题和防御的调查。尽管如此,由于我们的调查是关于隐形恶意软件的,而不仅仅是Windows隐形恶意软件,我们偶尔会突出特定于其他系统的技术,并提到系统之间的差异。还讨论了Unix/UixLinux rootkit shell,因为Unix rootkit的开发早于Windows的开发。任何系统调用都将用一种特殊的字体标记,而专有名词则以不同的方式突出显示。表中给出了本文中讨论的Windows系统调用的完整列表。附录一。
本文的其余部分结构如下:在第二节中,我们通过对隐形恶意软件技术的全面调查来介绍隐形恶意软件存在的固有问题,重点是rootkit和代码混淆。在第三节中,我们讨论秘密恶意软件对策,旨在保护已知易受到攻击的系统区域的完整性。其中包括网络入侵识别对策和主机入侵识别对策。我们的讨论强调了将这些方法与更通用的识别技术相结合的必要性。在第4节中,我们讨论了研究文献中一些更一般性的隐形恶意软件对策,其中许多是基于机器学习。在第五节中,我们确定了6个关键的有缺陷的算法假设,这些假设阻碍了机器学习方法在恶意软件识别和更通用的IDS领域中的效用。然后,**我们形式化了一个用于隐形恶意软件识别的自适应开放世界框架,汇集了机器学习文献的几个领域的最新进展,包括入侵检测、新颖性检测和其他识别领域。**最后,第六节总结了这篇综述。
IV 基于模式的隐形恶意软件对策
B 行为/启发式分析
总结:源自于系统行为,而不是代码片段。
优点:不受试图隐藏恶意代码的影响。
缺点:在执行前无法检测到恶意软件。
在主机级别上,签名并不是用于入侵检测的唯一启发式方法。用于入侵和异常检测的系统调用序列[92]-[98]是根rootkit分析的一个特别流行的替代方案,因为hooked IAT或SSDT条目经常产生重复的系统调用模式。有趣的是,rootkit也可以被网络入侵检测系统(NIDS)检测到,因为在野外的rootkit几乎总是一个较大的恶意软件的小组成部分。较大的恶意软件通常执行某种网络活动,如C2服务器通信和跨受感染机器的同步或感染传播。甚至是一些最复杂的隐形恶意软件,它们利用rootkit从主机[60]隐藏网络连接,而rootkit不能隐藏来自网络的连接。因此,在网络级别的签名扫描以及流量流分析技术可以显示更大的恶意软件以及底层rootkit的存在。在分析宏观的、网络级流量[99]、[100]时,带有能够有效隐藏个体主机行为的rootkit的僵尸网络可能更容易被检测到。NIDS的优点是,它们提供了恶意软件和入侵检测系统之间的隔离,降低了恶意软件欺骗或破坏IDS的能力。但是,nids无法检查主机的状态或在网络层面上干预主机的执行情况。一种扩展了交叉视图检测概念的混合方法是,将来自主机查询的网络连接与在网络级别[101]上检测到的网络连接进行比较。差异表明存在rootkit。
V 面向自适应模型的隐形恶意软件识别
通过组件保护和通用识别技术检测到的恶意软件的很大一部分是以前观察到的具有已知签名的恶意软件,由脚本儿童部署——几乎没有技术专长的攻击者,主要使用预先编写的脚本来传播现有的攻击[112]。具有最新安全配置文件的系统不容易受到此类攻击。
另一方面,复杂的隐形恶意软件会长期不被发现地传播,因为它们不匹配已知的签名,不会攻击先前见过模式的受保护的系统组件,并将有害行为掩盖为良性的。为了减少这些以前从未见过的隐形恶意软件在野外传播的时间,组件保护和通用识别技术一样,都必须能够快速识别和适应新类型的攻击。通常,由于需要新的硬件和软件,适应组件技术要比适应通用识别技术要慢。然而,更通用的算法技术可能需要时间来更新,这必须被考虑到入侵识别系统的设计中。
选择有效更新的算法只是入侵识别系统中必须解决的几个考虑因素之一。更基本的问题是如何自主地决定是否需要额外的训练数据和是否需要更新分类器。简而言之,入侵识别系统必须具有自适应能力,以有效地减轻隐形恶意软件的威胁。它还必须是可解释的,以便向人类操作人员和事件响应模块提供可操作的信息。不幸的是,文献中提出的许多系统既不是自适应的,也不是可解释的。我们孤立了六个有缺陷的建模假设,我们认为它们必须在算法层面上加以解决。我们在V-A节中讨论了这些有缺陷的假设,并提出了一个算法框架来减弱它们在V-C节。
A 6个有缺陷的假设
1) 入侵是闭集的:真正的入侵识别任务在分类时有未见过的类。无论是所有恶意代码的变化,还是所有良性行为的变化,都不能被预先知道。然而,本文中引用的大多数入侵识别技术都隐含地假设在分类时看到的所有类都存在于训练集中,只评估一个固定的封闭类集的识别精度。
因此,在IDS基准测试上的良好性能并不一定能转化为有效的分类器。在真实的开放集场景中,在分类时对感兴趣的M个类进行训练的分类器面对的是从几乎无限多个类别的分布中采样的类的实例。传统的分类器是通过将假设空间划分为若干区域并分别分配标签来相互分离类。有效的分类器大致上寻求在后验概率上近似于贝叶斯最优分类器,后验概率表示为P(yi|x;C1,C2,…,CM),i∈{1,…,M},其中x是一个特征向量,yi是一个类标签,Ci是一个特定的已知类。然而,在Ω个未知类Un存在的情况下,最优后验模型将成为P(yi|x;C1,C2,…,CM,U1,…,UΩ)。不幸的是,由于U1,…,UΩ是未知的,我们模拟这种后验分布的能力是有限的。在训练过程中挖掘负例可能有助于定义已知但不感兴趣的类(例如,CM+1),但不可能跨越所有的负例空间,而且随着特征维度数量的增加,训练负例的成本变得不可行。因此,分类器可以标记属于Ci的空间,这远远超出了Ci的训练数据的支持范围。这个基本的机器学习问题被称为开放空间风险[113]。更糟糕的是,如果使用概率校准,随着距离决策边界正边的增加,x可以归因于高置信的Ci。因此,在开放集入侵识别机制下运行的最优闭集分类器不仅是错误的,而且在非常确信自己是正确的同时也可能是正确的。开放集入侵识别系统需要将M个已知类彼此分离,但也必须通过在远离已知类数据时将决策标记为“未知”来管理开放空间风险。闭集假设存在的问题以及理想的开集行为如图7所示。
二元入侵识别任务,即入侵检测,似乎是一个两类闭集问题。然而,每个标签——入侵或没有入侵——分别是一个应用于许多子类的集合的元标签。虽然有些子类自然会被知道,其他的不会被知道,开放空间风险的问题仍然适用。
2)异常意味着类标签:异常意味着类标签的错误假设在很大程度上与闭集假设有关,它隐含于所有二分类系统如恶意和良性。异常构成了偏离相关模型的统计支持的数据点。在分类制度中,异常值是指远离它们所属的类的数据点。在开放集场景中,异常应该由操作员、协议或其他识别模式来解决。有效的异常检测对于开放集入侵识别是必要的。如果没有它,对过度封闭集的隐含假设可能会导致不受欢迎的分类,因为它会迫使人们在没有统计证据支持的情况下做出决定。异常与入侵之间的合并假设异常行为构成入侵行为,而入侵行为构成异常行为。通常,这两种假设都不成立。特别是在大型网络中,以前从未见过的良性行为是很常见的:新的软件安装是常规的,具有不同使用模式的新用户来来去去,添加了新的服务器和交换机,从而改变了网络的拓扑结构,等等。另一方面,隐形恶意软件是专门设计为显示正常的行为特征,与许多以前从未见过的良性行为相比,它们不太可能被记录为异常行为。
3)静态模型是足够的:在反恶意软件领域,一个静态模型的假设,这是隐含的封闭集建模假设,是特别不够的,因为需要更新新的名义行为支持文件和恶意代码签名。系统所看到的攻击将会随着时间的推移而改变。在增量学习文献[114]中,这个问题通常被称为概念漂移。根据模型的不同,整批再训练所需的时间可能不可行。例如,k>>1的k阶HMM可能在某些入侵识别任务中表现得很好,但同时在时间和硬件方面重新训练都可能很昂贵,而且可能需要大量的训练数据才能很好地泛化。更新分类器以识别新的恶意样本所需的时间存在时间风险。因此,即使该分类器表现出很高的准确性,它可能很容易受到时间风险的影响,除非它拥有一个有效的更新机制。
4)不需要特征空间转换:为什么机器学习算法没有被维度的诅咒所淹没的一个关键因素是,由于统计相关性,类的数据往往是高度非线性的数据流,但有效的维度比输入空间小得多。通过手工调优或机器学习优化获得的特征变换来获得良好的数据流表示,通常是有效的和有区分性的分类的关键。入侵检测文献中的许多方法只是将原始日志数据或聚合的日志数据直接传递给决策机器[115]-[121]。输入通常具有异构尺度和聚合后的名义上的和连续值的特征,它们忽略了时间尺度和变化的空间带宽。我们认为,像任何其他机器学习任务一样,细粒度的区别性入侵识别需要有意义的特征空间转换,无论是由分类器明确地学习还是作为一个预处理任务来执行。[122]-[130]已经探索了用于入侵识别的特征空间。虽然这项研究是一个很好的开始,但我们认为还需要很多额外的工作。
5)模型解释是可选的:有效的特征空间转换必须与语义上有意义的解释相平衡。不幸的是,这两个目标有时会相互冲突。神经网络已经成功地应用于入侵识别任务[115],[131]-[136],它们很有吸引力,因为它们提供了调整一组固定的基函数来输入数据的能力,从而优化了读出层进行操作的特征空间。然而,这些基函数对应于在最终读出之前的非线性投影/提升到局部最优数据流上的聚合组合,并且空间的语义意义以及最终读出的语义意义都没有得到很好地理解。最近的研究表明,神经网络很容易受到对抗实例[137]-[139]的攻击,这些例子被高度置信地错误分类,但看起来与已知的类数据非常相似。这种模型缺乏可解释性,这意味着入侵识别系统不仅容易受到这种对抗性模型的攻击,而且更重要的是,机器学习技术还不够“聪明”去解决大多数潜在的入侵。相反,他们的作用是提醒专门的反恶意软件模块和人类运营商迅速采取行动。快速响应和解析时间至关重要。即使入侵检测系统提供了近乎完美的检测性能,如果它不能为操作员提供有意义的诊断,也会导致一个时间风险,即操作员或反恶意软件浪费宝贵的时间来试图诊断问题[1]。此外,正如我们从前面的章节中所看到的,许多潜在的恶意软件信号(例如,钩住)可能来自于合法的使用。重要的是要知道为什么会触发警报以及哪些特征触发了警报,以确定和完善系统对恶意和良性行为的反应。
这些解释问题和时间风险问题并不是入侵检测所特有的。这是为什么许多诊断和故障排除系统依赖于有向无环概率图形模型,如贝叶斯网络和规则挖掘,而不是神经网络或支持向量机(SVMs)[140]的一个关键原因。为了更好地解决模型解释问题,入侵检测应该转向一个更通用的识别框架,理想情况下提供额外的诊断信息。
6)类分布是高斯分布:本文引用的大多数概率模型都假设类分布是特征空间中的单模态或多模态高斯混合分布。虽然高斯混合模型经常似乎捕获了类的分布,除非特殊情况,它们通常不能捕获分布的尾部[141]。
有几种不同类型的异常。经验上的异常Empirical anomalies对于训练数据的概率模型是异常的,而理想化的异常 idealized anomalies对于训练数据的联合分布是异常的。在提供良好的建模的情况下,这两种异常类型是等价的。然而,从异常检测的角度来看,朴素高斯假设并不能提供经验异常和理想异常之间的良好匹配,因为异常在联合分布的尾部,且尾部倾向于偏离高斯分布[141]。来自**统计极值理论(EVT)**的定理为类的尾部分布提供了有理论基础的函数形式,假设正类异常值是过程异常——潜在的随机过程中罕见的事件——而不是过程之外的噪声,例如,以前未见过的类。
B 一个开集识别框架
适应新的攻击概况和规范行为模型需要一种方法来诊断何时被查询的数据不被以前看到的训练样本所支持。这种诊断通常被称为[142]中的新颖性检测novelty detection。特别是在IDS文献中,新颖性检测通常被认为是一种检测没有先验知识的恶意样本的手段。直觉是可以通过在训练过程中跨越正常行为的空间,任何新的行为要么是攻击,要么是严重的系统错误。然而,在实践中,跨越良性行为的空间是不可行的。即使在单个主机上,“正常的”良性行为也会根据配置、软件安装和用户变更而发生巨大的变化。网络的情况甚至更加复杂,即使是中等规模的网络,服务、协议、交换机、路由器和拓扑也会经常变化。
我们认为新颖性检测在隐形恶意软件的识别中特别有用,但我们能够跨越整个良性输入空间的前提与得到所有已知攻击的签名解决入侵检测问题的前提一样,是不现实的。相反,新颖性检测应该根据它在数学上的作用来处理——作为一种工具来识别训练数据不支持的样本,并量化对模型决策的置信度程度。 具体地说,我们提出将入侵识别任务作为一个开集识别问题,在分类时假设有未知类,进行判别式的多类识别。Scheirer等人[113],[143]将开放集识别问题形式化为减少经验风险和减少开放空间风险的权衡,开放空间风险是标记未知空间的风险,或数学上表示为应该被标记为“未知”的正标记空间与正标记空间的总范围的比例。通过可调阈值来任意控制这个比率的分类器被称为管理开放空间风险。
**Scheirer[113]**通过两个并行超平面来扩展线性SVM以约束属于每个已知类的数据点;一个超平面对应于一个区分性的决策边界,管理经验风险,另一个超平面限制分类的范围,管理开放空间风险。不幸的是,这种“平板”模型不容易扩展到非线性分类器。在后来的工作[143],[144]中,通过尾部的EVT校准和非线性SVM决策分数的阈值化,他们使用非线性核将他们的解决方案扩展到多类开集识别问题。EVT校准的单类SVMs与多类SVMs结合使用,同时约束开放空间风险,并提供较强的鉴别能力[143]。作者将这种组合称为W-SVM。然而,我们认为Scheirer等人[143]的定理比W-SVM本身更有趣。他们证明了紧致衰减概率(CAP)模型的求和、乘积、最小值和最大值融合再次生成了CAP模型。Bendale和Boult[145]扩展了这项工作,表明了线性变换空间中的CAP模型可以管理原始输入空间中的开放空间风险。虽然这些工作很有趣,但公式限制了它们在概率分布上的应用。由于在入侵识别设置中需要有效的模型更新,由于需要在每个增量上重新规范化,对识别问题强制执行概率约束可能不是平凡的。因此,我们将Scheirer等人[143]的定理推广如下:(定理直接看论文吧,公式好难整理可恶°(°ˊДˋ°) °)
C 用于隐形恶意软件入侵识别的开放世界原型
V-B节中引入的开放集识别框架可以纳入现有的入侵识别算法中。这意味着没有必要放弃封闭集算法来管理开放空间风险,只要它们与开放集识别算法融合。当闭集技术能够得到训练数据的良好支持时它们可能是很好的解决方案,但开集算法仍然被需要以确定闭集决策是否有意义。因此,开集问题可以通过使用一种固有的开集算法来进行新颖性检测和拒绝操作,如果其任何封闭集决策的支持度低于开放集阈值,则将其作为未知拒绝。一个有易于解释的诊断信息的模型,如决策树或贝叶斯网络,也可以与开集算法融合,以减少响应/缓解时间并补偿其他不太容易解释的判别算法。请注意,Scheirer等人提出的许多算法本身都是判别分类器,但在纯封闭设置中表现低于现有水平。
假设识别函数代表某种密度估计,阈值化的开放集决策是没有价值的。对于一个查询点,如果相对于每个类的最大密度低于开放集阈值τ,则它的类被标记为“未知”。否则,该查询样本将属于最大密度的类对应的标签。在开集公式下,开放度可以由τ的值来控制。所期望的开放度将取决于算法和应用程序的最佳精度-召回率要求的不同。例如,由许多安全专家管理的高安全性、非延迟敏感的虚拟化环境可以将许多示例标记为未知,并经常征求专家意见。那些对延迟敏感,但入侵的潜在危害相对较低的系统,可能有更宽松的开放空间边界。
注意,开集密度估计可以对概率分布应用或不应用归一化。然而,我们只能证明,当估计器的决策函数满足定理1时,它管理开放空间风险。
开集算法也可以应用于许多不同的特征空间变换情况。当开集算法与闭集算法融合时,两者不一定需要在同一特征空间中工作。研究已经证明了[145],[160]开集分类框架在机器学习特征空间中的有效性。**Bendale and Boult [ 145]**在一个学习距离的转换空间中限定了一个最近类均值(NCM)分类器,他们将这种算法称为最近的非离群值(nearest non-outlier,NNO)。他们还证明了在线性变换下,变换后的特征空间中的开放空间风险管理可以管理原始输入空间中的开放空间风险。Rudd等人[160]制定了极值机(EVM)分类器,在从卷积神经网络学习到的特征空间中执行开放集分类。EVM公式执行一个类似核的转换,它支持可变的数据带宽,它隐式地将任何特征空间转换为概率上有意义的表示。本研究表明,开放集算法可以支持有意义的特征空间变换,尽管什么构成“好的”特征空间取决于问题和分类器。
Bendale and Boult [ 145]和Rudd等人[160]也将开放集识别算法扩展到一个在线状态,这支持增量模型更新。他们将这种识别场景称为开放世界识别,指的是在线开集识别。这项工作的增量方面类似于其他在线入侵识别技术[161]-[167],给定在时间t的一批训练点Xt,旨在根据时间t的后验概率更新时间t+1的先验概率,所以Pt+1(θt+1)←Pt(θt|Xt,Tt),T是目标变量,P是一个识别函数,θ是一个参数向量。如果P是一个概率,则可以采用贝叶斯处理,其中:
然而,除了少数例外,增量学习入侵识别文献中的识别函数通常不满足定理1,也没有被证明可以管理开放空间风险。这意味着它们不一定是真正的开放世界分类器。
此外,[161]-[167]中的工作都没有解决优先标记检测到的新数据来进行增量训练的迫切需要。这是有问题的,因为在线学习的目标是调整一个模型来识别新的攻击变体和良性模式——否则这些见解将会在一个有用的时间范围内消失。然而,当入侵识别子系统表现出高召回率时,用新的攻击签名更新模型要比用新的良性配置更新模型要重要得多。由于标记能力往往受到知识渊博的安全从业者数量的限制,我们认为“最优”标记方法是贪婪地根据未知样本与已知恶意类别相关联的可能性对未知样本进行排序。给定定理1中的有界径向减弱函数,即开集决策函数,我们可以这样做:通过一些恶意的可能性标准(MLC)进行优先级标记。
MLC排名背后的直觉如下:从第四节的讨论来看,恶意软件经常共享组件:即使对于截然不同的恶意软件,相似的组件也会在特征空间中产生相似的模式。虽然轻微的代码重叠不一定会导致恶意软件类别的(错误)分类,但它可能会导致新的恶意软件类别在特征空间中足够接近已知的类,根据MLC标准,它们的排名高于大多数新的良性样本。因此,通过MLC排名的标签优先级可以改善安全专业人员的资源分配,并显著减少隐形恶意软件不被注意的传播的时间。当然,除了MLC之外,其他考虑因素也与真正的“最佳”排名有关,包括诊断困难和可能的危害程度,但这些特性很难自动确定。
开放世界入侵识别框架的最后一个有用的方面是,它并不局限于单纯的高斯假设。高斯的混合函数可以很好地建模密度,但在分布的尾部往往会恶化,因为模型的尾部倾向于单峰高斯的尾部,而数据分布的尾部通常不会。然而,对于识别问题,尾部行为的精确建模非常重要,事实上,比精确的类中心[168],[169]的建模更重要。为此,研究人员已经转向统计极值理论技术来估计密度,而开放世界识别很容易适应它们。[144]和[143]都将EVT建模应用于开放集识别场景,基于点到分类器决策边界的距离的后验拟合,而[160]将EVT校准纳入生成模型,该模型作为EVT分布的混合进行松散密度估计。重要的是,Rudd等人[160]使用的EVT分布,与SVM或KDE应用程序中的高斯核不同,是数据的可变带宽函数。它们也直接从EVT推导出来,并包含了高斯分布不能包含的高阶统计量(例如,歪斜、曲线)。最后,他们被证明可以管理开放空间风险。
VI 结论和未解决的问题
隐形恶意软件是一个日益增长的威胁,因为它们利用了许多具有合法用途的系统特性,并且它们可以在很长一段时间内不被发现地传播。因此,我们认为有必要提供第一次学术调查,特别关注恶意隐形技术和缓解措施。我们希望在学术和工业环境中的安全专业人员能够在他们的研究和开发工作中利用这项工作。我们的工作还强调了将旨在保护系统组件完整性的对策与更通用的机器学习解决方案结合起来的必要性。我们已经确定了许多机器学习算法背后的缺陷假设,并基于其他识别领域的研究提出了改进它们的步骤。我们鼓励安全界在未来的入侵识别算法的发展中考虑这些建议。
虽然我们是第一个提出数学形式化开放世界的入侵识别方法,但仍有未解决的问题,必须通过实验和实现,包括如何紧密绑定开放空间风险,以及更普遍地如何确定操作场景中的问题的开放度。一个过度激进的边界实际上可能会降低那些主要是封闭集的问题的性能,它优先考虑开放空间风险的最小化,而不是经验风险的最小化。另一个重要的考虑因素是将未知样本错误分类为属于已知类的成本,这部分取决于用于标记新类的操作资源,部分取决于新类的预期的威胁程度。这些权衡是开放世界反恶意软件系统的实验分析和操作部署的重要课题。
对于基准测试和实验,支持开放世界协议的良好数据集对未来的研究至关重要。虽然已经做了一些努力,例如[170]-[172],但很少有现代的公开数据集用于入侵检测,特别是秘密恶意软件。我们相信,收集和分发包含秘密恶意软件样本的现代化的和现实的公开数据集,对促进该领域的学术研究至关重要。虽然许多企业安全公司有充分的理由保持他们的数据集隐私,但加强与学术界的合作,允许延长——但仍然受限——为了所有各方的最大利益,数据共享是为开发更好的秘密恶意软件对策。
我们已经证明,许多现有的用于入侵识别领域的算法已经满足了一个开放框架的要求,我们相信它们应该被利用并在理论和实践中被扩展去解决现有算法中的有缺陷的假设(V-A中被详细说明 )。采用一个开放世界的数学框架,排除了入侵是闭集的,异常意味着类标签,并且静态模型是充分的假设。如何适当地处理其他的假设还需要进一步的研究。虽然开放世界算法已经取得了一些进展,但如何适应一个易于解释的模型同时获得一个良好的可区分的特征空间的问题值得进一步研究。最后,如何在没有高斯假设的情况下建模类分布需要进一步的数学处理——统计极值理论是一个很好的开始,但它尚未优雅地定义如何选择分布尾边界。此外,除了特殊情况外,它仍然没有很好地形式化,如何对非高斯数据的剩余分布(非极值)进行建模。