一、引言
传统的网络安全防御思想是基于防火墙、入侵检测系统、反病毒系统、身份认证技术、网络安全风险检测等技术手段建立纵深型立体网络安全防御体系,保护网络系统免遭恶意入侵破坏,其技术出发点是堵塞和消除被保护网络系统中存在的脆弱性。
在网络攻防的过程中,攻击方不断地推陈出新,始终占据着对抗过程中的主动,而防御方则陷入了疲于应对的被动局面。长期以来,网络安全基本上都处于“易攻难守”的不对称局面。造成这种局面的原因在于:一是传统网络的确定性、静态性,使攻击者具备时间优势和空间优势,能够对目标系统的脆弱性进行反复的探测分析和渗透测试,进而找到突破途径;二是传统网络的相似性,使攻击者具备攻击成本优势,可以把同样的攻击手段应用于大量类似的目标。
由于新型网络攻击技术手段不断涌现,网络防御方不得不频繁地更新升级网络安全防御技术,筑牢加固网络安全防御体系。随着对抗手段自动化、智能化水平的不断提高,单靠筑牢加固网络安全防御体系已经不能适应网络安全防御的实际需求,网络动态防御技术逐渐引起人们的广泛关注,被认为是改变网络安全不对称局面的革命性技术。
二、网络动态防御的概念与分类
网络安全漏洞的不可避免性和基于威胁特征感知防御方法的局限性迫使人们转变防御思想,创新防御机制,以扭转网络空间“易攻难守”的被动局面。网络动态防御旨在通过主动地重构系统来阻止或降低网络攻击的影响,其基本思想是通过动态地改变、伪装目标网络系统的特征,以增加攻击代价,提高目标系统弹性,增强防御能力。
实际上,动态防御的思想由来已久,在《孙子兵法-虚实篇》中就有“攻而必取者,攻其所不守也;守而必固者,守其所不攻也。故善攻者,敌不知其所守;善守者,敌不知其所攻”的论述,充分体现了虚实结合、动态变化对于控制战局的重要性。
2011年12月,美国国家科学技术委员会(NITRD)发布《可信网络空间:联邦网络空间安全研发战略规划》,明确指出“针对网络空间所面临的现实和潜在威胁”,要突破传统思路,发展“改变游戏规则”的革命性技术,开启了网络动态防御研究热潮,涌现出了以移动目标防御(Moving Target Defense,MTD)、拟态防御(Cyberspace Mimic Defense,CMD)和网络欺骗(Cyber Deception,CD)等为代表的网络动态防御技术。
三、移动目标防御
移动目标防御的基本观点认为绝对的安全是不可能实现的,因而更加关注如何使系统能够在可能遭受损害的环境下连续地安全运行,并不追求建立一种完美无瑕的防御体系来对抗各种形式的攻击。移动目标防御的思路是通过增加系统的随机性、减少系统的可预见性来对抗同类型攻击,通过有效降低其确定性、相似性和静态性来显著增加攻击成本。通常的实现方式是通过变换系统配置,缩短系统配置属性信息的有效期,使得攻击者不能在有限时间内完成目标探测和攻击代码开发,同时降低收集的历史信息的有效性,使探测到的信息在攻击期间已失效。
移动目标防御技术可以在系统的不同层面、以不同的方式实现,总体上可以分为五大类:动态运行环境、动态软件、动态网络、动态数据、动态平台。
(一)动态运行环境
动态运行环境指操作系统提供给应用程序的执行环境动态改变,其又分为地址空间随机化和指令集随机化两类。地址空间随机化指内存地址空间分布动态变化;指令集随机化指操作系统提供给应用程序的接口动态变化。
地址空间分布排列(Address SpaceLayout Permutation, ASLP )是典型的地址空间随机化技术,主要用来防御缓冲区溢出攻击。
G-Free是典型的指令集随机化技术,主要用来防御ROP攻击。G-Free使用特殊的编译器编译可执行文件,编译时消除所有未对齐的自由分支指令,减少攻击者可用的自由分支指令;同时对栈返回指针进行加密,当栈溢岀时,攻击者无法向返回指针注入值。
(二)动态软件
动态软件指应用程序代码动态变化,包括程序的指令及指令的顺序、组合和格式等。
主动模糊(Proactive Obfuscation )是典型的动态软件技术。主动模糊用来防御对网络可见服务的缓冲区溢出攻击和其他注入攻击。对特定的可执行文件,注入攻击的方法是特定的,主动模糊技术对每种服务的可执行文件随机创建多个不同的副本,当服务接收到一个请求,每个副本都进行处理,如果大多数副本接受这个请求,服务才会对请求进行响应。
(三)动态网络
动态网络指网络配置及属性动态变化,包括IP地址、端口号、系统指纹以及响应行为等。按照不同的角度,可以将动态网络技术划分为不同的类型。
(1)根据参与者不同,可以分为两类:单向动态变化和双向动态变化。单向动态变化指只有服务端的配置信息进行动态变化;双向动态变化指通信过程中通信双方的配置信息都进行动态变化。
(2)根据变化的内容不同,可以分为端口跳变、IP地址突变、随机指纹、路由突变等,各项变化都有其自身的使用环境和防护特点。
(3)根据是否改变真实配置信息的不同,可以分为两类:一是改变真实信息,如服务的端口改变,主机的真实IP地址改变等;二是拦截覆盖虚拟信息,通过某种方式拦截进出的数据包,将端口、地址等相关信息进行随机修改,但不改变主机的真实配置信息。
SDN-MTD是一种基于软件定义网络(SDN )实现的移动目标防御系统,基本实现了常用配置信息的动态变化。其主要功能包括:主机存活性和端口随机、服务版本和操作系统指纹隐藏、IP地址突变。主机存活性和端口随机用来抵御网络踩点和扫描;服务版本和操作系统指纹隐藏用来抵御操作系统指纹及漏洞探测;IP地址突变用来抵御网络蠕虫和拒绝服务攻击。
(四)动态平台
动态平台指软硬件平台的属性动态变化,包括操作系统及其版本、CPU架构、平台数据格式等。
可信动态逻辑异构系统(Trusted Dynamic Logical Heterogeneity System,TALENT )是一种典型的动态平台技术。TALENT用来防御注入攻击、网络扫描和供应链攻击(Supply Chain Attacks )。TALENT通过运行一个关键的应用程序来改变硬件平台和操作系统,从而提供平台多样性。这种技术使用操作系统级虚拟化容器和一种便携检测点编译器来创建一个虚拟的执行环境,使正在运行的应用程序在不同的平台间迁移,同时保持程序的状态。这些平台以不同的操作系统、硬件、架构、库进行部署。
(五)动态数据
动态数据指应用程序数据的格式、句法规则、编码方式和表示形式动态变化。
数据随机化(Data Randomization)是典型的动态数据技术。该技术通过将存储于内存的所有数据进行随机化来防御注入攻击。这种技术在受保护的系统上部署一个编译器,系统程序必须用该编译器进行编译。在随机化过程中,系统程序读写内存的所有数据将与一个随机密钥异或,与同一对象相关的操作数归为一组,每组随机使用不同的密钥,这些组在编译时由编译器通过静态分析建立。
四、拟态防御
拟态防御是以邬江兴院士为代表的国内研究人员受自然界生物自我防御的拟态现象的启迪,提出的一种网络空间新型动态防御技术,旨在通过拟态防御构造的内生机理提高信息设备或系统的抗攻击能力。之所以称为拟态防御,是因为其机理上与拟态伪装相似,都依赖于拟态构造。拟态构造把可靠性、安全性问题归一化为可靠性问题处理。对于拟态防御而言,目标对象防御场景处于“测不准”状态,任何针对执行体个体的攻击首先被拟态构造转化为群体攻击效果不确定事件,同时被变换为概率可控的可靠性事件,其防御有效性取决于“非配合条件下动态多元目标协同一致攻击难度”。
在工程制造领域中,经常采用异构冗余的方法来增强目标系统的可靠性,其经典应用范例是“非相似余度构造”(Dissimilar Redundancy Structure, DRS)。DRS构造能够发现和处理一些由宕机错误或拜占庭错误(即伪造信息恶意响应)造成的异常,具有一定程度的抗攻击效果。然而,DRS构造本质上仍是静态和确定的架构,各执行体的运行环境以及相关漏洞或后门的可利用条件也是固定不变的,多元执行体的并联配置方式并不会影响攻击表面的可达性,这使得攻击者有可能通过反复试错攻击找到多元执行体漏洞或缺陷的交集,从而实现攻击。
拟态防御的基本思想是通过组织多个冗余的异构功能等价体来共同处理外部相同的请求,并在多个冗余体之间进行动态调度,弥补网络信息系统中存在的静态、相似和单一等安全缺陷,其核心是动态异构冗余(Dynamic Heterogeneous Redundancy,DHR)构造。DHR构造通过在DRS构造中引入基于闭环负反馈控制机制和MTD动态思想实现,理论上能够改变其构造场景的静态性、相似性以及运行机制的确定性。DHR构造具有内生的抗攻击特性,在网络空间安全领域的研究与应用越来越广泛。DHR构造的组成如图1所示。
输入代理需要根据负反馈控制器的指令将输入序列分发到相应的多个异构功能等价体;异构执行体集合中接收到输入激励的执行体,在大概率情况下能够正常工作且独立地产生满足给定语义和语法的输岀矢量;多模裁决器根据裁决参数或算法生成的裁决策略,研判多模输出矢量内容的一致性情况并形成输出响应序列,一旦发现不一致情况就激活负反馈控制器;负反馈控制器被激活后将根据控制参数生成的控制算法决定是否要向输入代理发送替换异常执行体的指令,或者指示“输出异常”执行体实施在线或离线清洗恢复操作等。
拟态防御的DHR构造具有以下特点:一是不确定性威胁感知能力,能显著地降低攻击链的可靠性;二是显著增加多模裁决协同逃逸难度,动态异构环境降低漏洞可利用性。
从基本实现思想来看,拟态防御也具有移动目标防御的动态、随机和多备选等属性,但同时又具有相对独立完整的理论基础,因此可以认为拟态防御是移动目标防御的一种系统化、体系化实现。
当前,拟态防御技术在理论研究与产业化方面都取得了较大发展,发布了包括拟态域名服务器、拟态路由器、拟态Web服务器、拟态防火墙等在内的系列化产品,并进行了安全性的公开测试。
五、网络欺骗
网络欺骗是一种通过在己方网络信息系统中布设骗局,干扰、误导攻击者对己方网络信息系统的感知与判断,诱使攻击者做出对防御方有利的决策或动作,从而达到发现、延迟或阻断攻击者活动的动态防御技术。
网络欺骗主要利用了攻击者一般需要依据网络侦察获取的信息来决定下一步动作的特点,通过干扰攻击者的认知以促使其采取有利于防御方的行动。网络欺骗的本质特征是通过布设骗局干扰攻击者对目标网络的认知,因此欺骗环境的构建机制是其关键所在。按照欺骗环境的构建方式可以将网络欺骗技术分为掩盖欺骗、混淆欺骗、伪造欺骗、模仿欺骗等4大类。
掩盖欺骗通过消除特征来隐藏真实的资源,防止被攻击者发现。典型的掩盖欺骗技术有网络地址变换,通过周期性地重新映射网络地址和网络系统之间的关系改变网络的外在特征,以限制攻击者扫描、发现、识别和定位网络目标的能力。
混淆欺骗通过更改系统资源的特征使得系统资源看上去像另外的资源,从而挫败攻击者的攻击企图。具体的混淆策略包括使真实系统具有“蜜罐”的特征从而吓阻攻击者,使受保护的操作系统对远程探测工具表现出其他操作系统的特性等。
伪造欺骗通过采用真实系统或网络资源构建欺骗网络环境,并伪造资源吸引攻击者的注意力,从而发现攻击或者消耗攻击者的时间。伪造欺骗的典型实现技术有高交互“蜜罐”、蜜标等。
模拟欺骗则是通过软件模拟的方式构造出资源的特征,诱骗攻击者访问。Deception Tool Kit ( DTK)是一种典型的模拟欺骗实现,DTK绑定系统未使用的端口,被动地等待连接,并记录访问信息。模拟欺骗的逼真度与机密性较低,不适于对攻击者行为的长期观察,但是因其占资源少且几乎不会带来风险,因此可以在业务主机上部署。
六、结语
网络动态防御是为了应对越来越严峻的网络空间安全形势而逐步发展起来的创新性网络防御技术体系,为打破长期存在的“易攻难守”不对称局面提供了可能,将使未来的网络攻防难易程度趋于平衡。网络动态防御的思想由来已久,在许多网络安全技术中都有所体现,但作为系统化的网络安全防御体系被提出的时间并不长。当前,网络动态防御的发展主要有移动目标防御、拟态防御和网络欺骗3个分支,分别从攻击面变换、架构内生安全和资源伪装等角度提高攻击的复杂度和代价,从而增强系统安全防御能力。各分支的技术之间不仅没有严格的界限,相互间甚至可以进行融合,构造出更加安全的网络动态防御体系架构。
(原载于《保密科学技术》杂志2020年6月刊)