邵嘉炜,范磊
云环境下一种基于动态网络结构的拒绝服务防御技术
邵嘉炜,范磊
摘 要:介绍了一种在云环境下通过动态改变网络结构抵御拒绝服务攻击的防御方案,利用云环境下资源配置弹性化的特点,将合法用户重新分配到拥有新地址,但地址对外保密的备份主机上,以避开攻击流量。攻击者通常控制着部分合法账户以收集系统信息,他可以通过追踪这些账户的重分配以获取新主机的网络地址。注意到重分配结果与受攻击者控制的用户分布之间存在关系,并以此设计了用户分配算法,通过提高正常用户在参与每轮重分配的所有用户中的比例,使更多的正常用户与攻击者控制的账户分离而免受攻击。实验证明,与现有研究相比,在资源受限的情况下,其方案能在更少的重分配轮数内保护绝大多数用户,使系统在更短的时间内恢复正常。
关键词:云计算;拒绝服务;弹性配置;动态防御;用户重分配
范 磊(1975-),男,上海交通大学,电子信息与电气工程学院,副教授,博士,研究方向:内容安全、网络安全管理,上海,200240
拒绝服务攻击是一种危害性极强的网络攻击,攻击者往往能以较低的成本使受害网络应用停止服务,给受害者造成极大的损失。对于拒绝服务攻击,传统的防御方法包括包过滤、应用层异常行为检测和流量限制等。这些基于特定攻击特征的静态防御方法在当前日益复杂多变的复合式攻击面前往往因为其灵活性不足而不能发挥理想的效果。
本文介绍了一种云环境下基于动态网络结构的拒绝服务攻击防御方法。与传统方法不同的是,该方案利用了云环境资源动态分配的能力,通过动态改变网络结构将受认证的合法用户重新分配到拥有新网络地址的服务器上,从而避开攻击流量,避免受到攻击的影响。针对攻击者通过控制部分合法账号以追踪新服务器创建的行为,在现有研究的基础上,本文利用重分配结果与受攻击者控制的恶意账户在全部用户中的分布之间的关系,通过提高参加重分配的用户中正常用户的比例使尽可能多的正常用户在重新分配到新服务器后与恶意账户隔离而免受攻击。
对于拒绝服务攻击,传统防御方法包括:根据源地址和协议等流量特征动态配置防火墙过滤规则[1];给来自合法用户的报文加上标记,使这些报文优先获得足够的带宽[2];使流量先通过具备检测和防御能力的重叠网络,从而在攻击发生时进行基于全网的响应[3]等。这些防御方法本质上都属于基于报文和流量特征的静态防御,面对当前复杂多变的复合式拒绝服务攻击往往暴露出灵活性不足的问题,而且基于全局的防御方法对网络基础设施有很高的要求,实现成本较高。
面对传统方法存在的缺陷,H. Wang等人设计了基于动态防御的MOTAG系统[4]。该系统使用网络代理保护目标服务器,每个代理具有独立的秘密地址,用户只能通过访问系统分配的代理获得服务。系统受到攻击时,代理将被若干离线代理代替以避开攻击流量。由于攻击者可通过其控制的合法账户追踪到新代理的网络地址并发起新一轮攻击,论文基于概率模型设计了用户随机分配算法,使每轮分配后与攻击者控制的账户隔离而免于受害的正常用户数的期望达到最大。近年来云计算技术得到了快速发展,云平台具备资源分配弹性化的特点,能显著降低动态防御的实现难度。Q.Jia等人在云平台上构建MOTAG系统,在攻击发生时启动云服务器的备份替代受害服务器,并直接回收受害服务器资源,使资源利用更经济[5]。
文献[4]和文献[5]中的MOTAG系统仅根据当前系统的受害情况计算新一轮用户重分配方案,本文注意到重分配结果与受攻击者控制的恶意用户在全部用户中的分布之间存在联系,并结合现有研究成果设计了用户重分配算法,以提高参加分配的所有用户中正常用户的比例,使每轮分配后有更多的正常用户得到保护。
2.1 研究模型
本文研究模型基于以下假设:
1)本系统利用云平台资源分配弹性化的特点,通过动态改变系统和网络配置降低拒绝服务攻击对系统造成的损害。云平台有足够的资源和能力及时执行系统所需的网络配置的改变和用户数据迁移等工作。
2)本系统中用户必须通过认证才能得到服务。认证服务器可通过验证码等基于验证性工作(Proof-of-Work)方法对抗拒绝服务攻击。本文假设认证服务器不会因受到攻击而停止服务。
3)攻击者有能力对网络服务中若干台特定主机发动攻击并使其瘫痪,但不能使整个云平台停止服务。
4)攻击者能够通过控制部分合法账户收集服务器信息,但这些恶意用户数远小于所有合法账户总数。
5)检测到攻击的发生后,系统根据当前受害情况对受害用户执行用户重分配算法,并进行新服务器创建和用户迁移。未受攻击的用户不参与重分配。攻击者控制的恶意用户与部分正常用户一起迁移到新服务器上,攻击者发现新服务器后即可发起新一轮攻击。本文假设恶意用户所在的服务器一定会受到攻击,而不含恶意用户的服务器一定不会受到攻击。
2.2 系统结构
在已有研究基础上,本文设计了基于动态网络结构的拒绝服务防御模型,如图1所示:
图1 系统结构示意图
认证服务器是系统的入口。用户通过认证后,中心控制器为该用户分配一台服务器,把该用户的信息注册到该服务器的访问控制列表中,同时将网络地址以秘密的方式告知该用户。用户发起网络连接并获取服务。
系统检测到拒绝服务攻击的发生后,执行用户分配算法,启用若干备份服务器以取代受害服务器,并将受害用户迁移到新服务器上。新服务器拥有全新的网络地址,只对分配到该服务器的用户公开,不会被以原服务器地址为目标的攻击所影响。
攻击者通常控制部分合法账户以收集信息,这些账户同样会参与用户重分配,攻击者可通过追踪这些账户的重分配过程发现新服务器。如图2所示:
图2 利用用户重分配保护正常用户
当正常用户被重分配到不含恶意用户的服务器上时,他们不会受到新一轮攻击的影响。
攻击响应系统的工作流程如下:
检测到攻击发生时,控制器对系统受害情况进行评估,如果高于门限值,则执行下一步骤,否则不需要执行重分配;
根据资源和当前受害情况执行重分配算法;
根据分配结果启动备份服务器并执行用户重分配,其地址只向对应的用户公开;
用户分配完毕后,系统回收受害服务器资源,继续对服务进行定时检测;
不含恶意账户的服务器不会被攻击者知晓,因而不会受到攻击。系统将一段时间后未受攻击的用户视为正常用户,可将他们迁移到一起以节约资源。而攻击者通过其控制的恶意账户追踪到服务器的新地址并发动新一轮攻击。系统检测到攻击发生后,执行步骤1以重新激活攻击响应系统。
3.1 基本原理
设N为受到攻击的合法用户总数,Ni为恶意用户数,假定Ni远小于N。设每次重分配能同时使用的备份服务器数最多为S,ai为第i台服务器上用户的总数,在所有用户中取ai名用户共有种取法,而使这台服务器上全部都是正常用户共有种取法,则这台服务器上没有恶意用户的概率是,由此可得正常用户数的期望为公式(1):
鄱阳湖区圩堤管理单位与堤防管理人员在以往的堤防管理工作中,特别是在在历次的抗洪抢险工作中,在各级水行政主管部门的领导下,发挥了极大的作用,为防洪减灾、为当地的工农业生产和购买经济建设作出了很大贡献。鄱阳湖生态经济区重要圩堤管理单位基本分为县、乡管理模式。如廿四联圩长90km,由新建县廿四联圩管理局管理,属事业单位,管理员6人,年均投入维护资金10万元。这种管理性质的差异体现在管理工作中的结果是职能不清,责任不明,有事无人管,经费无保证。
所以,s台服务器上正常用户总数的期望为公式(2):
重分配算法的目标是使尽可能多的正常用户分配到不含恶意用户的服务器上,即求出使E(Ans)最大。
文献[4]使用了一种基于贪心策略的用户重分配算法。该算法通过遍历ai的所有可能值,得到使公式(1)中E (Ai)最大的ai,并直接使用该值进行用户分配。文献[4]将斯特林公式得公式(3):
3.2 恶意用户数估计
3.1节中的算法把恶意用户数作为计算用户分配方案的重要参数,因此准确估计恶意用户总数对算法效率影响很大。文献[4]和[5]通过建立恶意用户数Ni与未受害的服务器数为X的概率 之间的关系式,取使该值最大的Ni作为恶意用户数的估计值。该算法涉及大量的大整数组合数计算,计算量很大。
本文设计了基于统计模拟的恶意用户数Ni最大似然估计算法,主要思路是根据每个可能的Ni值,构造与样本中用户总数相同且恶意用户数为Ni的测试样本,根据当前分配方案重复进行用户分配实验,分别统计实验结果中未受攻击的服务器分布与实际情况相同的次数,取次数最多的Ni 为当前样本中恶意用户的估计值。完整的算法如算法1 所示:
输入: AllocList :上一轮重分配的分配方案SafeList : 上一轮重分配后未受攻击的服务器列表TotalUser:当前受害用户总数输出: 系统中受攻击者控制的恶意用户总数的估计值function Estimate (AllocList, SafeList, TotalUser ): 1: MinInsider = AllocList.length - SafeList.length 2:MaxInsider = AllocList.users - SafeList.users 3: TotalClients = AllocList.users 4: MaxOccurTimes = 0 5: InsiderEstimate = -1 6: for CurInsider ← MinInsider to MaxInsider: 7: AllList= MakeList(TotalClients, CurInsider) 8: OccurTimes = 0 9: for i← 1 to Times: 10: random.shuffle(AllList) 11: Reallocate clients in AllList by AllocList 12: Get servers not under attack NewSafeList 13:if NewSafeList.equals ( SafeList ): 14:OccurTimes = OccurTimes +1 15: endif 16: endfor 17:if OccurTimes>MaxOccurTimes: 18:MaxOccurTimes = OccurTimes 19:InsiderEstimate = CurrentInsider 20:endif 21: endfor 22: return InsiderEstimate * TotalClients / TotalUser
本算法不涉及大数的组合数计算,实现难度较小,但算法运行时间随用户总数增长,实际应用中可通过查表实时获取恶意用户的估计值。
3.3 用户分配算法
由4.1节可知,在参与重分配的用户全部由全局随机选取的情况下,重分配后获得保护的正常用户数的期望只与恶意用户占总用户的比例N/Ni有关,因此降低恶意用户在参与重分配用户中的比例能提高重分配效率。若可同时使用的网络资源足够多,则所有用户都能参加重分配。本节讨论网络地址资源受限时,如何优化重分配中用户的选取提高重分配的效率。
当一台服务器受到攻击时,该服务器上所有用户受攻击者控制的嫌疑是相同的。系统执行用户重分配算法并对用户进行重分配,一段时间后,存在恶意用户的服务器会重新受到攻击。如果使用贪心算法,且用户以随机均匀的方式分配,则每台服务器上恶意用户数的总期望值为1,设有S1台服务器参与本轮重分配,则参与本轮重分配的恶意用户数期望为S1,而没有分配到恶意用户的服务器数均值为公式(5):
则每台受害服务器上恶意用户数的均值为公式(6):
公式(6)表明每台受害服务器上恶意用户数的均值是常数1.58,由此可知受害服务器上恶意用户的比例有极大的概率高于恶意用户在全部用户中的比例,同时一台受害服务器上恶意用户的比例可用该服务器上用户总数衡量。随着受害服务器上用户数不断减少,受害服务器上恶意用户的比例随之增加。因此,本文将前一次重分配后受害服务器上的用户放入一个队列的尾部,并从队首获取参加本轮重分配的用户,使参与重分配的用户中正常用户的比例提高。
但是,由于从队首得到的用户中恶意用户的比例低于全局,无法通过这些用户的受害情况估计全局恶意用户数。本文将用户分配过程分为两部分,先从全局随机抽取一定比例的用户,再从队列的队首获取剩下的用户,用户重分配在两部分用户中分别进行,因此下一轮用户分配时能通过前一轮从全局随机抽取用户的受害情况估计全局恶意用户数,同时又能利用队首用户中恶意用户比例小于全局的性质使更多的正常用户与恶意用户分离。
完整的用户分配算法如算法2所示:
算法 2:用户重分配算法输入: AllocList : 上轮重分配方案SafeList :上轮重分配后未受攻击的服务器列表Queue: 一个队列,保存所有受害用户的信息RandRate: 随机抽取用户组成的服务器占全部服务器的比例AllServer: 本轮重分配中可用的服务器数最大值输出: 本轮重分配方案function Reallocation (AllocList, SafeList, Queue, RandRate, MaxServer ): 1: Estimate Insiders by sampled users in AllocList 2: Plan = Greedy (Queue, Insiders, AllServer ) 3: RandServer = AllServer * RandRate 4: RandPlan = Plan.subList (0, RandServer ) 5: QueuePlan=Plan.subList (RandServer, AllServer) 6: Shuffle attacked users and let them enqueue Queue 7: Randomly pick users from Queue to make up RList by RandPlan 8: Dequeue users to make up QList by QueuePlan 9: return combineList ( RList, QList )
本文使用贪心算法计算用户分配方案,根据事先确定的比例以全局随机和队列队首两种方式选取参加重分配的用户,并将分配方案分别应用于这两部分用户。系统当前恶意用户数的估计值由上一轮全局随机获得的用户的受害情况而得。初次运行用户重分配时,使用默认的重分配方案,所有参加重分配的用户都从全局随机获得。
本章以系统正常用户数、恶意账户数和可用的服务器数最大值为参数,对MOTAG算法和3.3节中基于队列的用户分配算法进行仿真实验,通过比较在不同恶意用户数下保护80%或95%的正常用户所需的重分配轮数评估两个算法的性能。实验中每个数据点都经过30次重复实验取均值而得,所有算法的第一轮分配都相同,全局随机获取的用户占全部参与重分配的所有用户之比为0.3,结果如图3至图6所示:
图3 正常用户数为10K,可用服务器数为100
图4 正常用户数为100K,可用服务器数为100
图5 正常用户数为10K,可用服务器数为50
图6 正常用户数为100K,可用服务器数为50
由图3至图6可知,本文算法与MOTAG性质相近,重分配轮数与恶意用户数呈线性相关性。恶意用户数小于或接近于可用服务器数时,两种算法性能相近,这是由于此时系统中绝大部分用户都能参加每一轮重分配,使本文
算法的用户分配策略失效。恶意用户数大于可用服务器数时,本文算法可节约10%重分配次数,且两者比值越大,优势越明显。
为测试算法2中两种用户选取方法的性能,本文改变参加重分配的服务器数和恶意用户数,保持其它参数不变进行30次实验,比较两种方法使正常用户获得保护的概率。实验结果如表1所示:
表1 算法2中两种用户选取算法性能比较
由表1可知,从队首获取的用户受到保护的可能性普遍高于从全局随机获取的用户,由此说明了该方法能使重分配算法的效率得到提高。
本文讨论了一种基于动态网络结构的拒绝服务防御方案。与基于静态防御的传统方法不同的是,本文通过主动改变系统本身网络结构使攻击者失去有效目标,从而保护了系统内的合法用户免受攻击。随着云计算技术的不断发展,其资源配置弹性化的特点极大地降低了动态网络结构的实现难度,使云平台成为实现本方案的最理想平台。
对于攻击者可控制部分合法账户,通过跟踪这些账户的分配过程获取新服务器地址,本文在已有研究的基础上,利用重分配结果与恶意用户分布之间的关系提高参与重分配的用户中正常用户的比例,使更多的用户在重分配后获得保护。实验证明,与现有研究相比,在资源受限的情况下,本方案能在更少的重分配轮数内使绝大多数用户与恶意账户隔离,使系统在更短的时间内恢复正常服务,从而论证了本方案的有效性。
参考文献
[1] Chen,Qi,Wenmin Lin,Wanchun Dou,et al.CBF: a packet filtering method for DDoS attack defense in cloud environment[C].Sydney:IEEE,2011:427-434.
[2] Natu,Maitreya,Jelena Mirkovic.Fine-grained capabilities for flooding DDoS defense using client reputations[C]. New York:ACM,2007:105-112.
[3] Shi,Elaine,Ion Stoica,David G.Andersen,et al.OverDoSe: A generic DDoS protection service using an overlay network[R].Pittsburgh:Computer Science Department, Carnegie Mellon University,2006:76.
[4] Huangxin Wang,Quan Jia,Dan Fleck,et al.A moving target DDoS defense mechanism[J].Computer Commun ications,2014,46(2014):10-21.
[5] Jia,Quan,Huangxin Wang,et al.Catch Me if You Can: A Cloud-EnabledDDoSDefense[C].Atlanda:IEEE,2014: 264-275.
Dynamic-network-structure Based on Defense Technology against Denial of Service Attacks in Cloud Environment
Shao Jiawei, Fan Lei
(Department of Electronic Information and Electrical Engineering, Shanghai Jiaotong University, Shanghai 200240, China)
Abstract:The paper introduces a dynamic-network-structure-based network defense mechanism against Denial-of-Service attacks. On the basis of the elastic of configurations and resource allocations in cloud platforms, the system reallocates the affected clients to newly initialized backup servers with new secret network addresses, which makes them avoid being attacked. Since attackers may trace the migration of the clients under their control (insiders) to discover these new servers, the paper notices the relation between the shuffling results and the distribution of the insiders and introduces a client-shuffle-and-reallocation algorithm based on the results of every previous shuffle to isolate as many benign clients as possible from attackers. Simulations show that when resources are limited, the algorithm uses fewer shuffles to protect most of the benign clients than those of current researches, which proves the higher effectiveness of this algorithm.
Key words:Cloud Computing; Denial of Service; Elastic Configuration; Dynamic Protection; Clients Shuffling
(收稿日期:2015.06.27)
作者简介:邵嘉炜(1991-),男,上海交通大学,电子信息与电气工程学院,硕士研究生,研究方向:云计算安全,上海,200240
基金项目:上海市基础研究重大重点项目(13JC1403500)
文章编号:1007-757X(2016)02-0010-04
中图分类号:TP309
文献标志码:A