段鹏飞,兰 茹
(中国石油大学(华东)海洋与空间信息学院,山东 青岛 266580)
不断发展的计算机技术使人们的日常生活日益方便快捷,但随之而来的是频发的网络安全事件[1]。基于先验知识的安全防御体系(如防火墙、入侵检测、主机监控等)具有反应迅速、防护有效的优点,但这种静态且被动的防御体系无法有效应对未知的敌手攻击。为改变这种攻防不对称的局面,移动目标防御(Moving Target Defense, MTD)日益成为研究热点[2]。
MTD的主要思想是构建多样且伪随机的主动防御策略,从而增加攻击者成本,降低其成功概率。近年来涌现出多种类型MTD技术,主要分为3种类型:系统级、应用级和网络级[3-5]。系统级MTD专注于动态切换主机操作系统、指令集合等;应用级MTD涉及借助改变应用软件及内存上下文来实现主动防御;网络级MTD指的是动态地改变系统网络配置参数及网络拓扑从而实现主动防御。近年来学者们提出的代表性网络级MTD技术有端信息跳变[6-7]、MT6D[8]、SDN-based MTD[9]等。
现有的网络级MTD技术是依靠中央控制器来制定和部署主动防御策略,但多采用静态单一的中央控制器。这种集中式的管理架构存在单点故障的风险。若中央控制器发生故障,则整个MTD系统将陷入瘫痪,从而失去主动防护能力。
基于区块链去中心化、去信任、数据不可篡改等特点[10],本文提出一种基于区块链的网络级移动目标防御系统设计方案。基于工作量证明(Proof of Work, PoW)共识机制,本文实现中央控制器的动态切换,从而克服单点故障问题。同时,基于区块链所构建的分布式可信网络环境,本文在设计中引入负载均衡机制与容灾备份机制,这使得该系统具有良好的高并发服务请求能力以及遭遇致命网络攻击后的服务快速恢复能力,从而显著提高系统的鲁棒性。
Luo等人[11]提出了一种随机端址跳变技术RPAH(Random Port and Address Hopping),通过不断切换IP地址与通信端口来起到迷惑攻击者的作用,从而使其无法获取准确的主机信息并发动有效攻击。为解决端信息跳变策略的盲目选择问题,刘江等人[12]提出了一种基于Sibson熵的网络威胁感知机制以指导端信息跳变策略的自适应选取。由于IPv4地址范围有限,Dunlop等人[8]提出了MT6D(Moving Target IPv6 Defense),利用IPv6广阔的地址范围进行移动目标防御,增加了攻击者的攻击成本,对降低其攻击成功率具有重要意义。得益于软件定义网络(Software Defined Network, SDN)的高度可编程性,Kampanakis等人[13]基于SDN实现了高效的随机地址切换,使得系统具有良好的灵活性与可扩展性。
然而,上述系统多采用静态单一的中央控制器,这使得该集中式的管理架构存在单点故障问题,若中央控制器发生故障,则整个系统将陷入瘫痪状态。因此,集中式中央控制器是制约网络级MTD技术发展的瓶颈。
作为数字货币的底层技术,区块链近年来已被应用至诸多领域,包括银行金融、公共服务、智能物联、隐私保护等[14-18]。
针对公钥基础设施(Public Key Infrastructure, PKI)存在集中式证书颁发机构(Certificate Authority, CA)单点故障以及CA不可信问题,Fromknecht等人[19]提出了基于区块链的分布式PKI方案,利用区块链去中心化的特点,消除PKI信任根,实现真正的分布式PKI建设。Magdy等人[20]构建了基于区块链的联邦云,克服了异构多样的联邦云中节点不可信问题。Sharples等人[21]基于区块链搭建了教育信息存储与评估系统,保证教育记录的安全性,实现公开透明及公平公正。
由此可见,区块链可有效解决系统中心化及节点不可信问题。因此,本文提出基于区块链的网络级MTD系统来解决系统中由中央控制器所引起的中心化问题。
本文选择端信息跳变作为网络级MTD技术的代表,构建基于私有链的端信息跳变系统,其系统模型如图1所示。不同于公有链,私有链中节点的加入与数据读取都需要经过系统管理员授权,从而保障系统的安全性与数据的隐私性。本文基于PoW共识机制实现了中央控制器的动态轮转,因此私有链中各节点的可能角色为动态中央控制器与端信息跳变服务器。
图1 基于区块链的端信息跳变系统模型
PoW是比特币中采用的共识机制,它确保了区块链中各节点以比拼算力竞争账权的方式维护账本,保证了分布式账本的一致性与不可篡改性。
PoW的工作流程如图2所示。各节点在本地组装候选区块,然后通过不断调整随机数来变更区块头的双重哈希值使其满足目标值,上述过程被称为挖矿且执行挖矿过程的节点被称为矿工。挖矿成功后,矿工将该区块广播至整个网络。经其他节点验证通过后,该区块将被添加至分布式账本中,矿工获得挖矿奖励。
图2 PoW工作流程
受上述过程启发,本文选择成功挖矿的节点作为动态中央控制器,直至其被下一轮成功挖矿的节点替代。因此,动态中央控制器的任期为区块链的出块时间,这是由区块头中的挖矿难度值决定的。同时,区块链挖矿过程的持续性与每轮次成功挖矿节点的唯一性保证了在新旧动态中央控制器的交替过程中不会出现控制器空白期,且系统运行过程中始终保持有且仅有一个动态中央控制器,这对保障系统的平稳正常运行具有重要意义。
本文中,成功挖矿的节点将当选本轮动态中央控制器。其在任期内将保障系统的正常运行,涉及的机制如下。
2.2.1 自适应策略调整机制
为应对如泛洪攻击等网络攻击事件,端信息跳变系统可采取复杂的跳变图案或较快的跳变速率,这会使得攻击者确定攻击目标的难度增大以及攻击成本增加,从而取得较好的主动防御效果。但若系统一直保持此防御状态将会导致性能消耗增加,并且端信息跳变服务质量也随之下降。
为权衡系统性能与主动防御效果,本文方案在动态中央控制器中部署了自适应策略调整机制。通过对实时流量的动态监测,动态中央控制器会判断是否有异常流量行为发生。随后针对分析结果,动态中央控制器会适时调整端信息跳变策略,在保证服务正常运行的同时,取得较好的主动防御效果。自适应策略调整机制使得系统在正常流量环境下采用简单的跳变图案或跳变速率来获得较高的服务质量,在攻击流量环境下采取复杂的跳变图案或较快的跳变速率来获得良好的主动防御效果。自适应策略调整机制对节约系统性能、保障系统服务质量具有重要意义,其模型如图3所示。
图3 自适应策略调整机制模型
2.2.2 负载均衡机制
通常,单一端信息跳变服务器在处理高并发访问请求流量时的能力有限。为避免端信息跳变服务器出现服务请求过载情况,本文方案在动态中央控制器中部署负载均衡机制,从而提高系统的高并发访问请求处理能力。在负载均衡机制的统筹协调下,动态中央控制器会将来自合法端信息跳变客户端的服务请求均等地分配至每个端信息跳变服务器,从而降低各服务器所承担的服务压力,避免出现单一服务器过载情况。
2.2.3 容灾备份机制
端信息跳变服务器虽能够通过复杂的跳变图案或快速的跳变速率取得良好的主动防御效果,但单一的端信息跳变服务器所具备的防御能力是有限的。大规模高强度的恶意泛洪主动攻击会使其瘫痪,并导致端信息跳变服务中断。
为应对这种极端情况并保持在致命攻击下服务的正常运行,本文方案在动态中央控制器中部署了容灾备份机制,使得端信息跳变服务在遭受致命网络攻击后仍能够正常运行。当正在提供用户服务的端信息跳变服务器瘫痪后,动态中央控制器会将当前用户数据从瘫痪主机转移至其他正常主机中,在保证用户服务不受影响的同时,实现端信息跳变服务的快速恢复。容灾备份机制模型如图4所示。
图4 容灾备份机制模型
在本文所提出的基于区块链的端信息跳变系统中,所有的私有链节点通过PoW共识机制参与动态中央控制器的竞争。由于成功挖矿节点的唯一性,每轮中只有一个私有链节点能够成为动态中央控制器,其余节点将在该控制器任期内担任普通的端信息跳变服务器。因此,私有链节点的另一个可能角色为端信息跳变服务器。
端信息跳变技术是通过不断地改变主机的网络配置参数(如IP地址、端口、通信协议等),实现移动目标防御。以端信息取IP地址和端口port为例,端信息跳变技术可被描述为:
其中,从时刻t到时刻t+1的端信息跳变过程表示为δ,F(hop)表示端信息跳变速率,H(t)表示在时刻t的IP地址与port的组合,即(IP,port)t。端信息跳变模型如图5所示。
图5 端信息跳变模型
本章对基于区块链的端信息跳变系统进行性能分析,包括安全性及鲁棒性。
本文使用私有链构建基于区块链的端信息跳变系统。不同于公有链,各节点只有经过系统管理员授权后才能加入私有链参与动态中央控制器的选举以及链内数据的访问。私有链的许可制度大大降低了恶意节点参与系统正常运行的可能性,对保障系统安全以及链内数据隐私具有重要意义。利用区块链中数据不可篡改的特点,本文方案中的跳变策略以及用户数据都被记录在区块链中。一方面,链内各节点可以实现可信的数据共享,而无需担心数据被恶意篡改;另一方面,端信息跳变服务器只会依据由时任动态中央控制器通过区块链下达的指令进行策略调整,因此不可篡改的链内数据可以为恶意节点的作恶行为留存证据,便于日后的取证追责。
为解决集中式端信息跳变系统中控制器单点故障问题,本文基于PoW共识机制实现了控制器的动态轮转。时任动态中央控制器发生的单点故障并不会影响其他节点进行的共识选举过程,即下一轮中的动态中央控制器会担起前任责任,使得系统恢复正常运行。
动态中央控制器中部署的负载均衡机制能够使得系统中的端信息跳变服务器在面对高并发请求流量时,仍能保持良好的服务性能。另外,由于部署有容灾备份机制,动态中央控制器能够将在高强度恶意攻击中瘫痪服务器的用户数据转移至其他正常服务器,从而快速恢复端信息跳变服务,保障用户的正常使用。综上所述,系统具有良好的鲁棒性。
本文实现了基于区块链的端信息跳变原型系统,其由7台Linux主机构成,其中5台为私有链节点,1台为端信息跳变客户端,1台为外部攻击机。Linux主机配置如表1所示。
表1 Linux主机配置
以太坊是一个开源的且具有智能合约功能的区块链平台[22]。本文基于以太坊Ethereum v1.8.10搭建原型系统私有链,采用Python编写系统的上层应用,通过web3.js与底层区块链进行交互。另外,本文采用Solidity编写智能合约,并通过Remix平台完成其编译与部署。
区块头中的挖矿难度值决定了区块链中区块的出块时间,也决定了本方案中动态中央控制器的切换时间,因此本文测试并给出了平均出块时间为20 s、40 s、60 s、80 s所对应的4种挖矿难度值,分别为0x1ccccb、0x2ffffd、0xbffff4、0x1dfffe2。在系统部署的过程中,可以通过更改创世配置文件genesis.json中的难度值来调整动态中央控制器的切换周期,以满足系统需求。本文设置动态中央控制器的切换周期为60 s。本文使用的创世配置文件如图6所示。
图6 创世配置文件
经过500次PoW共识机制后,本文统计了各节点担任动态中央控制器的频率,如图7所示。各节点被使用次数分别为108、100、93、102、97,可以看出各节点担任动态中央控制器的频率大致相等,由此可说明本方案成功地实现了中央控制器去中心化。
图7 频率分布
在现有的端信息跳变系统中[7],担任中央控制器的主机始终是固定不变的,它通过下发指令来控制系统中的端信息跳变服务器进行主动网络防御,形成了集中式的管理拓扑结构,为端信息跳变系统带来了单点故障的风险。因此,本文提出基于区块链的端信息跳变系统来解决此问题。为了验证本方案的有效性,本文选取现有集中式端信息跳变系统作对比,分别对系统中的中央控制器及端信息跳变服务器进行测试。
4.2.1 中央控制器鲁棒性测试
针对2种模式的中央控制器,本文使用Hping3对其发起泛洪攻击并分别记录二者对端信息跳变客户端服务请求的响应时间,实验结果如图8所示。
图8 中央控制器响应时间
从图8中可以看出,二者的响应时间在实验开始时并无差异。但随着泛洪攻击强度的提高,二者的响应时间从第2 min开始都有明显的提高且在第3 min时不再对用户请求作出响应,这说明泛洪攻击对控制器性能具有显著影响。与集中式中央控制器彻底陷入瘫痪不同,本文方案中动态中央控制器的瘫痪状态并未持续过长时间,在经过新一轮的共识选举后,新的动态中央控制器使得系统功能得以恢复正常。由此可说明本文方案中的动态中央控制器具有良好的鲁棒性。
4.2.2 负载均衡测试
为说明本文方案中负载均衡机制的优越性,本实验对2种模式中端信息跳变服务进行高并发访问请求,并分别记录其响应时间。实验结果如图9所示。由于集中式端信息跳变系统未采用负载均衡机制,导致其中的端信息跳变服务器容易出现过载现象。
图9 负载均衡测试结果
由图9可知,随着请求数量的增加,集中式端信息跳变服务器的响应时间也大幅提高。与之相反,本文方案中端信息跳变服务器的响应时间未出现明显变化,这说明负载均衡机制对于缓解单机服务压力、提高系统整体性能具有重要意义。
4.2.3 容灾备份测试
为测试端信息跳变服务的鲁棒性,本实验对2种模式下的端信息跳变服务器发起高强度攻击,并记录对客户端正常访问的响应时间。实验结果如图10所示。
图10 容灾备份测试结果
由图10可见,2种模式下的端信息跳变服务器在攻击强度达到60 Mbps时都无法对请求再做出响应。但是,由于本方案中的容灾备份机制,动态中央控制器将受损服务迁移至其他正常服务器,使得用户服务迅速恢复正常。综上所述,容灾备份机制使得端信息跳变具有良好的鲁棒性。
为解决现有集中式网络级移动目标防御系统中存在中央控制器单点故障问题,本文设计了基于区块链的端信息跳变系统。基于PoW共识机制,实现了中央控制器的动态轮转,从而实现中央控制器去中心化。同时,在区块链所形成的可信环境中,各节点间可共享用户数据并进行协同防御。因此,在动态中央控制器的统筹控制下,本文实现了负载均衡与容灾备份,有效提高了系统的鲁棒性。
鉴于区块链所具有的优良特点,将来存在可以探索利用区块链来解决系统级及应用级移动目标防御系统中瓶颈问题的可能性。另外,基于区块链的移动目标防御系统中的隐蔽保护与访问控制也值得进一步讨论。