ILAB:一种用于入侵检测的交互式标注策略
阿纳¨埃尔·博农1,2(B),皮埃尔·希弗利耶1,和弗朗西斯·巴赫2
1法国网络安全局(ANSSI),巴黎,法国{anael.beaugnon,pierre.chifflier}@ssi.gouv.fr 2法国国家信息与自 动化研究所, ´巴黎高等师范学院,巴黎,法国 francis.bach@ens.fr
1 引言
监督学习已应用于入侵检测,并成功用于多种检测问题:Android应用 [11], 、 PDF文件 [7,35],、僵尸网络 [2,5],、Windows审计日志 [4],、可移植可执行 文件 [19]。然而,有监督检测模型必须在具有代表性的标注数据集上进行训练, 而在计算机安全领域构建此类数据集成本极高。标注需要专家知识,且数据通 常具有机密性。因此,无法像在计算机视觉或自然语言处理中那样通过众包 [37]以低成本获取标注数据集。一些与计算机安全相关的标注数据集是公开的 (如Malicia项目 [22], 、KDD99[41],、kyoto2006[39],等),但它们很快过 时,且往往无法反映每个部署上下文的独特性。
电子补充材料 本章的在线版本 (doi:10.1007/978-3-319-66332-66) 包含补充材料,可 供授权用户使用。
c©斯普林格国际出版公司 2017年 M. Dacier 等(编):国际网络和分布式系统 安全研讨会 2017,计算机科学讲义 10453卷,第120–140页,2017年。DOI: 10.1007/978‐3‐319‐66332‐6 6
本文档由 funstory.ai 的开源 PDF 翻译库 BabelDOC v0.5.10 (http://yadt.io) 翻译,本仓库正在积极的建设当中,欢迎 star 和关注。
ILAB:一种用于入侵检测的交互式标注策略 12 1
专家对于标注至关重要,但专家是一种昂贵的资源,因此标注过程必须高 效利用专家时间。主动学习方法被提出以降低标注成本,仅要求专家标注最具 信息量的样本 [32]。然而,传统的主动学习方法常常存在采样偏差 [29,34]:由 于仅要求专家标注最具信息量的样本,某些家族(一组相似的恶意或良性样本) 可能在标注查询中被完全忽略。采样偏差在入侵检测中是一个重要问题:它可 能导致在标注过程中遗漏某个恶意家族,从而导致之后无法检测到该家族。此 外,标注策略必须能够扩展到大规模数据集,才能适用于实际标注项目。
最后,主动学习是一种交互过程,必须确保良好的专家‐模型交互,即标注 的专家与检测模型[33,43]之间的良好交互。专家标注不仅能够改进检测模型, 还能提高后续标注查询的相关性。因此,需要较低的执行时间,以便根据专家 反馈频繁更新检测模型。执行时间过长的标注策略会损害专家‐模型交互,且不 太可能被专家所接受。
在本文中,我们提出了ILAB,一种新颖的交互式标注策略,可帮助专家以 较低的工作量获取具有代表性的标注数据集。ILAB基于一种新的分层主动学习 方法,采用二元标签(恶意与良性)以及用户定义的恶意和良性家族。该方法 避免了经典主动学习中存在的采样偏差问题,因为它旨在发现不同的恶意和良 性家族。此外,ILAB中使用的可扩展算法使其适用于大规模数据集,并保证了 较低的专家等待时间,从而实现良好的专家‐模型交互。
本文做出了以下贡献:
– 我们提出了一种名为ILAB的新型主动学习方法,旨在避免采样偏差。该方法 具有较低的计算成本,以确保良好的专家‐模型交互,并且可扩展到大规模数据 集。
– 我们在两个检测问题上将ILAB与两种最先进的主动学习方法用于入侵 检测 [14,40] 进行了比较。我们证明了ILAB在不降低有效性的情况下提升了可 扩展性。据我们所知,[14,40] 从未被比较过。我们提供了ILAB以及这两种标 注策略的开源实现,以促进未来研究工作的比较。
– 我们展示了ILAB是一种 可行的标注策略,能够通过在来自生产环境的NetFlow数据上的标注项目,扩 展到大规模真实世界数据集。我们提供了在该标注项目中部署的图形用户界面 的开源实现,以便安全专家能够标注他们自己的数据集。
本文其余部分组织如下。第2节介绍了主动学习中的采样偏差问题及相关 工作。第3节详细说明了所研究的问题及符号说明。4节解释了ILAB标注策略。
122 A. Beaugnonet 等
最后,第5节通过在公开的完全标注数据集上进行模拟,将ILAB与最先进的标 注策略进行了比较,第6节展示了一个在大规模未标注NetFlow数据集上使用 ILAB开展的真实世界标注项目。
2 背景与相关工作
主动学习
主动学习[32]方法已在机器学习领域被开发用于降低标注成本。标注策略要求专家仅对信息量最大的样本进行标注,即那些能够带来最佳检测模型的样本。主动学习方法依赖于一个交互式过程,在该过程中,专家被要求从未标注池中的大量样本里标注部分实例,以改进当前的检测模型以及后续标注查询的相关性(见图1)。然而,仅标注信息量最大的样本可能导致某些样本家族在标注过程中被完全遗漏(参见[8,29]中的理论示例),从而可能对检测模型的性能产生负面影响。
采样偏差
图2提供了一个在一维空间中使用不 确定性采样存在采样偏差的示例,[20]该方法会查 询距离决策边界最近的实例。每个块代表一个恶 意或良性家族。由于这种数据分布,来自该家族 的实例 M1不太可能成为初始训练数据集的一部 分, 因此,初始决策边界很可能位于家族 B2和M3之间。随着主动学习的进行,分 类器将逐渐收敛到家族 B2和 M2之间的决策边界,并且只会请求专家对来自 这两个家族的实例进行标注,以细化决策边界。而左侧的恶意家族 M1则完全 被查询算法忽略。
因为分类器错误地确信整个家族是良性的。由于恶意家族 M1 位于决策边界错 误的一侧,分类器此后将无法检测到该恶意家族。
采样偏差是入侵检测中的一个严重问题,可能导致某些恶意家族完全未被 发现。此外,与其他应用领域相比,入侵检测中采样偏差的风险更高,因为初 始标签的分布并不均匀。无法使用均匀随机采样来获取初始的已标注实例,因 为恶意类的样本过少。广泛部署在检测系统中的特征签名可以提供初始标签, 但这些标签很可能全部属于同一家族或少数几个家族。
相关工作
在线主动学习 [21,30,31,44,45]非常适合跟踪威胁的演变:专家随 着时间推移进行标注,以更新已部署的检测模型。在此设置中,生产环境中的 检测模型最初是在代表部署环境的标注数据集上训练的。而在我们的情况下, 这种代表性标注数据集不可用,目标是离线获取该数据集,以训练初始检测模 型。
一些研究致力于使用离线主动学习来构建用于入侵检测的标注数据集。首先,阿尔姆格伦等人[1]在采样偏差问题被发现之前,已将简单的不确定性采样 应用于入侵检测。[20]随后,Aladin[40]和¨Gornitz 等人提出了新的入侵检 测标注策略,旨在发现不同的恶意家族。Aladin 在主动学习基础上应用稀有类 别检测以促进发现不同家族,而[14] G[26]ornitz 等人则采用¨‐近邻方法来检 测尚未知晓的恶意家族。然而,两者均以牺牲专家‐模型交互为代价来处理采样 偏差问题。这些标注策略需要繁重的计算来生成标注查询,导致漫长的等待期, 专家无法有效利用这些时间。ILAB 与 Aladin 一样依赖稀有类别检测来避免采 样偏差,但采用分而治之方法以确保良好的专家‐模型交互。据我们所知, Aladin[14,40]和[40] G¨ornitz 等人的标注策略从未被相互比较过。我们在第 5 节介绍的模拟中将 ILAB 与这两种标注策略进行了比较,并提供了开源实现,以促进未来研究工作的对比。
最后,主动学习是一个交互过程,需要用户界面以便专家进行标注。阿尔 姆格伦等人和G¨ornitz等人仅在完全标注的数据集上进行了模拟,由 oracle 回 答标注查询,并未提及任何用户界面。Aladin 具有相应的图形用户界面,但 [40]并未提供有关该界面的详细信息。由于符合人体工程学的用户界面无疑可 以减少专家工作量,[9,33],ILAB 提出了一种开源的图形用户界面,简要描述 见第 6 节。
124 A. Beaugnonet 等
3 问题陈述
我们的目标是从大量未标注实例中获取一个具有代表性的标注数据集,同时降 低人工成本。为了减轻工作量并确保良好的专家‐模型交互,必须尽量减少向专 家请求的标注数量以及生成标注查询所需的计算时间。我们假设在该标注策略 执行过程中不存在试图误导标注过程的对抗者,因为该过程是在检测模型投入 生产前离线进行的。
符号说明 。设 D={xi ∈ Rm}1≤i≤N为我们想要部分标注以训练有监督检测模 型 M的数据集。它包含 N个由m个实值特征描述的实例。例如,每个实例 xi 可以表示一个PDF文件、一个Android应用、一个IP地址的流量或用户活动。此类未标注数据通常容易从检测系统部署的环境中获取(例如文件、网络流量 捕获或日志)。
为了用实数值特征表示一个实例,专家必须提取区分性特征并将其转换为 实数值。许多研究工作专注于给定检测问题的特征提取:Android应用程序 [11], PDF文件[7,35], Windows审计日志[4],可移植可执行文件[19]。在本文 中,我们不涉及特征提取,而是专注于通过有效的标注策略降低构建代表性标 注数据集的成本。由于特征提取的存在,实例由实数值特征表示,而与具体的 检测问题无关。因此,标注策略对于检测问题是通用的。
设 L={恶意,良性}为标签集合, Fy为包含标签 y ∈ L的用户定义的家族 的集合。例如,属于同一家族的恶意实例可能利用相同漏洞,可能是同一种恶 意软件的多态变种,或来自同一垃圾邮件活动的电子邮件。
我们的目标是创建一个标注数据集
DL ⊆{(x, y, z) | x ∈D, y ∈ L, z ∈Fy}
通过在 M上训练的检测模型的准确率最大化DL。 DL为每个实例 x ∈ D关联 一个标签 y ∈ L和一个家族 z ∈ Fy 。标注数据集 DL通过迭代主动学习策 略构建。在每次迭代中,要求安全专家从剩余未标注实例池 DU中选择 b ∈ N个 实例,并为其标注标签和家族。在标注过程中,专家标注的实例数量不得超过 标注预算 B ∈ N。
目标 . 标注策略的目标是构建 DL,在请求专家最多标注B个实例的前提下, 最大化检测模型的准确率 M。换句话说,该标注策略旨在请求专家标注那些 最能提升检测模型性能的 B个实例M。此外,该标注策略必须具备可扩展性, 能够处理大规模数据集,同时保持较低的专家等待时间。
ILAB:一种用于入侵检测的交互式标注策略 125
4 ILAB标注策略
ILAB 是一种基于主动学习的迭代标注过程[33]和稀有类别检测[26]。在每次 迭代中,要求专家对实例进行标注 b,以改进当前的检测模型并发现尚未知晓 的家族。主动学习通过提高告警数量来增强二分类模型,而稀有类别检测则促 进新家族的发现,以避免采样偏差。首先,我们描述如何初始化主动学习过程, 然后解释标注策略,即从未标注池中选择哪些实例由专家进行标注。
初始监督
主动学习过程需要一些初始标注样本来学习第一个有监督检测模型。对于检测问题而言,这种初始监督可能难以获得。由于恶意类通常代表性不足, 均匀随机采样在收集代表性标注数据集方面效果不佳。
如果所考虑的检测问题存在可用的公开标注数据集,则可以将其用于初始 监督。否则,检测系统中广泛部署的特征签名可以低成本提供恶意样本,而随 机采样可以提供良性样本。在这两种情况下,初始标注数据集都不包含我们想 要检测的所有恶意家族,并且不能代表部署环境中的数据。ILAB通过迭代不断 丰富初始标注数据集,使其能够代表检测系统部署环境中的数据分布。
迭代持续进行,直到标注预算 B耗尽。在每次迭代中,会生成 b uncertain 个基于不 确定性的标注查询。
126 A. Beaugnonet 等
采样以改进检测模型, bfamilies= b− buncertain实例通过稀有类别检测进行查 询标注,稀有类别检测以避免采样偏差(见图3)。
4.1 不确定性采样
从已标注实例 DL中学习一个二分类概率检测模型 M 。我们使用判别线性模 型,即逻辑回归[10]。由于线性模型具有可解释性,其每个特征对应的系数表 示该特征对检测模型的贡献,因此受到不信任黑盒检测模型[27]的计算机安全 专家的高度认可。此外,在主动学习环境[47]中,判别模型通常优于生成模型。最后,学习逻辑回归模型并将其应用于预测新实例标签的过程非常快速,因此 专家在迭代之间无需长时间等待。我们的方法是通用的,专家可以选择使用其 他更适合其应用场景的模型类别。
稀有的恶意家族在入侵检测中往往是最值得关注的,因此增加了来自稀有 家族的训练实例的影响。逻辑回归模型的样本权重与家族在训练数据集中的比 例成反比进行学习:
β(x, y, z)= |DL| / | {(x′, y′, z′) ∈DL | y′= y ∧ z′= z}|.
ˆ 权重被限制为 β= min(β,100),以避免对极稀有的家族赋予过高的权重。
使用这些权重学习逻辑回归检测模型对于确保对稀有恶意家族的良好检测至关重要。
该模型 M用于计算未标注实例 x ∈DU根据 M被判定为恶意的概率 p(x):
∀x ∈DU, p(x)= PM(y= Malicious | x).
标注查询
。由专家对距离 M决策边界最近的 buncertain个未标注实例进行标注:
arg min x∈DU |p(x)−1/2|. (1)
检测模型对这些实例的标签不确定,因此它们的标注有助于改进检测模型。此 步骤对应于不确定性采样[20],一种应用于[1]的经典主动学习方法。然而,不 确定性采样存在采样偏差[29]。我们还执行稀有类别检测以促进尚未发现的未 知家族的识别。
ILAB:一种用于入侵检测的交互式标注策略 127
4.2 稀有类别检测
稀有类别检测分别应用于更可能属于恶意和良性的实例(根据检测模型 M)。
初始标注数据集中并未包含所有家族,而稀有类别检测[26]有助于发现尚未识 别的未知家族,从而避免采样偏差。有人可能会认为,由于在入侵检测中我们 关注的是恶意类别,因此可以仅在恶意实例上运行稀有类别检测。然而,整个 恶意家族可能位于决策边界错误的一侧(参见家族 M1在图2中),因此有必要 在预测为良性的实例上也进行稀有类别检测。以下我们仅详细说明在恶意预测 上执行的稀有类别检测,因为对良性预测的分析是类似进行的。
设 DMalicious U为由 M预测标签为恶意的实例集合, DMalicious L为专家已标 注的恶意实例集合。首先,从 DMalicious L中指定的家族学习一个多类逻辑回归模 型,以预测 DMalicious U中实例的家族。令 Cf表示来自 DMalicious L ∪DMalicious U且 家族(已标注或预测)为 f的实例集合。每个家族 f使用一个高斯分布N(μf, Σf)建模,并在图3中用椭球体表示。均值 μf和对角协方差矩阵Σf通过高斯朴 素贝叶斯[10]学习得到。我们用pN(μf,Σf)(x)表示 x服从高斯分布 N(μf,Σf)的 概率。
标注查询 。 标注预算 bfamilies在不同家族之间平均分配。接下来我们解释从每 个家族中选择哪些未标注实例进行标注查询。
首先,ILAB 要求专家标注那些可能属于尚未知晓的家族的实例,以避免采 样偏差。这些实例位于椭球体的边缘,它们属于家族 f[26,40] 的似然较低:
arg min x∈Cf \DMalicious L pN(μf ,Σ f)(x). (2)
然后,ILAB 查询每个家族的代表性样例进行标注。这些实例靠近椭球体 的中心,它们属于家族 f 的似然较高:
arg max x∈Cf \DMalicious L pN(μf ,Σ f)(x). (3)
一半的预算分配给低似然实例,另一半分配给高似然实例。低似然实例可 能属于尚未知晓的家族,因此这些标注查询有助于发现新家族。然而,它们更 可能是离群值,可能会损害检测模型性能。ILAB 还要求专家标注高似然实例, 以获取标注数据集中各家族更具代表性的样本,从而提升检测模型的泛化能力。
5 与最先进的标注策略的比较
5.1 数据集
标注策略是通用方法,一旦特征被提取出来,便可应用于任何检测问题。我们 考虑一个系统和一个网络检测问题:(1)使用数据集 Contagio 检测恶意 PDF文件1,以及(2)使用数据集 NSL‐KDD 进行网络入侵检测2。这些数据集 不能用于训练面向生产的模型,因为它们不能代表真实世界的数据。然而,我 们的比较是有意义的,因为我们并不是在比较攻击检测模型,而是在比较标注 策略,以便在新问题上训练攻击检测模型。
Contagio 是一个公开数据集,包含 11,101 个恶意 PDF 文件和 9,000 个良性 PDF 文件。我们将每个 PDF 文件转换为 113 个数值特征,这些特征与 Smutz 和 Stavrou 提出的特征类 似 [35,36]。
NSL‐KDD 包含 58,630 个恶意和 67,343 个良性实例。每个实例表示网络 上的一次连接,由 7 个类别特征和 34 个数值特征描述。这 7 个类别特征(例 如协议类型 ,其可能的值为 tcp、udp或 icmp)被编码为对应于每个值的多个 二进制特征(例如 tcp →[1, 0, 0]、udp →[0, 1, 0], icmp →[0, 0, 1])。最终我 们得到 122 个特征。
| Dataset | #实例 #特征 | #恶意家族 | #良性家族 | |
|---|---|---|---|---|
| Contagio 10% | 10, 000 | 113 | 16 | 30 |
| NSL-KDD 10% | 74, 826 | 122 | 19 | 15 |
NSL‐KDD中的恶意实例被标注了家族,但良性实例没有,而Contagio未 提供任何家族信息。然而,运行Aladin和ILAB的模拟以及评估不同标注策略的 采样偏差都需要家族信息。我们通过 k‐均值聚类为剩余实例分配了家族,家族 数量 k通过轮廓系数[28]进行可视化选择。
两个数据集中的恶意实例比例都不能代表典型网络的情况(Contagio为 55%,NSL‐KDD为47%)。我们对恶意类进行了均匀下采样,使恶意实例的比 例降至10%。表1描述了处理后的数据集:Contagio 10% 和 NSL‐KDD 10%。
1 http://contagiodump.blogspot.fr/.
2 http://www.unb.ca/cic/research/datasets/nsl.html.
5.2 标注策略
我们将ILAB与不确定性采样[20], Aladin[40],以及G¨ornitz等人提出的标注方 法进行比较[14]。由于这些标注策略没有开源实现,我们使用Python中的机器 学习库scikit‐learn实现了它们[25]。所有实现均已公开,以便于未来研究工作 中的比较。我们简要介绍每种标注策略,提供有关我们实现的一些细节,以及 在必要时如何设置额外参数。
不确定性采样[20] 。在每次迭代中,基于已标注实例训练一个二元逻辑回 归模型,并要求专家对最不确定的 b个预测结果进行标注,即距离决策边界最 近的样本。不确定性采样没有额外的参数。
G¨ornitz等人的标注策略[14] 。在每次迭代中,一个半监督异常检测模 型会在已标注实例和未标注实例上进行训练。该模型基于对无监督异常检测模 型支持向量数据描述(SVDD)[42],的改进,能够利用已标注实例。该模型由 一个中心为 c ∈ Rm、半径为 r ∈ R 的超球体构成:位于超球体内部的实例被 视为良性,外部的则被视为恶意。该标注策略会选择那些既靠近决策边界又具 有较少恶意邻居的未标注实例进行查询,以促进发现新的恶意家族。最近邻通 过欧氏距离计算,使用 scikit‐learn 的 ball tree实现 [23],该方法在高维空 间中处理大量实例时非常高效。
半监督SVDD没有开源实现,因此我们根据[12–14]中提供的信息为实验实 现了该方法。参数 c、 r以及边界 γ ∈ R是通过scipy [17]中提供的拟牛顿优化 方法BFGS [46]确定的。该优化算法需要为 c、 r和 γ提供初始值,但相关论文 中并未指定这些值。我们将 c初始化为未标注实例和良性实例的均值,将 r初 始化为未标注实例和良性实例到中心 c的平均距离,并将 γ初始化为默认值1。
此外,检测模型包含三个参数:ηU ∈ R和 ηL ∈ R分别为未标注和已标注实例 的权重,κ为边界 γ的权重。作者未提供关于如何设置这些参数的信息。当我 们将这些参数设为默认值1时,数值不稳定性导致优化算法无法正常收敛,并导 致执行时间极长且性能很差(在Contagio 10%上训练模型超过2小时,AUC仍 低于93%)。因此,我们对这些参数的设置进行了调整。我们将 ηU和 ηL分别 设为未标注实例和已标注实例数量的倒数,以使未标注和已标注实例具有相近 的权重,并确保数值稳定性。检测模型的训练未使用任何核函数,如同[12–14] 中所示实验一样。
最后,标注策略需要设置两个额外的参数:k ∈ N考虑的邻居数量,以及 δ ∈[0, 1] 权衡查询靠近决策边界且恶意邻居较少的实例。我们使用 k= 10如[14]中所示,默认 值为 δ= 0.5。
Aladin[40] 。Aladin 对所有数据运行稀有类别检测。它要求专家标注位于两个 家族之间以优化决策边界的不确定实例,以及低似然实例以发现尚未知晓的未 知家族。Aladin 没有额外的参数。
该标注策略依赖于一个多类逻辑回归模型和一个多类高斯朴素贝叶斯模型。 逻辑回归参数通过网格搜索四折交叉验证自动选择,以优化AUC [16]。惩罚范 数为 1或 2,正则化强度在{0.01, 0.1, 1, 10, 100}的值中选择。高斯朴素贝叶 斯模型在无先验条件下进行训练。
ILAB . ILAB标注策略仅有一个额外参数: buncertain。该参数设置为每次迭代 中标注数量的10%,即本例中的buncertain= 10 。对靠近决策边界的一些实例 进行标注,以帮助检测模型M对这些实例做出判断,但标注数量不宜过多,因 为这些实例通常对专家而言较难标注[3,15,33],并且可能导致采样偏差[29]。 逻辑回归和高斯朴素贝叶斯模型的训练方式与Aladin相同。
5.3 结果
数据集 Contagio 10% 和 NSL‐KDD 10% 被均匀地划分为两个数据集:(1) 主动学习数据集(90%),用作构建标注数据集 DL的池;(2)验证数据集 (10%),用于评估在 DL上训练的检测模型的性能。不同的标注策略通过模拟 进行比较,其中标注查询由提供真实标签和家族的oracle来回答。
所有策略在每次迭代中均使用 b= 100个标注。Contagio 10%的标注预 算设置为 B= 1000 ,NSL‐KDD 10%的标注预算设置为 B= 2000,因为该 数据集包含更多的实例。初始标注数据集由表示最多的家族的实例组成:7个恶 意实例和13个良性实例。
所有实验均在配备64GB内存的双路计算机上运行,操作系统为Linux 3.16。处理器为Intel Xeon E5‐5620 CPU,主频2.40GHz,每颗CPU具有4核, 每核2线程。每种标注策略均运行15次,我们报告平均性能及95%置信区间。
首先,我们比较各次迭代中已知家族的数量,以评估采样偏差(见图4a)。 然后,我们比较检测模型在验证数据集上的性能(见图4b)。最后,我们监控 查询生成算法的执行时间,以评估迭代之间的专家等待时间(见图4c)。
家族检测 。图4a 显示,不确定性采样和 G¨ornitz 等人的标注策略在标注过程 中遗漏了许多家族。这两种标注策略都存在采样偏差。G¨ornitz 等人的标注策 略依赖于 k‐最近邻来检测尚未发现的恶意家族,但仅限于靠近决策边界附近的 区域,因此许多远离决策边界的家族未被发现。他们在两个数据集上促进未知 家族发现的策略均不有效。
ILAB 仅将其标注预算的一部分用于检测尚未发现的家族,因此 Aladin 检 测到的家族数量略多于 ILAB。ILAB 查询了一些高似然实例,这些实例不太可 能属于新家族,但它们有助于在迭代过程中持续提升检测性能(见图4b)。 ILAB 和 Aladin 在两个数据集上的各次迭代中发现的家族数量大致相同。 这些标注策略在避免采样偏差方面非常有效。它们被设计用于检测稀有类别, 并且能够在两个数据集上发现几乎所有的家族。
检测性能 。图4b 表示在验证数据集上曲线下面积(AUC)的演变 [16]。它表 明 ILAB 在两个数据集上的表现优于其他标注策略。
G¨ornitz等人的标注策略在Contagio 10%上表现非常差。检测性能在第一 次迭代时有所提升,但随着新实例不断加入标注数据集,性能持续下降。这种 异常行为可归因于SVDD检测模型的简单性,导致其无法有效区分良性实例与 恶意实例。数据的几何结构使得SVDD难以将良性实例与恶意实例隔离在一个 超球体内。我们在NSL‐KDD 10%上也观察到类似现象,但程度较轻。解决此 问题的一种方法是使用核函数训练SVDD以提高模型复杂度。然而,该方法会 显著增加执行时间,而当前的执行时间已经过长,难以保证良好的专家‐模型交 互(见图4c)。
G¨ornitz 等人的标注策略在 NSL‐KDD 10% 上的初始表现明显优于其他标 注策略。事实上,得益于半监督学习,G¨ornitz 等人不仅使用了最初的 20 个 已标注实例来训练其检测模型,还利用了未标注池中的所有实例。然而,G¨ ornitz 等人的半监督检测模型在 Contagio 10% 上的初始效果不如逻辑回归。 SVDD 假设未标注实例主要是良性的,因此未标注池中的恶意实例可能会损害 检测模型性能。
在NSL‐KDD 10%数据集的初始迭代中,不确定性采样相比ILAB具有更好 的检测性能,因为它将全部标注预算用于优化决策边界。相反,ILAB将90%的 标注预算用于稀有类别检测,以避免采样偏差。最终,不确定性采样因受到采 样偏差的影响而收敛到较差的性能。
在Contagio 10%上,不确定性采样和Aladin的检测性能在前几次迭代期 间下降这种不良行为是由采样偏差引起的:被查询标注的是非代表性实例,这 些实例被添加到训练数据集中,导致检测模型无法正确泛化。不确定性采样查 询的是靠近决策边界的实例,这些实例对检测模型来说难以分类,但并不代表 恶意或良性行为。Aladin仅查询不确定且低似然的实例,而这些实例同样不一 定代表恶意和良性行为。ILAB通过将其部分标注预算用于高似然实例,以获取 每个家族的代表性样本,从而解决了这一问题。因此,检测性能在各次迭代中 持续提升。
可扩展性 。图4c 描述了各迭代过程中的查询生成执行时间(以秒为单位)。 G¨ornitz 等人的查询生成算法非常慢。对于 NSL‐KDD 10% 数据集,专家在每 次迭代之间需要等待超过 10 分钟,以供标注策略计算标注查询。执行时间的三 分之一用于半监督SVDD模型的计算,其余三分之二用于 k‐最近邻算法。因此, G¨ornitz 等人的标注策略的执行时间过高,即使在少于 100,000 个实例的数据 集上,也无法保证良好的专家‐模型交互。
ILAB的执行时间与不确定性采样相当。对于NSL‐KDD 10%,专家在每次 迭代之间的等待时间少于1分钟。相反,当新实例被添加到标注数据集并发现新 的家族时,Aladin的执行时间会急剧增加。Aladin在所有实例上运行稀有类别 检测,而ILAB则分别在恶意和良性实例上运行该检测。ILAB的分而治之方法 降低了执行时间,因为在具有较少家族的较小数据集上两次运行稀有类别检测 比在整个数据集上运行更快。Aladin的作者意识到了这一高执行时间问题,在 他们的实验中,专家每天被要求标注1000个实例,新的标注查询每晚计算一次。 该方案减少了专家等待时间,但由于专家反馈每天仅集成一次,严重损害了专 家‐模型交互。
总之,不确定性采样和¨ornitz 等人的标注策略存在采样偏差问题。 Aladin 和 ILAB 是仅有的两种能够避免采样偏差的标注策略,这得益于在家族 级别进行的稀有类别检测(见图4a)。ILAB 相对于 Aladin 的主要优势在于其 分而治之方法,显著减少了执行时间(见图4c),从而改善了专家‐模型交互。 我们的比较表明,ILAB 是一种既有效又可扩展的标注策略,可以应用于实际 标注项目中。
134 A. Beaugnonet 等
6 NetFlow数据上的实际标注项目
在本节中,我们将 ILAB 部署在一个来自生产环境的大规模未标注 NetFlow 数据 集上。
NetFlow 。如 [5]中所述:“NetFlow 是由思科提出并实现的一种网络协议, 用于将网络流量汇总为一系列网络流。流被定义为共享特定网络属性(例如 I P源/目的地址,以及 TCP或UDP源/目的端口)的单向数据包序列。” 每个流 都由属性和统计摘要来描述:源和目的IP地址、源和目的端口、协议(tcp、 udp、icmp、ESP等)、开始和结束时间戳、字节数、数据包数量,以及针对 tcp流的TCP标志聚合。
| 流数量 | |
|---|---|
| IP地址数量 463,913 | |
| 特征数量 | 134 |
| TRW警报数量 70 | |
| 1.2 · 108 |
数据集和特征。这些流记录在受保护网络的边 界处。我们计算描述每个在给定时间窗口内与 受保护网络通信的外部IP地址的特征,这些特 征源自其流量。我们计算发送和接收的字节数 和数据包数的均值和方差,计算层次包括全局 以及某些特定层次: 特定端口号(80、443、53 和 25),以及某些特定的 tcp 标志聚合(....S, . A..S., .AP.SF 等)。此外,我们还计算其他聚合值:连接的 IP地址 和端口数 量、使用的端口数量、根据连接的 IP地址 计算的熵以及根据连接的端口计算的 熵。最终,每个外部IP地址由其流量列表计算出的134个特征来描述。
NetFlow数据记录于2016年的一个工作日。针对每个外部IP地址,以24小 时时间窗口计算特征。NetFlow数据集规模较大:包含463,913个IP地址,每 个地址由134个实值特征表示(见表2)。第二天还记录了第二个数据集,用于 验证所得到的检测模型。但由于篇幅限制,未报告结果,因为本文主要关注在 标注项目中部署标注策略。
ILAB图形用户界面 。安全专家通过图5所示的图形用户界面回答 ILAB 的标注 查询:不确定用于靠近决策边界的实例,恶意和 良性用于由稀有类别检测生 成的标注查询。下方的面板可用于浏览每个家族对应的标注查询。
默认情况下,每个实例仅由其特征描述,这些特征可能难以解释,尤其是 在高维情况下。可以显示自定义可视化,以指向外部工具或信息,从而简化 标注。图5展示了我们为NetFlow数据实现的自定义可视化3。
最后,专家可以使用Annotation面板对所选实例进行标注。对于每个标签, 系统会显示已发现的家族列表。专家可以从列表中选择一个家族,或添加一个 新的家族。对于高置信度查询,界面会推荐一个家族并预先选中,这有助于专 家,因为模型对这些预测具有高似然。相反,对于不确定性采样和低置信度查 询,则不会提供推荐。实际上,模型对这些实例的家族归属存在不确定性,不 可靠的建议可能会误导专家[3]。
ILAB在实践中的应用 。首先,我们需要一些已标注实例来初始化主动学习过程。 由Bro[24]的阈值随机游走(TRW)[18]模块产生的告警提供初始的异常样本, 而正常样本则随机抽取。初始标注数据集包含70个明显的扫描行为(由TRW检 测到)以及70个属于 Web、SMTP和DNS家族的正常样本。由于NetFlow数据 中不包含载荷,无法检测已建立的连接中的恶意行为,因此我们将 Web、 SMTP和DNS家族视为正常流量。所有初始标签均由专家逐一检查,以避免对 模型造成污染。
该初始标注数据集并不能代表我们想要检测的所有异常行为。我们使用参数 B= 1000、 b= 100 运行 ILAB。 并 buncertain= 10以获取一个代表性标注数据集。在多次迭代过程中,ILAB发 现了更为隐蔽的扫描行为:ICMP扫描、慢速扫描(仅在一个端口上与单个受保 护IP地址通信的一条流量)、隐蔽扫描(慢速扫描同时伴随一个已建立的正常 连接)。此外,它还检测到了旨在耗尽受保护网络资源的TCP Syn洪水攻击活 动。最后,ILAB要求专家对表现出异常行为但非恶意的IP地址进行标注:配置 错误和回射流量。
低专家等待时间 。 ILAB的分而治之方法允许专家在标注策略仍在计算标注查询 时就开始标注部分实例。首先,训练二分类检测模型并计算不确定性采样查询。 确实需要该二分类检测模型来预测未标注实例的标签,以便后续执行稀有类别 检测。然后,在专家标注不确定实例的同时,对恶意预测进行稀有类别检测。 最后,在专家标注恶意标注查询的同时,对良性预测进行稀有类别检测。恶意 预测优先于良性预测进行分析,因为其数量较少,因此分析速度更快(见图6)。 在实践中,稀有类别检测的运行时间比标注时间更短。因此,专家只需在 计算不确定查询时等待(参见图不确定性采样中的橙色曲线6)。在NetFlo w标注项目中,专家每次迭代的等待时间少于40秒。ILAB的低计算成本确保了 良好的专家‐模型交互:检测模型频繁地根据专家反馈进行更新,而不会导致长 时间的等待期。
家族优势 。 ILAB 和 Aladin 通过在家族级别执行稀有类别检测,解决了采样偏差问题。 乍一看,这种解决方案似乎会增加标注成本,因为它要求专家提供比二元标签更精确的 信息。然而,在实践中要求专家提供家族并不会增加标注成本:专家在提供标签时, 会将实例放入对应家族的“心理分类”中。专家必须理解实例的类型才能提供 标签,因此,分配家族并不需要额外 effort。[26]专家必须理解实例的类型才 能提供标签,因此,分配家族并不需要额外 effort。
此外,根据家族对标注查询进行聚类(见图5)可降低平均标注成本。家族 提供了有助于专家回答查询的上下文。与同一家族相关的标注查询可能共享相 同的标签和家族,从而减少了标注过程中上下文切换的次数。相反,不确定性 采样和G¨ornitz等人提出的标注策略要求专家对一系列无关联的实例进行标注, 且不提供任何上下文。
最后,有监督检测模型产生的告警对于安全专家而言可能难以解释。 Sommer 等人[38]将此问题称为语义鸿沟,其原因是检测模型的二元输出(恶 意或良性)。通过 ILAB 获得的家族可通过为警报添加恶意家族信息来丰富告 警内容,从而弥合语义鸿沟,帮助监督检测系统的专家采取必要措施。
7 结论
我们提出了ILAB,一种新颖的交互式标注策略,可简化标注项目。该策略依赖于主 动学习和稀有类别检测,以避免采样偏差。我们证明了ILAB相较于两种最先进的标 注策略[14,40]具有更好的可扩展性,同时不损害其有效性。据我们所知,[14,40] 此前从未被比较过。我们提供了开源实现,以促进未来研究工作中的对比分析。
ILAB 的分而治之方法降低了计算成本,并允许专家在标注策略仍在计算标 注查询时对部分实例进行标注。因此,ILAB 提供了良好的专家‐模型交互:检 测模型能够频繁地根据专家反馈进行更新,而不会导致长时间的等待期。
NetFlow标注项目表明,ILAB是一种可行的标注策略,可应用于来自生产 环境的大规模数据集。ILAB是一种通用标注策略,在完成特征提取任务后,可 应用于其他检测问题。它专为部署入侵检测系统安全专家设计,我们提供了一 个图形用户界面的开源实现,以允许他们标注自己的数据集。在未来工作中, 我们计划与独立的计算机安全专家开展更广泛的实验,从最终用户的角度评估 ILAB,并根据他们的反馈改进其可用性。
138 A. Beaugnonet 等
526

被折叠的 条评论
为什么被折叠?



