高雅卓,刘亚群,邢长友,张国敏,王秀磊
(陆军工程大学 指挥控制工程学院,江苏 南京 210007)
随着互联网技术的蓬勃发展,网络安全问题已经受到了业内的广泛关注。传统的防御手段如防火墙、IDS和IPS等只能被动地对攻击者进行检测阻断,而攻防双方信息的不对称性使得这些被动防御技术很难应对如今复杂多样的网络攻击手段。
为了解决这种攻防不对称的现象,基于欺骗的网络主动防御思想应运而生。欺骗防御的主要思想是“通过干扰攻击者的认知以促使攻击者采取有利于防御方的行动[1]”。典型的欺骗防御技术[2]包括特征混淆技术、指纹隐藏技术以及攻击诱捕技术等。其中特征混淆主要是产生虚假的网络特征来欺骗攻击者的认知,如产生虚假网络拓扑结构[3]、虚假通信关系[4]等。指纹隐藏技术[5]主要是避免暴露网络实体的真实指纹信息,包括协议指纹、操作系统指纹、应用指纹等。攻击诱捕[6]则主要通过构建虚假的网络实体,诱使攻击者对这些虚假网络实体进行攻击,从而达到暴露攻击行为、消耗攻击资源的目的。
在上述技术中,特征混淆和指纹隐藏都是通过更改或隐藏原本真实资源的特征,以达到预防延缓攻击的目的。而攻击诱捕则是伪造了一个能够与攻击者交互的欺骗环境,通过诱导攻击者发起错误攻击,达到检测并分析攻击者行为特征的目的。相对于其他技术而言,面向攻击诱捕的欺骗防御技术更具有主动性,也更能打破攻防不对称的局面。
面向攻击诱捕的网络欺骗防御思想最早可以追溯到1989年[7],传统的攻击诱捕技术通常是使用模拟程序部署的低交互蜜罐或使用普通虚拟机实现的简单高交互蜜罐,虽然具备一定的诱捕能力,但是总体而言部署功能单一、结构僵化、灵活性也较差[8],很难适应当今复杂多变的APT攻击和零日漏洞攻击。为了更好地与攻击者进行交互,一些新的攻击诱捕机制在设计思路上通常与博弈论、机器学习等思想相结合以提供更加逼真的诱捕链,在实现上则利用容器、SDN等技术以平衡成本与性能的冲突,从而建立智能灵活的攻击诱捕场景。
该文后面部分安排如下:第一节介绍了面向攻击诱捕的网络欺骗防御基本架构,并分析了利用传统蜜罐技术构建攻击诱捕环境的方法;第二节介绍了基于虚拟化的新型诱捕模型,重点从与虚拟化技术结合以及攻击状态迁移两个角度进行了讨论分析;第三节介绍了当前智能诱捕阶段的决策机制,主要从博弈对抗和智能优化模型两个方面进行介绍。
攻击诱捕系统主要分为决策控制模块和欺骗环境两大模块(见图1)。决策控制模块主要是分析当前收集到的信息,并对欺骗环境的设计进行决策;欺骗环境主要负责引诱攻击、与攻击者交互并监控攻击行为信息。
图1 攻击诱捕系统结构
在引诱攻击方面,主要有间接引诱和直接引诱两种方式,直接引诱是指攻击者直接进入诱捕系统中[9],间接引诱是指攻击者由于非法使用诱饵信息或出现其他攻击行为被管理员发现后迁移至诱捕系统中[10]。
诱捕系统的欺骗交互主要体现在诱捕网络中,诱捕网络的设计主要包括两个方面:一是网络内部各个诱捕点的诱捕机制设计,单个攻击者与诱捕网络的交互实际上是与某个特定诱捕点的交互;二是诱捕网络架构的场景构建,由于单个诱捕点的欺骗能力受限,大型的诱捕系统通常会将多个诱捕点组合起来形成诱捕网络以提供更加逼真全面的诱捕。
由此根据欺骗环境的三个模块可以将诱捕系统设计的关键要素分为:诱饵信息、诱捕点和诱捕网络,根据三个模块的自身特性,可以将其关键技术分别分为诱饵信息生成技术、诱捕机制设计技术和诱捕场景构建技术。在以后的诱捕系统设计中,主要都是针对这三个关键技术进行研究设计。
基于欺骗的防御思想最初仅被网络管理员作为一种主动防御的新思路而使用[7]。直到20世纪末期,以Honeyd[11]为代表的一批低交互蜜网成为了主流,这一时期蜜网项目组提出了许多蜜网的概念,如2003年的“分布式蜜网[12]”,2004年的“蜜场[13]”等,并且都根据这些概念进行了项目的开发[14];在这一时期,国内也有多个团队开始对蜜罐技术进行关注,如诸葛建伟等人加入了蜜网项目组[15],并成为其在中国的分支团队;同时也有学者在蜜罐技术的基础上提出了新的欺骗诱捕技术。
然而,这一时期的欺骗诱捕技术处于传统诱捕阶段,大多数为简单的诱捕系统,对攻击者的捕获能力并不全面,主要停留在网络服务和应用程序的层面,并没有针对操作系统级别进行重点防护。
这一阶段的诱捕系统大多为简单的蜜罐系统,虽然在应用技术和机制设计上都不够成熟,但是已经逐渐形成了攻击诱捕机构的雏形,以后的攻击诱捕系统基本都是按照这一时期的架构进行改进。
随着攻击技术的发展,传统诱捕机制的灵活性不足、难以快速构建高逼真的诱捕场景等问题越来越突出。随着SDN[16]、轻量级的虚拟化技术LXC[17]以及Docker[18]等技术的发展,许多团队开始将新型网络和虚拟化技术与诱捕系统的设计思想相结合,提出了结合SDN的诱捕系统结构[19]、结合容器的主动防御[20]等思想,更好地平衡了交互能力高低和系统规模大小的冲突。
这一阶段的欺骗诱捕技术开始进入复杂诱捕阶段,主要是通过将欺骗诱捕的思想与新兴技术进行结合,实现在低成本大规模部署的基础上,提高系统交互的能力,重点转向虚拟化的诱捕架构设计和诱捕过程中攻击状态的迁移机制。
在复杂诱捕阶段,传统的攻击诱捕架构开始与新型的虚拟化技术结合,形成了基于虚拟化技术的新式诱捕架构,其中较为主流的两种虚拟化技术分别是虚拟机技术和轻量级虚拟化技术。
2.1.1 基于虚拟机的诱捕环境生成机制
虚拟机在很长一段时间都是诱捕机制设计过程中最常用的技术。Argos[21]对Qemu进行扩展,使用动态污点分析跟踪整个运行过程中收到的网络数据;为了更好地提升蜜罐的真实性,Biederman等人[22]提出了一种部分克隆生产系统内部虚拟机快照的诱捕系统框架,由于基本镜像仍然是源虚拟机的快照,所以蜜罐环境与生产环境基本一致,隐蔽性更好。
为了更好地对虚拟机进行监控,诱捕机制通常会结合虚拟机自省技术进行设计,虚拟机自省主要是一种从虚拟机外部监控虚拟机内部运行状态的方法,Stewart等人[23]对多种诱捕机制的实现方法进行比对,发现VMI技术在应用上通用性更强,安全性更高,并且不会受到攻击者的影响。
VMI技术在诱捕机制中应用的重点在于对虚拟机内部行为的监控功能,SPEMS[24]系统集成并改进了多个开源软件工具,利用VMI技术在外部监视虚拟机内部程序的执行情况;Urias等[6]设计了一个能够配置并控制虚拟机的自省程序KVMi,用于承担虚拟机监视器的角色,能够在不添加任何构件的情况下实时监测虚拟机状态。
虚拟机自省技术主要应用于虚拟机中,对部署成本有一定的要求,近年来成本更低的轻量级虚拟化技术也越来越受到研究人员的关注。
2.1.2 基于轻量级虚拟化的诱捕环境生成机制
虚拟机虽然能在一定程度上平衡部署成本和交互程度的冲突,但是在一台资源有限的服务器上能建立的虚拟机数量仍然有限,难以实现大规模的诱捕网络部署,此外,现有的虚拟机检测技术等使得攻击者很容易发现自身处于一个危险的环境中而提高警惕,而Alexander[25]根据研究发现容器技术可以很好地规避这一缺陷。目前常用的容器技术主要有LXC[17]和Docker[18]。
Honeypatches[10]将使用LXC作为诱捕点,将触碰了诱饵补丁的攻击会话转移到特定的诱捕点内进行攻击诱捕;容器的自身特性使其可以作为嵌入式的诱捕点直接部署在真实系统内部,AHEAD[20]提出可以将主动防御工具封装在Docker内部直接安装到真实系统中,迫使攻击者在攻击的过程中必须筛选真实服务和虚假服务,延缓了攻击者的攻击时间,但是由于此架构的安全性仅通过Docker自身的隔离性保证,一旦攻击者通过容器逃逸进入主机中时,生产系统仍然面临较大威胁。
在攻击诱捕系统中除了初始的架构设计,还需要考虑在与攻击者交互过程中的攻击状态迁移机制。攻击状态迁移指的是在攻击诱捕过程中对攻击流量的重定向传输,通常发生在诱捕系统与生产系统之间,或者诱捕系统内部不同的诱捕点之间。
2.2.1 诱捕系统与生产系统之间迁移
诱捕网络与生产网络之间的攻击状态迁移一般发生在合作部署的诱捕系统中,此类诱捕系统主要针对内部攻击,在迁移过程中,为了保证会话状态的连续性,往往需要将生产环境中的源服务进行同步迁移。
初始状态下攻击者与生产网络进行交互,在生产网络内部因为执行非法动作被发现后,攻击会话将迁至诱捕网络内部,此后攻击者只与诱捕网络进行交互。
此类诱捕系统较为经典的架构HADES[26]提出当攻击者的流量在生产网络中被发现时,就通过一系列操作将攻击流量引至一个高逼真的诱捕环境中。
近年来,为了实现流量透明迁移,同时保证源主机的正常会话状态,攻击迁移通常会与SDN技术相结合,INTERCEPT+[19]通过更改虚拟机迁移代码,使得迁移以后源虚拟机仍保持运行,这样可以保证与源虚拟机通信的正常用户可以继续交互,同时使用SDN交换机隔离诱捕网络和真实系统;此外,Sandnet[27]还将攻击迁移的思想应用于微服务背景,使用容器代替了虚拟机,并且考虑了迁移之前生产网络内部容器之间的通信问题,将与被怀疑容器交互的相关容器同时进行迁移,同样用SDN技术进行流量控制。
2.2.2 诱捕系统内部迁移
诱捕系统内部的攻击状态迁移主要发生在不同类型的诱捕点之间,一般是在决策控制器发现攻击的状态发生变化后,将攻击会话从原来的诱捕点迁移至另一类诱捕点中。
这种状态迁移最常发生在混合蜜网中高交互蜜罐与低交互蜜罐之间,对大量的低交互蜜罐捕获的流量进行分析,然后把需要重点分析的流量导入高交互蜜罐中,这种混合蜜网的主要目的是结合高交互蜜罐和低交互蜜罐的优点。
为了进一步降低被攻击者发现的几率,HoneyDOC[28-29]提出了一种与SDN技术结合的TCP重放机制,可以将攻击者流量进行无缝迁移,迁移之后无需重新建立连接。
除了诱捕点交互程度的不同,诱捕系统还会根据攻击者的可信性和攻击阶段为其提供不同级别的诱捕点进行交互,HoneyV[9]通过IDS判断所有入站流量的可信级别,并根据结果将不同级别的攻击者放入四个不同监视级别的蜜罐中进行分析;还可以根据攻击者攻击阶段的不同进行分级,Honeyproxy[30]根据攻击的阶段不同设置了三种代理模式,有效地防止了蜜罐追踪,但是一个代理仅能管理一个攻击者,所以需要为每个监控的端口都部署一个代理。
除了先进的虚拟化技术和网络技术,强化学习的思想也对网络安全领域产生了一定影响,目前已有团队开始将强化学习与攻击诱捕的思想相结合[31],以期实现智能化的诱捕系统,此前也已经有不少学者将博弈论[32]的思想应用于攻击诱捕技术当中,并且取得了较大的进展。
当前阶段可以称为智能诱捕阶段,主要是将攻击诱捕的思想与其他领域的思想进行交叉,通过与博弈论和机器学习等方向的结合,进一步提高系统智能交互的能力,注重具体的诱捕流程设计。
博弈论的思想常常应用于诱捕机制的设计。Walter等人[33]在诱捕机制中引入了超博弈的思想,防御方通过改变参数,欺骗攻击者的视图,使得攻击者误认为自己拥有完全信息,以此最大化防御方优势;王娟等人[34]提出了一种基于多阶段攻击的SDN动态蜜罐SDHG,使用不完全信息动态博弈对不同阶段的攻防策略进行建模,并证明了模型的可行性,最后使用Docker容器对原型系统进行了实现,并在与其他策略的对比中体现了该方法的优越性;姜伟等人[35]对攻防博弈模型和马尔可夫决策进行了扩展,提出了一种随机博弈的模型,更加贴合攻防博弈的现实情况。
博弈论除了可以针对单个诱捕点内部的诱捕机制进行建模,在诱捕点的分配决策中也可以起到较大的作用。Aliou[36]利用博弈论对蜜罐的分配进行决策,减少攻击者发现蜜罐的概率;Attiah[37]将攻防双方进行了多层次的策略建模,双方都根据策略的成本、潜在的攻击收益或损害以及预测对手策略的有效性来调整自己的策略,并最终得到了混合策略纳什均衡。
除了单独使用博弈论,Ahmed等人[38]还将博弈论与攻击图相结合,判断在已知当前攻击者位置的情况下接下来多跳诱捕点的分配策略。
机器学习主要是研究如何让计算机能够模拟人类的学习行为,从而自主提高自身性能的学科。由于机器学习思想自身的特性,其在攻击诱捕系统中的应用场景更为广泛。
传统生成诱饵信息的方法大多是根据真实数据集特征生成的,这类诱饵信息中保留了部分源数据的信息,仍存在被攻击者窃取隐私的风险。DPSYN[39]提出一种将深度学习与差分隐私相结合自动生成诱饵数据库的方法,这种方法不仅可以根据原有数据集的特征生成相似度较高的数据,也能有效防止在诱饵数据中暴露源数据的隐私信息,更加安全。
除了生成诱饵信息,机器学习还可以与诱捕机制设计相结合,用于进行攻击识别和智能诱捕。在攻击检测识别方面,Nadiya[40]提出了一种基于机器学习聚类思想的算法,用于在诱捕点中辨认攻击者,并将结果用于后期的防御策略的配置;另一种更加常见的方法是使用强化学习的思想进行智能诱捕,这种将强化学习加入诱捕系统的思想最早来自于2011年的Heliza[41],Pauna等人[31]使用类似的建模方法针对该思想进行了改进,之后又将Cowrie蜜罐与DQN思想[42]相结合,实现了一种自适应的智能SSH蜜罐。
除了Heliza的建模方法之外,SMDP[43]提出将马尔可夫决策过程的方法应用于攻击诱捕中,把连续时间过程转化为等效的离散决策模型,并使用强化学习对该模型进行了训练,最后得到了规避风险、成本效益和时间效益的最优策略。
从蜜罐的思想提出开始算起,目前欺骗诱捕技术已经发展了近30年,虽然在学术领域已经得到了较广泛的认可,但仍然存在不少问题,下面将主要讨论这些关键性的问题并提出一些解决方法。
目前的诱捕系统大多是根据预先设定的场景建立的,在与攻击者交互的过程中很少会根据攻击者攻击的变化动态地更改诱捕场景,导致诱捕场景的结构较为僵化,难以迷惑高级的攻击者。
因此可以考虑结合攻击链的概念,将诱捕技术与博弈论相结合,根据攻击者攻击手段的变化给出攻击者期望的响应,构建动态博弈的诱捕场景。
由于诱捕系统只能捕获交互对象的数据,如果攻击者不与诱捕系统进行接触,诱捕系统就永远无法检测到攻击的存在。
因此可以考虑将攻击诱捕技术与其他的防御技术相结合,如Takabi[44]提出了一种将欺骗防御与MTD相结合的防御思想,可以用于缓解内部攻击。
目前的诱捕系统大多是复杂的大型网络,这些网络中往往需要使用不同类型的诱捕软件,然而大多数软件并没有统一的数据收集格式,使得数据收集工作十分繁杂,另一方面,理解和利用这些收集到的原始数据对分析员的专业素养要求较高。
因此,统一数据收集格式至关重要,同时应该简化数据分析的过程,尽量实现自动化分析,提高分析结果的可读性。
欺骗诱捕技术自从1989年提出以来,在网络安全领域应用十分广泛。该文立足于诱捕系统欺骗环境设计的三大模块,根据诱捕系统的发展阶段对各个模块的设计进行讨论分析,主要目的在于为诱捕系统的设计者提供一个简单的参考,并在最后给出了当前诱捕系统具有的问题和未来发展的趋势。虽然目前诱捕系统仍然有许多难以解决的问题,但是仍符合网络安全未来趋势的发展。