[转载]虚拟Honeynets的定义
信息来源:杀手安全网在过去的几年内Honeynets作为一种安全机制已经体现出它在研究黑帽子社群方面的价值,包括黑帽子使用的工具,他们的入侵策略,以及他们的动机。这些信息让机构能够更好的了解他们正面临的威胁以及如何应对这些威胁。但Honeynets也面临一些问题:资源消耗大,实现起来比较困难,维护比较复杂。为了在最大的程度上实现Honeynets的价值,在实现时会尽可能采用不同的硬件系统和不同的安全机制。针对这点,Honeynet Project正在对一种作为替换的解决方案进行研究,也就是所谓的虚拟Honeynets。虚拟Honeynets具有和Honeynets一样的价值,但是却可以在一个系统运行所有的操作系统。因此构建一个虚拟Honeynets是一种相对廉价,简便的解决方案,并且维护起来也相对容易点。
Honeynet是什么
Honeynets是honeypot的一种。而honeypot的定义为:Honeypot是一种资源,该资源的价值在于被扫描,攻击或者入侵。Honeynet是一种高交互性的Honeypot,也就是说它提供了真正的操作系统来让攻击者进行交互。这种交互性可以为我们提供大量入侵者的信息,甚至可以说是一切事情,包括他们在进入系统后做了什么,他们相互之间如何交流以及他们攻击系统的动机是什么。Honeynets是通过建立一个由许多系统组成的网络来实现这些信息搜集的。这个网络的结构严密,出入该网络的信息都会受到控制并且会被捕获。这个网络中的每个系统都是一个honeypot,一个设计来被人攻击的系统。但是,这些honeypots都是功能齐全的系统,它们和你今天在普通机构中看到的系统是一样的。一旦这些系统受到攻击, Honeynets会记录攻击者所有的活动。这些信息让我们能够在很大程度上了解我们今天面临的那些威胁。如何你对Honeynets的技术细节还不是很清楚的话,建议你再回头去看看Know Your Enemy: Honeynets。这篇文章的主要目的是阐述建立虚拟Honeynets的不同方法。也就是说这并不是一篇关于建立虚拟Honeynets的HOWTO。我们会在稍后发布关于细节的HOWTO。因此,要继续阅读这篇文章,你得理解Honeynet技术及Honeynet所需条件,特别是关于数据控制和数据捕获方面的。
虚拟Honeynets
那么,什么是虚拟Honeynet?它是一种让你能在一台计算机上运行所有Honeypot的解决方案。这里我们使用术语虚拟是因为所有这些不同类型的系统在外面看来都是运行在不同的计算机上的。该技术能够实现得感谢当前的那些虚拟软件,正是这些软件能够让不同的操作系统能够在同一时间,同样的硬件上运行。虚拟Honeynets并不是一种全新的技术,它只是在一个系统中实现Honeynet技术的一种方法。但是这种实现方式相对传统的Honeynets来说有其独特的优点和缺点。
优点包括节约了成本,管理起来更加容易,因为你是将所有的东西都集中在了一个系统里。这样你不再需要8台计算机来建造一个完整的Honeynet,而只需要一个就足-够了。但是这种简化也带来了相应的代价。首先,由于硬件和虚拟软件的原因,你在选择用哪个操作系统来构建Honeypot上受了很大的限制。例如,大多数的虚拟Honeynets都是基于Intel X86芯片的,因此你也只好选用基于这种结构的操作系统。一般情况下你不能在一个虚拟Honeynet里面构建Alteon 交换机,VAX ,或者是Cray计算机。其次,虚拟Honeynets也带来了风险。攻击者可以对虚拟软件进行侵害并有可能最终控制整个Honeynet,也就是可以控制Honeynet中的所有系统。最后就是虚拟环境特征隐藏的问题。一旦攻击者侵入了你的虚拟Honeynet,他们就有可能发现他们入侵的这个系统是运行在一个虚拟环境中的。
我们将虚拟Honeynets分为两类,自包含和混合式。在这两种里面,自包含是最常见的。我们首先来定义这两种不同的Honeynets,然后讨论实现虚拟Honeynets的不同方法。
自包含虚拟Honeynet
自包含就是指将整个Honeynet网络集成到一台计算机中。从形式上来看也就是说在单独一个硬件系统上实现一整个网络。一般一个自包含Honeynet网络是由负责进行数据控制与捕获的防火墙网关和多个honeypot组成的。具体的结构可以参看这张图。这种类型的虚拟Honeynet(s)的优点在于:
可移动,可以在笔记本电脑上实现这类虚拟Honeynets然后就可以将它带到任何地方。Honeynet项目组已经在2002年8月的黑帽子大会上演示了这种功能。
即插即抓,你可以将你的Honeynet带到需要的地方然后连接上那里的网络就可以等待黑帽子的来访了。因此这就让Honeynet的实施变得非常简单,因为你只需要安置好一个系统并将其连网就可以了。
节约了资金与空间。你只需要购买一台计算机,因此就节约了硬件成本。同时它的体积所占空间也比较小,只有一个主机并且只占用一个网络接口。因此对于那些场地和资源受限制的人来说,自包含虚拟Honeynet是一种很节省的解决方案。
但同时它也存在一些缺点:
整个系统存在瓶颈,如果硬件出了故障,整个honeynet都将不能正常工作。
实现系统需要高质量的计算机。虽然构建一个自包含Honeynet只需要一台计算机,但是这台计算机的性能却必须很高。为了实现这样一个系统,你可能需要大量的内存和处理能力。
安全性问题。由于系统中所有的组成都得使用相同的硬件资源,因此就存在攻击者可以入侵系统中某些关键部分的可能。实际上其安全性主要取决于虚拟软件,我们将在稍后对这点进行讨论。
软件选择上的限制。由于所有的东西都是在一台机器上运行的,所以你能选择来运行的软件也很受限制。例如,在Intel的芯片上你很难运行Cisco IOS。
混合式虚拟Honeynet
一个混合式虚拟Honeynet是由传统的Honeynet与虚拟软件组成的。数据捕获,例如防火墙,数据控制,例如IDS探头都放置在一个单独的,孤立的系统中。这种孤立降低了系统被侵害的风险。但是,所有的Honeypot都是运行在一台机器上的。具体的结构你可以参考这张图。这种结构的优点在于:
安全性:正如我们上面在自包含虚拟Honeynets讨论中提到的那样,自包含系统存在让攻击者可以入侵honeynet中其他重要部分(例如防火墙)的可能。而对于混合式Honeynets来说唯一的风险只是攻击者可以从一个honeypot入侵另一个honeypot。
灵活性:你可以在混合虚拟Honeynet中采用多种软硬件实现数据控制和数据捕获。例如你可以在网络中使用OpenSnort或者Cisco pix。你也可以在网络中增加一台计算机来实现任何其他类型的honeypot(作为你的虚拟Honeypot的扩充)。
这种结构体系的缺点在于:
不可移动,由于这种结构的honeynet包含一个以上的设备,所以移动honeynet会比较麻烦。
实现需要的时间与空间的代价都比较大,因为整个网络中不光只有一台计算机,所以比起自包含系统来说需要花费更多的能源,空间甚至是金钱来实现系统。
一些可行的解决方案
现在我们对两种常见的虚拟Honeynets下了定义,接下来要谈的就是实现虚拟Honeynet的一些可行的方法了。这里我们会提到三种实现虚拟Honeynet的方法。无庸置疑的是还有其他的一些实现方法,例如Bochs, 但是Honeynet Project对前面的三种方法都进行了测试。其中没有哪种方法是最好的,这些方法都有自己独有的优点和缺点,用户需要根据自己的情况与需求确定最佳实现方法。实现虚拟Honeynet的三种可选方案分别是VMware Workstation, VMware GSX Server和用户模式Linux.
VMware Workstation
VMware Workstation是老牌的虚拟软件。它是为桌面用户设计的并且有针对Linux和Windows平台的不同版本。使用VMware Workstation作为虚拟Honeynet的优点在于:
广泛的操作系统支持。你可以在虚拟环境(GuestOS的环境中)中运行多种操作系统的,包括Linux,Solaris,Windows,以及FreeBSD来作为Honeypot。
网络选择,VMware工作站提供了两种网络选择。首先是Bridged,这种方式对于混合式虚拟Honeynet网络很有用处,因为这种方式让honeypot可以使用计算机的网卡因而看上去像是honeynet网络中的某个主机。第二个选项是Host-Only网络,这个选项对于自包含虚拟Honeynets来说用处更大,因为这样你可以更好的用防火墙来控制信息流通。
VMware Workstation为每一个虚拟操作系统都创建了一个映像。这些映像就是简单的文件而已,因此可移植性好高。这就是说你可以将这些文件放到其他计算机上去。同样,如果要将honeypot恢复扫初始状态,你只需要用一个文件拷贝进行覆盖替换就可以了。
可以加载VMware虚拟磁盘映像。你可以使用vmware-mount.pl 来加载一个Vmware映像。
使用简单。VMware Workstation是图形化界面的 (Windows和Linux都是如此)因此安装,配置,在上面运行其他操作系统都非常的简单。
作为一个商业化的产品,VMware Workstation提供了技术支持,升级以及补丁。
Vmware工作站的缺点在于:
价格,VMware workstation的一个许可价值$300。这个价格对于爱好者和没有工作的学生来说都比较高。
资源需求,VMware Workstation必须在X环境下运行,而且每个虚拟机都需要有自己的窗口。因此在你为每个虚拟操作系统分配内存前你首先还得为X系统分配内存。
GuestOS的数量受到限制,使用VMware你只能运行很少数量的虚拟机~(1-4)。这让Honeynet的规模受到限制。
非开放源代码,由于VMware不是开放源代码的,因此你不能做一些自定义的调整。
有可能被攻击者觉察到。攻击者有可能发现VMware软件的存在,特别是在系统上安装了”VMware 工具”后。这让黑帽子发现自己处于一个honeypot里。但是,VMware工作站的一些选择功能可以让攻击者更难发现Honeypot的存在,例如设置虚拟接口的MAC地址功能。
VMware产品同样有一些很好的功能,例如挂起某个虚拟机的功能。你可以暂时停止VM的运行,然后结束挂起,所有的进程都会继续正常的运行,就好象什么都没发生一样。例如入侵者控制了我们的一个honeypot,从honeypot向外进行数据包分片攻击,但是他同时也登录了一个IRC服务器,我们不想切断他的连接,因为那样我们就会失去很多有用的信息。因此我们可以将VM挂起,调整防火墙阻断他的攻击,然后恢复VM的运行。VMware以及其他的虚拟软件的一个优点就是在于就是VM的启动既简单又快速。例如一个系统被入侵,我们也从被入侵后的系统中获得了足够多的资料时,要将该Honeypot恢复到入侵前的状态。对于虚拟Honeypot来讲,我们需要做的只是拷贝文件或使用可恢复的磁盘或者以及Vmware Workstation的非固化磁盘特性来恢复任何系统变更。Vmware Workstation的另外一个特性就是可以在宿主OS上运行多个网络。因此如果你只有一台设备,你可以将你的honeynet和个人日常操作系统安装在一台设备上而不用担心他们的数据是否会相互影响。如果你想了解关于VMware以及它对于honeypot技术的作用的话,你可以参考Kurt Seifiried的那篇优秀的文章Honeypotting with VMware - The Basics。以及Ryan Barnett的Monitoring VMware Honeypots 。
VMware GSX Server
VMware GSX Server是VMware Workstation的高性能版本。 在它可以运行许多高端的服务器。正如我们即将看到的一样,它对于Honeynet来说是一种近乎完美的软件。GSX Server目前是在Linux和Windwos上作为宿主OS运行。如果你想知道在GSX上构建Honeynets的更多细节,可以参考文章Know Your Enemy: Learning with VMware用GSX Server来实现虚拟Honeynets的优点在于:
广泛的操作系统支持,GSX Server支持Windows(包括95,98,NT,2000,XP和.NET server),多种Linux操作系统,甚至包括BSD和Solaris (非官方支持)。
网络方面的功能与Workstation一样。
不需要X,也就是说能同时运行的GuestOS的数量将会更多,GSX Server不需要运行X来运行VMware。因此你就可以在同一时刻运行更多的GuestOS。但是如果主机是运行Linux的话还是需要安装一些X的二进制文件。
Web接口,GSX Server可以从一个Web接口来进行管理。可以通过该Web接口启动,暂停,停止以及创建GuestOS。
远程终端,这是GSX Server最优秀的特性之一。通过web页面以及一些VMware软件,你就可以远程访问guestOS,就和你坐在终端前一样。你可以进行类似远程安装以及系统检查这样的工作而不会引起honeynet中产生数据传输增加被攻击者发现的风险。
和Workstation一样,也可以加载VMware虚拟磁盘印相。
VMware GSX Server相比VMware Workstation而言支持更大的主机内存(最大8GB),更多的CPU (最多8个),每个虚拟机的内存也可以更大(2GB)。
包括了可用来管理GuestOS 的Perl API。
与Workstation类似,GSX Server是有技术支持的产品,可以获得补丁与升级。
Vmware GSX服务器的缺点在于:
费用问题,一个GSX Server的许可大概在$3,500左右。
GuestOS的类型存在限制,类似Solaris X86和FreeBSD这种操作系统并没有得到官方的支持(但是你还是可以安装他们)。这会限制你Honeynet的多样性。
内存开销,GSX Server建议使用大于256M的内存来运行GSX Server软件。而基于GUI的操作系统,例如Windows XP,其每个实例还需要另外256M内存来运行。
非开源软件,这点和Workstation一样。
被识别出的风险。攻击者有可能发现一个honeypot中VMware的特征,特别是在系统中安装了” VMware tools”的情况下。这就可能导致将honeypot暴露给攻击者。
不过,它和WorkStation一样,有一些配置选项可以降低这方面的风险。
VMware同样有一种叫做VMware ESX Server的服务器。它不单单是一种软件解决方案,而是可以直接在硬件接口上运行。ESX Server提供了可以直接控制主机硬件的虚拟机OS监视系统。这就让用户可以更好的控制分配给虚拟机的资源,例如CPU共享,网络带宽共享以及磁盘带宽共享。并且还提供了可以动态更改这些资源分配情况的功能。该产品相比GSX Server来说更高端。它的一些特性包括:它可以支持多个处理器,更多的并发虚拟机(最多64个VM),更大的主机内存(最多64GB)以及每个虚拟机更大的可分配内存(最大3.6GB)。
用户模式Linux
用户模式的linux是一种特殊的内核模块,它让用户可以在同一时间运行多个linux虚拟版本。它是由Jeff Dike,UML可以让多个Linux实例在同一时间同一系统下运行。它是一种相对比较新的工具并且有很大的潜力。你可以在另外一个文献了解你的敌人-用户模式Linux中找到相关的细节。使用用户模式Linux来实现虚拟Honeynet的优点在于:
它是免费获取并且是公开源代码,你可以阅读并且修改其源代码。
被发觉的可能性小而需要的资源也少。用户模式的Linux不需要使用X。它同样可以运行多个操作系统而只需要消耗很少的内存。
可以创建多个虚拟网络,甚至可以在初始的虚拟网络中创建虚拟的路由器。
和VMware一样,支持bridging和networking。
UML有能力通过GuestOS的内核直接记录键盘输入情况。这些键盘记录信息可以直接记录在宿主操作系统上,因此就不需要考虑如何从Honeypot隐秘的获取键盘输入信息的问题。
UML有预先配置好的可以下载的文件系统,因此实现你Honeynet中的各个Honeypot很简单。和VMware一样,这些文件系统印相都是可以加载的。
你可以通过多种方式访问UML控制台,包括伪终端,xterms等等,以及主机上你可以telnet到的端口。
其缺点在于:
目前只支持Linux的虚拟机,但是目前对Windows虚拟机的支持也正在开发中。
作为一种新工具,它存在一些缺陷以及安全问题。
没有GUI接口,目前所有的配置和实现都是通过命令行方式完成的。对于初学者来说门槛高了。
作为一个开源工具,它没有商业化的技术支持。
与VMware相类似,由于虚拟软件的存在入侵者有可能会觉察到自己实际上是处于一个UML的Honeynet中。目前该软件的维护者Jeff Dike正在采取措施介绍被发现的危险,例如修改Guest操作系统上的/proc。
结论
这篇文章的目的是定义虚拟Honeynet,虚拟Honeynet的类型,以及说明具体实施中可以采用的不同方案。虚拟Honeynet采用了Honeynet的技术但是将整个Honeynet网络集成到了一个系统中。但是,这二者之间同样存在相同的缺点,包括系统安全瓶颈以及硬件和虚拟软件方面的限制。所以你应当根据自己的状况确定采用哪种解决方案。我们也会在今后发布发布关于实现细节的文档。
页:
[1]