冯运仿
(湖北理工学院计算机学院 湖北 435003)
蜜罐(Honey pot)以及蜜罐延伸技术是一种当前十分流行的网络安全策略。蜜罐技术能够监视、记录甚至追踪攻击者的行为,从而对其行为进行分析和取证。由于蜜罐不对外提供有价值的服务,所以一切对蜜罐的访问都被视为攻击行为。蜜罐的核心技术一般包括数据捕获技术、数据控制技术、数据分析技术等[1]。蜜罐较IDS和防火墙而言,具有收集数据价值高、搭建系统所需资源少等优点。
单一网络部署蜜罐系统比较容易实现,但在一个由多个子网组成的分布式网络中则需要在各个子网中分别部署蜜罐系统。由于子网地理位置不同,相互之间遥远的空间距离使大量部署分布式蜜罐系统需要耗费大量的人力、物力,也使统一管理变得困难。于是蜜场(honey farm)思想应运而生。蜜场是通过在安全操作中心集中式地部署蜜罐系统,构建蜜场环境,同时在分布式网络的各个子网中分别部署攻击检测器和网络流重定向器,将攻击或者废弃流量重定向到蜜场的安全操作中心,安全操作中心利用负载均衡(load balancer)策略将流量分发到各个的蜜罐系统上[2]。如图1所示。
图1 蜜场系统结构示意图
由此可见,蜜场系统的分发流量来自重定向器。重定向流量的大与小取决于是否受到了网络攻击。特别是当受到大规模扫描或者蠕虫病毒等网络攻击时,重定向流量将会在短时间内突发性地大幅度增加。这不仅对现有的网络攻击检测与网络流重定向机制是一个挑战,也对实现蜜场的流量分发的负载均衡提出了要求。
建立在现有网络结构之上的负载均衡具有两个方面的含义。通过多台节点设备,一是分担处理数据流量,二是分担并行处理单个重负载的运算,达到减少用户等待相应的时间、大幅提高系统处理能力的目的。
从调节策略而言,当前讨论及研究的负载均衡算法可以分为静态负载均衡和动态负载均衡两类:
静态负载均衡根据预先已知负载的情况对用户任务请求进行分配,不考虑服务器在实际运行过程中的负载情况,也不会产生额外的系统开销。静态负载均衡算法包括轮询(Round Robin)、比率(Ratio)、优先权(Priority)。轮询算法是将请求一次顺序循环地连接每个服务器;比率算法给每个服务器分配一个加权值为比例,椐此把用户的请求分配到每个服务器;优先权算法则是通过定义优先权,采用轮询或比率算法,给优先级最高的服务器组分配用户的请求。
动态负载均衡以各服务器当前的负载情况作为分配任务的依据,能够充分利用各服务器的处理能力来减小其对用户服务的响应速度,但在动态调度时对任务的分配管理会造成额外的系统开销。动态负载均衡算法包括最少连接数(Least Connection)、最快响应速度(Fastest)、观察方法(Observed)、预测法(Predictive)、动态性能分配(Dynamic Ratio-APM)、动态服务器补充(Dynamic Server Act.)、服务质量(QoS)、服务类型(ToS)、规则模式。最少的连接方式是传递新的连接给那些进行最少连接处理的服务器;最快模式是传递连接给那些响应最快的服务器;观察模式是连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器;预测模式是根据预测分析服务器当前性能指标选择下一个时间片内性能将达到最佳的服务器;动态性能分配是根据应用程序和应用服务器的各项性能参数动态调整流量分配;动态服务器补充动态地将备份服务器补充至主服务器群;服务质量是按不同的优先级对数据流进行分配;服务类型:是按不同的服务类型对数据流进行分配;规则模式是针对不同的数据流设置导向规则。
负载均衡算法的选择要结合实际的需求。既可独立使用,也可组合使用。一个好的负载均衡算法一般只在某些特殊的应用环境下才能发挥最大效用。由此可见,选择负载均衡算法,既要考虑其适用面,也要结合集群自身特点,把不同的算法和技术结合起来使用。
但是,静态负载均衡只利用了一些静态的信息,不能有效的解决运行时集群个服务器间的动态负载变化,自适应能力差;动态负载均衡通过流量分发器不断地查询收集节点负载信息,调整流量分配权值,其频繁地查询采集服务器的负载信息会增加大量额外的系统开销。针对蜜场环境下的分发流量突发性强、流量大的特点,如果采集频率降低,安全操作中心难以及时获取实时的负载信息,而导致流量分配不合理,致使负载失衡。
改进算法采取了预警收敛流量分配策略、主动抢占式反馈策略、基于排队模型的等待队列动态调整策略。
算法具体流程见图2。
图2 算法流程示意图
2.2.1 预警收敛流量分配策略
该策略的重点在于预先设定预警区间和危险区间。从理论上加速了系统整体负载的收敛和均衡,能够有效应付突发流量情况。具体而言,当某台蜜罐系统上的流量正常,系统负载没有进入预警区间,安全操作中心主动调整其负载率,并在实际负载的基础上减少一个预警因子,以使流量分配时加速增加流量分配;当某台蜜罐系统上的流量爆发性增加,系统负载进入预警区间,安全操作中心也会主动调整其负载率,并在实际负载的基础上增加一个预警因子,加速减少负载分配;当某台蜜罐系统上的流量爆发性增加导致系统负载进入危险区间,安全操作中心将不再分配负载。安全操作中心根据流量增减预警因子促使算法收敛。
2.2.2 主动抢占式反馈策略
该策略类似于进程的抢占式调度算法,主动向安全操作中心申请任务。策略中服务器周期性、主动向服务器反馈自身负载信息,一旦自身负载达到一定限度时就不再向安全操作中心反馈自身信息;安全操作中心不断收集来自服务器的负载信息,动态调整各个负载权值,分配负载任务。一旦安全操作中心没有收到某个服务器的负载信息,则不再向它分配任务,直到再次接收到它的负载信息。主动抢占式反馈策略改善了现有的动态负载均衡策略在采集服务器负载时采用查询反馈模式导致服务器一直处于被动地位的状况,当服务器某项参数值超过一定限度时,便停止采集获取信息,停止向安全操作中心发送其负载信息;安全操作中心不需要频繁向服务器发送查询信息,服务器也不 需要实时监听。这样既节省了系统资源,也从一定程度上节省了网络带宽资源,减轻了系统负载。
该策略通过建立M/M/S/k排队模型,较好地解决了服务器短时间难以完全处理蜜场环境下流量容易爆发增长的问题。蜜场系统中重定向器将网络流量发送给安全操作中心,再经安全操作中心分发到各个不同的蜜罐系统。蜜场系统的重定向的网络流量、安全操作中心的等待队列、蜜罐系统相对应于排队论中的输入过程、排队规则、服务机构等三个要素。可以认为网络流量的到达服从泊松分布。而各个不同的蜜罐系统相互独立,其平均响应速率与它处理过的网络流量的数目没有关系,所以蜜罐系统的服务时间服从负指数分布。网络流量在等待队列中满足先来先服务(FCFS)的规则。当安全操作中心等待队列已满时,新重定向来的流量就会丢失。蜜场系统满足M/M/S/k排队模型。通过建立M/M/S/k排队模型,动态调整队列长度,从而使得平均等待时间较短,同时使得流量丢失率较低。
前述改进后的面向密场系统的动态负载均衡算法能够很好地应对蜜场环境下的流量特点,在突发大量流量时,能够保持相对稳定的负载均衡,而且具有较短的响应时间。但是有少量的数据丢失。虽然这些少量的数据丢失在蜜场环境下是可以忍受的,但仍然说明针对具体的应用环境,负载均衡算法的进一步研究还是很有必要的。
[1]程仁杰,殷建平,刘运等.蜜罐及蜜网技术研究进展[J].计算机研究与发展.2008.45:375-378.
[2]陆腾飞,陈志杰,诸葛建伟等.面向蜜场环境的网络攻击流重定向机制的研究与实现[J].南京邮电大学学报.2009.3:14-20.
[3]罗拥军,李晓乐,孙如祥.负载均衡综述[就].科技情报开发与经济.2008.23:134-136.