honeyd蜜罐部署与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.0李伊龙刘尚东
第一章Honeypot简介
1.1Honeypot的起源
蜜罐这个概念已经出现了至少20年之久了。
蜜罐(honeypot),首次出现在Cliff Stoll的小说«The Cuckoo’s Egg»[1]中,这部小说主要讲述的是作者自己身为公司的网络管理员,如何追踪并发现一起商业间谍案的故事。
在作者追踪的过程中,为了吸引黑客在线足够长的时间以便安全人员能够跟踪到他,Stoll 搭建了一个名叫“elaborate hoax”的东西,在其中放上黑客所感兴趣的一些东西,这个“elaborate hoax”,就是现在我们通常所说的蜜罐,蜜罐。
但是毋庸置疑在那之前已经有大量组织对其进行了很好的开发和使用,也进行了大量的研究和部署,只不过在1990年之前很少为公众所知而已。
1.2Honeypot的发展历程
蜜罐技术的发展历程分为以下三个阶段。
从九十年代初蜜罐概念的提出直到1998年左右,“蜜罐”还仅仅限于一种思想,通常由网络管理人员应用,通过欺骗黑客达到追踪的目的。
这一阶段的蜜罐实质上是一些真正被黑客所攻击的主机和系统。
1990/1991——第一本阐述蜜罐概念的公开发表的著作——Clifford Stoll的The Cuckoo’s Egg及Bill Cheswick的an evening with Berferd.
从1998年开始,蜜罐技术开始吸引了一些安全研究人员的注意,并开发出一些专门用于欺骗黑客的开源工具,如Fred Cohen所开发的DTK(欺骗工具包)、Niels Provos开发的Honeyd等,同时也出现了像KFSensor、Specter等一些商业蜜罐产品。
这一阶段的蜜罐可以称为是虚拟蜜罐,即开发的这些蜜罐工具能够模拟成虚拟的操作系统和网络服务,并对黑客的攻击行为做出回应,从而欺骗黑客。
1997——Fred Cohen的Deception Toolkit0.1版本发行,这是可为安全界所用的首批蜜罐解决方案之一。
1998——开始研发公开出售的首批商用蜜罐之一,CyberCop Sting。
其中引入了将多个虚拟系统与单个蜜罐相绑定的概念。
1998——Marty Roech及GRE Internetworking开始开发后来演化成NetFacade的蜜罐解决方案。
这项工作同时也开启了Snort的概念。
1998——BackOfficer Friendly发布——一种免费的、只用于windows的蜜罐,并将包括Lance Spitzner在内的许多人引入到了蜜罐的概念中。
1999——Honeypot Project形成,“Know Your Enemy”系列论文发布。
这项工作使人们加深了对蜜罐的认识并验证了蜜罐及其相关技术的价值。
2000、/2001——使用蜜罐来捕获和研究蠕虫活动。
更多的组织采用蜜罐来检测攻击和研究新威胁。
2002——一个蜜罐当场检测并捕获到一种新型的未知攻击,即Solarisdtspcd exploit。
2003-02-15——Niels Provos发布了Honeyd0.5版。
虚拟蜜罐工具的出现也使得部署蜜罐也变得比较方便。
但是由于虚拟蜜罐工具存在着交互程度低,较容易被黑客识别等问题,从2000年之后,安全研究人员更倾向于使用真实的主机、操作系统和应用程序搭建蜜罐,但与之前不同的是,融入了更强大的数据捕获、数据分析和数据控制的工具,并且将蜜罐纳入到一个完整的蜜网体系中,使得研究人员能够更方便地追踪侵入到蜜网中的黑客并对他们的攻击行为进行分析。
1.3Honeypot的定义
“蜜网项目组”(The Honeynet Project)的创始人Lance Spitzner给出了对蜜罐的权威定义:蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。
这就意味着无论我们将何物指定为蜜罐,我们的期望和目标就是让系统被别人探测,攻击和被攻破的可能性。
而这种资源是路由,或者是模拟脚本,或者是主机,之类的,究竟的什么倒没什么关系。
如果该系统从未被扫描或者被攻击过,那么它就是没有任何价值的。
这正是大部分产品系统的对立面,一般大家都不会希望它们被扫描和被攻击。
蜜罐和大部分安全工具的不同也在于,它可以非常的灵活,可以使用它实现很多不同的目标,譬如,蜜罐可以用于阻止攻击,类似于防火墙;蜜罐还可以用于检测攻击,类似于入侵检测系统;无论是伪装一个端口,还是模拟一个网络拓扑,蜜罐都可以胜任。
蜜罐是一种毫无产品价值可言的安全资源,没有任何人或者资源应该和它们进行通信。
因此,从本质上说任何发送给它们的活动都会受到怀疑。
任何发送给它们的流量都很有可能是一次探测、扫描或者攻击。
由蜜罐所启动的任何流量都意味着系统很有可能被攻破了,并且攻击者正在进行出境连接。
1.4Honeypot的优势和劣势
蜜罐本身也具有一定优势和劣势。
优势:
①数据价值,收集数据的保真度,由于蜜罐不提供任何实际的作用,因此其收集到的数据很少,同时收集到的数据很大可能就是由于黑客攻击造成的,蜜罐不依赖于任何复杂的检测技术等,因此减少了漏报率和误报率。
②资源,蜜罐技术不需要强大的资源支持,可以使用一些低成本的设备构建蜜罐,不需要大量的资金投入。
大多数安全机制都会面临资源限制和资源枯竭,譬如防火墙和IDS,会因为流量过大,超负荷而失效。
由于蜜罐只会对少量活动进行捕获和监视,所以通常不会资源枯竭。
部署蜜罐也不需要最新的尖端技术或者大量的内存,超高的带宽,并不需要对硬件进行大量投入。
③相对入侵检测等其他技术,蜜罐技术比较简单,使得网络管理人员能够比较容易地掌握黑客攻击的一些知识。
劣势
①视野有限,蜜罐只能看到何种活动是直接针对他们自身的,如果某个攻击者并不攻击蜜罐,或者说识别出蜜罐的存在而刻意避开该系统,蜜罐将永远无法得知他已经溜进来了。
甚至他会向蜜罐提供错误和虚假的数据,从而误导安全防护和研究人员。
②指纹识别,蜜罐具备一些特定的预期特征或者行为,因而能够被攻击者识别出其真实身份。
如果一个黑客识别出一个蜜罐,他可以利用它,对它欺骗,导致安全人员做出错误判断,以此趁乱作出攻击。
③风险,蜜罐会带来下游风险,可能作为跳板,攻击第三方。
蜜罐技术的初衷即是让黑客攻破蜜罐并获得蜜罐的控制权限,并跟踪其攻破蜜罐、在蜜罐潜伏等攻击行为,但我们必须防止黑客利用蜜罐作为跳板对第三方网络发起攻击。
为了确保黑客活动不对外构成威胁,必须引入多个层次的数据控制措施,必要的时候需要研究人员的人工干预。
1.5Honeypot的部署类型
蜜罐可以按照其部署目的分为产品型蜜罐和研究型蜜罐两类。
产品型蜜罐的目的在于为一个组织的网络提供安全保护,包括检测攻击、防止攻击造成破坏及帮助管理员对攻击做出及时正确的响应等功能。
一般产品型蜜罐较容易部署,而且不需要管理员投入大量的工作。
较具代表性的产品型蜜罐包括DTK、honeyd等开源工具和KFSensor、ManTraq等一系列的商业产品。
产品型蜜罐通过阻止,检测和响应3个部分来为系统和网络提供安全保障。
阻止,分为欺骗和威慑,前者是为了让攻击者在蜜罐上浪费时间和资源,后者则是告诫攻击者,有蜜罐存在,攻击者可能被吓跑。
蜜罐在检测中叶不会出现误报,漏报等现象。
研究型蜜罐则是专门用于对黑客攻击的捕获和分析,通过部署研究型蜜罐,对黑客攻击进行追踪和分析,能够捕获黑客的键击记录,了解到黑客所使用的攻击工具及攻击方法,甚至能够监听到黑客之间的交谈,从而掌握他们的心理状态等信息。
也可以同时用于以下几个方面,捕获自动攻击,如蠕虫等;作为早期预警;捕获未知的工具和技术;更好地理解攻击者的动机和组织。
研究型蜜罐需要研究人员投入大量的时间和精力进行攻击监视和分析工作,具有代表性的工具是“蜜网项目组”所推出的第二代蜜网技术。
1.6Honeypot的交互等级
蜜罐还可以按照其交互度的等级划分为低交互蜜罐和高交互蜜罐。
交互度反应了黑客在蜜罐上进行攻击活动的自由度。
低交互蜜罐一般仅仅模拟操作系统和网络服务,较容易部署且风险较小,但黑客在低交互蜜罐中能够进行的攻击活动较为有限,因此通过低交互蜜罐能够收集的信息也比较有限,同时由于低交互蜜罐通常是模拟的虚拟蜜罐,或多或少存在着一些容易被黑客所识别的指纹(Fingerprinting)信息。
低交
互蜜罐主要是用于协助保护特定组织的产品型蜜罐。
高交互蜜罐则完全提供真实的操作系统和网络服务,没有任何的模拟,从黑客角度上看,高交互蜜罐完全是其垂涎已久的“活靶子”,因此在高交互蜜罐中,我们能够获得许多黑客攻击的信息。
高交互蜜罐在提升黑客活动自由度的同时,自然地加大了部署和维护的复杂度及风险的扩大。
研究型蜜罐一般都属于高交互蜜罐,也有部分蜜罐产品,如ManTrap,属于高交互蜜罐。
究竟是使用高交互的蜜罐还是使用低交互度的蜜罐,要取决于所要实现的目的。
交互级别安装和配置
工作
部署和
维护工作所收集的信息
风险
级别
低简单简单有限低
中棘手棘手可变中
高复杂复杂大量高
1.7Honeypot的价值
蜜罐并不修正任何问题,它们仅提供额外的、有价值的信息。
所以说蜜罐并非是一种安全的解决方案,这是因为它并不会“修理”任何错误,它只是一种工具,如何使用这个工具取决于用户想做什么,它可以对其他系统和应用进行仿真,创建一个监禁环境将攻击者困在其中。
无论用户如何建立和使用蜜罐,只有蜜罐受到攻击,它的作用才能发挥出来。
蜜罐主要是一种研究工具,但同样有着真正的商业应用,它常常被用来跟踪僵尸网络或是收集恶意代码等。
在当前商业社会,蜜罐系统的主要作用主要体现为“家庭医生”的角色。
大多数企业在防范黑客攻击、蠕虫等网络风险时主要依靠网络安全厂商所提供的安全预警通报、入侵检测特征库升级来对近期常见的风险进行预警,而针对特定的攻击行为或变种的病毒则无能为力。
从这个观点中,我们可以看出网络安全厂商可比作“国家卫生厅”,可以发布常见的风险,但对于针对某个个体本身可能存在什么风险则无从而知了。
为保证企业的资源得到更有效的保护,必须引入专门针对个体的“家庭医生”-蜜罐系统,透过其内部固有的特征检测、沙箱检测模块确认个体本身已经存在的风险,并分析得出“药房”-风险分析结果。
最后由企业网络管理员根据分析结果并依靠安全产品作为支撑手段实现动态的安全预警。
对于通常的网站或邮件服务器,攻击流量通常会被合法流量所淹没,而蜜罐进出的数据大部分是攻击流量,因而,浏览数据、查明攻击者的实际行为也就容易多了。
信息安全已经成为网络管理员所面对的最严重问题,管理员必须花费大量的时间来确保网络已经部署了防火墙并为操作系统安装了最新的补丁,同时使用入侵检测系统去记录所有的可疑活动。
不幸的是,当前的防火墙和入侵检测系统已经不再有效,因为随着网络
的不安全因素的增多,防火墙和入侵检测系统的日志内容也日益庞大,甚至有些系统每天的日志量就达1GB,企业再也没有过多的人力用来每天处理如此大量的日志内容。
防火墙日志和入侵检测系统的报告是毫无价值的,事实上它们确实认真地履行了各自的任务,不过当看到如此大量的信息和报告,而其中大部分都是对系统没有威胁的无目的的扫描时,利用蜜罐也许是一个好方法。
第二章Vmware介绍
2.1Vmware概述
VMWare是一个“虚拟PC”软件公司.它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。
与“多启动”系统相比,VMWare采用了完全不同的概念。
多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。
VMWare 是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。
而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。
安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。
2.2Vmware的主要产品
VMware是提供一套虚拟机解决方案的软件公司,主要产品分为如下三个。
VMware-ESX-Server,这个版本并不需要操作系统的支持。
它本身就是一个操作系统,用来管理硬件资源。
所有的系统都安装在它的上面。
带有远程web管理和客户端管理功能。
VMware-GSX-Server,这个版本就要安装在一个操作系统下了,这个操作系统叫做HOST OS。
这个HOST OS可以是Windows2000Server以上的Windows系统或者是Linux(官方支持列表中只有RH,SUSE,Mandrake很少的几种),和VMware-ESX-Server一样带有远程web管理和客户端管理功能。
VMware-WorkStation,这个版本和VMware-GSX-Server版本的机构是一样的。
也是要安装在一个操作系统下,对操作系统的要求也是Windows2000以上或者Linux。
和Vmware-GSX-Server的区别就是没有web远程管理和客户端管理。
瘦客户机终端操作系统(DeTOS)6.0,戴闻(Devon)IT公司与vmware公司合作开发的瘦客户机终端操作系统(DeTOS)6.0是一种基于Linux操作系统的,可捆绑多客户并连接到众多的各类服务器,利用不同类型协议的网络终端管理软件。
本文使用的是最普遍使用的VMware Workstation,具体版本为VMware Workstation ACE版,版本6.0.2build-59824。
如图2-1所示。
图2-1界面
2.3Vmware产品的主要功能
1.不需要分区或重开机就能在同一台PC上使用两种以上的操作系统。
2.完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料。
3.不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能。
4.有复原(Undo)功能。
5.能够设定并且随时修改操作系统的操作环境,如:内存、磁碟空间、周边设备等等。
6.热迁移,高可用性。
2.4Vmware WorkStation的网络连接方式
Vmware WorkStation的网络连接方式一共有4种,分别是桥接方式(Bridge),网络地址转换方式(NAT),主机方式(Host-Only)和自定义。
如图2-2所示。
图2-2网络连接
桥接方式(Bridge):在桥接方式下,VMware模拟一个虚拟的网卡给客户系统,主系统对于客户系统来说相当于是一个桥接器。
客户系统好像是有自己的网卡一样,自己直接连上网络,也就是说客户系统对于外部直接可见。
下面将会看到,我们正是通过这种方式来搭建我们的虚拟蜜网。
如图2-3所示。
图2-3桥接
网络地址转换方式(NAT):在这种方式下,客户系统不能自己连接网络,而必须通过主系统对所有进出网络的客户系统收发的数据包做地址转换。
在这种方式下,客户系统对于外部不可见。
如图2-4所示。
图2-4NAT
主机方式(Host-Only):在这种方式下,主系统模拟一个虚拟的交换机,所有的客户系统通过这个交换机进出网络。
在这种方式下,如果主系统是用公网IP连接Internet,那客户系统只能用私有IP。
但是如果我们另外安装一个系统通过桥接方式连接Internet(这时这个系统成为一个桥接器),则我们可以设置这些客户系统的IP为公网IP,直接从这个虚拟的桥接器连接Internet。
如图2-5所示。
图2-5HOST ONLY
自定义:可以自由自主的选择网络连接方式,指定虚拟网络,共有10种连接方式,
VMnet0~9。
其中VMnet0是默认的桥接方式(Bridge),VMnet1是主机方式(Host-Only),VMnet8网络地址转换方式(NAT)。
其余的VMnet可以自主定义,修改,配置,在开始菜单——设置——控制面板——网络连接处配置的。
如图2-6所示。
图2-6自定义
2.5安装Vmware WorkStation和RED HAT LINUX9.0
2.5.1安装Vmware WorkStation
采用默认和typical方式安装VMwareWorkStation。
安装完毕后,需重启电脑。
界面如图2-1所示。
2.5.2安装RED HAT LINUX9.0
安装好Vmware WorkStation后,我们来安装RED HAT LINUX9.0版。
1.选择文件——新建——新建虚拟机。
2.选择典型安装。
3.虚拟机的操作系统类型
4.虚拟机命名与路径
5.虚拟机网络连接方式配置
6.磁盘容量
这时候一个虚拟机已经新建完毕。
7.选择菜单,虚拟机——设置,
点中CD-ROM,选择使用物理驱动器。
然后把RED HAT LINUX9.0的安装盘放入光驱,进行安装。
按步骤安装即可。
在选择语言时,选择简体中文。
在安装类型上,选择个人桌面,内含GNOME桌面,OPENOFFICE,FIREFOX和EMAIL 软件等。
之后按照指令,点击下一步和YES。
设置ROOT口令。
最少为6位。
此为LINUX系统最重要的密码,具有系统管理员权限。
安装过程。
9.进入LINUX
安装完毕后,我们就可以进入LINUX了,首次登陆前,还需要配置一个用户级的账
号。
这样一共就有2个账号,一个ROOT,一个用户级。
之后我们需要安装VMware Tools,VMware Tools相当于VMware虚拟机的主板芯片组驱动和显卡驱动、鼠标驱动,在安装VMware Tools后,可以极大提高虚拟机的性能,并且可以让虚拟机分辨率以任意大小进行设置,还可以使用鼠标直接从虚拟机窗口中切换到主机中。
1.从VM菜单下选择安装VMware Tools。
2.将安装包复制到ROOT目录下,并解压缩。
进入目录。
3.按照提示安装,最后重新启动虚拟机即可。
此时,操作系统环境就算搭建好了。
第三章Honeyd介绍
3.1Honeyd简介
Honeyd是一款非常优秀的开源低交互虚拟蜜罐软件,由毕业于密歇根大学的Google 公司软件工程师Niels Provos于2002年最初发布,2005年发布v1.0正式版,目前已发布了v1.5c。
Honeyd是一种针对Unix和类Unix系统设计的开放源码蜜罐解决方案,它是一种为Unix平台设计的开放源码的预包装蜜罐。
开放源码意味着:(1)
该解决方案是免费的;(2)可以访问到源代码,并进行制定。
其设计定位为一种低交互度的解决方案;没有为攻击者提供可以获得访问权的操作系统,而只是一些模拟服务。
Honeyd作为一个虚拟蜜罐构建框架工具,可根据配置灵活构建虚拟蜜罐主机及由虚拟蜜罐主机构建的复杂诱骗网络。
Honeyd将模拟虚拟蜜罐主机的网络协议栈,以对针对这些虚拟蜜罐主机的网络攻击进行响应,Honeyd可以模拟任意的TCP和UDP服务,同时完全支持ICMP协议。
Honeyd可支持由一台单独的主机对局域网中未使用的IP地址进行模拟,honeyd命令行中的net参数可以包含多个IP地址和IP地址段。
要使得honeyd对配置文件中配置的IP 地
址进行响应,则这些IP地址必须包含在net参数中,honeyd会对net中定义的所有IP 地址的ICMP请求做出响应,除非在配置文件中另外定义。
为了使得honeyd能够接收到其模拟IP地址的网络流量,必须通过显式指定路由将这些IP地址路由到honeyd主机,或使用arpd来劫持在一个共享式网络中未分配的IP地址。
3.2Honeyd的特点
Honeyd主要设计为一种产品型蜜罐.用于对攻击或者未授权的活动进行检测。
然而,它仍然具有一些特定的应用程序去研究。
作为一种开放源码的解决方案,可以对Honeyd 进行高度定制,譬如设计自己的模拟服务等。
这也意味着Honeyd可以对所希望的任何一个端口进行监听,并且所希望的模拟数量的多少也是随意的。
Honeyd能让一台主机在一个模拟的局域网环境中配有多个地址(曾测试过的最多可以达到65536个),外界的主机可以对虚似的主机进行ping、traceroute等网络操作,虚拟主机上任何类型的服务都可以依照一个简单的配置文件进行模拟,也可以为真实主机的服务提供代理。
Honeyd被设计用来应答目标地址属于模拟蜜罐范围之内的网络包。
要让Honeyd能够接受到发送给虚拟蜜罐的数据包,必须要正确的配置网络。
有几种方法可以实现网络的配置,如为指向Honeyd主机的虚拟IP建立特殊的路由、使用代理ARP或者使用网络隧道等。
这里我们假设A为网络路由器的IP,B是Honeyd主机的IP,最简单的情形是,虚拟
蜜罐的IP位于局域网范围之内。
我们标识他们为V1,V2……Vn,当攻击者通过互联网发送一个数据包给蜜罐Vi,路由器A会接受到数据包并试图发送该数据包。
路由器会查询路由表来决定该将发送到Vi的包传递到哪里。
数据会有3种处理方式:
当没有路由指向Vi时,路由器会丢弃该数据包;
路由器A将数据包转发到另一个路由器;
Vi位于路由器所在的局域网范围之内,路由器A可以直接将数据包传送给Vi。
如图3-1。
图3-1
为了将到Vi的数据流导向Honeyd主机B,我们可以使用下面两种方法:
最简单的方法是将到Vi的路由入口设置为指向B,这样一来,路由器转发到虚拟蜜罐的数据包将会直接发送到Honeyd主机。
如果我们没有配置特殊的路由,路由器会使用ARP指令来查询虚拟蜜罐的MAC地址。
但由于没有响应的虚拟主机,ARP查询会得不到应答,路由器在重试几次后就会将数据包丢弃。
此时,我们可以配置让Honeyd主机利用自己的MAC地址去响应针对Vi的ARP查询。
这种方法就称之为代理ARP。
代理ARP允许路由器将发送到Vi的数据发送到Honeyd 主机B的MAC地址。
在更复杂的环境下,可以将一段网络地址空间通过网络隧道连接到Honeyd主机。
我们可以使用一般路由封装(generic routing encapsulation,GRE)等隧道协议。
3.2Honeyd的软件体系结构
Honeyd体系由几个组件构成,这些组件是配置数据库、中央包分发器、协议处理器、个性引擎和可选路由构件。
如下图3-2所示:
图
3-2
①系统接受到的数据会由中央包分发器进行处理,首先中央包分发器进行处理会检查IP包的长度,修改包的校验和。
Honeyd框架响应的是最主要的3种互联网协议:ICMP,TCP 和UDP,其他协议的包在被记入日志后会被悄悄丢弃。
在处理数据包之前,分发器会查询配置数据库以查找到一个符合目标地址的蜜罐配置。
如果没有特定的配置存在,系统会采用默认配置模板。
给定配置后,数据包和相应的配置会被转交给相应的协议处理器处理。
ICMP协议处理器支持多数的ICMP查询。
默认情况下,所有的蜜罐配置都会响应echo 请求,并且处理“destination unreachable”消息。
其他请求的处理主要依赖于个性引擎的配置。
对于TCP和UDP包,Honeyd可以建立到任意服务的连接。
这些服务是外部的应用程序,可以通过标准输入输出来接收和输出数据。
不同于为每个连接创建一个新进程,Honeyd 支持子系统(subsystem)和内部服务(internal service),子系统是一个运行在某个虚拟蜜罐的名称空间下的应用程序,子系统的特定应用是在相应的虚拟蜜罐实例化的时候创建的。
一个子系统可以绑定端口、接收连接和创建网络连接。
子系统是作为外部进程运行的,而内
部服务则是一个Honeyd内部运行的python的脚本。
内部服务要求的资源比子系统更少,但只能接收连接,不能创建网络连接。
UDP数据报文会直接传递到应用程序,当接收到一个发送到关闭的端口的数据报文的时候,如果个性化配置中没有设置禁止的话,系统会发送一个端口不可达消息。
在发送端口不可达消息的时候,系统允许网络映射工具如traceroute来查探网络路由。
除了可以建立到本地服务的连接外,Honeyd还支持网络连接的重定向。
这种重定向可以是静态的,也可以是与网络连接的四个参数相关(源地址与源端口,目标地址与目标端口)。
重定向使得我们可以将一个到虚拟蜜罐上的服务的连接请求转发到一台真实服务器运行的服务进程。
在发送数据到外部网络之前,数据包会经由个性引擎处理。
个性引擎会修改数据包的内容,使得数据包看上去和从指定配置的操作系统的网络栈中发出的一样。
②个性引擎
不同操作系统的网络栈处理各不相同,这导致他们所发送的数据包具有各自不同的特点。
网络攻击者常常会使用一些网络指纹识别工具,如Xprobe、Nmap等来分析接收到的数据包的特点,从而达到收集目标系统信息的目的。
对Honeyd来说,在被指纹识别的时候不要暴露出来是非常重要的。
为了使得虚拟蜜罐在被探测得时候显得像真实主机一样,Honeyd模拟给定的操作系统的网络栈行为,我们称之为虚拟蜜罐的“个性”。
不同的虚拟蜜罐可以被赋予不同的“个性”。
“个性引擎”个性化虚拟蜜罐的网络栈行为的方法就是:在每个发送出去的数据包的协议头中引入适当的修改,使得数据包符合指纹识别软件预期的操作系统的特征。
Honeyd利用Nmap指纹库作为TCP连接和UDP连接个性化的参考,利用Xprobe指纹库作为ICMP连接个性化的参考。
③路由拓扑的实现
Honeyd可以模拟不同品牌和类型的路由器,也可以模拟网络连接的时延和丢包现象。
当我们使用traceroute等工具进行网路映射时,网络流会表现得与配置的路由器及网络结构一致。
当我们模拟路由拓扑时,是不可以使用代理ARP将数据包传递给Honeyd主机的,我们必须要配置路由将虚拟蜜罐所在的网络空间指向Honeyd主机。
通常情况下,虚拟路由拓扑是一个树形结构,该树以数据包进入虚拟网络拓扑的入口作为树根。
树的每个内部节点代表一个路由器,每条边代表一个有时延和丢包现象的链路。
树的终端节点与网络上的主机节点相对应。
Honeyd架构支持平行共存的多个网络入口。
接收数据包的时候,系统会找到合适的入口路由,从根部开始,周游路由树,直到找到包含数据包目标IP地址的节点。
每条网络连路上的丢包率和时延会被累积计算以确定一个包是否该被丢弃、该被推迟多长时间后再传递等。
当数据包路由途中经过一个路由器时,Honeyd框架也会消耗该包的TTL。
当一个包的TTL变为0的时候,该包会被丢弃,系统会发送一个ICMP的超时消息,该消息会包含使该包TTL减到0的路由器的IP地址。
在模拟网络时,我们也可以将真实的系统集成到虚拟路由拓扑中。
当Honeyd框架系。