了解你的敌人:
虚拟Honeynets的定义
不同类型的Honeynets.

Honeynet Project
http://www.honeynet.org
Last Modified: 27 January, 2003

This Chinese Version Is Translated By Squ4L1 (squall@arthemistino.com) Of www.feelids.com

Feel free to redistribute it, but the information above must be reserved

在过去的几年内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的不同方法。也就是说这并不是一篇关于建立虚拟HoneynetsHOWTO。我们会在稍后发布关于细节的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)的优点在于:

但同时它也存在一些缺点:

混合式虚拟Honeynet
一个混合式虚拟Honeynet是由传统的Honeynet与虚拟软件组成的。数据捕获,例如防火墙,数据控制,例如IDS探头都放置在一个单独的,孤立的系统中。这种孤立降低了系统被侵害的风险。但是,所有的Honeypot都是运行在一台机器上的。具体的结构你可以参考这张图。这种结构的优点在于:

这种结构体系的缺点在于:

一些可行的解决方案
现在我们对两种常见的虚拟Honeynets下了定义,接下来要谈的就是实现虚拟Honeynet的一些可行的方法了。这里我们会提到三种实现虚拟Honeynet的方法。无庸置疑的是还有其他的一些实现方法,例如Bochs, 但是Honeynet Project对前面的三种方法都进行了测试。其中没有哪种方法是最好的,这些方法都有自己独有的优点和缺点,用户需要根据自己的情况与需求确定最佳实现方法。实现虚拟Honeynet的三种可选方案分别是VMware Workstation, VMware GSX Server和用户模式Linux.

VMware Workstation
VMware Workstation
是老牌的虚拟软件。它是为桌面用户设计的并且有针对LinuxWindows平台的不同版本。使用VMware Workstation作为虚拟Honeynet的优点在于:

Vmware工作站的缺点在于:

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 BarnettMonitoring VMware Honeypots

VMware GSX Server
VMware GSX Server
VMware Workstation的高性能版本。 在它可以运行许多高端的服务器。正如我们即将看到的一样,它对于Honeynet来说是一种近乎完美的软件。GSX Server目前是在LinuxWindwos上作为宿主OS运行。如果你想知道在GSX上构建Honeynets的更多细节,可以参考文章Know Your Enemy: Learning with VMwareGSX Server来实现虚拟Honeynets的优点在于:

Vmware GSX服务器的缺点在于:

不过,它和WorkStation一样,有一些配置选项可以降低这方面的风险。

VMware同样有一种叫做VMware ESX Server的服务器。它不单单是一种软件解决方案,而是可以直接在硬件接口上运行。ESX Server提供了可以直接控制主机硬件的虚拟机OS监视系统。这就让用户可以更好的控制分配给虚拟机的资源,例如CPU共享,网络带宽共享以及磁盘带宽共享。并且还提供了可以动态更改这些资源分配情况的功能。该产品相比GSX Server来说更高端。它的一些特性包括:它可以支持多个处理器,更多的并发虚拟机(最多64VM),更大的主机内存(最多64GB)以及每个虚拟机更大的可分配内存(最大3.6GB)

用户模式Linux
用户模式的linux是一种特殊的内核模块,它让用户可以在同一时间运行多个linux虚拟版本。它是由Jeff DikeUML可以让多个Linux实例在同一时间同一系统下运行。它是一种相对比较新的工具并且有很大的潜力。你可以在另外一个文献了解你的敌人-用户模式Linux中找到相关的细节。使用用户模式Linux来实现虚拟Honeynet的优点在于: