基于虚拟蜜罐的网络安全研究
摘要:本文给出了蜜罐和虚拟蜜罐的定义,介绍了可以用Honeyd构造虚拟蜜罐,并分析了Honeyd的结构和配置,以及其在网络安全领域的应用。
关键词:蜜罐;虚拟蜜罐;Honeyd;网络安全
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)14-20863-04
1 引言
随着计算机网络技术的迅速发展,开放式的网络体系的安全隐患日益明显地暴露出来,从上世纪八十年代至今各种计算机安全事件不断发生。传统意义上的网络安全,如防火墙、入侵检测系统、加密等等,都是被动防御的。它们的策略是,先考虑系统可能出现哪些问题,然后对问题进行分析解决,而蜜罐技术提出了一种新的网络安全防御策略,变被动防御为主动进攻,使其具有主动交互性。蜜罐系统的主要作用是学习了解入侵者的思路、工具、目的,通过获取这些信息,让互联网上的组织更好地了解他们所遇到的威胁,并且针对这些威胁及时找出相应的防御策略来提高系统的安全。
2 蜜罐的定义及其优缺点
2.1 蜜罐的定义
蜜罐(HoneyPot),是受到严密监控的网络诱骗系统,它通过真实或模拟的网络和服务来吸引攻击,从而在黑客攻击蜜罐期间对其攻击行为及过程进行记录分析,以搜集信息,同时对新攻击发出预警。蜜罐本身并不直接增强网络的安全性,但可以延缓攻击和转移攻击目标。简单地说,蜜罐就是诱捕攻击者的一个陷阱。
2.2 虚拟蜜罐的定义
虚拟蜜罐是指在拥有IP地址的真实机器上安装特定的软件,可模拟出运行多种操作系统的数台虚拟机,并通过这台真实的机器响应发往虚拟蜜罐的网络流量。其优点是减低了成本而且容易部署和维护。
2.3 蜜罐技术的优缺点
2.3.1 蜜罐的优点
(1)数据价值高
当今,安全组织所面临的一个问题就是怎样从收集到的海量数据中获取有价值的信息,通过防火墙日志、系统日志和入侵检测系统发出的警告信息中收集到的数据的量非常的大,从中间提取有价值的信息很困难。
蜜罐不同于其他的安全工具每天收集到若干GB的数据,大多数Honeypot每天收集到的数据只有几兆。并且这些数据的价值却非常高,因为蜜罐没有任何产品型的功能,所有对他的访问都是非法的、可疑的。
(2)资源消耗少
当前大多数安全组织所而临的另一个难题就是有时会由于网络资源耗尽而导致安全措施失去了作用。例如,当防火墙的状态检测表满的时候,它就不能接受新的连接了,它会强迫防火墙阻断所有的连接。同样入侵检测系统会因为网络流量太大,使其缓冲区承受不起,而导致IDS丢失数据包。
因为Honeypot只需要监视对它自己的连接,因此需要捕获和监视的网络行为很少,很少会存在网络流量大的压力,所以一般不会出现资源耗尽的情况。我们不需要在充当蜜罐的主机的硬件配置上投入大量的资金,只需要一些相对便宜的计算机就可以完成蜜罐的部署工作。
(3)实现简单
部署一个蜜罐,不需要开发复杂和新奇的算法,不需要维护特征数据库,不需要配置规则库。只要配置好蜜罐,把它放在网络中,然后静观其变。
2.3.2 蜜罐的缺点
蜜罐也有其自身的缺点,因此蜜罐不能完全取代其它的安全工具,必须把它和其它的安全工具相结合才能更好的发挥它的作用。
(1)数据收集面狭窄
如果没有人攻击蜜罐,它们就变得毫无用处。在某些情况下攻击者可能会识别出蜜罐,那么攻击者就会避开蜜罐直接进入网络中的其他主机,这样蜜罐就不会发现入侵者已经进入了你的网络。
(2)有一定风险
蜜罐可能会把风险带入它所在的网络环境。蜜罐一旦被攻陷,它就有可能成为攻击、潜入或危害其它的系统或组织的跳板。
3 虚拟蜜罐框架Honeyd
3.1 Honeyd概述
Honeyd是一款源代码开放,可免费使用的软件,它是用C语言编写的可创建虚拟蜜罐的框架。它可以同时模拟上百甚至上千台不同的虚拟计算机,每个虚拟计算机和一个未使用的IP绑定在一起。这些虚拟机可以模拟不同的操作系统以及与该操作系统相关联的服务。
3.2 Honeyd的数据收集
要使Honeyd可以正确的接收和回应目的地址是我们的虚拟蜜罐的网络数据包,必须正确的配置网络。有几种方法可以实现网络的配置:如为指向Honeyd主机的虚拟IP创建特殊的路由,使用ARP代理。
如图1所示,假设10.0.0.1是路由器的IP地址,10.0.0.2是Honeyd主机的IP地址,10.0.0.11—10.0.0.14是Honeyd虚拟蜜罐的IP地址。最简单的情况是虚拟蜜罐的IP位于我们局域网内。当入侵者通过互联网向虚拟蜜罐Linux 1.0.9发送一个数据包时,路由器会接收数据包并试图发送这个数据包。路由器会查询路由表来决定把该数据包发往哪里。
数据包有以下3种处理方式:
(1)路由器A将数据包转发到另一个路由器。
(2)10.0.0.11位于路由器所在的局域网范围内,路由器可以直接将数据包传递给10.0.0.11。
(3)当没有路由指向10.0.0.11时,路由器会丢弃这个数据包。
为了将虚拟蜜罐的数据流引向Honeyd主机,我们可以用以下方法:
(1)如果没有配置专门的路由,路由器通过ARP请求确定虚拟蜜罐的MAC地址,因为没有相应的物理机器,我们配置Honeyd主机用自己的MAC地址对10.0.0.11的ARP请求作出反应。这样通过ARP代理路由器就把发送给虚拟蜜罐Linux 1.0.9的数据包转到了Honeyd主机的MAC地址。
(2)将到虚拟蜜罐的路由器入口设置为指向Honeyd主机,这样路由器转发到虚拟蜜罐的数据包会直接发送到Honeyd主机。
3.3 Honeyd软件的结构
Honeyd系统的组成包括配置数据库、中央包分配器、协议处理器、个性引擎、路由组件(可选),其系统结构可以简化为图2所示。
当Honeyd接收到数据包时,中央包分配器会检查IP包的长度,并修改包的校验和。Honeyd主要响应ICMP、TCP和UDP这三种互联网协议,其他协议包在被记入日志后被偷偷丢弃。
在处理数据包之前,中央包分配器会读取配置数据库,查找与数据包目的地址相对应的蜜罐配置。如果没有对应的配置存在,系统会采用一个缺省的配置。给定配置后,数据包传输层的协议类型把数据包分配给特定的协议处理器。
数据包会经过个性引擎处理后再往外部网络发送。个性引擎会修改数据包内容,使数据包看上去和从指定操作系统的网络栈发出的一样。
(1)配置数据库
配置数据库实际上是一个二进制的配置文件,它包含了蜜罐系统所要模仿的系统、服务与网络拓扑结构以及其它部件行为特性等等。Honeyd通过读取该文件配置和实施蜜罐系统。
(2)中央包分配器
中央包分配器是负责将数据包分配给相应协议处理器的部件。
当获取到一个数据包时,中央包分配器首先计算该数据包的长度并进行验证,然后读取配置数据库,查找与数据包的目的地址相对应的配置。如果配置存在则根据数据包传输层的协议类型把该数据包分配给特定的协议处理器,否则就使用一个缺省的配置。
(3)协议处理器
协议处理器是模仿特定服务的部件。目前,协议处理器响应ICMP、TCP和UDP这三种协议的数据包。对于ICMP数据包,所有echo请求都以目标不可达的信息响应,不过通过对配置数据库中配置的修改,可以改变ICMP响应的行为。对于TCP数据包,协议处理器会把它们与特定的协议建立连接。当一个数据包到达时,协议处理器会检查是否为已经建立了连接的数据包,如果是,这个数据包会被送给已经开始的服务,否则开始建立一个新的连接。目前,协议处理器可以通过TCP三次握手来建立和响应TCP会话,也可以通过设置FIN或RST标志位来撤消一次会话,但是拥塞窗口管理没有完全实现。对于UDP数据包,协议处理器直接将其传给相应的服务。
(4)个性引擎
个性引擎是Honeyd的一个非常关键的部件,黑客通常会运用象Xprobe或Nmap的指纹识别工具来收集目标系统的信息,为了让虚拟蜜罐在被探测的时候显得象真实主机一样,所以必须让它在被指纹识别的时候不被暴露出来。对于一个特定的操作系统,它的网络协议栈也是特定的。不同的虚拟蜜罐可以被赋予不同的网络协议栈。“个性引擎”个性化虚拟蜜罐的网络栈行为的方法是:在每个发送出去的数据包的协议头中进行适当的修改,使得数据包符合指纹识别软件预期的操作系统的特征。
Honeyd利用Nmap指纹库作为TCP和UDP连接个性化的参考,利用Xprode指纹库作为ICMP连接个性化的参考。
(5)路由部件
Honeyd是通过路由部件来模拟虚拟网络拓扑结构的。通常,虚拟路由拓扑是一个具有根的树。在这种网络结构中,数据包从这个根进入虚拟路由拓扑。树的每一个非终端节点表示一个虚拟路由器,每条边代表一个连接,它包括等待时间和包丢失等特性,而叶子结点对应一个网络。
当Honeyd接收到一个数据包时,从根结点开始传输数据包,直到找到拥有该目的IP地址的网络。在传输的过程中,路由部件会计算包丢失和等待时间来决定是否丢弃该数据包,并当数据包传输时每经过一个路由器时,路由部件都对数据包中TTL值做减1操作。当TTL值减为0时,路由部件会发送一个ICMP超时数据包。
3.4 Honeyd的应用
(1)产生入侵检测
可以利用Honeyd为入侵检测系统产生入侵规则。Honeycomb是英国剑桥大学开发的Honeyd插件。Honeycomb可以自动地为入侵检测系统Snort产生检测特征。Honeycomb会记录进出的数据包,并对这些数据包进行入侵模式抽取,然后把这些模式和snort的模式库进行比较。如果模式库中没有相似的入侵模式存在,Honeycomb会自动创建一个新的模式。如果模式库中有类似的模式存在,Honeycomb会更新这个模式。所以Honeycomb能帮助Snort及时地发现新攻击,对于已有其模式的攻击,Honeycomb能将其新的变种反应到Snort的模式中。
(2)网络诱骗
可以用虚拟蜜罐来装备一个工作网络的未分配地址,这样可以迷惑攻击者,延缓对工作网络的扫描和攻击。
(3)阻止垃圾邮件
可以利用Honeyd自动对新垃圾邮件做出辩别,然后提交给一起合作的垃圾过滤器。垃圾邮件发送者主要是使用开放代理服务器和邮件转发代理来发送垃圾邮件。发送者通过使用开放代理服务器来隐藏自己的IP地址,从而防止自己被追踪来源。邮件转发代理可以接受任何第三方的邮件,并转发非本地用户的邮件。所以,垃圾邮件发送者可以几乎无限制地通过邮件转发代理发送垃圾邮件。
Honeyd可以用来有效地过滤垃圾邮件。Niels Provos利用Honeyd设计了一个过滤垃圾邮件的框架(图3)。在这个框架中Niels Provos使用一台主机虚拟一个C类网络。并在该网络中,随机地配置了运行开放代理服务器和邮件转发代理的蜜罐系统。当垃圾邮件发送者企图通过开放代理服务器和邮件转发代理发送邮件时,这些邮件会自动被转发给垃圾邮件陷阱。垃圾邮件陷阱则将垃圾邮件转发给合作的邮件过滤器。与此同时,垃圾邮件的发送者被记录于垃圾邮件陷阱日志文件中。
(4)发现和反击蠕虫病毒
蜜罐可以模拟系统漏洞来吸引扫描。我们可以通过布置虚拟蜜罐来发现和反击利用随机大面积扫描来寻找新目标的蠕虫病毒。我们可以把虚拟蜜罐布置在未分配的网络地址上,受到扫描刺探的可能性从一定程度上取决于布置的蜜罐数量。因此,虚拟蜜罐布置得越多,蜜罐之一就越容易收到蠕虫病毒的刺探。
4 虚拟蜜罐的配置
我们可以选取2 台P4 微机:1台作为攻击机,另1台作为实现蜜罐系统的宿主机,它有一个真实的IP地址。在安全Linux Red Hat 9.0 系统上运行虚拟蜜罐框架Honeyd。通过模拟操作系统的TCP/IP 栈来建立蜜罐,使用与Nmap 或Xprobe 相同的指纹数据库来模拟操作系统,来响应针对虚拟蜜罐的网络请求。
honeyd 的安装需要以下库的支持:libevent :异步事件库; libdnet :数据包构造和发送开发库;libpcap :数据包捕获开发库;libdes :无阻塞的域名解决开发库;libpcre :Perl 的正规表达库。安装好了上述库之后就可以把honeyd 安装上了,然后就可以对它进行配置。
在Honeyd 框架中,是通过模板来配置虚拟蜜罐系统的,一个模板相当于一个虚拟的计算机系统。配置文件其实是一个简单的文本文件。用create 命令来创建一个模板。用set 命令把从Nmap 指纹文件中得到的个性分配给模板,并设置系统支持的网络协议的缺省行为,行为可以有三种选项:open—指定端口开放、reset—指定端口关闭、block—指定协议的数据包都被丢弃。用bind 命令分配IP 地址、用add 命令来指定服务。
5 结束语
蜜罐已经成为安全专家所青睐的对付黑客的有效工具之一。而虚拟蜜罐使用简单,配置灵活,占用的资源少,不仅仅可以捕获到那些防火墙之外的脚本,还可以发现自己组织中的入侵者;收集的数据和信息有很好的针对性和研究价值。既可作为独立的安全工具,还可以与其他的安全机制联合使用。蜜罐也有缺点和不足,主要是收集数据面比较狭窄和可能会引入新的风险。面对不断该进的黑客技术,蜜罐技术也要不断的完善和更新。
参考文献:
[1] 周莲英.虚拟蜜罐系统框Honeyd的分析与研究[J].计算机工程与应用,2005(27).
[2] 翟继强,叶飞.利用Honeyd构建虚拟网络[J].计算机安全,2006,(3):26-48.
[3] 官凌青,娄嘉鹏,刘莉.蜜罐Honeyd的扩展设计与实现[J].北京电子科技学院学报,2006,14(4):83-86,90.
[4] .cn/qkpdf/dnjl/dnjl200814/dnjl20081435-1.pdf" style="color:red" target="_blank">原版全文
上一篇:雏鸡常见疾病及治疗
下一篇:七步解决即时通信安全问题