图书封面
以下为本书节选
蜜罐背景
在我们从高级技术层面开始讨论蜜罐技术之前,这一主题的背景知识对我们是有帮助的。为了激发我们使用蜜罐技术,首先看一下网络入侵检测系统(NIDS)[64]是有必要的。面对越来越复杂的逃避技术[70,105],以及采用加密技术来保护网络通信,防止被窃听的协议越来越多,入侵检测系统能提供的有用信息数量越来越少。入侵检测系统也受到高误报率的困扰,从而进一步降低了它们的作用。蜜罐技术能够帮助解决一些问题。
蜜罐是一个被严密监控的计算资源,希望被探测、攻击或者攻陷。更准确的描述是,蜜罐是“一个信息系统资源,其价值在于未经授权或非法使用该资源”(该定义来自蜜罐邮件列表SecurityFocus,http://www.securityfocus.com/archive/119)。一个蜜罐的价值可以由从它可获得的信息来衡量。通过监测进出蜜罐的数据来收集NIDS无法获得的信息。例如,即使使用了加密技术保护网络流量,我们仍然能够记录一个交互式会话中的按键。为了检测恶意行为,入侵检测系统需要已知攻击特征,而通常检测不到未知的攻击。另一方面,蜜罐可以检测未知的攻击,例如,通过观察离开蜜罐的网络流量,我们可以检测到漏洞威胁,即使是使用从未见过的漏洞利用手段。
因为蜜罐没有生产价值,任何连接蜜罐的尝试都被认为是可疑的。因此,分析蜜罐收集的数据所产生的误报比从入侵检测系统收集到的数据导致的误报少。在蜜罐的帮助下,我们所收集的大部分数据可以帮助我们了解攻击。
蜜罐可以运行任何操作系统和任意数量的服务,配置的服务决定了敌手可用的损害和探测系统的媒介。高交互蜜罐提供了一个攻击者可以交互的真实系统,相反,低交互蜜罐只能模拟一部分功能,例如网络堆栈[67]。高交互蜜罐可以完全被攻陷,允许敌手获得对系统的完全访问,并实施进一步的网络攻击。与此相反,低交互蜜罐只是模拟一些服务,敌手不能利用这些服务获得对蜜罐的完全访问。低交互蜜罐有更多的限制,但它们有助于在更高层面上收集信息,例如,了解网络探测或蠕虫活动,它们也可以用于分析垃圾邮件,或主动防范蠕虫,参见第10章如何使用不同种类蜜罐的案例研究综述。这两种方法的任一方法都不优于对方,它们有各自独特的优缺点,将在这本书中进行介绍。
密罐还分为物理蜜罐和虚拟蜜罐。一个物理蜜罐是网络上一台拥有自己IP地址的真正机器,一个虚拟蜜罐由另一台机器模拟,它响应发送给虚拟蜜罐的网络流量。
当收集有关网络攻击或探测的信息时,蜜罐部署的数量会影响收集数据的数量和精确性。测量基于HTTP的蠕虫[68]是一个很好的例子,当蠕虫完成TCP握手并发送有效载荷之后,我们可以识别这些蠕虫。然而,由于它们随机选择IP地址进行连接,所以绝大多数的连接请求不会被响应。通过把蜜罐配置为一个Web服务器,或模拟成一个有漏洞的网络服务,蜜罐可以捕获蠕虫的有效载荷。我们部署的蜜罐越多,蠕虫连接它们的可能性越大。
一般来说,蜜罐有几种不同的类型,除此之外,我们可以混合并匹配出不同的类型,将在后续的章节中详细解释和讨论。在深入探究虚拟蜜罐这一领域之前,首先纵览一下不同类型的蜜罐。
1.2.1 高交互蜜罐
一个高交互蜜罐是一个常规的计算机系统,如商用现货(commercial off-the-shelf ,COTS)计算机、路由器或交换机。该系统在网络中没有常规任务,也没有固定的活动用户,因此,除了运行系统上的正常守护进程或服务,它不应该有任何不正常的进程,也不产生任何网络流量。这些假设帮助检测攻击:每个与高交互蜜罐的交互都是可疑的,可以指向一个可能的恶意行为。因此,所有出入蜜罐的网络流量都被记录下来。此外,系统的活动也被记录下来备日后分析。
也可以将几个蜜罐组合成为一个蜜罐网络——蜜网(honeynet)。通常,一个蜜网由多个不同类型的蜜罐组成(不同的平台和/或操作系统),这允许我们同时收集不同类型的攻击数据,通常我们能够了解更全面的攻击信息,并因此得到攻击者行为的定性结论。
蜜网创建了一个玻璃鱼缸的环境,允许攻击者与系统交互,同时给操作者捕捉攻击者所有活动的能力。这个鱼缸还控制了攻击者的行动,减少了他们破坏蜜罐系统的风险。部署蜜罐的一个关键部件称为蜜墙(Honeywall)——一个用于分离蜜网与网络其他部分的二层桥接设备,这个设备通过数据控制和捕捉分析数据降低蜜网风险,蜜墙上的工具考虑到对攻击者活动的分析,任何出入蜜罐的流量必须通过蜜墙。捕获信息有不同的方法,包括被动网络嗅探器、IDS警报、防火墙日志和被称为Sebek的内核模块,将在2.5.1节中详细介绍。攻击者的活动被控制在网络层,通过入侵防御系统和连接限制器过滤所有出站连接。
高交互蜜罐的缺点之一是较高的维护量:你必须小心监测你的蜜罐,并密切观察所发生的事情,分析危险还需要一些时间,从我们的经验来看,分析一个完整的事件可能花费数小时甚至数天,直到你完全明白攻击者想干什么!
高交互蜜罐可以完全被攻陷,它们运行着带有所有漏洞的真实的操作系统,没有使用仿真,攻击者可以与真实的系统和真实的服务交互,允许我们捕获大量的威胁信息。当攻击者获得非授权访问时,我们可以捕捉他们的漏洞利用,监视他们的按键,找到他们的工具,或者搞清他们的动机。高交互解决方案的缺点是它们增加了风险:由于攻击者可能完全地访问操作系统,他们就有可能用它来损害其他非蜜罐系统。挑战之一就是将它们扩大到大量计算机规模时所带来的开销和各种问题。本书将在第2章更详细地介绍高交互蜜罐。
1.2.2 低交互蜜罐
与此相反,低交互蜜罐模拟服务、网络堆栈或一台真实机器的其他功能,它们允许攻击者与目标系统有限交互,允许我们了解关于攻击的主要的定量信息,例如,一个模拟的HTTP服务器,可以只响应对某个特定文件的请求,只实现整个HTTP规范的一个子集。交互的层次应该“刚好够用”欺骗攻击者或自动化工具——如一个寻找特定文件而危害服务器的蠕虫。低交互蜜罐的优点是简单和易维护,通常你可以只是配置你的低交互蜜罐,让它为你收集数据,这些数据可以是正在传播的网络蠕虫,或者是垃圾邮件发送者对开放式网络中继的扫描等信息。此外,安装这类蜜罐通常很容易:你只需要安装和配置一个工具就完成了。相比之下,高交互蜜罐只不过是你需为你的环境定制的一般方法。
低交互蜜罐可以主要用于收集统计数据,收集关于攻击模式的高级别信息。进一步地,它们可以作为一种提供预警的入侵检测系统,也就是对新的攻击提供自动报警(见第10章)。此外,它们还可以用于引诱攻击者远离生产机器[19,67,87]。另外,低交互蜜罐还可用于检测蠕虫、干扰敌手,或者了解正在进行的网络攻击。本书中将介绍多种不同类型的低交互蜜罐。低交互蜜罐也可以组成一个网络,形成一个低交互蜜网。
因为攻击者只与一个模拟系统交互,不会完全攻陷系统,低交互蜜罐构造了一个可控环境,因此风险有限:攻击者不能完全攻陷系统,因此你不必担心他滥用你的低交互蜜罐。
有许多不同的低交互蜜罐可用,在第3章中将介绍几种解决方案,并说明如何使用它们。此外,后续章节重点关注具体的工具,并非常详细地介绍它们。
表1.1总结了高交互蜜罐和低交互蜜罐,并对比它们各自重要的优缺点。
表1.1 高交互蜜罐和低交互蜜罐的优缺点
高交互蜜罐 |
低交互蜜罐 |
真实的服务、操作系统或应用程序 |
模拟的TCP/IP协议栈、弱点等 |
高风险 |
低风险 |
难以部署和维护 |
容易部署和维护 |
捕获大量的信息 |
捕获有关攻击的定量信息 |
1.2.3 物理蜜罐
蜜罐的另一种可能的分类方法是可以分为物理蜜罐和虚拟蜜罐。物理蜜罐意味着蜜罐运行在一个物理计算机上,物理通常暗指高交互,从而允许系统被完全攻陷。安装和维护它们通常是代价昂贵的。对于大的地址空间,为每个IP地址部署一个物理蜜罐是不切实际的,也是不可能的,这种情况下,我们需要部署虚拟蜜罐。
1.2.4 虚拟蜜罐
在本书中我们重点关注虚拟蜜罐。为什么这类蜜罐如此有趣呢?主要原因是其可度量性和易维护性,在一台机器上可以有数以千计的蜜罐,部署它们代价低,并且几乎每个人都可以容易地使用它们。
与物理蜜罐相比,这种方法更轻便。我们也可以在一台物理计算机上部署多个虚拟机作为蜜罐,而不是将一个物理计算机系统配置为一个蜜罐,这使得更容易维护和较低的物理需求。通常使用VMware[103]或用户模式Linux(UML)[102]建立这种虚拟蜜罐,这两个工具允许我们在一台物理机器上并发运行多个操作系统和应用程序,便于收集数据,我们将在第2章中详细介绍这两个工具。此外,在其他章节中我们会介绍其他类型的虚拟蜜罐,重点介绍这些蜜罐的不同点。由于本书的重点在虚拟蜜罐,在这里就不详细介绍了。应该记住的主要一点是:一个虚拟蜜罐是由另一台机器模拟的,响应发送给虚拟蜜罐的网络流量。
对于工作的任何蜜罐,外部Internet需要能够访问它。我们中许多人通过DSL或有线调制解调器连接Internet,这些设备通常使用网络地址转换(NAT),即使调制解调器后面可能有一个完整的网络,从Internet仍无法访问你的内部网络。因此,在采用NAT的网上部署蜜罐,你不会得到有价值的数据。某些NAT设备允许你改变端口转发配置,至少允许你一点点暴露于Internet。对于较严格的实验,你应该找一个提供实时非过滤IP连接的ISP。
1.2.5 法律方面
蜜罐有一些风险,如果一个攻击者设法攻陷你的一个蜜罐,他可能试图攻击不在你控制之下的其他系统。这些系统可位于Internet的任何地方,攻击者可以使用你的蜜罐作为跳板攻击敏感系统,这意味着运行蜜罐时会涉及一些法律问题,但在不同国家有不同的法律,对法律状况很难给出一致观点。我们将不讨论运行一个蜜罐系统的法律问题,因为如果你生活在美国,你可以从《Know Your Enemy》(http://www.honeynet.org/book/)的Richard Salgado章节中获得相关法律信息。在大多数国家这些法律是相似的,特别是欧洲和美国。你必须考虑明确的问题是,你的ISP可能明确地禁止在你的IP地址上运行蜜罐,或者由于无法预料敌手的步骤,可能危及其他机器的安全。如果你不确定你所做的,请咨询律师。也可以联系当地的蜜罐组织,他可以给你本国法律状况的概述。你可以在蜜罐项目的网站(http://www.honeynet.org/)上得到世界各地的不同蜜罐组织纵览。
作者简介
Niels Provos,2003年从密歇根大学获得博士学位,在那里他进行了计算机和网络安全的实验和理论方面的研究。他是OpenSSH的创建者之一,并由于他 在OpenBSD方面的安全工作而闻名。他开发了Honeyd(一个流行的开放源码的蜜罐平台)、SpyBye(一个帮助网站管理员检测网页上恶意软件的 客户端蜜罐),以及许多其他工具,如Systrace和Stegdetect。他是Honeynet项目的成员之一,在开源项目上作出了积极贡献。 Provos目前在谷歌公司担任高级主管工程师。
Thorsten Holz,德国曼海姆大学可靠分布式系统实验室的博士研究生。他是德国蜜网项目的创始人之一,是蜜网研究联盟指导委员会成员。他的研究兴趣包括安全系统实 际问题,但他也对更多的可靠系统理论问题感兴趣。目前,他的研究工作集中在僵尸程序/僵尸网络、客户端蜜罐和恶意软件。他的博客网址http: //honeyblog.org。