基于SDN的蜜网技术概述
云计算和虚拟化技术的发展,使得蜜网系统从传统的硬件蜜网,发展成动态灵活的虚拟化蜜网成为了可能。SDN(Software Defined Networking)架构将网络的控制平面从数据平面中分离出来,通过逻辑上集中的网络控制器可以灵活的实现流量调度。这样结合虚拟化和SDN来设计实现蜜网,对于业务系统,尤其是虚拟化环境下的业务系统的攻击诱骗和防护取证起到了重大的推动作用。
本文首先从传统蜜罐、蜜网、分布式蜜罐、分布式蜜网、蜜场等概念着手,然后介绍如何基于虚拟化和SDN实现虚拟化的蜜网,最后分析阐述当前学术界和工业界在虚拟化蜜网上做的一些工作。
1. 背景
信息安全问题归根结底就是攻击方和防守方的博弈战争,而在这场战争中,防守方通常处于被动不利的地位。俗话说“不怕贼偷,就怕贼惦记”与此有异曲同工之妙。作为防守方必须确保系统不存在任何可被攻击者利用的漏洞,并拥有全天候的监控防御机制,才能确保系统的安全。而作为攻击方来讲,可以在任何时间、任何情况,只要发现目标系统存在可被攻击的条件,就可以对其实施攻击。
面对这样的攻防博弈,典型的也是最常见的防御措施通常是威胁/漏洞发现后,根据威胁产生的不同部位,进行安全性修补。更多的是一种“亡羊补牢”,事后补救的机制。
蜜罐(honeypot)就是防守方为了扭转这种不对称局面而提出的一项主动防御技术。蜜罐定义为一类安全资源,它没有任何业务上的用途,其价值就是吸引攻击方对它进行非法使用。蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,让防守方清楚的了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜网(honeynet))是在蜜罐技术上逐步发展起来的一个新的概念,有时也称作诱捕网络。当多个蜜罐被网络连接在一起,组成一个大型虚假业务系统,利用其中一部分主机吸引攻击者入侵,通过监测入侵过程,一方面收集攻击者的攻击行为,另一方面可以更新相应的安全防护策略。这种由多个蜜罐组成的模拟网络就称为蜜网。
蜜网主要是一种研究型的高交互蜜罐技术,由于蜜网涉及到多个蜜罐之间的网络体系架构设计,同时为了提高高交互性,又会存在一些真实的业务逻辑,因此蜜网的设计相对蜜罐来说要复杂的多。蜜网设计有着三大核心需求:即网络控制、行为捕获和行为分析。通过网络控制能够确保攻击者不能利用蜜网危害正常业务系统的安全,以减轻架设蜜网的风险;行为捕获技术能够检测并审计攻击者的所有行为数据;而行为分析技术则帮助安全研究人员从捕获的数据中分析出攻击方的具体活动。
为了克服传统蜜罐技术监测范围受限的弱点,在2003年左右出现了分布式蜜罐(distributed honeypot)与分布式蜜网(distributed honeynet)的概念。分布式蜜网系统能够将各个不同位置部署的蜜网捕获的数据进行汇总分析。分布式蜜罐/蜜网能够在互联网不同位置上进行多点部署,有效的提升安全威胁监测的覆盖面,克服了传统蜜罐监测范围窄的缺陷,因而成为目前安全业界采用蜜罐技术构建互联网安全威胁监测体系的普遍部署模式。
在当前的安全攻防领域,蜜罐和蜜网技术的发展已经使得我们能够部署一个蜜网,并对攻击者的攻击事件进行分析。但是现阶段广泛被大家接受和部署的蜜网基础设施,主要还是硬件服务器部署的方式,这样一方面蜜网结构很难根据攻击行为进行动态的调整,另一方面,大量的物理基础设施用来进行蜜网系统的部署运行,安全防护成本较高。
随着虚拟化技术的不断发展,尤其是近年来SDN/NFV技术的不断成熟,能否采用虚拟化技术来实现蜜网系统?能否在SDN/NFV的环境中通过蜜网系统实现安全防护?答案当然是肯定的。
2. SDN蜜网概述
SDN蜜网,主要是指在SDN网络中,通过蜜罐/蜜网技术,实现业务系统的安全防护。众所周知,SDN网络可以理解为一种集中控制的网络,通过逻辑上集中的控制平面,一方面能够获取到全局的网络信息,另一方面,能够灵活的对特定流量进行调度。这样结合虚拟化技术,就能够在威胁发现之后,动态的生成相应的蜜网系统,同时利用SDN控制器,将异常流量调度到虚拟化的蜜网系统中,完成异常行为的跟踪取证与安全防护。如下图所示,就是基于SDN网络组建的虚拟化蜜网防护系统的一个简单的逻辑图。这种SDN蜜网的好处在于有效的解决了前文所提到的传统蜜网的部署结构不灵活,基础设施成本高等问题。
基于SDN的虚拟化蜜网逻辑图
现阶段,基于SDN的虚拟化蜜网系统通常包括以下几个部分:入侵检测模块、蜜网管理模块和流量调度模块。入侵检测模块是对所有访问业务系统的流量进行镜像检测,以发现带有安全威胁的异常流量,进而确定疑似攻击者信息。当发现异常流量之后,蜜网管理模块就会根据异常访问的信息,动态生成相应的蜜网系统,并且完成蜜网网络的配置。接下来,流量调度模块就会将异常流量调度到蜜网系统中,完成相应的攻击检测、取证、防护等工作。
下面,本文将结合学术界和工业界的一些技术方案,详细分析如何实现基于SDN的虚拟化蜜网系统的设计和构建。
3. 实现方案
基于SDN和虚拟化技术的动态蜜网系统近年来无论是在学术界还是在工业界,由于其灵活的实现方式,得到了大家的一致认可。下面本节就选择几个典型的实现方案进行详细的分析和比较。
参考文献[2]提出了一种SDN网络的蜜网安全防护系统,系统主要包括网络入侵检测模块、蜜网管理模块和SDN控制器集群管理模块。网络入侵检测模块对进入组织内部的流量进行入侵检测;蜜网管理则负责蜜网的创建、流量转发规则以及蜜网数据库维护等。SDN控制器集群则对整个系统内的多个SDN控制器进行协调管理和通信维护。如下图所示就是整个系统的一个简单的架构图。
其工作流程主要是:首先在整个业务系统网络的边缘SDN交换机进行流量镜像的配置,通过端口镜像将所有访问业务系统的流量传输至入侵检测系统。如果入侵检测系统判定流量无异常,那么就将其进行正常的转发;如果发现异常,则根据安全威胁进行等级划分,并识别攻击类型,将攻击类型、特征、以及安全威胁等级告知蜜网管理模块。
蜜网管理模块据此信息,参考蜜网模型数据库,计算出对应的蜜网网络架构,然后创建虚拟化蜜网;同时将相应的流量调度策略传输给SDN 控制器,控制器下发流量匹配规则到SDN交换机,完成整个异常流量的调度工作。
这种方式巧妙的结合了虚拟化和SDN各自优势,是一种典型的基于SDN的虚拟化蜜网防护设计思路。
参考文献[3]同样是结合计算虚拟化和网络虚拟化技术,实现了一种全虚拟化的蜜罐主机和一种可动态调整和可扩展的动态虚拟蜜网系统,以及提出叠加虚拟蜜网的概念。
其整体架构主要包括业务网络、基于OpenFlow交换机的蜜墙以及虚拟蜜罐系统。在业务网部署入侵检测和流量分析系统,当检测到攻击流量时通报控制器;Floodlight控制器收到流量转发请求后生成流量控制命令并通过控制器传输至OpenFlow交换机;OpenFlow交换机解析流量控制命令,根据请求内容转发攻击流量至虚拟蜜罐系统;虚拟蜜罐系统根据当前系统负载进行传输控制,将不同的服务流量导入不同的服务集群中;蜜网系统收集和分析攻击流量,并记录攻击行为、攻击源和攻击日志等信息,完成蜜网工作。从这个整体思路来看,该项工作与参考文献[2]的思路其实是很像的。下面我们再看看其详细的工作流程。
具体工作流程如下图所示,当外部请求进入OpenFlow交换机后,交换机通过流信息(协议、端口等)识别解析流。转发策略控制模块根据当前的服务部署情况创建转发规则(如HTTP请求的流进入HTTP服务系统中),转发的同时修改流中数据包的目的MAC地址和目的IP地址,并将这些规则推送到OpenFlow交换机中。服务流进入相应的服务系统中进行相应处理。服务系统响应的数据包到达OpenFlow交换机后根据流表规则,修改源MAC和源IP,最终融合返回给攻击者。至此完成虚拟蜜罐的实现流程。
作者在这里还提到了一个叠加虚拟蜜网的概念,所谓的叠加蜜网,就是通过对OpenFlow交换机进行规则设定,实现网络的分片划分,达到叠加网络的效果,也就是展现为不同的蜜网系统。这样不同分片的蜜网系统也就实现了相互隔离的目的。
这种实现方式较参考文献[2]我们发现有以下几点不同:(1)本方案在处理异常流量向蜜网系统调度时,采用的是修改数据包目的IP和目的MAC的方式,而参考文献[2]则是直接通过设置流表output端口实现。这样在攻击者的角度来看,本方案的蜜网系统更具有隐蔽性;(2)本方案的虚拟蜜网系统在生成时,仅仅是考虑了应用协议这一方面,比如异常流量是HTTP请求,那么就将其调度到一个虚拟的HTTP蜜罐服务;并未过多的考虑到真实业务系统的交互逻辑,而参考文献[2]在这方面考虑的相对比较周全。
参考文献[4]提出一种基于虚拟机的弹性防攻击方法,主要应用在云计算系统的网络安全领域。通常云计算系统的主机都是挂在一个虚拟的交换设备上,比如OVS(Open vSwitch),这个OVS的转发规则由SDN控制器根据预先设置的白名单来进行制定。
当攻击者的数据包经过OVS交换机时,会向SDN控制器发出packet_in事件请求。控制器查询访问控制白名单,确认访问是否合法;同时会对符合白名单的数据包进行异常分析,来确定其是否为攻击流量,如果是,那么删除其白名单中对应的规则,并且克隆一台预先配置好的蜜网虚拟机。最后控制器生成一条将攻击流量导向新生成的虚拟机的流表,并下发至相应的OVS交换机上。
我们发现,该方案在设计实现上较前两种又不太一样。首先就是本方案首先确定一个大前提,就是在云计算系统中,由于云计算系统无论在网络架构上,还是在流量特性上,较传统的数据中心还是有一定的区别的。然后就是基于这样的前提,本方案并没有采用独立的入侵检测系统去对所有的访问流量进行异常检测,而是将这个功能实现在了SDN的网络控制器里,仅仅是针对符合其预设白名单的流进行异常检测。最后就是本方案一旦发现流量异常之后,再将其调度到蜜网系统的同时,会在白名单中删除对应的规则,也就是说,这个异常的源主机在后续发起的流建立请求都将被忽略掉,实现了异常主机的隔离。
参考文献[5]提出了一种利用虚拟化蜜网技术,实现云平台的信息安全攻防体系架构。参考文献[6]同样是通过入侵检测系统和虚拟蜜罐系统的结合,实现了一种云计算系统的安全控制方法。
从以上这几个方案可以看出,基于SDN实现的虚拟化蜜网系统,在总体设计思路上,并没有太大的差异,只是不同的方案针对不同的应用场景,在实现细节上会有些许的不同。
4. 总结