随着网络攻击的频繁发生,人们不得不更加关注网络安全并实施有效的工具来确保这一点。入侵检测系统(IDS)是用于检测和分析网络中入侵行为的基本且特别重要的工具。然而,在普通的网络环境中,入侵检测系统往往也会生成的大量的警报。这些警报需要安全专家进行确认并做出处置决策,虚假警报将会延迟对关键警报的处理,这威胁到了组织或个人的信息安全。为此,入侵检测领域的研究更多专注于如何通过升级检测模型的能力来减少错误警报。
显卡等硬件的技术突破为算法运行提供良好的平台支持,深度神经网络以其强大的功能而成为各种领域中流行的用于识别和分类的工具,入侵检测领域也不例外。近年来,因深度学习模型的出色学习能力,许多基于深度学习模型的入侵检测系统已被广泛使用并取得了良好的性能。这些模型虽然检测准确率较高,但他们只能检测在训练数据集中已知的攻击类。然而,攻击者为实现更高的攻击成功率,使得网络攻击持续演进更新,新的攻击类别不断在网络中出现,以上这类模型的训练设置显然限制了这些方法在实际应用中的使用。
实用的IDS应该能够尽快适应新的任务,即迅速学习到新类攻击特征。这种情况可以归为类增量(class-incremental)学习,即:i)学习器应可以在不断增多新类的数据中学习;ii)由于计算需求、存储预算和数据隐私等各种问题,将新数据与旧数据集结合进行再训练模型通常是不可行的。上述类增量学习方法通常会导致稳定性-可塑性困境,即,过多地关注新任务的学习范式,由于灾难性的遗忘(catastrophic forgetting)而导致对过去类别检测能力的大幅下降,但防止灾难性遗忘又会遭受学习新任务的阻力。
在过去的几十年中,解决此难题的工作取得了巨大进展,具体分为以下几类:基于动态体系结构的、基于存储重放的和基于正则化的方法。不幸的是,这些方法很少考虑小样本学习,它们几乎仅在有足够新类数据的情况下才会生效。但是,当只有极少量有标注的新类数据可用时,可以有效检测所有攻击的模型在入侵检测中会更有现实意义,因为它能够尽快响应新型入侵的出现。因此,应该考虑小样本增量学习情景。
想要将小样本增量学习考虑进增量攻击的检测模型中,有必要对类增量学习、入侵检测与增量学习进行了解。
1. 类增量学习
早在1989年,McClosKey M. 和Cohen N.J. 就认为采用反向传播训练的算法存在灾难性的遗忘问题。后来,Ratcliff R. 通过在多种任务,使用反向传播来更新模型的测试下,证实了这一发现。但是,增量学习和持续学习必须在保留先前任务的知识的同时保持学习当前任务新知识的能力。为了解决灾难性的遗忘,研究者的研究成果可分类如下:基于动态架构、基于演练和基于正则化的方法。
顾名思义,基于动态体系结构的方法可以动态调整其网络架构以应对新任务学习新知识。例如,面对新的知识要求,可增加神经元数量,并可以通过合并神经元的方式来防止冗余来改善它。有模型可以层次增量化的随着新类的推出而逐步扩展网络。它的基本思想是,自然物体由于进化的过程,存在固有的本体层次结构,学习模型应类似地具有层次结构。
基于演练的方法会定期重播历史数据,以增强其在模型中的相应记忆。这种方法通常需要额外的存储空间来存储旧实例,不用保存整个数据集。有方法利用知识提炼的优势即可以保留从旧样本中获得的知识,使得仅使用一小部分旧样本即可达到很好的性能。此外,重放样本也不限于真实样本,也有研究人员尝试使用生成对抗网络对旧类别的基础分布进行建模,然后使用生成对抗网络(Generative Adversarial Networks, GAN)和存储在其中的真实示例生成的合成数据训练网络,并减轻灾难性的遗忘。
当学习新类时,基于正则化的方法通常会对模型更新施加其他约束。详细地说,这些方法首先确定先前分类任务的重要学习权重,然后严厉惩罚他们的偏差,以保留先前的知识。
2. 入侵检测与增量学习
由于网络攻击的不断发展,类增量学习在协助IDS及时检测网络入侵中起着非常重要的作用。尽管机器学习技术已在IDS中广泛使用,这些基于机器学习的模型如何适应网络攻击的演变,近年来才引起人们的注意,而基于动态架构的方法是最常见的。
鉴于增量学习需求和K近邻(K-NN)具有处理庞大且增量式多类数据的优势,有研究者提出结合K-NN与支持向量机SVM的增量学习方法。也有学习方法通过利用两个重要组成部分即分类和可靠性评估模块,可以在适当的时候调整其模型。可靠性评估模块通过一组流离群值检测器评估一段时间内分类的可靠性。考虑到它可能是由于新的攻击行为错误分类引起的可靠性变化,因此它可以在评估结果不好的情况下更新模型。
由于标记数据的获取通常非常昂贵,因此有研究人员提出了一种具有主动学习方法的增量朴素贝叶斯分类器,该方法可以为基于主动学习策略采样的数据获取标签。为了及时检测到zero-day攻击,提出了基于元学习的框架,其先利用所有数据训练DNN模型,作为特征提取器,再结合元学习任务训练学习,获取足够的先验知识,使其利用少量新类样本即可产生很好的泛化能力。遗憾的是,此方法只能发现新类攻击,无法用于其他旧攻击类别的识别中。
3. 基于元学习的小样本增量攻击检测模型
为解决以上问题,我们提出基于元学习的小样本增量攻击检测模型,FSCIL。下面将从问题的定义、模型的基础架构对检测模型训练过程进行简单描述。
图 1 FSCIL模型结构
由于元学习在从少量新数据中快速学习新任务中表现良好,因此在初始训练阶段,我们利用元学习来解决新攻击识别检测小样本学习问题。增量训练阶段是典型的监督学习过程,可以通过标准反向传播来解决。在此阶段,需要所有类型的攻击样本,即在此过程中也需要重播非常少量的旧样本。这些旧类型的样本可以是过去保存的,新收集的或GAN生成的样本。如果这些样本是专家在处理入侵警报时发现的分类错误的样本,则是更好的选择。如是这样,此更新过程不仅可以保证最终模型检测新类型攻击的能力,而且可以进一步增强其检测旧类型攻击的能力。
不过需要注意的是,尽管此模型是为入侵检测而设计的,但它可以进一步扩展到其他检测任务,例如经典计算机视觉任务,为更多同类型的问题提供可靠的解决办法。