唐寿礼、许康、谢大伟、徐良华(江南计算技术研究所,江苏无锡214083)摘要:移动目标防御(MTD)技术是近年来网络空间“改变游戏规则”的革命性技术之一。
它与以往的网络安全技术完全不同,变被动防御为主动防御,其系统和网络状态随着时间、空间以及物理环境等多个维度的变化而不断改变,从而增加入侵者的入侵难度,有效限制己方漏洞暴露的概率。因此,移动目标防御将成为未来网络安全防护技术的重点发展方向。综合研究了MTD主要关键技术及其发展脉络,通过比较分析,提出了目前关键技术的优缺点,并结合网络技术的演化展望了MTD技术的发展前景。
0引言
随着互联网的普及,爆发了一系列的网络安全事件,如震网、火焰、杜克、高斯、沙蒙、迷你火焰等等。这些安全事件对个人、组织的信息安全甚至是国家网络空间安全都造成了严重的威胁,因而网络安全问题越来越受到人们的关注。
传统的网络威胁主要通过网络监听(Network Sniffing Attack)、拒绝服务(Denial of Service)、重放及中间人攻击(ManintheMiddle,MIMT)等方式。针对上述几种网络威胁,人们采取了信息加密、网络防火墙、入侵防护(IPS)及蜜罐和蜜网等网络安全防御技术降低威胁发生的概率[1]。
然而,上述防御技术都是基于静态网络配置下的,即网络中的节点地址、网络结构、网络协议等均固定不变,这些配置信息一旦被入侵者搜集得到,就可以根据网络特点有针对性地入侵,达到事半功倍的效果[2]。为了改变这种静态防御的被动性,有学者提出了移动目标防御(Moving Target Defense,MTD)的概念。MTD被美国科学技术委员会誉为网络空间改变游戏规则的革命性技术之一。在MTD的概念中,并不追求建立一种完美无瑕的系统来对抗入侵,相反,移动目标防御的思路是:构建、评价和部署机制及策略是多样的、不断变化的,这种不断变化的思路可以增加攻击者的攻击难度及代价,有效限制脆弱性暴露及被攻击的机会,提高系统的弹性[3],其最终目的就是通过移动需要保护的网络达到防御入侵的目的。所谓的移动,包含了跳变、躲避、滚动等多种含义,将这些行为统称为移动。
移动目标防御的目的是为了构建一种动态的,能够融合多种网络结构并有效运行的不确定网络来增加入侵的难度。其已经脱离了传统意义上的网络安全方法,采用了一些通信中的方法来解决网络安全问题。在移动目标防御中,网络的状态不仅与网络的配置相关,而且会随着时间、空间以及物理环境的变化而变化,因而大大增加了入侵难度。
1MTD关键技术
与移动目标防御类似的思想早在十多年前就已经被提出来了,直到2010年左右才由美国政府大力提倡,主要是因为经过了十多年的研究以及新技术的发展,MTD技术在理论和实践方面都取得了较大的进步。为系统地了解MTD技术的发展,本文从网络层、IP层、数据与指令层及软件应用层四个层面(如图1所示)对现有的MTD关键技术进行了梳理。其中数据与指令层包含了主机的数据存储与指令集的随机化,IP层包括IP图1MTD关键技术分层结构地址和端口地址的随机化,网络层包括网络结构和网络服务的随机化,应用层指的是利用软件的多样化技术进行移动目标防御。
1.1数据与指令层
指令集随机化是一种通过掩盖目标的指令集应对代码注入攻击的MTD方法,它最早是由Gaurav等人于2003年提出来的,其最初目的是为了对抗代码注入入侵。他们通过硬件仿真实现了指令集随机化技术,并证明了指令集随机化技术在Perl和SQL中的适用性。与此同时,Barrantes等人提出了随机指令集仿真(RISE)技术,它通过一个随机化的序列与程序中的每一个指令异或,得到一个随机化的指令集,在程序执行的时候再通过解异或从而得到真实的指令。由于代码注入攻击并不知道随机密钥,因而并不能做出具有同样功能的行为[4]。随后,在2006年,Hu等人利用128位的AES加密方法对程序块加密实现了指令集的随机化,这是一种用程序块的加密替代异或操作的方法。这种方法是建立在虚拟环境之上的,不支持自修改代码,而且生成的随机化二进制文件比原始版本有明显的增加。
在2008年,Stephen等人提出了一种更通用的指令集随机化方法,通过随机化系统的指令,不论采用什么注入方法,由入侵者注入的外来代码均不会被执行。这种方法不仅能防御栈溢出和堆溢出,而且能防御任何形式的远程代码注入。
随机化指令集不仅能够阻止代码注入攻击,而且能够降低网络蠕虫利用某一漏洞进行大规模扩散的可能性(恶意代码必须知道随机化的方法才能实现代码的注入)。需要注意的是,随机化的密钥的长度取决于底层的处理器,而周期性地改变随机化的密钥能够更加有效地降低被入侵的概率。与其他方法相比,Stephen等人提出的通用的指令集随机化方法对各种应用程序、编程语言和编译器更加透明,在不修改应用程序、编程语言和编译器的条件下,能够以较小的代价取得较好的性能。然而,由于Stephen等人提出的方法需要随机化系统的指令,因而需要硬件的支持,但是目前大多数的硬件并不允许任意地使用系统指令;同时,这种方法在链接和调试的时候也需要较多的资源。
地址模糊是数据和指令随机化的另一种方式,地址空间随机化或地址空间布局随机化(Address Space Randomization or Address Space Layout Randomization,ASLR)是地址模糊的典型代表。其基本思想是将目标在内存中的存储地址随机化,从而使得入侵者在知道目标地址后依然无法成功入侵,最后达到阻止入侵的目的。在2000年,PaX团队就在Linux操作系统上实现了ASLR技术[5],随后,众多研究人员在主流的操作系统(Windows、Mac OS)上均实现了这一技术。最简单的ASLR技术仅仅只随机化目标的基地址,在2003年,Sandeep等人通过同时随机化基地址和偏移地址达到更好的效果。Crispin 等人在2003年提出了一种基于异或的数据存储随机化算法,其基本思想是通过将指针值与一个随机键值异或后的值存储在内存中,当寄存器需要指针值时,再通过异或关系求出指针的真实值。这种方法通过扩展GCC编译实现,其实质是在编译的时候注入必须的指令。但是这种方法并不能针对无指针条件下的攻击。Xu等人在2003年提出了利用可控的数据随机来阻止入侵的方法,它利用扩展的编译器实现了函数指针和返回地址的模糊。Cadar等人在2008年提出了一种更通用的技术,可以使内存中随机键值的选择与目标类相关联。随着硬件技术的发展,Tuck等在2014年讨论了利用硬件实现高效代码指针加密的方法[6]。
1.2IP层
IP地址随机化是MTD技术的一个重要方面,在地址随机化技术研究中,主要包括DyNAT[7]、APOD[8]、NASR[9]、RHM及OFRHM[10]等研究成果。
Kewley等人在2001年提出的动态网络地址转换(Dynamic Network Address Translation,DyNAT)提供了一种通过IP地址转换避免中间人攻击的方法[7],它是一种在数据包进入核心网络或公共网络之前进行IP地址转换的机制。这一技术虽然能够发现嗅探者,但是它并不能发现隐藏在终端主机上的探测者。Atighetchim等人在2003年提出了基于地址和端口随机(Applications that Participate in their Own Defense,APOD)的技术[8],与DyNAT相比,其不仅随机化了IP地址,而且也随机化端口地址。APOD的原理是利用基于地址和端口随机化的跳变隧道伪装目标主机,以区分合法用户和嗅探器。这一方法并不是透明的,它要求服务器和用户端必须通过合作才能完成跳变的整个过程。Antonatos等人在2007年提出了网络地址空间随机化(Network Address Space Randomization,NASR)技术[9],这是一种局域网级别的基于DHCP更新的网络地址随机化方法,其主要目的是为了防范hitlist worms威胁。
然而上述三种防范内外部监听威胁的IP随机化技术均需要改变终端主机的配置,要研究的问题是,能否在不改变主机配置的条件下实现网络地址的随机化,基于此种考虑,Ehab Al Shaer等人在2011年提出了随机主机突变(Random Host Mutation,RHM)技术[10]。其主要特性是网络地址高速变化并难以预测,基本思想是通过给一个主机配备多个虚拟地址(vIP),在运行中不断地改变虚拟地址,使得入侵者无法实时获取运行时的地址,从而达到阻止入侵的目的。由于RHM技术中使用了虚拟地址,因此需要通过增加移动目标控制器(Moving Target Controller)和移动目标网关(Moving Target Gateway)进行真实地址(rIP)和虚拟地址(vIP)的转换。
之后,Ehab Al Shaer等人在RHM技术的基础上与软件定义网络(Software Define Network,SDN)及开放流(OpenFlow)技术相结合,提出了开放流随机主机突变(OFRHM)模型。OFRHM技术对于终端主机是透明的,并且能提供较高的突变速率。其实质是利用开放流研究移动目标防御体系结构,实现IP地址的不可预知性及高速变换,同时保持配置的完整性,并最小化操作管理[10]。在OFRHM模型中,IP变换对于后端主机是透明的,即终端主机的真实地址保持不变。另外,模型中的IP变换是高速和不可预知的,在入侵者能够探测到终端地址之前就发生一次突变,从而达到阻止入侵的目的。与RHM技术相比,由于OFRHM结合了SDN技术,因而它能够以更小的开销和更加灵活的方式管理地址随机化功能。OFRHM能够有效防御秘密扫描、蠕虫传播以及其他基于扫描的攻击[11]。虽然它不能应用于传统网络,但是随着SDN技术的发展,未来必将有较大的研究和利用价值。
1.3网络层
网络配置随机化的目的是为了阻碍入侵者扫描和发现入侵网络、发起拒绝服务攻击以及建立僵尸网络。MTD中关于网络层面的技术主要有自适应自同步动态地址转换(Adaptive SelfSynchronized Dynamic Address Translation,ASD)、突变网络(Mutable Networks,MUTE)[12]、自清洗入侵容忍技术(Self Cleansing Intrusion Tolerance,SCIT)[13]及基于IPv6的移动目标防御(Moving Target IPv6 Defense,MT6D)[14]等。
ASD最早是由Fink等人在2006年提出来的,其原理是通过不断改变服务器与主机的地址达到移动的目的。MUTE的基本想法最初是在2009年8月召开的“国家赛博跨越发展年会”上提出来的[12],其基本思想就是允许周期性地建立替换的随机配置(称之为网络突变),同时保持网络服务的连续性和完整性。MUTE技术必须满足四个条件:一是时效性,配置变化必须迅速;二是平滑性,配置变化必须足够平滑,尽可能地减少配置变化对网络延迟的影响;三是不可预测性,配置的变化必须不可预测,否则就失去了变化的意义;四是安全性,配置变化必须保证服务和网络的安全。E.Al-Shaer等人在2009年提出了一种创建网络配置有效突变的形式化方法,它给出了一种末端到末端的编码来为全局网络行为建模,然后通过二叉判决图的访问控制配置编码,从而控制每次网络突变的配置。
Huang Y等人在2010年提出了SCIT技术[13],由于入侵的每一步都依赖于系统的配置和属性保持长期的不变,如果可利用的时间比较短,则入侵者可能造成的损失就比较小,也就是说,如果在较短的时间内改变系统的配置或者属性,就可以在承受较小损失的条件下达到阻止入侵的目的。SCIT就是这样一种服务器切换模型,通过在较短的时间内服务器的不断切换和清洗来限制或阻挡网络入侵。
Owen Hardman等人于2013年提出了MT6D技术[14],这是一种网络层的移动目标防御方法。MT6D的实质是在主机与Internet之间设置一个网关设备,类似于路由器或者防火墙,对通信的主机透明。其原理是利用IPv6较大的地址空间,在保持通信的同时,不断改变IPv6地址,从而达到防御入侵的目的。尽管MT6D对系统具有较好的保护作用,但是由于需要不断地进行地址转换,因而其耗费的资源也是巨大的。
ASD与MT6D具有以下两方面的区别:ASD不需要具体地去区分IPv6,而是采用UDP通道传输修改过的TCP包;当通信地址发生变化时,通信的两个主机必须进行身份验证。MUTE与MT6D的区别在于MT6D仅仅改变主机间的IP地址,而MUTE在MT6D的基础上,还可以实现路由的随机跳变,通过IP地址和路由的随机跳变,达到隐藏内部网络结构,对抗网络探测攻击和指纹扫描的目的。MT6D与SCIT的区别与联系是:两者都可以看作是突变网络的一种,MT6D利用了IPv6较大的地址空间快速改变IP地址阻止入侵,SCIT是快速切换服务器配置阻止入侵,这两种技术都可以看作是突变网络中网络配置突变的一种具体实现。
1.4软件应用层
基于软件多态化的MTD技术主要分为两类:基于软件修改的多态化和利用编译器实现软件的多态化。
软件修改多态化包含的技术主要包括输入矫正、功能切除与替换、通过动态接口进行动态配置等。Martin等人于2003年提出了输入矫正的概念[15],其原理是将明显错误的输入自动修改从而使系统正常运行,以对抗入侵者利用某些漏洞通过错误输入入侵主机的目的。随后Martin等人又于2006年提出了切除程序部分功能从而自动规避漏洞的方法[16],其基本思想是找到并去除程序中不想要的功能或者达不到期望目标的模块以降低漏洞被利用的风险。Henry等人于2010年提出了通过动态接口进行动态配置的方法,其基本原理是将静态配置参数转换为动态配置模式以避免参数的暴露并消除漏洞。此外,还有通过修改循环次数、循环分配内存以及强制检测规则执行等方法实现软件修改的多态性。
基于编译器的软件多态化主要包含了MVEE(MaltVariant Execution Environment)和MSSD(MassiveScale Software Diversity)两类技术,这两类技术都依赖于自动化的编译器产生功能相同但代码不同的程序[17]。MVEE属于运行时的技术,其原理是一个程序构建多个变体,系统接收到的输入同时被送给所有的变体,这就使得入侵者几乎不可能针对所有的变体设计不同的入侵程序,然后在系统监控中比较所有变体的输出,如果输出不同,则预示着系统可能受到了入侵。在MVEE中,变体越多则监视的效果就越好,但同时也会带来额外的计算开销。Cox等人于2006年提出了“N变体系统框架”[18],这一框架需要修改系统内核,以便监控程序在核心层的运行。Jackson等人于2010年提出了一种采用用户空间解决方案的架构[17],避开了系统核心层的修改。对于一个特定的软件产品,大多数情况下所有用户使用的都是同样的拷贝副本,这样入侵者如果想要对特定软件进行攻击,则只需要研究一种副本就足够了,事实证明,以往的几次大规模的蠕虫爆发都与这种单一拷贝副本有关。MSSD是一种大规模的静态的软件多态化技术,其基本原理是,如果同一个软件产品可以有不同的副本(这些副本都可以实现相同的功能),那么入侵者要么对所有的副本进行研究,找出每一个副本的漏洞,然后入侵;要么找到一个非常巧妙的方法和漏洞,能够同时入侵不同的副本,这就增大了入侵者的入侵难度,能够更好地保护系统和软件的正常运行。
2MTD技术典型应用
随着MTD技术的发展,其在正向网络建设(如云服务)和专项威胁防御(如DDoS)等方面的应用也越来越广泛,这更加促进了MTD技术的发展。
随着云服务的快速发展,与云服务相对应的安全防御技术也越来越受到人们的重视,MTD就在云服务安全防御中扮演了重要的角色。在云环境中,一般会部署较多的虚拟机,如何保证云环境中虚拟机的安全是MTD技术应用的一个重要前提条件。在2012年,Yulong Zhang 等人针对这一问题提出了通过周期性迁移虚拟机来防御入侵的方法,解决了虚拟机迁移的代价评估和确定迁移周期的策略问题[19]。分析表明,虚拟机周期迁移的方法在可接受的代价条件下能够显著提高安全水平。在2014年,Wei Peng 等人建立了一个基于云服务的多样化和动态化的MTD评估模型,理清了MTD如何在云服务中发挥作用的问题。Su Zhang 等人于2014年指出了云计算内部存在的威胁并提出了一种针对数据中心的物理攻击的网络空间防御策略,将网络空间与物理空间联系起来并探索了虚拟化技术在应对物理攻击方面的作用。同时,Su Zhang 等人于2014年针对亚马逊的弹性计算云(Elastic Compute Cloud,EC2)分析了基础设施即服务(Infrustructure as a Service,IaaS)的脆弱性,并建立了博弈论模型和风险模型,比较了云环境和传统网络环境下的防御策略。通过与传统环境比较发现,在IaaS云中,要想发现已有的脆弱点需要付出更大的代价。同时,防御者可以通过较小的代价和更高的效率完成防御工作。
DDoS是一种严重的网络安全威胁,针对这一威胁,众多学者提出了各种应对方法,基于滤波和基于容量防御是两种典型的DDoS防御方法。然而这两种方法都是静态的,并且也不能应对复杂的入侵,如自适应泛洪入侵。MTD作为一种动态的防御方法被应用到DDoS防御中,Q. Jia等人于2013年提出了MOTAG(MOving Target defense mechanism AGainst Internet DDoS attacks)技术,这是一种典型的基于移动目标的DDoS防御技术[20]。这一方法的基本思想是在服务器和客户端通过代理节点进行中继传输,然后通过移动、隐藏代理节点达到保护中心服务器的目的。在MOTAG中,代理节点具有两个重要的特性:所有的代理节点在它们的IP地址和网络中都是隐藏的,只有在成功授权以后才可以被合法用户知道;代理节点是不断变化的,当任何一个代理节点被入侵以后,它会立即停止工作,转而由其他的未被入侵的节点接手它的工作。Huangxin Wang等人2014年提出了一种MOTAG的架构,并给出了实现这一技术的接近最优的算法,同时对算法进行了理论和仿真分析,分析结果表明MOTAG能够有效防御DDoS。
3面临问题与挑战
MTD技术刚刚起步,目前还面临着两大方面的问题,一是MTD技术自身的发展;二是MTD技术与其他网络技术融合的问题。
首先,MTD技术正处在研究之中,面临着很多技术问题。在数据和指令集随机化方面,虽然ISR能够明显增强系统的抵抗性,但是ISR并没有解决由于编程错误或者编码水平低下而导致的软件漏洞的核心问题,经过精心设计的蠕虫病毒依然能够突破ISR的防线,如何对抗这种病毒并增强ISR在维护系统安全方面的作用是将来的重要研究方向。在网络层,网络配置变化的速度决定了MTD网络抵抗入侵的能力,配置变化速度越快必然对网络的稳定性产生越大的影响,如何通过感知网络状态从而动态地调节网络配置变化速度,以达到降低网络性能损耗的目的也是将来研究的方向。另外,MTD技术必须在不影响现有网络条件的基础上才有实用的可能,这也就意味着网络层的MTD技术面临的必须适应现有的网络基础设施、网络服务以及网络协议,这是MTD技术面临的一个较大的挑战。现有的MTD的构建、评价和部署机制都是单一的,不仅可以从多个层次实现MTD技术,而且每个层次内部也有多种MTD技术,如何实现多种MTD技术的融合也是其发展中必须解决的问题。
其次,虚拟化和云计算技术是网络技术发展的趋势,MTD如何与这些网络技术融合也是一个巨大的挑战。根据2015年国际互联网安全大会上唐青昊的报告,现在的虚拟化基础设施的安全和云计算系统的安全存在着巨大的漏洞,MTD技术与上述两种技术的结合与综合应用必然是将来发展的方向。另外,SDN作为一种新型网络架构,其原理就是将控制逻辑从网络交换设备中“分离”出来,当控制器是可编程的时候,就可以通过控制器对网络设备的流表进行修改,让路由设备灵活地达到安全防御方面的目的。随着SDN在企业中的应用越来越广泛,基于SDN的MTD技术也是未来发展的一个热点和方向。
MTD关键技术特点如图2所示。结构层级关键技术特点应用层基于软件修改针对某种具体的功能实现软件修改基于编译器方便,依赖于自动编译器网络层ASD变化简单,同步开销大MUTE变化多样,不可预测。但保持网络中变化的同步性和安全性具有一定挑战SCIT配置变化较快MT6D地址空间大,变化多IP层DyNAT可随机化IP地址,对抗中间人攻击,但不能发现终端主机的嗅探者APOD同时随机化IP地址与端口,不透明NASR局域网级别的DHCP更新,主要是防范hitlist worms威胁RHM不需改变终端主机配置,开销较大OFRHM透明,开销小,但不能用于传统网络指令与
数据层ISR能阻止漏洞扩散,需要硬件支持ASLR可利用硬件实现快速加密,但只能在有指针的条件下实现图2MTD关键技术特点4结论
MTD作为一种革新性的技术,其基本思路就是将以往的被动防御转为移动目标下的主动防御,将固定不变的网络转换为灵活可变的网络。本文总结了目前一些MTD的关键技术及其应用,分析了各种技术的特点(见图2),并展望了MTD技术发展的前景。从MTD的技术思路以及近几年的发展来看,它并不依靠增加安全系统的复杂度实现对目标的保护,而是充分利用目标所处的时间、空间和物理环境实现对目标的保护,极大地增加了入侵难度,优势非常明显。MTD比传统网络安全手段具有更好的防御效果,是未来网络安全领域的重点发展方向。
参考文献
[1] 叶健健,文志诚,吴欣欣,等.基于多层次数据融合的网络安全态势分析方法研究[J].微型机与应用,2015,34(8):57,11.
[2] 朱宇,袁帅.立体化网络应用层协议识别的研究与实现[J].电子技术应用,2014,40(1):6063.
[3] SUSHIL J, ANUP K G, VIPIN S, et al. Moving target defense—creating asymmetric uncertainty for cyber threats[M]. NewYork: Springer Press, 2011.
[4] BOYD S W, KC G S, LOCASTO M E, et al. On the general applicability of instruction set randomization[J]. IEEE Transactions on Dependable and Secure Computing, 2008,7(3):225270.
1.文章《linux mtd是什么》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《linux mtd是什么》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好