- 683.26 KB
- 2022-06-16 12:40:13 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
重庆大学工程硕士学位论文安全防御系统中的蜜罐技术研究硕士研究生:连琪指导教师:甘育裕教授兼职导师:汪洋高工工程领域:电子与通信工程重庆大学通信工程学院二OO七年九月
EngineeringMasterDegreeDissertationofChongqingUniversityResearchontheHoneypotTechnologyInSecurityProtectingSystemCandidate:LianQiSupervisor:Prof.GanYuyuPluralisticSupervisor:SeniorEngineerWangYangMajor:ElectronicsandCommunicationEngineeringCollegeofCommunicationEngineeringChongqingUniversitySeptember2007
摘要蜜罐作为一种主动的安全防御技术被引入网络安全领域。它的价值体现在它希望被攻击和威胁以获得攻击者更多的信息和攻击技术。同时通过吸引攻击者的攻击而保护真正的系统。这篇论文首先讨论了蜜罐是什么,它们是如何工作的。然后评估了现存的几个蜜罐产品,并比较了它们的异同。对本论文要使用的虚拟蜜罐框架进行了深入细致的研究。在理论研究的基础上,自己设计了一个虚拟蜜罐系统并将其部署在可用于实验的网络环境中。构建的蜜罐系统是一个实现了欺骗和诱骗、行为控制、入侵检测、被动探测和数据分析几项功能的综合性蜜罐系统。论文作者不仅实现了这个系统而且还进行了测试。测试是在实验室环境下进行,并且对收集的数据进行了分析。论文详细描述了这一过程,结果证实该系统达到了预期的目标。最后,对完善蜜罐系统的功能和进一步的研究工作提出了一些想法和意见。关键词:蜜罐,虚拟蜜罐,蜜罐系统,入侵检测系统,防火墙,被动探测,数据分析I
ABSTRACTAhoneypotasakindofactivesecurityprotectingtechnologyisintroducedtotheareaofthenetworksecurity.Itsvaluemanifeststhatitisintendedtobeattackedandcompromisedtogainmoreinformationabouttheattackerandhisattacktechniques.Itcanalsobeusedtoattractanddivertanattackerfromtherealtargets.Thispaperbeginsbydiscussingwhatahoneypotisandhowitworks,thenevaluatesdifferentavailablehoneypotproductsandcomparesthemtoeachother.Forimplementingahoneypot,thispaperconductsthein-depthstudyofthevirtualhoneypotframework.Basedonthestudyofthetheoryofhoneypot,IdesignedanddeployedaVirtualhoneypotsystemcalledHoneypotMe.Thehoneypotsystemconstructedbymyselfisanintegratedsystemwhichcanimplementmanycapabilitiesofdeceptionanddecoy,actioncontrolling,intrusiondetecting,passivefingerprintdetectinganddataanalyzingetc.Thissystemwasnotonlyimplementedbutalsotested.Thetestwasdoneinthelabenvironment,andthecollecteddatasoftheattackswereanalyzed.Thepaperillustratedthecourseandanalyzedtheresults.Theresultsshowthesystemhasachieveditspurpose.Finally,someideasofperfectingthefunctionalityofthehoneypotsystemanddoingthefurtherresearchonhoneypotwereputforward.Keywords:honeypot,virtualhoneypot,honeypotsystem,intrusiondetectionsystemFirewall,Passivefingerprintdetecting,dataanalysisII
目录摘要.......................................................................................................................IABSTRACT...................................................................................................................II1绪言.........................................................................................................................11.1课题来源与背景..................................................................................................1[1][3]1.2本课题在国内外的现状及发展动向的概述................................................11.3课题研究内容......................................................................................................32蜜罐.........................................................................................................................4[2][4][5][6]2.1蜜罐的概念及其在安全领域中所起的作用..........................................42.1.1蜜罐的定义...................................................................................................42.1.2蜜罐的优点和缺点.......................................................................................42.1.3蜜罐在整个安全领域中所起的作用...........................................................52.1.4根据交互等级对蜜罐的分类.......................................................................72.1.5网络中蜜罐的位置.......................................................................................82.1.6蜜网.............................................................................................................10[10][11]2.2可利用的几种蜜罐....................................................................................112.3小结.....................................................................................................................143蜜罐系统的实现.......................................................................................................16[15]3.1蜜罐系统实现的目标....................................................................................163.1.1蜜罐系统设计思想.....................................................................................163.1.2HoneypotMe的部署考虑............................................................................193.1.3蜜罐系统实现中的关键技术问题.............................................................20[7][8][13]16]3.2实现蜜罐HONEYPOTME的相关技术分析..........................................213.2.1虚拟蜜罐框架的实现技术.........................................................................213.2.2入侵检测系统.............................................................................................263.2.3用iptables实现包过滤防火墙...................................................................283.2.4被动探测技术.............................................................................................30[20][21]3.3蜜罐HONEYPOTME的实现.......................................................................323.3.1HoneypotMe的基本实现和拓扑结构........................................................323.3.2HoneypotMe虚拟蜜罐及虚拟网络拓扑的设计和配置............................343.3.3HoneypotMe中防火墙的作用及配置........................................................373.3.4HoneypotMe中收集信息的方式................................................................383.4小结....................................................................................................................394实验过程及结果分析...............................................................................................41[18][19]4.1实验环境....................................................................................................414.2实验过程及结果分析........................................................................................42III
4.2.1HoneypotMe蜜罐系统的建立和配置........................................................424.2.2进行攻击实验.............................................................................................444.2.3对蜜罐系统获得的信息进行分析和探测.................................................474.3小结....................................................................................................................515下一步工作...............................................................................................................526总结.......................................................................................................................54致谢.......................................................................................................................55参考文献.......................................................................................................................56附录.......................................................................................................................58IV
1绪言1.1课题来源与背景本课题来源于“XX”XXXX课题,将作为其中的一部分实现欺骗性安全防御技术。在信息系统的安全方面,技术在不断提高,甚至安全模型也在不断发展。从被动的防护,到增加入侵检测和响应,以及出现了预先的主动安全防御措施。传统意义上的信息安全机制,一般都属于被动防御,如防火墙、入侵检测系统、加密等。它们的策略是考虑系统可能出现哪些问题,然后针对问题进行分析解决,以此来保护我们的信息资源。这些常见的网络防范手段和工具一般都是基于规则和特征匹配的方式工作,且多是针对现有攻击技术的。然而,随着攻击技术的不断发展,现有防护技术对新的攻击技术往往不能识别,总是处于被动地位。目前,一些研究机构提出了欺骗性安全防御技术,为安全防御措施增加了主动性。这些欺骗性安全防御技术主要通过设置与真实的系统相似的欺骗性目标,使攻击者相信信息系统存在可利用的安全脆弱性,并具有一些有价值的、可攻击和窃取的资源,从而将攻击者引向这些资源,使其偏离正确目标。同时,它又能够显著地增加攻击者的工作量、入侵复杂度以及不确定性,从而使攻击者不知道其进攻是否奏效或成功,影响其攻击其他系统。此外,它还可以对攻击者的行为进行跟踪、记录,发现其攻击企图并进行分析,在攻击者入侵真实的系统之前及时修补系统可能存在的安全漏洞,从而增加了探测和攻击真实目标的难度,提高了系统的安全性及系统安全的时效性。因此,对欺骗性安全防御技术的研究,可将主动防御引入到安全模型中去,有助于提高信息系统的安全性,在对抗攻击方面占据主动。从另一方面来讲,对欺骗性安全防御技术的深入研究,有助于弄清楚欺骗性安全防御措施的机理和特点,从而在对目标的探测中,能够更好地进行识别,提高探测的准确性。[1][3]1.2本课题在国内外的现状及发展动向的概述关于欺骗性安全防御措施,很早就有一些较小、零散的思想或技术,而比较系统化的、最主要的欺骗性安全防御措施就是所谓的Honeypot(蜜罐)技术。蜜罐是一个资源,这个资源被伪装成一个真实的目标,并期待着被攻击或被威胁,主要目的是吸引攻击者并将他们的注意力从真实的目标转移出去,并且获得关于攻击者、他们所使用的方法和工具等方面的信息。蜜罐最初的目的之一是为起诉恶意黑客搜集证据,这看起来有“诱捕”的感觉。1
1989年和1990年,CliffordStoll和BillCheswick首先论述了蜜罐是唯一的被设计来作为被攻击资源的安全技术。在过去的几年里,信息安全团体日益认识到蜜罐的价值。作为一个新的研究领域,关于蜜罐是什么有着不同的解释,一些人觉得它是引诱和欺骗攻击者的一个解决方案;另一些人认为它是用来探查攻击的一个技术;与此同时还有一些人感到蜜罐是一个真实的计算机,它被设计成攻击者可以窃用它的数据,并且蜜罐可以获悉攻击者的意图。一个较为通用的认识是,蜜罐是一个资源,它的价值在于它会受到探测、攻击或威胁。可以说蜜罐是一个非常灵活的技术,不局限于仅仅解决一个问题,而能够满足各种不同的目标。近年来,国际上对蜜罐的研究十分热门,已开发出了一些不同用途的蜜罐,它们的功能和使用的难易程度有很大差别。根据目的的不同,蜜罐主要可以分为两种类型:产品蜜罐和研究蜜罐。产品蜜罐被作为安全产品开发,可用来保护用户的网络,直接增加网络的安全性,主要体现在它可以帮助一个机构转移风险,在预防、检测和对攻击做出反应上体现出它特有的价值。研究蜜罐不同,他们被用来收集信息,所收集的信息随后可以被用于不同的目的,比如早期的警告和预防,情报收集,或法律的实施。通过对黑帽集团和它们的攻击行为更好的理解,可帮助针对这些威胁建立起更好的防御。由于蜜罐的研究还处于较新的阶段,并没有标准的方法,多是一些自定义的解决方案,这些解决方案可以提供一定程度的自由度和灵活性,从而覆盖了范围很广的可能的攻击和攻击者。每一个蜜罐通常都有它自己的目标,并在主题上有不同的着重点。只有对蜜罐技术和其它安全技术有比较好地理解的基础上,才能开发出一个自定义的解决方案,同时需要化费时间进行开发。目前,对于产品型和研究型蜜罐,都有一些可以利用的蜜罐解决方案,其中包括一些商业性蜜罐、免费蜜罐和提供开放源代码的蜜罐。ManTrap、NetFacade、SmokeDetector和Specter等都是能够用来探查攻击的商业性蜜罐。Mantrap是唯一的提供了完整的操作系统让攻击者与之交互的商业性蜜罐,它捕捉攻击者的每一个动作,并有显著的数据收集能力,目前仅运行在Solaris上;NetFacade是1999年开发的一个商业蜜罐,它能够同时模拟不同的操作系统;SmokeDetector是一个蜜罐设备,有大量的检测和模拟能力;Specter是一个被设计来在Windows上运行的商业性蜜罐,它可以模拟13种不同的操作系统,监控14个TCP端口,它有多种配置和通知特征,它最大的优点之一就是容易使用。另外,一些组织和个人还提供了一些免费蜜罐和开放源代码蜜罐,它们的设计体现了开发者不同的目标和思想,其中开放源代码可被用来进行进一步的研究和开发利用。例如:DeceptionToolkit,它是第一个开放源代码蜜罐,在1997年发布,它是Perl脚本和C源代码的集成,能够仿真模拟各种监听服务,主要目的是欺骗攻击者,目前这个工具已有些过时。BackOfficeFriendly2
是一个1998年写成的基于Windows的免费蜜罐,类似一个夜盗警铃(它被描述为并不将门窗锁死,而是打开让攻击者进入,然后报警),BOF非常容易使用,可运行在任意的Windows平台,但它仅能监听七个端口,不过如果从来没有安装过蜜罐,这是一个较好的开端。Honeyd是一个新的开放源代码蜜罐,在2002年发布,用C语言编写,专为Unix平台设计的,它引入了各种新的概念。此外,在过去的几年中HoneynetProject组织专注于对网络入侵者这一群体使用的各种工具、攻击策略及目的进行研究,并让大家分享他们的经验,他们使用就是Honeynet,Honeynet是专门设计来让人“攻陷”的网络,一旦被攻击者所攻破,攻击者的一切信息、工具等都将被用来分析学习,它是目前最复杂的蜜罐解决方案,可以说它不是一个工具或软件,而是一个体系结构,位于实际的系统之中,是用于研究、实验的一套解决方案。国内对蜜罐的研究刚刚起步,基本是跟踪国外的研究,没有看到有关的产品。1.3课题研究内容本课题首先从蜜罐的理论入手,研究蜜罐的概念和思想以及在安全领域所起的作用和存在的价值;分析了目前可得到的几种蜜罐所起的不同作用以及各自的优势与不足,从而对蜜罐技术有了较为深入的认识。课题的重点是自定义蜜罐系统的实现。在跟踪蜜罐技术最新发展的基础上,针对实际网络环境的安全需求,结合其他网络安全技术及实现,我们开发设计了一个虚拟蜜罐系统。该蜜罐系统的实现是多项网络安全技术综合运用的产物,这些安全技术包括:虚拟蜜罐框架、入侵检测技术、被动探测技术等。本课题对这几项技术进行了深入的研究,并有机地结合在一起,使蜜罐系统具备了诱骗、欺骗攻击者、收集攻击者信息、对攻击行为进行分析等多种功能。最终,为了验证系统的功能是否达到了预期的目标,对系统进行了实验验证,并对实验结果进行了分析。研究的过程也是不断地思考、实践验证的过程。通过对蜜罐的研究,为今后在这个领域要解决的问题提出了新的目标。在论文的最后列举了一些下一步想要做的工作和要解决的问题。3
2蜜罐[2][4][5][6]2.1蜜罐的概念及其在安全领域中所起的作用2.1.1蜜罐的定义本学科的权威人士LanceSpitzner对蜜罐的定义是:“蜜罐是一个资源,它的价值在于它会受到攻击或威胁。这意味着一个蜜罐希望受到探测、攻击和潜在地被利用。蜜罐并不修正任何问题,它们仅为我们提供额外的、有价值的信息。”因此上说无论我们将什么指定为一个蜜罐,直接的目标就是使该系统被探查、被攻击和被潜在地利用。从实现上看,蜜罐是一类工具:它只模拟其它系统或应用、创建一个被禁锢环境、或是标准的被拼成的系统。无论如何建立和使用蜜罐,它的价值首先就体现在它打算被攻击。因此,蜜罐技术的核心思想比较简单:它是一个故意要被威胁(期待黑客闯入)的系统,进出蜜罐的所有流量都是可疑的,因此都可以被认为是攻击流量而得到进一步的检测和分析。2.1.2蜜罐的优点和缺点蜜罐最大的价值体现在于它比较简单,它是一个故意要被威胁的设备,所以进出蜜罐的所有流量都是可疑的,因此上说蜜罐在技术上有其特有的优点。下面根据蜜罐的特点论述一下蜜罐的优点和存在的不足。①蜜罐的优点数据收集现存的一些安全机制,如防火墙和入侵检测系统,每天可能会接收大量的信息,常常会使许多有用的信息被淹没在大量的信息之中。而蜜罐收集极少的数据,并且收集的数据通常具有很高的价值。其关键就在于蜜罐并不是一个真实的系统(进行正常通信活动的系统),它所记录的所有数据很可能是扫描、探查和攻击,这样就削减了干扰,使收集和存储数据容易得多。在安全方面遇到的最大的问题之一就是从数千兆字节的无用数据中找到有价值的数据。蜜罐可以以一种快速的和容易理解的格式提供给用户所需要的精确的数据,这些数据随后可用于统计建模、趋势分析、检测攻击甚至可以用来研究攻击者。资源许多安全机制存在着资源的局限性,甚至面临着可能耗尽资源的问题。网络入侵检测设备可能跟不上网络活动,如果缓冲区变满就会丢包,因此不再能够有效地监视网络活动,因此会忽略攻击。防火墙的连接表也有可能会满,因而不再监视连接,这会迫使它阻塞所有的连接,而不是仅仅阻塞未授权的活动。集中的4
日志服务器可能不再收集所有的系统日志,潜在地丢失日志。蜜罐没有资源耗尽的问题,因为它们仅仅捕捉指向它的活动,所以不会被通信量所淹没。由此带来的蜜罐与其它安全机制不同之处在于:它不需要最新的边缘技术,也不需要大量的内存、芯片速度和大容量的磁盘,不仅可以将它部署在千兆网上而且它也可以是一个相对便宜的计算机。②密罐的缺点观察的领域狭窄所有的蜜罐都有一个共同的问题:如果没有人攻击,它们就毫无价值。它们可以完成令人惊奇的事情,但如果攻击者不发送任何数据包给蜜罐,它就不会察觉任何未授权的活动。如果攻击者识别了它是蜜罐,他就会避开它,渗透到网络中,危害真正的用户系统,而蜜罐根本就不知道他的侵入。风险蜜罐可以把风险带入用户的环境。正如我们后面要讨论的,不同的蜜罐有不同的风险等级。某些蜜罐引入的风险极少,而另一些蜜罐向攻击者提供了整个平台,使攻击者可以利用该平台向第三者发起新的攻击。蜜罐越简单风险越小,只模拟几个服务的蜜罐很难用于攻击第三者;反之,如果蜜罐提供一个实际的操作系统与攻击者交往,那么攻击者就可以利用蜜罐对其它的系统发出攻击。风险是变化的,取决于人们如何建立和部署蜜罐。正是由于存在这些缺点,所以说蜜罐不能够替代任何安全机制,与现存的安全机制一起工作可以起到增加系统安全的作用。2.1.3蜜罐在整个安全领域中所起的作用在前面曾经讨论过蜜罐有两种类型:产品型蜜罐和研究型蜜罐。在这里讨论一下这两种类型的蜜罐如何增加了系统的安全性。①产品型蜜罐产品型蜜罐用于增加一个组织机构所处环境的安全性并降低其风险。可以从安全的三个领域进行分析,看它是如何增加系统的安全性的。这三个领域是:预防、检测和响应。预防对于预防来讲,蜜罐所起的作用不大,因为蜜罐不能阻止敌人进入。蜜罐对攻击者可以起到一定的欺骗和威慑作用,两者可以带来预防的作用。欺骗概念是使攻击者浪费时间和资源去攻击蜜罐,而不去攻击真正的生产性(production)系统。威慑的概念是如果攻击者知道在一个机构里有蜜罐,它可能被吓跑,很可能他们不想被察觉或他们不想浪费他们的时间或资源去攻击蜜罐。两个概念是心理上的武器,被用来迷惑攻击者。5
检测蜜罐大大地提高了检测的能力。一般来讲,检测攻击经常是一件极其困难的事情,会被正常的生产性活动所淹没,如果有数千兆的系统日志,很难从中检测到什么时候系统已经被攻击和使用了。检测常见的问题就是:误报、漏报和数据聚集。误报是系统错误地警报了可疑或恶意行为,系统认为是一个攻击或漏洞利用企图而实际上是有效的生产性数据流量。大多数蜜罐无真实的生产性流量,所以几乎不会产生误报。漏报出现在IDS系统没有正确地检测到有效的攻击。蜜罐能够消除漏报,因为实施新的漏洞利用并不容易躲避和战胜蜜罐。事实上,蜜罐的主要价值就在于它们可以检测新的或未知的攻击。管理员不必操心更新特征数据库或修补异常检测引擎。蜜罐可以很恰当地捕捉到来的任何攻击。蜜罐一天仅产生几兆字节的数据,大部分的数据具有很高的价值,这使得极容易诊断来自蜜罐的有用的信息,从根本上解决了大量的数据聚集带来的--如何收集在检测和确认攻击中所有有价值数据的问题。蜜罐可以简化检测过程。因为蜜罐没有真实的行为,所有进出蜜罐的连接都是可疑的。任何时候前往蜜罐的连接很有可能是一个未被授权的探查、扫描、或攻击。这有助于减少误报和漏报,大大地简化了检测过程。蜜罐察觉不到对其它系统的攻击。正因为如此,不能用蜜罐替代任何已存在的检测技术。可以部署它们与现存的技术一起工作以增加当前的安全策略,它们是完善入侵检测能力的有利的工具。响应蜜罐也提升了响应能力。当一个机构被攻击者威胁后,许多正常行为的数据被污染。面对已污染的数据,事件响应人员无法确定发生了什么。另一方面提供真实服务的已被威胁的系统无法脱离系统,使事件响应人员不能实施适当的和全面的分析。而蜜罐可以有效地地解决这些问题,因为当一个蜜罐被威胁时,在蜜罐中的活动只是攻击者的行为,解决了数据污染的问题,有利于收集证据,也可以很容易地使蜜罐脱离系统供事件响应人员进行进一步的分析。在整个系统环境下,如果多个系统被威胁,攻击者很可能使用相同的工具和方法在所有系统上,这也包括蜜罐。随后可以将焦点集中在蜜罐上进行数据收集和分析,然后将所学习到的教训用于其它被威胁的系统上,使他们更好地识别攻击并从中恢复过来。②研究型蜜罐安全团体所面临的最大的挑战之一是缺少敌人的信息。这些信息是:谁是威胁、他们进行攻击的理由、他们如何进行攻击、他们的攻击工具是什么和他们什么时候会再一次侵袭,这些问题经常无法回答。为了战胜威胁,必须首先了解它,可是在信息安全世界里我们很少拥有这样的信息。6
问题一直就是数据的来源。传统上,安全专业人员一直是通过研究黑帽所使用的工具来了解黑帽。当一个系统被威胁时,安全管理员经常会寻找攻击者留在被攻击系统上的工具,然后制定出针对这些工具的各种各样的设想。若想不只是学习攻击者的工具,而是要识别这些计算机黑客,确定他们的方法,研究型蜜罐就可以做到这些。研究型蜜罐提供给我们一个平台来研究这些计算机威胁。提供更好的方法去了解坏家伙,观察他们的行动,当他们攻击系统时一步步地进行记录,更有意义的是了解他们在威胁一个系统后做了些什么,比如:同其他的黑帽通信或上传一个新的工具。这种情报收集是蜜罐最独特和令人兴奋的特性之一。同样,研究型蜜罐在捕捉自动化的攻击方面是极好的工具,如auto-rooter或计算机网络“蠕虫”。因为这些攻击以整个网络为目标,研究型蜜罐可以很快地捕捉这些攻击以供分析之用。研究型蜜罐对于保护一个组织机构的安全来讲贡献不是很大,但通过研究型蜜罐学到的教训可被用于改进攻击的预防、检测和响应。如果一个组织指望改善他们真实生产性环境的安全,他们可以考虑使用产品型蜜罐,它们容易实现和维护。像大学、政府或大公司这样的机构若想了解更多的威胁企图,研究型蜜罐会是一个有用的工具。2.1.4根据交互等级对蜜罐的分类如前所述,在用法上蜜罐可分成两种类型:研究型和产品型,而在技术实现上可对蜜罐进行分级。蜜罐是一个灵活的技术,它被用于各种不同的场合。不同的蜜罐可以有不同的交互等级,交互的等级权衡一个攻击者与蜜罐之间可以有多少活动或交互作用。低交互蜜罐由于只模拟服务而限制了交互等级,它并不存在一个攻击者可以操作的真实的操作系统,类似一个单向连接,只是监听并不提出问题,可以说它只是一个简单的日志机器。低交互的蜜罐很容易部署并且风险极小,这是由于攻击者能做事情的很少,因而蜜罐本身也学不到太多的东西。伪守操作系统护程序其它本地硬盘资源图2.1低交互蜜罐Fig.2.1LowinteractiveHoneypot7
中交互蜜罐提供更多的交互,但是仍然不提供一个真实的底层操作系统。伪造的守护进程更加复杂并且具有它们所提供的特定服务的更深的知识。该等级的蜜罐会使攻击者产生错觉,以为它们在与一个真实的操作系统进行交互,诱使他们进行更多的交互和探测。不过,风险也增加了。伪守操作系统护程序其它本地硬盘资源图2.2中交互蜜罐Fig.2.2MiddleinteractiveHoneypot高交互的蜜罐不模拟服务,而提供真实的应用与攻击者进行交互。使用高交互等级的蜜罐,你可以从中学到大量的东西,因为攻击者与真实的操作系统和应用交互,可是这是要付出代价的,因为你提供的交互越多,就会感到更复杂,还会带来更大的风险。伪守操作系统护程序其它本地硬盘资源图2.3高交互蜜罐Fig.2.3HighinteractiveHoneypot2.1.5网络中蜜罐的位置一个蜜罐并不需要一个特定的支撑环境,因为它是一个没有特殊要求的标准服务器。一个蜜罐可以放置在一个服务器可以放置的任何地方。当然,对于特定方法某些位置可能比其它位置更好。根据所需的服务,一个蜜罐可以用于Internet或intranet。在一个intranet里放8
置一个蜜罐可以用来检测私有网络内部的攻击者。尤其重要的是,插入内部的蜜罐降低了系统在没有直接意识到的情况下被威胁安全的可能性。如果主要关注的是Internet,那么蜜罐可以放置在另外两个位置。下面是蜜罐可放置的三个位置:z在防火墙前面(Internet)zDMZz在防火墙后面(intranet)每个方法都有它的优点和缺点。蜜罐(2)防火墙蜜罐(1)蜜罐(3)图2.4蜜罐的放置Fig.2.4Honeypot’splace将蜜罐放置在一个防火墙的前面(见图2.4蜜罐(1)),不会增加内部网络的风险,使防火墙后的系统不会受到威胁。蜜罐会吸引和产生许多不被期望的通信流量,如:端口扫描或攻击模式。将一个蜜罐放置在防火墙外面,防火墙就不会记录这些事件,内部的IDS系统也不会产生警报,否则,防火墙或IDS将会产生大量的警报。可能最大的优点就是防火墙、IDS或任何其它资源都不需要调整,因为蜜罐是在防火墙的外面,被看成是外部网络上的任何其它的机器。因此,运行一个蜜罐不会为内部网络增加风险和引入新的风险。在防火墙外面放置一个蜜罐的缺点是不容易定位或捕获到内部攻击者,特别是如果防火墙限制了外出流量因而也就限制了到达蜜罐的流量。只要在DMZ内部的其它系统能够针对蜜罐提高其安全性,在一个DMZ内部放置一个蜜罐(图2.4蜜罐(2))应该说是一个好的解决方案。大多数DMZ并不是完全可访问的,只有被需要的服务才允许通过防火墙。如此来看,放置蜜罐在防火墙前面应该是有利的,因为开放防火墙所有相关端口非常费时并且危险。9
如果内部网络没有针对蜜罐用另外的防火墙来进行防护的话,防火墙后面的蜜罐(图2.4蜜罐(3))可能会给内部网络引入新的安全风险。一个蜜罐经常提供许多服务。这些服务大多数并不是提供给Internet的可输出的服务,因此会被防火墙所阻塞。放置蜜罐在防火墙之后,调整防火墙规则和IDS特征是不可避免的,因为有可能希望每次蜜罐被攻击或被扫描时不产生报警。最大的问题是,内部的蜜罐被一个外部的攻击者威胁后,他就获得了通过蜜罐访问内部网络的可能性。这个通信将不会被防火墙停止,因为它被认为是仅传送到蜜罐的流量,并且依次被许可。因此应该强制提高一个内部蜜罐的安全性,尤其是如果它是一个高交互蜜罐的话。利用一个内部蜜罐,还可以检测一个被错误配置的防火墙,它将不想要的通信从Internet传送到了内部网络。将一个蜜罐放置在一个防火墙后面的主要原因可以是用于检测内部攻击者。可以考虑让蜜罐拥有自己的DMZ,这是一个很好的方法,同时使用一个初级防火墙。依据蜜罐使命的主要目标,该初级防火墙可以直接连接到Internet或intranet。这样做是为了能够进行紧密的控制以及在获得最大安全的同时提供一个灵活的环境。2.1.6蜜网蜜网(Honeynet)是一个网络系统,而并非某台单一的主机,这一网络系统是隐藏在防火墙后面的,所有进出的数据都受到关注、捕获及控制。这些被捕获的数据可供我们研究分析入侵者们使用的工具、方法及动机。蜜罐物理上是一个单独的机器,可以运行多个虚拟操作系统。控制外出的流量通常是不可能的,因为通信直接流动到网络上。限制外出通信流的唯一的可能性是使用一个初级的防火墙。这样一个更复杂的环境通常称之为honeynet。一个典型的honeynet包括多个蜜罐和一个防火墙(或防火墙型网桥)来限制和记录网络流量。IDS通常用于观察潜在的攻击和译码并在系统上存储网络流量。防火墙虚拟防火墙或网桥蜜罐或网桥蜜罐虚拟虚拟虚拟蜜罐蜜罐蜜罐蜜罐蜜罐蜜罐(1)(2)(3)(1)(2)(3)图2.5不同的蜜罐拓扑:简单蜜罐,蜜网和一个虚拟蜜网Fig.2.5DifferenttopologyofHoneypot:simpleHoneypot,honeynetworkandvirtualhoneynetwork10
在一个蜜罐(或多个蜜罐)前面放置一个防火墙,减少了基于蜜罐的风险。可以控制网络流量和进出的连接。可以使所有蜜罐在一个集中的位置实现日志功能,从而使记录网络数据流量容易的多。被捕获的数据并不需要放置在蜜罐自身上,这就消除了攻击者检测到该数据的风险。引入新的机器到蜜罐系统需要更多的硬件,可以考虑只有一台机器的解决方法。通过使用VMWare,可以在一台物理机器上设置多个虚拟系统。这种尝试甚至可以将防火墙和所有的虚拟蜜罐都放置在同一个机器上,不过这种方法的安全性没有拥有多台物理机器的解决方案安全性高。如果蜜网是一个虚拟的环境,该系统就会受到安全威胁并且攻击者有可能摧毁该虚拟机。将一个具有防火墙功能的网桥放置在一个蜜罐前面会安全的多,因为攻击者看不到网桥。即使攻击网桥也是不可能的,因为网桥没有IP地址,因此没有攻击点存在。引入附加的硬件会增加环境的复杂性。如果需要提供最好的安全环境,了解网络和相关的工具是很重要的。"[10][11]2.2可利用的几种蜜罐在市场上已经存在一些免费蜜罐和商业蜜罐。它们在功能性、复杂性以及易使用程度上有很大的不同,其中包括:BackOfficerFriendly、Specter、DeceptionToolkit、Mantrap、Honeynets和自治的蜜罐。下面将分别讨论它们在安全领域里所起的作用,以及它们是如何工作的?它们所面临的风险是什么?BackOfficerFriendlyBOF(是这个蜜罐的简称)是一个简单但非常有用的蜜罐。它是低交互蜜罐的极好的实例。初学者可以通过它来理解蜜罐的概念和价值。BOF运行在大多数基于Windows的操作系统上。它所能做到的只是模拟一些基本的服务,如http、ftp、telnet、mail或BackOrifice。只要有人企图连接到这些端口,BOF就会监听到并将这些企图记入日志文件。BOF也有“欺骗响应”的选项,它会给攻击者某些东西去连接。这样的话就可以记录http攻击、telnet强行注册或其它各种各样的活动。BOF的价值在于它的检测能力。虽然它只监视有限的端口,但是这些端口是一些经常被扫描和定位的服务。SpecterSpecter是一个商业产品,它是另一个低交互的产品蜜罐。它与BOF类似只模拟服务,但模拟服务的范围和功能要大得多。此外,它不仅能模拟服务,而且能模拟各种类型的操作系统。它像BOF一样容易实现并且风险低。Specter安装在Windows操作系统上。由于攻击者不接触真实的操作系统,因此风险被降低。例如,Specter可以模拟所选择的操作系统的一个web服务器或telnet服务器,当一11
个攻击者进行连接时,会出现一个http头或注册标志。随后攻击者会试图收集Web页面或注册到系统上,Specter捕捉和记录这个活动。不过攻击者只能做极少的事情,接触不到真正的应用,只不过是一些有限的模拟的功能。Specter的价值体现在检测上。它可以快速简单地确定谁在寻找什么。它作为一个蜜罐减少了误报和漏报,简化了检测过程。Specter也支持各种各样的报警和日志机制。Specter独特的特性之一是它也可以进行智能采集,就是自动地收集更多的攻击者的信息。某些信息采集手段是相对被动的,如Whois或DNS查找。而某些智能采集手段是主动的,例如:通过端口扫描攻击者。也许这种智能很有价值,但是很多时候人们不希望攻击者知道他正在被观察。DeceptionToolkit由FredCohen设计的DeceptionToolkit(DTK)是最早出现的蜜罐之一。它是用Perl语言编写的一组源代码公开的脚本程序,这些脚本模拟各种各样已知的漏洞,采用了服务仿真技术。DTK是中低级交互等级的蜜罐。它比Specter做的事请要多一些,通过它可以获得更多的信息,但安装起来要复杂一些,有其它的一些风险。虽然如此它仍然不是一个高交互的蜜罐,因为没有真实的OS供攻击者与之交互。DTK优点是可免费得到。缺点是它的脚本可以被潜在地开发利用致使攻击者访问系统。每个脚本模拟一个已知的漏洞,例如,脚本可以模拟易受攻击的SMTP服务。如果被成功地攻击和开发利用,它们就可被配置成向攻击者发送伪造的口令文件。DTK的目标有两个方面:欺骗(预防)和警报(检测)。正如早先所讨论的,欺骗对预防来讲贡献很小。当DTK首次被发行时,欺骗攻击者的作用很大,因为攻击系统的行为常常是通过手工进行的。可是今天绝大部分威胁,如autorooter和蠕虫是高度自动化的,它们将探查和攻击IP栈的任何内容。没有人要被欺骗,因为对于工具的行为来讲不需要人进行交互。然而,DTK在检测方面是很有价值的。类似于Specter,DTK可以被用来检测针对系统的攻击。在检测方面DTK的优点体现在用户可以修改脚本去模拟他们想要的任何漏洞。缺点是用户要为部署这个产品做许多工作。DTK把黑客在仿真服务器上的活动分做几个阶段。下面介绍一下仿真Telnet服务的例子。DTK启动后,将打开服务端口开始监听。在开始阶段,如果出现了前往仿真服务器的连接,DTK将向黑客返回一条banner信息,banner信息一般包含一些系统配置情况。DTK可以定制该banner,以使黑客得到欺骗性的信息。随后是登录阶段,在这个阶段DTK可设置一些黑客容易猜到的账号,当黑客的输入匹配这些账号时将进入命令阶段。在命令阶段,黑客输入的命令有些得到DTK事先拟定的返回12
信息,好像该命令真的被执行了。而其它的将得到“accessdenied”或者“commandnotfound”信息。当黑客访问一些敏感文件(如口令文件)时,DTK将送出假口令文件,同时发送一条Email信息通知管理员。黑客的所有输入将被加上时间戳以及源IP地址记录下来。作为免费的、源代码公开的欺骗系统,人们担心由于DTK本身可能存在的漏洞而引入新的安全风险,因此一些具有类似功能的商业产品改进了这些不足,如Specter等。MantrapRecource公司的欺骗系统Mantrap是一个商业性蜜罐,它对Cheswick所使用的牢笼(jail)环境作了进一步改进。Cheswick所使用的蜜罐系统是利用漏洞仿真的方法故意提供给黑客一个账号,当黑客以该账号登录时,将被引入事先设置好的牢笼环境。Mantrap在Unix的更改根目录(chroot)机制的基础上,通过修改操作系统内核的方法,在Solaris操作系统上提供4个逻辑上的操作系统环境,它们与主操作系统分离开来。每一个环境如同一个独立运行的操作系统,Mantrap用户可以在其上安装任何适用于Solaris操作系统的服务器软件,如Oracle数据库或ApacheWeb服务器。这些逻辑上的操作系统环境被称为“牢笼”。黑客可以利用在牢笼内运行的真实服务器软件的漏洞侵入这些逻辑上的操作系统环境,这样他们有一个完整的操作系统可进行交互,并且有各种各样的应用可供其攻击。与采用仿真技术的DTK相比,Mantrap使用真实的服务器软件对黑客来讲更有吸引力。由于与黑客使用同一个操作系统,Mantrap可以收集一些系统级的黑客活动信息。例如,Mantrap使用一个内核模块过滤对系统进程表的访问,既能隐藏牢笼外运行的进程,又可以记录牢笼内进程的启动情况。另外,Mantrap能够检测到端口扫描和telnet注册,也可以捕捉rootkits、应用级攻击、IRC聊天室会话、和其它各种威胁。然而,了解得越多,出现问题的概率就越大。一旦被威胁,攻击者可以使用完整功能的操作系统攻击他人。应该尽量注意降低这个风险。Honeynets蜜罐的概念非常简单,就是一个专门让黑客攻击的系统。但若仅仅用作为欺骗系统,蜜罐所发挥的作用就会是极其有限的,蜜罐也应用作为一条获取黑客信息的途径。如何设置蜜罐使其去了解黑客呢?Honeynet主张使用真实的系统。这样既可以观察黑客是如何入侵系统的,又可以深入观察黑客进入系统之后的一些活动。可以说它与前面所讨论的许多蜜罐不同,它不模拟任何事情。几乎不需要对蜜罐进行修改。这使得攻击者可以攻击完整的系统和应用。这样我们就可以获知大量的信息;这包括它们的工具和策略、通信方法、组织方式和动机。可是,这13
样的能力也带来了大量的风险。必须采取各种措施以保证一旦被威胁,Honeynet不应该被用来攻击其它的系统。Honeynet强调要对黑客的活动进行控制,防止黑客以蜜罐为跳板攻击其它系统。Honeynet还强调对黑客活动的观察和控制应避免被黑客察觉。Honeynet方案提供给黑客的活动环境是一个网络,该网络一般有多台作为“诱饵”的蜜罐机连到Internet上,吸引黑客攻击。Honeynet利用入侵检测系统捕获网络上传输的数据包,记录黑客活动信息。另外,Honeynet利用防火墙控制黑客不能以蜜罐机为跳板攻击该网络外的系统。Honeynet是研究型蜜罐的典型代表,是高交互的蜜罐。用户可以通过它了解很多事情;然而,它的风险也最大。它们在研究方面的主要价值在于:获取在Internet团体中存在的关于威胁的情报。它们也可以被用于产品型蜜罐,明确用于检测和响应,但是这样做很不值得。大多数低交互的蜜罐可以进行同样的检测和响应,只需要做很少的工作,风险也很低。自制的蜜罐另一种实现蜜罐的方式是用户自制蜜罐。目前这些蜜罐趋向于低交互,因为它们的目的是捕捉特定的活动,如蠕虫或扫描活动。它们是用作为生产型蜜罐还是研究型蜜罐取决于它们的目的。另外,没有多少可供攻击者与之交互的东西。然而,由于攻击者只能造成极小的损害,因而风险减少了。一个常见的最普通的例子就是建立一个监听80(http)端口的例子,捕捉往来这个端口的流量。这种方法常常用来捕获蠕虫攻击。下面的例子使用netcat捕获蠕虫。netcat-l-p80>c:honeypotworm在上面的命令中,一个蠕虫会连接到正在监听80端口的netcat上。进行攻击的蠕虫会实施一个成功的TCP连接,传送它的有效荷载。这个荷载随后在本地保存在蜜罐上,供管理员进一步分析。自制蜜罐可以加以改进做更多的事情,需要更高的交互等级和风险。例如,FreeBSD有一个称之为牢笼的功能,允许管理员在该操作系统里建立一个可控的环境。攻击者可以同这个可控的环境交互。价值体现在攻击者能做的事情的越多,对攻击者了解的就越多。可是必须引起关注的是,因为攻击者可交互的功能越多,蜜罐受到的威胁也就越多。2.3小结我们回顾了六种类型的蜜罐。没有一个蜜罐可以说比另一个更好,每一个都有它们自己的优点和缺点,这一切取决于你想要完成什么。为了更容易地定义蜜14
罐的能力,可以按照它们的交互等级对它们进行分类。蜜罐的交互等级越高,能够了解的事情就越多,但带来的风险就越大。例如,BOF和Specter是低交互的蜜罐。它们很容易部署,有着极低的风险。然而,它们只限于模拟特定的服务和操作系统,主要用于检测。Mantrap和Honeynets是中高级交互等级的蜜罐。它们可以获得更有价值和深度的信息,可是需要做更多的工作,风险也更大。15
3蜜罐系统的实现在实际应用蜜罐之前,需要检验蜜罐在安全防护方面的有效性,因此,我们需要构建一个蜜罐。[15]3.1蜜罐系统实现的目标正如前面所提到的,防火墙作为网络安全的第一层防线可以实施有效的访问控制,阻止黑客的进入。但黑客仍可能利用系统后门或缺陷绕过防火墙实施攻击。入侵检测系统可以对网络和系统的活动情况进行监视,及时发现并报告异常现象。但是,入侵检测系统在使用中只能检测已知攻击特征的恶意行为,采用未知攻击方法的黑客行为还是难以检测,并且还会产生漏报和误报。这进一步降低了它的有效性。蜜罐有望使这些问题得到进一步的解决,通过观察和记录黑客在蜜罐上的活动,人们可以了解黑客的动向、黑客使用的攻击方法等有用信息。如果将蜜罐采集的信息与IDS采集的信息联系起来,则有可能减少IDS的漏报和误报,并能进一步地用来改进IDS的设计,增强IDS的检测能力。蜜罐为安全防御增加了主动性,如何构造它取决于想要实现什么?预期的安全目标是什么?我们希望建立的是一个蜜罐系统——首先要构造一个欺骗性环境,吸引攻击者的扫描和攻击,该欺骗性环境尽量模拟得像真实的系统使攻击者无法辨别真伪。同时尽量详细全面地记录下攻击者进行的扫描和入侵行为等信息,以备分析、检测攻击者行为之用。在分析和检测方面,利用被动探测技术实现对攻击目标的探测,以获取攻击者更详细的信息;同时尽量提供方便快捷的统计分析功能,对攻击来源、频率甚至趋势等做出分析。所设计的蜜罐系统可用于针对两方面入侵者的扫描和攻击,包括Internet网络环境下各种类型的入侵者对内部网络的攻击和内部局域网环境下内部攻击者对更小范围(这里为研究室网络)的扫描和攻击。3.1.1蜜罐系统设计思想我们设计该蜜罐系统的目的是为了研究和验证蜜罐在安全领域所起的作用,通过实践加深对蜜罐思想的理解,并进一步在实际环境中使用它来加强网络的安全性。因此,将综合运用多种安全技术,和其他的安全工具有机的结合,形成一个包含蜜罐功能的安全防御系统。该系统不仅具有蜜罐的诱骗能力,而且也增加了对可能入侵的行为进行控制和分析的功能。我们将构建的系统取名为:16
HoneypotMe。即HoneypotMe事实上是由蜜罐、防火墙、入侵检测、日志分析统计和被动探测等多项关键技术实现的综合系统,为方便起见我们仍将其称为蜜罐系统。下面是HoneypotMe的工作流程图。对攻击信息进行诱骗对攻击信息进行HoneypotMe收集对攻击信息进行检测和分析HoneypotMe图3.1HoneypotMe的工作流程Fig.3.1ProgressofHoneypotMe在这个蜜罐系统中,蜜罐起到了欺骗和诱骗攻击者的作用,利用它可以获取新的漏洞的早期警报。防火墙用来保护蜜罐管理系统,使其不会因为遭受攻击者的破坏而不能正常工作;另外适当地配置防火墙也可以防止蜜罐管理系统被攻击者用作为另一个攻击平台。蜜罐本身有记录攻击日志的能力,但是收集的信息量有限。为了获取更全面的攻击信息和引入报警机制,蜜罐系统引入了入侵检测子系统作为蜜罐收集信息的补充。对收集的攻击信息进行检测和分析是蜜罐系统一项重要的功能,这项功能开发的好坏直接关系到蜜罐系统管理者是否能够方便快捷地分析和了解攻击者的意图,以便及时提出防范措施。为了获取攻击者的信息,蜜罐系统加入了被动探测子系统。该子系统利用入侵检测子系统收集的攻击信息嗅探出攻击者使用的攻击平台(即所使用的操作系统)。因此上说,我们开发的蜜罐系统是一个集成了欺骗和诱骗、入侵行为控制、攻击信息的收集、攻击信息的统计分析和攻击者信息的隐蔽探测几项功能的比较完善的蜜罐系统。蜜罐系统中的蜜罐采用了虚拟蜜罐的设计思想。虚拟蜜罐是相对于物理蜜罐而言的。一个物理蜜罐是一个在网络上拥有它自己的IP地址的真实机器。虚拟蜜罐是通过另一台机器模拟出来的,并通过这台机器响应发往虚拟蜜罐的网络流量。在一台机器上可以模拟出多个虚拟蜜罐,并让这些虚拟蜜罐运行各种类型的操作17
系统并且可以用这些虚拟蜜罐组装一个网络。为了使黑客相信虚拟蜜罐正在运行一个给定的操作系统,就需要认真模拟目标操作系统的TCP/IP栈。可以看出虚拟蜜罐需要较少的计算机系统,因此维护费用也低。这样我们的蜜罐系统又可以称作为虚拟蜜罐系统。蜜罐系统从管理实现的角度看由管理控制台和多个虚拟机构成。其中每一个虚拟机就是一个欺骗主机,是一个专门设计来让人攻陷的主机。蜜罐系统中的每个虚拟机被配置成一个通用的系统,并使其与网络相连。对于攻击者来讲,它是一个合理的攻击目标。黑客的攻击一般是先对某一具体的服务开始进行的,为了使虚拟机更好地发挥迷惑敌人的作用,可以通过开发尽可能多的功能齐全的服务,来吸引攻击者,这里的服务指的是虚拟机提供的与正式服务功能相似的模拟的服务。管理控制台对蜜罐系统中的所有虚拟机进行监控,并将入侵行为记录到日志文件中,并可以进行进一步的分析。对于攻击者的一切扫描和攻击行为,管理控制系统都将监视和记录,以备今后统计分析之用。这样,不仅间接地保护了真实的生产性系统,又能尽早地得到新的安全漏洞的警告,对将要发生的危险提供预警功能。在虚拟蜜罐系统中管理控制台处于一个真实的物理机器上,其上运行着构造蜜罐系统的所有软件,如何保护好它是至关重要的。由于入侵者一般都具有一定的专业技术知识,入侵一个系统后,他们会随时观察所处的环境。他们有可能破坏这个系统,抹去自己在这个系统上所作所为的记录,使日志文件失去真实性和完整性。他们也可能利用这个系统攻击其它的真实系统,实施第三方攻击。更进一步地,他们也可能使整个蜜罐系统失效。由于蜜罐真正的价值就在于它打算被攻击或被威胁。因此必须提供一定的机制,使得既不减弱蜜罐系统对攻击者的吸引力,又能保证蜜罐管理系统的稳定性,使其在受到攻击时仍然能正常地行使其管理监控能力。管理控制台通过合理地配置防火墙规则来达到这一目的。为了更全面地分析入侵者的行为和获取入侵者自身的信息,系统中引入了入侵检测系统和被动探测技术,以收集更多黑客的信息,确保实施准确的分析,管理控制台也对它们进行管理。下面是我们构造的虚拟蜜罐系统的体系结构图:18
虚拟机虚拟机虚拟机虚拟机虚拟蜜罐及虚拟网络拓扑每个虚拟机都有唯一的IP地址及数个模拟的服务虚拟蜜罐系统管理控制台包括各种控制管理软件、虚拟蜜罐的配置文件、日志文件、数据库文件及防火墙规则文件等操作系统内核图3.2虚拟蜜罐的体系结构Fig.3.2ArchitectureofvirtualHoneypot从该体系结构图我们可以看出,虚拟蜜罐系统的管理控制台运行在真实的操作系统内核之上,它包括各种管理控制软件、虚拟蜜罐的配置文件、各种日志文件、数据库文件和防火墙规则文件。虚拟蜜罐框架软件管理着模拟不同系统的虚拟机和模拟的虚拟网络拓扑,并可作为守护程序实时控制着与入侵者的交互。3.1.2HoneypotMe的部署考虑一个蜜罐没有被攻击的话是没有什么用途的,将一个蜜罐放置在正确的位置上是至关重要的。蜜罐应该安放在没有被过滤的网络上,这样可以搜寻Internet上新的威胁和攻击。HoneypotMe考虑部署在两个地方:在内部防火墙之前与Internet相连的路由器之后的DMZ区,以便收集Internet上各种真实的扫描和攻击信息供分析之用;另一个地方是与内部局域网相连的子网上,这样可以方便地构造一个实验环境。在这个实验环境中,实现攻防两个方面的实验,一方面在局域网络的其它机器上主动地使用各种攻击和扫描手段对蜜罐系统HoneypotMe进行探查和攻击,验证蜜罐的诱捕和欺骗作用,并寻找识别蜜罐的方法;另一方面查看蜜罐中收集的攻击信息并分析验证所收集的信息的完整性和有效性。下面就是虚拟蜜罐系统HoneypotMe部署的示意图。19
Internet黑客攻击机内部用户或攻击机内部用户路由器CISCOSYSTEMS交换机路由器防火墙DMZ区内部用户服务器服务器内部用户内部用户虚拟蜜罐系统或攻击机或攻击机内部用户虚拟蜜罐系统内部局域网络图3.3虚拟蜜罐系统位置Fig.3.3PlaceofvirtualHoneypot在图3.3所示的网络结构中,在与Internet网连接的路由器上分出一段地址空间供DMZ区中的虚拟蜜罐系统使用,其余地址空间供防火墙后的内部网络使用。内部网络由许多子网构成,在某一子网中部署一个蜜罐系统,它可以使用子网中未使用的地址空间模拟不同的系统及其服务,并可构造虚拟网络拓扑以模拟另外的子网。子网中虚拟蜜罐系统的部署是出于实验的目的,这样可以一方面扮演攻击者,从攻击者的角度对蜜罐系统进行扫描和攻击攻击,并试图找出识别蜜罐的方法。另一方面在蜜罐系统中分析这些攻击和探测信息,以全面了解蜜罐系统的欺骗能力。3.1.3蜜罐系统实现中的关键技术问题在虚拟蜜罐系统的实现中有许多技术性的问题需要不断地进行思考和研究,以完善和增强蜜罐系统的能力。就目前的分析主要有以下几点:①欺骗能力:虚拟蜜罐技术的实现主要是通过模拟仿真来实现。面对攻击者的各种扫描工具,如何欺骗它不被其识破,是需要认真研究和探讨的问题。②蜜罐管理系统自身的安全问题:蜜罐不仅用来迷惑敌人,而且要吸引攻击者来攻击它。攻击者入侵蜜罐后,很可能会破坏蜜罐管理系统及其日志数据,也有可能作为攻击第三方的工具。为了保证蜜罐管理系统自身的安全,就需要用一些安全防护手段(比如防火墙)进行合理有效的配置,使蜜罐系统实现预期的功能。③捕获和分析信息的手段的研究:分析黑客的行为是部署蜜罐的动机之一,因此收集的信息的完整性、可利用性及其可视性是需要认真关注的问题。将蜜罐20
自有的日志和IDS日志结合起来,IDS可以将所有的通信量都记入日志。这点是非常有用的,因为以后可用这些数据包进行仔细的分析检查。以广泛使用的标准文件格式将这些数据包记入日志具有很大的优点,因为许多工具可以被用来对所记录的通信量进行分析和译码。这些技术在我们的系统中都进行了研究,取得了一定的突破。[7][8][13]16]3.2实现蜜罐HoneypotMe的相关技术分析这一节将详细论述设计虚拟蜜罐系统用到的安全领域内的几项技术,为虚拟蜜罐系统的设计实现打下理论基础。3.2.1虚拟蜜罐框架的实现技术HoneypotMe可以在一台物理机器上模拟任意虚拟网络拓扑和多个虚拟蜜罐,Honeyd是完成这项工作的一个关键部件。①概述Honeyd是一个创建虚拟蜜罐的轻量级框架,可使用这个框架来装备数千个虚拟机。框架中每个虚拟机都与一个未使用的IP地址绑定在一起,这些虚拟机可以模拟不同的操作系统以及与该操作系统相关联的服务。为了增加模拟的真实性,框架可以用这些虚拟机组装网络并模拟出不同的网络拓扑。Honeyd主要模拟操作系统的网络栈,入侵者只是在网络级上与蜜罐进行交互,这样即使入侵者威胁了模拟的服务,也决不会访问整个操作系统。尽管如此,我们仍然能够捕捉到入侵者到蜜罐的连接和威胁企图。因此上说,Honeyd只是一个模拟TCP和UDP服务以及能够正确理解和发出ICMP响应信息的低交互的虚拟蜜罐框架。图3.4从概念上给出了该框架的概观。路由器Internet192.168.40.1CISCOSYSTEMS192.168.40.123Honeyd虚拟蜜罐Linux1.0.9FreeBSD3.2-4.0WindowsNT4NetBSD1.6H192.168.40.56192.168.40.57192.168.40.58192.168.40.59图3.4虚拟蜜罐框架概念图Fig.3.4FrameandconceptofvirtualHoneypot21
图中显示该框架模拟了四个虚拟机。一个中心机器(虚拟蜜罐系统的管理控制台,为叙述方便可称其为Honeyd主机)截取前往与虚拟机绑定的IP地址的网络流量,并模拟它们的响应。②接收网络数据如何将发往虚拟蜜罐的网络数据包引入Honeyd主机是一件非常重要的事情。在分析Honeyd体系结构之前先分析一下这个问题。如果一个数据包中含有Honeyd模拟的某一个虚拟蜜罐的目的IP地址,Honeyd就会响应。为了保证Honeyd确实能够接收到这样的数据包,就需要适当地配置网络。下面是几种可供选择的方法:1)在路由器上建立针对虚拟IP地址的特定路由,使网络的部分区域指向Honeyd主机;2)使用ProxyARP,让Honeyd主机响应针对它控制的IP地址的arp请求;3)使用ARP欺骗程序arpd,使Honeyd响应网络上所有未使用的IP地址。下面对照图3.4的概念框架解释一下这些过程。假定A是路由器的IP地址,B是Honeyd主机的IP地址,虚拟蜜罐的IP地址范围落在本地网络内。将虚拟机的IP地址分别指定为V1,…,Vn。当黑客从Internet向蜜罐Vi发送数据包时,路由器A首先接收到它并尝试转送该数据包。路由器查询它的路由表寻找前往Vi的路由。这可能会出现三种结果:①由于没有到Vi的路由,路由器丢弃该数据包;②路由器A将数据包转寄到另一个路由器上;③Vi落在本地网络的地址范围内,因此路由器A可直接将数据包传递到Vi。在后两种情况下可以将前往Vi的流量指引向B。最容易的方法是在路由器中配置Vi(1in≦≦)指向B的路由实体。在这种情况下,路由器将前往虚拟蜜罐Vi的数据包直接传递到Honeyd主机。如果路由器中没有专门指定路由,路由器会使用ARP试图得到虚拟蜜罐Vi的MAC地址。但是,由于虚拟蜜罐没有对应的物理机器,ARP请求就会得不到答复,路由器经过几次尝试后会丢弃该数据包。因此需要对Honeyd主机进行配置,让它用自己的MAC地址去答复针对Vi的ARP请求,这就是委托(proxy)ARP,运用它路由器会将前往Vi的数据包发往B所在的MAC地址。Arpd是一个欺骗ARP流量的工具。ARP欺骗被用于"捕捉"不存在机器的IP地址(即某一网段中未使用的IP地址空间),并将流量引向另一个地方。Arpd使honeyd主机每次都能可靠地"看见"整个网络上的流量,起到了将攻击引向Honeyd蜜罐的作用。③体系结构这一节将讨论一下Honeyd的体系结构。Honeyd的体系结构由以下几个部分组成:一个配置数据库、一个中心包分发器、几个协议处理器和一个特征引擎。22
见图3.5所示。网络配置特征包分发器特征引擎查找ICMPTCPUDP服务图3.5Honeyd的体系结构Fig.3.5ArchtectureofHoneydHoneyd启动后将以守护程序的形式存在于Honeyd主机上。当Honeyd守护程序接收到发往某一个虚拟蜜罐的数据包时,将通过一个中心包分发器对该数据包进行处理。包分发器检查IP包的长度并且检验其校验和。目前,该守护程序仅仅能够识别三种协议:ICMP、TCP和UDP,其它协议的数据包将被丢弃。包分发器为了得到一个与目标IP地址相对应的蜜罐配置而去查询配置文件。如果不存在如此配置的蜜罐,就会使用缺省样本(样本即一个虚拟计算机系统的引用,3.2.1.6配置一节将详细论述)。缺省样本是一个没有与某个IP地址绑定的样本。随后包分发器用接收到的数据包和相应的蜜罐配置一起去调用协议专用处理器。对于ICMP协议来讲,目前仅支持ICMP_ECHO请求,守护程序用ICMP_ECHO响应包回复请求。对于TCP和UDP协议来讲,守护程序可以建立到任意服务的连接。模拟的服务是一些外部程序,它们在stdin上接收数据并将输出发送到stdout。在一个连接请求被接受时,守护程序将检查数据包是否是已建立连接的一部分,如果是,任何新的数据都将发送到这个已经启动的服务程序。如果数据包中有一个连接请求,将会建立一个新的进程以运行相应的服务。Honeyd有一个简化了的TCP状态机,可以实现连接的三次握手并且完全支持通过FIN或RST拆除连接,但是没有实现接收机和拥塞窗口管理。如果UDP包到达一个已关闭的端口,守护程序将会用一个ICMP端口不可达信息进行响应。这可以使像traceroute这样的工具能够正确地工作。守护程序也支持服务的动态重定向。这样针对运行在虚拟蜜罐上的web服务器的连接请求可转寄到一个真实的23
服务器上。另外也可以将连接重定向到攻击者自身,例如,一个重定向的SSH连接可能使攻击者试图威胁他自己的SSH服务器。数据包在发送回网络之前,都将送到特征引擎进行处理。特征引擎将调整数据包的内容,以使它看起来与被配置的操作系统的网络栈相一致,更详细的内容见“特征引擎”一节。④路由拓扑的模拟虚拟蜜罐框架Honeyd也可以模拟任意的虚拟路由拓扑,这种情况下就不能完全指望使用代理(Proxy)ARP将数据引向Honeyd主机。而是需要对路由器进行配置以指出这个虚拟的网络地址空间与Honeyd主机直接相连,也就是说前往这个网络地址空间的数据包要经过这个honeyd主机。通常,虚拟路由拓扑是一个具有根的树,数据包从这个根进入虚拟路由拓扑。树的每一个非终端节点表示一个路由器,每条边代表一个连接,它包括反应时间和包丢失这样的属性。树的每个终端节点对应于一个网络。当该框架接收一个数据包时,它从根开始穿过树,直到它发现一个拥有数据包中目的IP地址的节点,并且累计道路上所有边的包丢失率和反应时间,确定数据包是否被丢失和它的传递可能被延迟多长时间。对于所经过的每一个路由器,框架也消耗数据包的寿命(TTL)。如果TTL到达零,框架用引起TTL到达零的路由器的源IP地址发送一个ICMP超时消息。⑤特征引擎入侵者常常会运行像Xprobe或Nmap这样的指纹工具来收集目标系统的信息。虚拟蜜罐不会在指纹识别时被识别出来是一件很重要的事情。为了使虚拟蜜罐在被黑客探查时看起来像真实的系统,Honeyd模拟特定操作系统的网络栈行为,我们称其为一个虚拟蜜罐的特征(personality)。不同的特征可以分配给不同的虚拟蜜罐。特征引擎修改每一个外出数据包的协议头,使得蜜罐的网络栈与特征所指定的行为一致,这样它们就与被配置的操作系统的特性相吻合。⑥配置虚拟蜜罐使用一个样本进行配置,样本是一个完全被配置起来的计算机系统的一个引用。配置文件说明了框架想要什么类型的操作系统,对于关闭的端口它应该如何响应,什么类型的服务正在哪个端口进行监听。Honeyd可以将一个服务脚本绑定到一个网络端口上。该脚本可以是一个标准的shell脚本,它模拟某一个服务。大多数脚本被构建成为状态机,在那儿命令触发一个响应或前进到一个新的状态--新的可能发生的事情。对于像SMTP、HTTP和telnet这些流行的众所周知的服务脚本可在互联网上的许多地方得到。配置文件就是一个简单的文本文件,文本文件中包含所有虚拟蜜罐以及虚拟24
网络拓扑的配置。每一个系统(样本)首先用一个create命令建立,然后使用add和set命令进一步地具体说明和配置。使用setpersonality命令,为所创建的系统指派一个特征。可以为该系统所支持的网络协议选择缺省的动作,像block,reset或open。如果缺省值被设置成open,指定协议的所有端口都处于监听状态;数值reset指示关闭该协议所有端口;block指出丢弃所有前往该协议的数据包。add命令用于添加服务并将服务脚本绑定到某一个端口上。另一种与之不同的方式是使用关键字proxy将流量转寄到另一个IP地址上。框架定义了四个非常有用的变量:$ipsrc用于IP源,$sport用于源端口,$ipdst用于目标IP,$dport用于目标端口。使用这些变量可以传递参数给脚本或根据某一个变量转寄流量。最后使用bind命令为所配置的系统指派一个IP地址。下面是配置文件的一个例子,从中可以看到上面提到的大部分命令。createroutersetrouterpersonality“Cisco7206runningIOS11.1(24)”setrouterdefaulttcpactionresetaddroutertcpport23“scripts/router-telnet.pl”bind192.168.1.1routercreatelinuxsetlinuxpersonality"Linux2.2.12-2.2.19"addlinuxtcpport23"shscripts/telnet.sh"addlinuxtcpport22proxy$ipsrc:22setlinuxuptime112211setlinuxdefaulttcpactionresetsetlinuxdefaultudpactionresetbind192.168.1.2linux上面的配置文件配置了两个样本:一个是在23号端口上运行telnet服务的Cisco路由器;另一个是在23号端口上运行telnet服务的Linux操作系统,它将前往SSH端口的流量转寄回源IP的22号端口,也就是攻击者将攻击引入到自己的机器上,同时Linux系统也被设置成可正常运行112211秒。正如我们在这里看到的,添加新的系统、修改已存在的系统都是直截了当的并且非常容易实现。⑦日志功能Honeyd框架支持几种记录网络活动的方式。它可以建立连接日志,这些连接日志报告针对所有协议企图进行的和已完成的连接。最有用的是服务自身收集的日志信息,它可以记录黑客使用某一服务的痕迹。服务应用程序可以通过stderr25
报告被记录成Honeyd日志的数据。为了获得更详细的信息,应该将Honeyd与NIDS配合起来一起使用。⑧小结Honeyd是一个优秀的检测攻击和未授权活动的开放源代码软件。它是一个建立虚拟蜜罐的框架,能够监视数百万个从未使用过的IP地址,也能够模拟数百种操作系统网络栈的行为。实验证明Honeyd在建立虚拟路由拓扑和成功地欺骗指纹识别工具方面是有效的。3.2.2入侵检测系统要想拥有一个良好的网络安全环境,配备入侵检测系统(IDS)是必备的。可利用它来检测可疑的数据包和攻击。蜜罐对于入侵检测系统的关注是由于借助于入侵检测系统,可以观察到所有的网络流量。在蜜网上,可以很容易地探测到恶意的流量,并且在一个集中的位置解析和记录一些令人关注的包。①入侵检测系统介绍入侵检测系统被用来检测进入被观察系统的可能的入侵。入侵检测系统存在不同种类型,它们在各种不同的环境下使用不同的方法检测入侵。可以在两种不同的地方实现入侵检测机制:z基于网络的入侵检测:网络入侵检测系统(NIDS)监听网络通信。它们识别经过网络环境到达的入侵。一个网络入侵检测系统是一个服务,它在一个网络接口上监听寻找可疑流量。网络入侵检测系统主要是基于特征的。z基于主机的入侵检测:主机入侵检测系统(HIDS)驻留在它们监督的资源上。这个资源主要是一个计算机服务器或工作站。HIDS查看产生的日志文件,文件系统的变化或检查进程表中的变化。它们的目标是检测进入一个主机的入侵。在不同地方探测入侵可选用不同的机制:z基于特征的入侵检测:基于特征的入侵检测是以已知的攻击特征为基础的。这些特征可以被存储起来,与事件或进入的流量进行比较。如果模式匹配,会产生一个警告。z基于异常的入侵检测:基于异常的入侵检测系统根据异常做出决定,这些异常通常是没有正常出现的事情。这篇论文将集中讨论基于网络和特征的入侵检测系统,因为它们对于蜜罐来讲是最重要的。②入侵检测系统的重要特性一个好的入侵检测系统有什么重要的特性呢?z很好的引擎:基于网络的IDS主要的目标是检测以特征为基础的已知的攻击模式。因此IDS有两个重要的能力:审查数据包和识别特定的模式。两个能力是以性能又好速度又快的引擎为基础的,它可以快速地检测复杂的模式。该引擎也26
应该能够抵抗逃避行为(隐蔽攻击)。z特征基:基于特征的IDS重要的是它的特征集及其有效性,以及能够开发出自己的特征集。z远程的易管理性:一个IDS常常放在整个网络的边界上,因此可以远离安全管理员所在的地方。能够远程管理一个IDS非常重要。z可升级的框架结构:IDS应该容易进行调整。如果一个蜜罐被安置在战略上重要的位置,将会有许多的流量,也会由此产生相当多的警报。一个IDS可以处理如此高的流量而不会丢失任何数据包是非常重要的。z便于使用的接口:应该提供一种观察活动数据的方式,并且提供友好的界面。z数据挖掘:实时地观察数据和脱机检查数千个警报。对于IDS来讲,一个好的数据挖掘工具包是非常有用和重要的。.③网络入侵检测系统SnortSnort是可免费得到网络入侵检测软件,符合GPL(GNUGeneralPublicLicence)的要求,实际上它是一个基于libpcap的网络数据包嗅探器和日志记录工具,可以用于入侵检测。Snort可以按照下列三种不同的模式中的一种模式运行:zSniffer模式:以这种模式,Snort被用作为数据包嗅探器,可以被配置成只显示IP头或IP有效荷载。zLogger模式:所有的包可以被登记在一个文件上,随后进行检查。z入侵检测模式:Snort的主要模式。所有的数据包与一个特征数据库进行比较。如果有一个匹配,数据包被记入日志,并发送警报。Snort已经拥有了很大的特征储存库(大约800特征)。特征语言很容易学会,写自己的规则不是件很难的事情。图3.6显示了Snort的主要构成:报警日志TextFileTCPDumpSnort配置文件SyslogSnortLogSMBdatabasedatabaseSnort传感器特征数据库图3.6Snort主要构成Fig.3.6MaincompositionofSnort27
Snort有一个快速鲁棒的引擎。在标准的发行中,Snort有800多个特征。Snort以Unix守护程序的形式运行,通过以一个常见的.conf文件进行配置,因此Snort可通过一个shell或ssh进行连接管理。Snort结构可以很好地进行调节,不出现丢包的问题。④小结入侵检测技术在安全领域被广泛地研究和利用,有许多产品可供用户选择。考虑到蜜罐系统并不是一个庞大的系统,因此并不需要很复杂的入侵检测系统。Snort是一个可以免费的得到的网络入侵检测系统,并且具有良好的性能,将其用于蜜罐系统可以满足所需要的功能。因此对于蜜罐系统来讲Snort是一个很好的选择。3.2.3用iptables实现包过滤防火墙Iptables是一个管理内核包过滤的工具,iptables可以添加、插入或删除核心包过滤表格(链)中的规则。实际上真正来执行这些过滤规则的是netfilter(Linux核心中一个通用架构)及其相关模块(如iptables模块和nat模块),下面我们一起来看看netfilter的工作原理。①原理Netfilter是Linux核心中一个通用架构,它提供了一系列的“表”(tables),每个表由若干“链”(chains)组成,而每条链中可以有一条或数条规则(rule)组成。我们可以这样来理解,netfilter是表的容器,表是链的容器,而链又是规则的容器(如图3.7所示)。图3.7netfilter总体结构Fig.3.7Overallarchitectureofnetfilter系统缺省的表为"filter",该表中包含了INPUT、FORWARD和OUTPUT3个链。每一条链中可以有一条或数条规则,每一条规则都是这样定义的:“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件;如果满足,系统28
将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。最后,如果该数据包不符合该链中任意一条规则的话,系统就会根据该链预先定义的策略(policy)来处理该数据包。数据包在filter表中的流程如图3.8所示。有数据包进入系统时,系统首先根据路由表决定将数据包发给哪一条链,这可能有三种情况:图3.8数据包在filter表中的流程图Fig.3.8Flowchartofdatapacketintableoffilter1)如果数据包的目的地址是本机,则系统将数据包送往INPUT链,如果通过规则检查,则该数据包被发给相应的本地进程处理;如果没通过规则检查,系统就会将这个数据包丢掉;2)如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往FORWARD链,如果通过规则检查,则该包被发给相应的目的地址进程处理;如果没通过规则检查,系统就会将这个数据包丢掉;3)如果数据包是由本地系统进程产生的,则系统将其送往OUTPUT链,如果通过规则检查,则该数据包继续向可以到达它的目的地的网络接口发送。如果没通过规则检查,系统就会将这个包丢掉。②规则语法包过滤规则的内容很多,这里只叙述在HoneypotMe中用到iptables防火墙的包过滤规则。$iptables-AINPUT-d192.168.40.56-jACCEPT-A选项指定将一条规则附加到链的末尾,-s选项指定数据包应匹配的目的IP地址,上面的命令指示将一条规则附加到INPUT链的末尾,确定前往目的地址192.168.40.56的数据包可以ACCEPT。$iptables–PINPUT–jDROP这个命令意味着所有与INPUT链中的任何规则都不匹配的数据包将被丢弃。29
③小结最新的Linux内核2.4.x具有netfilter/iptables系统这种内置的IP数据包过滤工具,它使配置防火墙变得经济方便。用户可以利用它定制自己的防火墙规则来控制数据包的过滤,并可利用它配置有状态的防火墙。3.2.4被动探测技术为了了解自己所面临的威胁并保护好自己的资源,就需要了解攻击者。被动特征探测是了解攻击者而不被攻击者觉察的一种方法。特别是可以仅仅利用嗅探跟踪的方法收集攻击者的信息,虽然这种方法可能不会获得100%正确,但会获得一些令人诧异的结果。目前可利用的被动指纹识别工具包括:由MichaelZalewski和WilliamStearns开发的p0f,它可以被动地采集操作系统指纹;由HoneyNetproject开发的siphon,一个可以被动探测端口和OS的工具。①指纹识别传统上,操作系统指纹识别一直使用主动工具,如queso或者nmap。这些工具运行依据的是每一个操作系统的IP堆栈都有它自己的特征。特别是,每个操作系统对各种各样畸形数据包响应也有所不同。所要做的事情就是建立一个数据库,这个数据库的建立原则是不同的操作系统会响应不同的数据包。随后,为了判断远程主机的操作系统,发送给它各种各样畸形的包,检测它如何响应这些数据包,然后再将这些响应与数据库进行对比做出判断。Fyodor的nmap工具利用的就是这种方法。被动的指纹识别遵循了同样的概念,但实现的方法不同。被动指纹识别是以远程主机上的嗅探踪迹(sniffertraces)为基础的。与主动地查询远程系统不同,需要做的所有的事就是捕捉从远程主机上发送来的数据包。以这些数据包的嗅探踪迹为基础,可以断定远程主机的操作系统。类似于主动的指纹识别,被动的指纹识别也是基于每个操作系统的IP堆栈有它自己的特征这样一个原理。通过分析嗅探踪迹和鉴别他们之间的不同之处,就可以判断远程主机的操作系统。②特征通过观察下面的四个特征来判断主机的操作系统(当然也有其他的特征可利用):TTL(存活时间):这个数据是操作系统设置的出站的信息包的存活时间。它是一个包被丢弃前可以通过的最大的路由器的数目。它由发送者初始化,然后由处理该数据包的每个路由器减值。当这个值到达0时,包被丢弃,返回给发送者一个ICMP消息。各种操作系统的TTL值的设置都不相同。例如Windows系统的值是32,而Linux的TTL值是64。Win(窗口大小):是操作系统设置的窗口大小,这个窗口大小是在发送FIN数30
据包时包含的选项。它是TCP使用的流控制选项。当一个主机发动一个连接时,它将公布它的输入包缓冲区的大小。其它的主机随后将调整它发送包的速率以保证接收的主机不会发生溢出。DF(不可分片):可以查看是否设置了操作系统不准分片位。如果包对于网络处理来讲太大这样做是必需的。如果DF标志被设置并且包太大,它将被丢弃并且一个ICMP错误消息“fragmentationneeded,butDFbitisset”将被发送给源主机。TOS(服务类型):查看操作系统是否设置了服务类型,如果设置了,设置了哪些服务类型。对于每一个要被发送的数据包允许设置4种类型的值。值的设置取决于要使用的应用,每一个数据包仅可设置一个值。下面的值可利用:z最小的延迟z最大的吞吐量z最大的可靠性z最小的花费例如Telnet数据包设置“最小的延迟”选项,而SNMP设置“最大的可靠性”选项,通过分析数据包的这些因素,就可以判断一个远程的操作系统。但这并不能保证100%的正确率,对于某些操作系统好用,对另一些操作系统就不一定准确。使用单个特征来判断远程的操作系统是不可靠的。但是,通过查看几个特征和组合这些信息,就可以增加识别远程主机的精确度。需要引起注意的是,与主动的指纹识别一样,被动的指纹识别具有某些局限性。首先,构建它们自己数据包(如nmap、hunt、teardrop等等)的应用不会使用与操作系统相同的特征。其次,远程主机调整数据包上的TTL、窗口大小、DF、或TOS设置相当简单。不过,通过各种各样不同的数据包和特征的结合,如TTL和窗口大小,就可以大致判断出远程操作系统的情况了。③其他特征和使用除了上面所讨论的4个特征外,还有其它的特征可以跟踪,如初始化序列号、IP识别号、TCP或者IP的选项。例如:Cisco路由器往往是从0开始IP识别号,而不是随机的指派IP识别号。也可以利用ICMP的有效荷载类型或者TCP选项来识别远程主机。另一个特征来源是数据包状态,正在使用什么类型的数据包。这里引用专家的一句话来说明问题:“初始的SYN请求是一个金矿(因为可以回复),而RST信息包也有一些令人感兴趣的可用于识别的特征。”这些特征和上面所说到的特征组合在一起有助于判断远程操作系统。④小结31
被动特征探测能够起到隐秘地了解攻击者的作用。尽管没有单独的信息可以断然地识别一个操作系统,但是通过组合几个特征,就可以大体判断远程操作系统。[20][21]3.3蜜罐HoneypotMe的实现这一章将叙述HoneypotMe的具体实现细节。HoneypotMe的系统结构及虚拟网络拓扑结构如图3.9所示。正如前面所论述的,HoneypotMe是虚拟网络、虚拟蜜罐、防火墙、虚拟蜜罐的日志及分析系统、入侵检测系统及被动探测系统几部分组成的综合系统。这一章将就每一部分的设计进行详细的论述。3.3.1HoneypotMe的基本实现和拓扑结构在这一小节将对蜜罐HoneypotMe整个系统的结构及设计思想进行一下简要的描述。虚拟蜜罐虚拟蜜罐5虚拟蜜罐6虚拟蜜罐7虚拟蜜罐810.0.1.5110.0.1.5210.1.0.5110.1.0.52Computer192.168.40.12310.0.1.100Computer路由器1路由器2ComputerComputer192.168.40.56192.168.40.57192.168.40.58192.168.40.59虚拟蜜罐1虚拟蜜罐2虚拟蜜罐3虚拟蜜罐4192.168.40.7虚拟蜜罐宿主机Snort数据Web界面日志数据TcpdumpComputer数据防火墙图3.9HoneypotMe虚拟蜜罐系统的拓扑结构图Fig.3.9TopologychartofHoneypotMevirtualHoneypotsystem部署一个物理蜜罐不仅费时而且价格昂贵,这是由于不同的操作系统需要不同的特定硬件,每个蜜罐又需要它自己的物理系统。为了节省资源和简化环境,在这里构造的是一个低交互的虚拟蜜罐。首先,我选择在实验室的实验环境中部32
署一台机器来实现我们的蜜罐系统。这台机器上有一个真实的分配给物理计算机的IP地址,并选用在一个安全LinuxRedHat9.0系统上运行蜜罐系统软件。这台机器是虚拟蜜罐的宿主机并管理着蜜罐系统。这里的虚拟蜜罐系统建立的是一个虚拟的网络和主机环境。它通过模拟操作系统的TCP/IP栈来建立蜜罐,也就是说在网络级上模拟虚拟蜜罐系统,因此可模拟各种不同的操作系统及设备,如Linux,Windows2000,WindowsNT,CiscoSwitch等。它采用的方式是使用与Nmap或Xprobe相同的指纹(fingerprint)数据库来模拟操作系统,以响应针对虚拟蜜罐的网络请求,这样可以愚弄像Xprobe或Nmap这样的TCP/IP栈指纹识别工具。另一方面,这个系统也可以模拟虚拟网络拓扑,在模拟的网络配置中包含路由器,并且包含路由器的连接特性,比如反应时间、包丢失和带宽等。这样可以愚弄traceroute这类工具,使网络流量看起来遵循了所模拟的网络拓扑。在我们的系统中,不仅通过栈指纹愚弄和吸引攻击者以探测攻击,而且还建立了一些模拟的服务,让它们来与攻击者进行交互作用。不同的系统平台上通过脚本模拟着不同的服务,例如:在模拟的Windows系统上打开NetBIOS端口,在模拟的Linux系统中激活mail和FTP,而模拟的Cisco路由器有一个标准的Telnet端口,这样可使建立起来的网络环境看上去更加真实可信。每个被模拟的计算机系统都有一个IP地址与之绑定,这些被绑定的地址是一些未被分配网络地址。这样配置起来的系统灵活多变,与真实的生产性系统混合在一起,更增加其诱捕和欺骗作用。图3.9虚线框中所示就是为实验环境设计的虚拟蜜罐的网络拓扑图。Honeyd是一个构建虚拟蜜罐的软件,可以利用它实现我们构建虚拟蜜罐的目标。另外,作为一个开放源代码解决方案,可为开发利用提供方便,比如,可编写其它的服务脚本以扩充系统的功能等。为了防止由于攻击者对蜜罐系统的破坏,使蜜罐系统瘫痪,可使用防火墙来保护该蜜罐系统。防火墙被配置成允许任何连接进入到几个虚拟蜜罐中,但是严格控制到系统本身的访问,本系统选用IPTables来保护宿主OS的外部IP地址。收集和分析攻击者的信息是HoneypotMe能力的一项重要体现。由于蜜罐没有生产性的活动,没有任何正常流量会流向它正在监视的几个IP地址。这使得分析它捕捉到的信息极其简单,因此它捕捉到的任何东西很可能是具有敌意的。Honeyd软件有生成日志的功能,日志全面描述了什么系统什么时候正在探测什么端口。IDS能对已知的攻击发出警报,同时可将所有网络流量记录到一个文件或数据库中。为了获得分析数据包捕获的更详细的信息,在HoneypotMe蜜罐系统中安装和配置了Snort入侵检测系统。Snort收集到的信息一方面记录到Snort的日志文件中,另一方面记录到Mysql数据库中以便观察和统计分析之用。另外,我们打算利用被动探测详细地分析攻击者的特征。这就需要捕获原始33
数据包供被动探测工具使用。可利用Snort入侵检测系统获取Tcpdump这样的二进制日志记录格式以作为被动探测工具的输入数据,获取攻击者更详细的信息以实现隐蔽探测。正如我们所看到的,蜜罐系统使用许多独立的工具和脚本创建,在其中还包括一些日志文件和数据库供分析之用。开发图形用户界面来配置、管理蜜罐以及集中管理所有信息来源是我们的目标。蜜罐收集了许多来自不同来源的信息,将它们存储到多个日志文件和数据库中。用GUI来分析这些文件和使所收集的数据相关联是会有很大的帮助的,这样的话管理员就不需要记住存储数据的所有文件。另一个很主要的优点是其外观,在基于web的GUI上表示信息比访问日志文件清晰整洁的多。目前,我们仅实现了在web界面上浏览Honeyd日志的功能。3.3.2HoneypotMe虚拟蜜罐及虚拟网络拓扑的设计和配置虚拟蜜罐系统HoneypotMe利用Honeyd软件来设计虚拟蜜罐和虚拟网络拓扑。这可以使我们按照自己的意图在一台机器上模拟复杂的网络,并且可以为该网络配置像反应时间、包丢失率和带宽这些网络特性,使其看起来更像是一个真实的网络。同时,在这个网络中模拟出多种操作系统和相应的服务,增加其对黑客的诱惑力,并可记录更多更丰富的攻击和探测信息。为了验证该系统,虚拟蜜罐宿主机被连接到真实的物理网络环境中,并为其分配一个真实的分配给物理计算机的IP地址,在这里我们给其分配的IP地址为192.168.40.7。所有实现虚拟蜜罐系统的软件都将运行在Linux9.0操作系统下。图3.9的虚线部分显示出我们要模拟的虚拟网络结构及各个虚拟蜜罐。从图中可以看出虚拟蜜罐1(IP地址为192.168.40.56)、虚拟蜜罐2(IP地址为192.168.40.57)、虚拟蜜罐3(IP地址为192.168.40.58)和虚拟蜜罐4(IP地址为192.168.40.59)与虚拟蜜罐宿主机处于同一个网段。从这个网段通过一个IP地址为192.168.40.123的路由器(路由器1)模拟一个地址空间为10.0.1.0/24的网络,在这个网段中包括两个虚拟蜜罐:虚拟蜜罐5(10.0.1.51)和虚拟蜜罐6(10.0.1.52)。从这个网段通过一个IP地址为10.0.1.100的路由器(路由器2)又增加了另一个地址范围为10.1.0.0/16的网络,在此网络中分布了两个蜜罐虚拟蜜罐7(10.1.0.51)和虚拟蜜罐8(10.1.0.52)。我们知道虚拟蜜罐系统是一个完全被配置起来的计算机系统,它在配置文件中描述每一个引用。下面简要分析一下HoneypotMe的配置文件对虚拟蜜罐的描述。下面显示了其中两个样本的配置:一个是WindowsNT样本,一个是Linux系统样本。###Windows计算机createwindows34
setwindowspersonality“WindowsNT4.0ServerSP5-SP6”setwindowsdefaulttcpactionresetsetwindowsdefaultudpactionresetaddwindowstcpport80“perlscripts/iis-0.95/iisemul8.pl”addwindowstcpport139openaddwindowstcpport137openaddwindowsudpport137openaddwindowsudpport135opensetwindowsuptime3284460bind192.168.40.56windows###Linux2.4.x计算机createlinuxsetlinuxpersonality“Linux2.4.16–2.4.18”setlinuxdefaulttcpactionresetsetlinuxdefaultudpactionresetaddlinuxtcpport110“shscripts/pop3.sh”addlinuxtcpport25“shscripts/smtp.sh”addlinuxtcpport21“shscripts/ftp.sh”setlinuxuptime3284460bind10.1.0.51linux每个样本定义了每个模拟的操作系统的性能。“特征(personality)”这就是操作系统在IP堆栈层要模拟的东西,可利用Nmap指纹数据库里相同的描述作为它的OS类型。在样本windows里,特征为“WindowsNT4.0ServerSP5-SP6”,在linux样本里,它的特征为“Linux2.4.16–2.4.18”。注意,特征并不影响所模拟的服务的行为,仅仅修改IP栈的行为。对于所模拟的服务,必须根据想要模拟的OS的类型选择不同的脚本。换句话说就是,如果特征是Windows,不要绑定一个模拟的Apache脚本到HTTP端口,而是绑定一个IIS脚本到HTTP端口。应该说,这些服务都是入侵者在相应的操作系统中希望找到的。在样本中,你可以为端口规定明确的行为,也可以定义为一般的行为。两个样本中将TCP和UDP的缺省行为定义为reset,因此在一般情况下,对于TCP来讲将用RST(连接复位)去响应任意的连接企图,对于UDP,将用ICMP端口不可达去响应。对于定义为open行为的端口,对于TCP将用ACK响应,而UDP将什么也不响应。从样本中可以看出,Windows系统的NetBIOS端口处于打开状态;当一个机器与这个蜜罐的80端口连接时,该蜜罐用IIS仿真程序perl脚本与客户机进行交互;另外Linux系统的mail和FTP35
服务被激活。上面的两个样本分别被绑定在不同的IP地址上。更详细的内容见附录“虚拟蜜罐系统HoneypotMe的配置文件”。下面将讨论HoneypotMe的虚拟网络拓扑的配置。为了模拟这个网络,我们首先建立一个Cisco路由器配置样本并将其绑定在192.168.40.123和10.0.1.100两个IP地址上:###Cisco路由器createroutersetrouterpersonality“CiscoIOS11.3–12.0(11)”setrouterdefaulttcpactionresetsetrouterdefaultudpactionresetaddroutertcpport23“/usr/bin/perlscripts/router-telnet.pl”setrouteruid32767gid32767setrouteruptime1327650bind192.168.40.123route路由器1(192.168.40.123)是物理网络到虚拟网络的入口点;可用”routeentry”配置命令指定这个入口点:routeentry192.168.40.123network10.0.1.0/24上面的这个配置行通知Honeyd路由器192.168.40.123是前往虚拟网络10.0.1.0/24的入口点。10.0.1.0/24网络可经过路由器1直接可达。”routelink”配置命令可指定哪个网络是直接可达的,不需要更进一步的跳步(hop)就可达到。在我们设计的虚拟网络中配置行如下所示:route192.168.40.123link10.0.1.0/24上面的第一个IP地址是路由器1的IP地址。在link关键字后所指定的网络地址定义哪个网络直接可达。使用多个link命令就可以将多个子网直接连接到一个路由器上。从图3.9种可以看出,我们在第一个虚拟网络10.0.1.0/24添加了一个IP地址为10.0.1.100的路由器2,因此从这个网络中又分离出另一个网络。这个新的网络地址范围是10.1.0.0/16。这样,需要首先在配置文件加入一个新的网关(路由器2)。使用”routeaddnet”命令添加一个新的网关,命令格式如下:route192.168.40.123addnet10.1.0.0/1610.0.1.100上面的配置命令行指出192.168.40.123(路由器1)可以通过网关10.0.1.100(路由器2)到达网络10.1.0.0/16。第一个IP地址是路由器1的IP地址,最后一个IP地址是新的网关的IP地址,所指定的地址范围是通过新的网关可达的网络的地址范围。36
在添加了路由器2之后,需要明确指定哪些IP地址可从路由器2直接可达。可使用路由link命令做到这点。在我们配置的网络中,10.1.0.0/16子网由路由器2直接可达。因此可采用下面的命令格式:route10.0.1.100link10.1.0.0/16综上所述,配置文件通过三类配置行的组合就可以模拟出复杂的网络拓扑。下面小结一下:使用“routeentrynetwork”配置行指出进入虚拟网络的入口;使用”routelink”配置行指出从网关直接可达的网络;使用”routeaddnet”配置行加入到达另一个子网的网关。HoneypotMe虚拟蜜罐系统的虚拟网络拓扑通过下面的配置命令行实现:routeentry192.168.40.123network10.0.1.0/24route192.168.40.123link10.0.1.0/24route192.168.40.123addnet10.1.0.0/1610.0.1.100latency50msloss0.1bandwith1Mbpsroute10.0.1.100link10.1.0.0/16从中可以看出使用routeaddnet命令可以更详细地描述路由器1和路由器2之间的网络连接特性。如:反应时间(latency),包丢失率(loss)和带宽(bandwidth)。在真实的环境下,每一个跳步(hop)都会延迟到达目的地的总的时间。这可以利用关键字latency模拟每一跳的延迟,单位为毫秒。数据包在传输过程中也会出现丢包的情况,可用关键字loss模拟这个网络性能,以%指定这个丢失率。如果一个连接(link)被先前的信息包占用,就需要将信息包送入该连接的等待队列。连接延迟的改变依赖于可得到的连接的带宽。在bandwidth关键字中用单位Kbps、Mbps或Gbps指定一个连接的带宽。附录是一个实现HoneypotMe的完整的虚拟蜜罐和虚拟网络拓扑配置文件。3.3.3HoneypotMe中防火墙的作用及配置虚拟蜜罐的宿主机拥有一个真实的分配给物理计算机的IP地址,作为虚拟蜜罐系统的管理控制台运行着蜜罐软件。为了保护蜜罐系统的安全,我们使用防火墙来控制进出的流量。HoneypotMe选用IPTables防火墙来保护蜜罐系统。防火墙配置的原则是:允许任何进入到几个虚拟蜜罐和路由器的连接,但严格地控制访问蜜罐管理系统自身。IPTables防火墙的配置如下所示:$IPTALES–AINPUT–ilo–jACCEPT#允许下面的进入连接$IPTALES–AINPUT–d192.168.40.56–jACCEPT$IPTALES–AINPUT–d192.168.40.57–jACCEPT$IPTALES–AINPUT–d192.168.40.58–jACCEPT37
$IPTALES–AINPUT–d192.168.40.59–jACCEPT$IPTALES–AINPUT–d192.168.40.123–jACCEPT$IPTALES–AINPUT–d10.0.1.100–jACCEPT$IPTALES–AINPUT–d10.0.1.51–jACCEPT$IPTALES–AINPUT–d10.0.1.52–jACCEPT$IPTALES–AINPUT–d10.1.0.51–jACCEPT$IPTALES–AINPUT–d10.1.0.52–jACCEPT#维护进入连接的状态$IPTALES–AINPUT–mstate--stateRELATED,ESTABLISHED–jACCEPT#设置策略$IPTABLES–PINPUTDROP$IPTABLES–PFORWORDDROP$IPTABLES–POUTPUTACCEPT从规则选项中可以看出进入到几个虚拟蜜罐的连接被接受,进入到其它目标地址的连接都被丢弃。另外试图利用虚拟蜜罐系统转发的连接也将丢弃,而从蜜罐系统外出的连接都被许可。因此上说,该防火墙不仅保护了蜜罐系统的安全,而且也不能被用作为攻击他人的机器。3.3.4HoneypotMe中收集信息的方式我们部署的虚拟蜜罐系统是不会有任何生产性的活动的,因此可以断定试图与几个虚拟蜜罐进行交互的行为都被视为是敌对的,这使得分析它捕捉的信息极为简单。Honeyd本身拥有日志记录功能,它记录的攻击信息包括什么系统在什么时刻正在探查哪个端口。一旦确定了想要寻找的流量,可以使用Snort获取包更详细的内容。HoneypotMe将这两种信息收集方式有机地结合起来,有效地分析攻击者各种扫描和攻击行为。Honeyd支持两种日志记录格式,它以简洁的方式记录所有被探测到的活动,可以比较方便地选择需要进一步分析的信息。在文件/var/log/messages中记录的格式是一种人可读信息,它的格式如下所示:Feb1223:06:33laptophoneyd[30948]:Connectiontoclosedport:udp(210.35.128/1:1978–192.168.40.56:1978)Feb1223:23:40laptophoneyd[30948]:Connectionrequest:tcp(66.136.92.78:3269–10.1.0.51:25)Feb1223:23:40laptophoneyd[30948]:Connectionestablished:tcp(66.136.92.78:3269–10.1.0.51:25)38
Feb1223:24:14laptophoneyd[30948]:Connectiondroppedwithreset:tcp(66.136.92.78:3269–10.1.0.51:25)日志的第一行是一个针对WindowsNT蜜罐的扫描企图。攻击者探查UDP1978端口,在日志中可看出这是一个被关闭的端口。虚拟蜜罐系统将用ICMPPortUnreachable消息响应这个扫描。在第二连接中可以看到攻击者连接到Linux蜜罐的TCP25端口。这个端口是打开的,并且绑定了一个脚本smtp.sh,这个脚本模拟一个邮件服务器。在日志文件/var/log/honeyd中将会看到同样的日志信息,只是格式不同。这种格式的信息方便脚本或工具读取和处理。它的格式如下所示:2003-02-12-23:06:33.0633udp(17)–210.35.123.11978192.168.40.561978692003-02-12-23:23:40.0600tcp(6)S66.136.92.7810.1.0.51252003-02-12-23:24:14.0940tcp(6)E66.136.92.7810.1.0.5125:98342Honeyd的日志在表示什么正在发生方面是非常有效的。要想分析攻击者的攻击行为,应该首先从这儿开始确定什么活动正在出现。如果一个攻击者连接到一个端口,而这个端口又绑定了一个脚本的话,这个脚本常常可以设计有它自己的日志登记功能部件。比如:smtp.sh脚本在执行中可能会将攻击者的行为记录在/tmp/honeyd/smtp-.log文件中。除了Honeyd的日志外,Snort也可以捕捉这些连接。Snort不仅能检测攻击而且能产生报警。另外,我们可以通过分析包的负载得到其它的信息,比如,被动的指纹识别。在虚拟蜜罐系统HoneypotMe中,我们通过配置使所有的Snort事件都登记到MySQL数据库中,这样便于分析和统计。3.4小结总之蜜罐技术是灵活的,我们可以按照自己的实现目标来构建自己的蜜罐系统。在这里我们利用虚拟蜜罐框架来构建我们的蜜罐,以实现蜜罐的欺骗和诱骗功能。为了控制黑客的行为,防止黑客对蜜罐系统的破坏和利用,在蜜罐系统中加入了防火墙,并选用了Linux2.4自带的内核包过滤的工具iptables。为了了解黑客的行为,在蜜罐系统中加入了信息收集和统计分析功能。通过开发web接口的日志文件查询工具,使蜜罐管理员能够方便快捷地查询虚拟蜜罐框架收集的日志信息。为了获得更详细的黑客攻击和扫描信息并及时得到报警,使用入侵检测系统Snort来满足我们的需求。最终,为了获取黑客自身的信息而又不被其发现,我们使用被动探测工具p0f来获取黑客的操作系统指纹。这是实现隐蔽探测的一个很39
好的思路,即利用蜜罐来引诱攻击者的扫描和攻击,然后使用被动探测工具探查攻击者的信息。这也是我们构建蜜罐系统的一个创新点。综上所述,我们构建的蜜罐系统是一个实现了欺骗和诱骗、行为控制、入侵检测、被动探测、数据分析等功能的综合性蜜罐系统。40
4实验过程及结果分析HoneypotMe虚拟蜜罐系统经过多次的实验验证。这一章将描述系统运行所需要的软硬件环境和实验过程,并将对实验结果做一下分析说明。[18][19]4.1实验环境①硬件环境1)两台P4微机:一台用作为蜜罐系统主机,另一台用作为攻击机。2)网络环境(蜜罐系统被安放在两个地方):z局域网:网络地址范围是192.168.40.0/24。蜜罐系统主机的IP地址为192.168.40.7,攻击机的IP地址为192.168.40.8。zInternet:另一台蜜罐系统主机连接在与Internet相连的路由器上,目的是接收真实的网络攻击信息。②软件环境1)Linux9.0操作系统2)虚拟蜜罐框架软件Honeyd-0.5。该软件运行需要下面三个库:zlibevent–异步事件库zlibnet--网络库zlibpcap–包捕捉库3)入侵检测软件Snort4)Iptables内核包过滤工具5)被动探测工具p0f6)数据库管理系统MySQL下面主要以局域网内部的实验数据作为示例结果。为了便于对照,这里给出了实验环境的示意图。从图4.1可以看到IP地址为192.168.40.8的攻击机和IP地址为192.168.40.7的蜜罐系统主机同属于192.168.40.0/24网络地址空间,当然与网关192.168.40.1相连的其它网络地址空间中的主机也可以攻击和扫描模拟的虚拟蜜罐。为了使前往10.0.1.0/24和10.1.0.0/16两个模拟出来的网络地址空间数据流量能够被引入IP地址为192.168.40.7的蜜罐系统主机,需要在网关192.168.40.1的路由表中添加相应的路由。这样就能使Honeyd虚拟蜜罐框架可以处理这些流量,并做出响应。41
虚拟蜜罐5虚拟蜜罐6虚拟蜜罐7虚拟蜜罐8Internet10.0.1.5110.0.1.5210.1.0.5110.1.0.52Linux2.4WindowsNTLinux2.4WindowsNT黑客攻击机路由器交换机192.168.40.1路由器CISCOSYSTEMS192.168.40.12310.0.1.100ciscocisco内网防火墙路由器1路由器2攻击机实验用攻击机192.168.40.56192.168.40.57192.168.40.58192.168.40.59192.168.40.8虚拟蜜罐1虚拟蜜罐2虚拟蜜罐3虚拟蜜罐4虚拟蜜罐系统WindowsNTLinux2.4Linux2.4WindowsNTIptables防火墙模拟的虚拟蜜罐和虚拟网络拓扑各种控制管理软件日志分析统计web界面各种配置文件、日各种网络志文件安全工具虚拟蜜罐系统管理控制台192.168.40.7虚拟蜜罐系统图4.1实验环境示意图Fig.4.1Chartofexperimentenvironment4.2实验过程及结果分析下面分步骤演示一下实验的过程,同时对实验结果分别进行分析说明。4.2.1HoneypotMe蜜罐系统的建立和配置①配置和启动防火墙首先在HoneypotMe虚拟蜜罐系统所在的平台安装防火墙,Iptables防火墙的配置文件的内容如3.2.2节所示。为了方便操作我们将规则存于下面的脚本程序中,运行该脚本程序将启动防火墙的规则。[root@lylhoneyd]#shiptables_firewall.sh命令执行后,在攻击机上可以访问几个虚拟蜜罐,但无法连接虚拟蜜罐管理系统所在的IP地址为192.168.40.7的机器。结果证明配置的防火墙规则既起到了保护蜜罐管理系统的作用又不影响虚拟蜜罐系统原有的欺骗攻击者的任务。②启动虚拟蜜罐守护进程在虚拟蜜罐宿主机上启动虚拟蜜罐守护程序Honeyd,实现虚拟蜜罐及虚拟网络拓扑的模拟。Honeyd没有能力将攻击引向它,它仅能够与攻击者进行交互作用。因此,Honeyd需要与arpd配合使用。Arpd用于ARP欺骗,作用是监视未被使用的IP空间,将攻击引向Honeyd蜜罐。因此,要同时启动arpd和honeyd两个命令。完全的命令行存在脚本程序start-arpd.sh和strat-honeyd.sh中,分别42
执行两个脚本程序启动两个守护程序。[root@lylhoneyd]#shstart-arpd.sh+arpd192.168.40.56-192.168.40.59192.168.40.12310.0.1.0/2410.1.0.0/16arpd[4933]:listeningoneth0:arpand(dstnet192.168.40.56/30ordst192.168.40.123ordstnet10.0.1.0/24ordstnet10.1.0.0/16)andnotethersrc00:90:27:28:88:ef[root@lylhoneyd]#shstart-honeyd.sh+honeyd-pnmap.prints-fhoneyd.conf-xxprobe2.conf-anmap.assoc-l/var/log/hlog192.168.40.56-192.168.40.59192.168.40.12310.0.1.0/2410.1.0.0/16ImpossibleSIrangeinClassfingerprint"WindowsNT4SP3"honeyd[4940]:listeningoneth0:ipand(dstnet192.168.40.56/30ordst192.168.40.123ordstnet10.0.1.0/24ordstnet10.1.0.0/16)andnotethersrc00:90:27:28:88:efArpd进程将监视192.168.40.56-192.168.40.59、192.168.40.123、10.0.1.0/24、10.1.0.0/16网络上任意未使用的IP地址空间。对于任意打算发往未使用的IP地址的数据包,它利用Arp欺骗将数据包引向Honeyd蜜罐并用蜜罐宿主机的MAC地址欺骗攻击者。蜜罐配置文件honeyd.conf中的特征名与Nmap指纹数据库namp.prints中的特征名相一致。决定HoneypotMe虚拟蜜罐系统采取什么行动的蜜罐配置文件honeyd.conf见附录中的描述。虚拟蜜罐产生的日志记录在/var/log/hlog文件中(这个日志文件的格式是方便工具和脚本读取的格式)。192.168.40.0/24网络空间的网关地址为192.168.40.1,需要在其中加入规则:凡是前往网段10.0.1.0/24和10.1.0.0/16的数据包都指向192.168.40.123虚拟路由器。命令执行后将形成两个虚拟网段:①与虚拟路由器192.168.40.123相连的10.0.1.0/24网段。该网段中有两个虚拟主机10.0.1.51和10.0.1.52,该网段中还有一个虚拟路由器10.0.1.100。②与虚拟路由器10.0.1.100相连的10.1.0.0/16网段。该网段中有两个虚拟主机10.1.0.51和10.1.0.52。另外在真实的网络地址空间192.168.40.0/24中模拟了四台虚拟主机192.168.40.56、192.168.40.57、192.168.40.58和192.168.40.59。③启动入侵检测系统在虚拟蜜罐管理系统所在的主机上启动Snort,以获得完整的数据包信息:[root@lylhoneyd]#snort–d–l/home/lyl/snort–c/home/lyl/snort-2.0.0/etc/snort.conf入侵检测系统snort的配置文件snort.conf的内容在3.3.3节有详细的描述。警43
告文件alert_full和alert_fast以及tcpdump格式的日志输出文件snort.log将存入/home/lyl/snort目录中。数据包的完整信息也将存入MySQL数据库中。通过上述步骤,我们的蜜罐系统就完成了建立工作,进入了诱骗和收集数据的阶段。这时,外部攻击者看到的将是如图4.1所示的网络拓扑和系统结构。4.2.2进行攻击实验①在攻击机上对目标进行扫描在攻击机192.168.40.8上执行网络勘察工具Nmap。针对某一虚拟蜜罐进行SYN的半开扫描,并试图确定其上运行什么操作系统。C:>nmap-sS-O192.168.40.56StartingnmapV.3.00(www.insecure.org/nmap)Interestingportson(192.168.40.56):(The1598portsscannedbutnotshownbelowareinstate:closed)PortStateService80/tcpopenhttp137/tcpopennetbios-ns139/tcpopennetbios-ssnRemoteOSguesses:WindowsNT4SP3,WindowsNT4.0ServerSP5-SP6,MSWindows2000ProfessionalRC1/W2KAdvanceServerBeta3Nmapruncompleted--1IPaddress(1hostup)scannedin18seconds结果显示192.168.40.56上运行的操作系统可能是WindowsNT4SP3,WindowsNT4.0ServerSP5-SP6,MSWindows2000,并开放三个tcp端口:80端口、137端口和139端口。从Honeyd配置文件honeyd.conf中可以看出,IP地址192.168.40.56被绑定在一个模拟WindowsNT4.0ServerSP5-SP6虚拟蜜罐样本上。Nmap探查出来信息与样本模拟的信息一致。由此可见虚拟蜜罐系统可以成功地欺骗攻击者,使其认为探查到了一个真实的系统。下面命令的执行结果进一步验证了虚拟蜜罐系统的欺骗性。C:>nmap-sS-O10.1.0.51StartingnmapV.3.00(www.insecure.org/nmap)InsufficientresponsesforTCPsequencing(2),OSdetectionmaybelessaccurateInterestingportson(10.1.0.51):(The1598portsscannedbutnotshownbelowareinstate:closed)PortStateService21/tcpopenftp25/tcpopensmtp44
110/tcpopenpop-3Remoteoperatingsystemguess:Linux2.4.16-2.4.18Uptime0.760days(sinceSunMay1616:17:462004)Nmapruncompleted--1IPaddress(1hostup)scannedin15secondsC:>nmap-sS-O10.0.1.100StartingnmapV.3.00(www.insecure.org/nmap)Interestingportson(10.0.1.100):(The1600portsscannedbutnotshownbelowareinstate:closed)PortStateService23/tcpopentelnetRemoteoperatingsystemguess:CiscoIOS11.3-12.0(11)Nmapruncompleted--1IPaddress(1hostup)scannedin87secondsC:>②在攻击机上对目标进行路径探测在攻击机192.168.40.8上执行Traceroute以获取从攻击机到某一虚拟主机的路经:C:>tracert10.1.0.51Tracingrouteto10.1.0.51overamaximumof30hops1<10ms<10ms<10ms192.168.40.123293ms110ms109ms10.0.1.1003109ms110ms125ms10.1.0.51Tracecomplete.从执行结果上可以看出从攻击机192.168.40.8到10.1.0.51的路径上经过了两个路由器192.168.40.123和10.0.1.100。路由器192.168.40.123和10.0.1.100都是虚拟路由器。路由输出信息的结果与配置文件Honeyd.conf中模拟的路由拓扑一致。可见虚拟蜜罐系统可以成功地模拟路由。③在攻击机上访问目标上的服务在某一攻击机上访问虚拟蜜罐模拟的服务并试图得到与相应真实服务相同的响应。攻击方通过nmap主机10.1.0.51得知21号端口开放,然后访问该端口的服务ftp:C:>ftp10.1.0.51Connectedto10.1.0.51.220lyl.FTPserver(Versionwu-2.6.0(5)二5月1810:09:02CST2004)ready.45
User(10.1.0.51:(none)):lyl331PasswordrequiredforlylPassword:530Loginincorrect.Loginfailed.ftp>quit221Goodbye.结果可看出虚拟主机10.1.0.51所模拟的ftp服务的消息与真实的ftp服务一致,起到了迷惑敌人的作用。虚拟蜜罐系统中的10.0.1.100是一台模拟的cisco路由器,它的23号端口绑定了telnet服务,下面是访问该服务的过程C:>telnet10.0.1.100Users(authorizedorunauthorized)havenoexplicitorimplicitexpectationofprivacy.Anyorallusesofthissystemmaybeintercepted,monitored,recorded,copied,audited,inspected,anddisclosedtoauthorizedsite,andlawenforcementpersonnel,aswellastoauthorizedofficialsofotheragencies,bothdomesticandforeign.Byusingthissystem,theuserconsentstosuchinterception,monitoring,recording,copying,auditing,inspection,anddisclosureatthediscretionofauthorizedsite.Unauthorizedorimproperuseofthissystemmayresultinadministrativedisciplinaryactionandcivilandcriminalpenalties.Bycontinuingtousethissystemyouindicateyourawarenessofandconsenttothesetermsandconditionsofuse.LOGOFFIMMEDIATELYifyoudonotagreetotheconditionsstatedinthiswarning.UserAccessVerificationUsername:lylPassword:%LogininvalidUsername:lylPassword:46
%LogininvalidUsername:%Username:timeoutexpired!遗失对主机的连接。C:>在攻击方得到的输出与真实的访问telnet输出一致。4.2.3对蜜罐系统获得的信息进行分析和探测蜜罐系统一方面模拟真实的服务,向攻击者返回的信息使其感到是与真实服务交互,另一方面记录下这些攻击者对这些模拟服务的访问,使蜜罐系统的管理员能够分析攻击者的行为。①阅读和分析honeyd的日志在虚拟蜜罐管理平台上观察honeyd人可读日志文件并观察相应的服务日志。honeyd人可读日志存于/var/log/messages文件中,由于它的数据量很大,我们只选择显示与我们本次实验有关的部分日志信息:May1810:09:02lylhoneyd[4434]:Connectionrequest:tcp(192.168.40.8:1440-10.1.0.51:21)May1810:09:02lylhoneyd[4434]:Connectionestablished:tcp(192.168.40.8:1440-10.1.0.51:21)<->shscripts/ftp.shMay1810:09:59lylhoneyd[4434]:Connectionclosed:tcp(192.168.40.8:1440-10.1.0.51:21)日志包括攻击时间,攻击者的IP地址和端口,攻击目标的IP地址和端口以及攻击者采取的动作。从日志上可以看出攻击者试图运行10.1.0.51主机上开放的ftp服务,访问结束后会在相应的服务日志里记录下更详细的细节。这一功能是模拟该项服务的脚本提供的。相应的服务日志存储在/tmp/honeyd/ftp-.log文件中,内容如下:二5月1810:09:02CST2004:FTPstartedfromPortUSERlylPASSlyl该服务日志文件记录下了攻击者输入的口令信息。②阅读和分析入侵检测系统记录的信息在虚拟蜜罐管理平台上观察入侵检测系统snort记录的数据包信息。各种输出文件的输出项目在3.3.3节中有详细描述。在这里将显示实验期间各输出文件的输出结果。snort_fast文件包含下列警告信息(部分):47
05/18-09:38:27.850201[**][111:9:1](spp_stream4)STEALTHACTIVITY(NULLscan)detection[**]{TCP}192.168.40.8:47756->10.1.0.51:2105/18-09:38:27.850252[**][1:628:1]SCANnmapTCP[**][Classification:AttemptedInformationLeak][Priority:2]{TCP}192.168.40.8:47758->10.1.0.51:2105/17-15:07:26.978129[**][1:553:4]POLICYFTPanonymousloginattempt[**][Classification:Miscactivity][Priority:3]{TCP}192.168.40.8:1203->10.1.0.51:2105/17-15:08:10.433100[**][1:491:5]FTPBadlogin[**][Classification:PotentiallyBadTraffic][Priority:2]{TCP}10.1.0.51:21->192.168.40.8:1204snort_full文件包含下列警告信息(部分):[**][111:9:1](spp_stream4)STEALTHACTIVITY(NULLscan)detection[**]05/18-09:38:27.8502010:4:76:A0:4B:6->0:90:27:28:88:EFtype:0x800len:0x4A192.168.40.8:47756->10.1.0.51:21TCPTTL:49TOS:0x0ID:60948IpLen:20DgmLen:60********Seq:0x5D86918Ack:0x0Win:0x800TcpLen:40TCPOptions(4)=>WS:10NOPMSS:265TS:10611095670[**][1:628:1]SCANnmapTCP[**][Classification:AttemptedInformationLeak][Priority:2]05/18-09:38:27.8502520:4:76:A0:4B:6->0:90:27:28:88:EFtype:0x800len:0x4A192.168.40.8:47758->10.1.0.51:21TCPTTL:49TOS:0x0ID:35669IpLen:20DgmLen:60***A****Seq:0x5D86918Ack:0x0Win:0x800TcpLen:40TCPOptions(4)=>WS:10NOPMSS:265TS:10611095670[Xref=>http://www.whitehats.com/info/IDS28][**][1:553:4]POLICYFTPanonymousloginattempt[**][Classification:Miscactivity][Priority:3][**][1:553:4]POLICYFTPanonymousloginattempt[**]05/17-15:07:22.165914192.168.40.8:1202->10.1.0.51:21TCPTTL:128TOS:0x0ID:6174IpLen:20DgmLen:68DF***AP***Seq:0xF9A2A7C0Ack:0x51BA7E85Win:0xFAF1TcpLen:32TCPOptions(3)=>NOPNOPTS:2380116674580[**][1:491:5]FTPBadlogin[**][Classification:PotentiallyBadTraffic][Priority:2]48
05/18-10:09:15.4854530:90:27:28:88:EF->0:4:76:A0:4B:6type:0x800len:0x5810.1.0.51:21->192.168.40.8:1440TCPTTL:62TOS:0x0ID:7045IpLen:20DgmLen:74***A****Seq:0x540FE28EAck:0xCD284F09Win:0x3E80TcpLen:32TCPOptions(3)=>TS:67554190NOPNOPTCPOptions(3)=>TS:66785900NOPNOP上面是两个Snort警告模式,fast模式只记录时间、消息、IP地址和端口到警告文件中;full模式除了记录fast模式的信息外还要将整个报文头信息记录到警告文件中。该警告信息报告了攻击机192.168.40.8向虚拟机10.1.0.51发出过nmap扫描并企图使用ftp服务。在输出文件的配置中我们还选用了数据库插件,将所有事件存储在MYSQL数据库中以方便统计分析。下面的数据库查询语句将统计出蜜罐系统检测到的各种攻击的数目。SELECTe.signature,s.sig_name,count(*)ascountFROMevente,signatureswheree.signature=s.sig_idgroupbye.signatureorderbycountdesc;查询结果如下:+-----------+-----------------------------------------------+-------+|signature|sig_name|count|+-----------+-----------------------------------------------+-------+|1|ICMPPING|74||2|ICMPEchoReply|54||3|ICMPDestinationUnreachable(HostUnreachabl|234||5|ICMPDestinationUnreachable(PortUnreachabl|762||7|SNMPrequesttcp|49||9|SNMPtraptcp|52||13|SNMPpublicaccessudp|410||15|ICMPPINGNMAP|18||17|SCANnmapTCP|61||34|FTPBadlogin|6||35|POLICYFTPanonymousloginattempt|8||37|TELNETloginincorrect|3|+-----------+-----------------------------------------------+-------49
结果表中显示了各种攻击类型的特征名及攻击次数,比如攻击者使用nmap实施了61次TCP扫描等等。下面的图表形象地显示了攻击类型的统计分布。针对HoneypotMe的攻击类型统计ICMPPING900ICMPEchoReply800762ICMPDestinationUnreachable(HostUnreachable)700ICMPDestinationUnreachable(PortUnreachable)600SNMPrequesttcp500SNMPtraptcp410400|SNMPAgentX/tcprequest攻击数字300SNMPpublicaccessudp234200SCANnmapTCP100745449524261FTPBadlogin683POLICYFTPanonymousloginattempt01TELNETloginincorrect攻击图4.2攻击类型统计Fig.4.2Statisticsofintrusiontypes通过数据库查询语句也可以查询某一攻击来自哪些攻击者,并统计每一个攻击者进行了几次攻击。在下面的SQL查询语句中signature设置为17,从上面的攻击类型查询结果表可以看出signature=17代表要查询SCANnmapTCP攻击类型的攻击者和发出的攻击数目:SELECTi.ip_src,count(*)ascountFROMevente,iphdriwheree.cid=i.cidande.signature=17groupbyi.ip_srcorderbycountdesc;查询结果显示如下:+------------+-------+|ip_src|count|+------------+-------+|3232245768|61|+------------+-------+从结果可以看出只有一个攻击者192.168.40.8(3232245768)发出了这个类型的50
攻击,共发出了61次。192.168.40.8正是作为实验用的攻击机。③根据收集的信息进行对攻击机的被动探测在虚拟蜜罐管理平台上启动被动探测判断攻击者主机的操作系统或攻击类型。入侵检测系统Snort的输出文件Snort.log.1084843846是以二进制的tcpdump格式记录报文的日志文件。出于篇幅的问题,这里只显示被动探测的部分输出结果。p0f被动探测工具的-s选项代表选择的输入文件为tcpdump格式的日志文件。[root@lylsnort]#p0f-ssnort.log.1084843846p0f-passiveosfingerprintingutility,version2.0.3(C)M.Zalewski,W.Stearnsp0f:listening(SYN)on"snort.log.1084843846",206sigs(12generic),rule:"all".192.168.40.8:38349-NMAPsynscan(4)*192.168.40.8:47748-NMAPsynscan(2)*192.168.40.8:50320-NMAPsynscan(1)*192.168.40.8:2840-WindowsXPProSP1,2000SP3->10.1.0.51:705(distance0,link:ethernet/modem)192.168.40.8:4352-WindowsXPProSP1,2000SP3->10.1.0.51:8080(distance0,link:ethernet/modem)192.168.40.8:2295-WindowsXPProSP1,2000SP3->10.1.0.51:162(distance0,link:ethernet/modem)192.168.40.8:3543-WindowsXPProSP1,2000SP3被动探测的结果说明192.168.40.8攻击机曾经发出nmap攻击,进行过SYN扫描。通过192.168.40.8发往虚拟蜜罐10.1.0.51和192.168.40.57的数据报文判断出192.168.40.8的操作系统可能是WindowsXPProSP1,2000SP3。事实上192.168.40.8攻击机的攻击平台为Windows2000SP3,探测结果是正确的。4.3小结实验证明,我们建立的HoneypotMe虚拟蜜罐系统,能够实现计算机系统和网络拓扑的模拟,形成的虚拟系统和网络成功地欺骗了攻击者;同时能够对攻击者的信息进行收集和进一步的分析。蜜罐、防火墙、入侵检测、被动探测等多项网络安全技术的综合应用,对构建主动的安全防御体系,提高实际生产性系统的安全,发现并确定攻击者等方面可以发挥重要的作用。51
5下一步工作本人开展蜜罐研究只是近两年的事情,感到蜜罐涉及到的许多安全领域的技术还需要进行深入细致的研究,这样才能够设计出功能更加完善欺骗性更强得蜜罐系统。下面是研究中的一点设想和近期想做的一些工作。1、完善HoneypotMe虚拟蜜罐系统的设计HomeypotMe虚拟蜜罐系统虽然是一个可以实现欺骗攻击者和研究攻击者行为的一个比较完整的系统,但它的实现更多地体现在设计者的一个思路上,还有许多可以改进和完善的地方,下面几点是本人今后想继续完成的一些工作:①提高系统的欺骗能力。通过模拟更多种类的操作系统,搜集和开发更多相关的网络服务脚本并进行分析研究,以及可以构造更加复杂的拓扑结构来增加整个系统的欺骗能力。②提高系统的集成度和易用性。实现蜜罐系统的自动安装,设计友好的用户界面以集中的方式配置、管理和使用蜜罐系统。在集成环境中实现各个子系统的配置和启动,并实现对各类攻击信息的查询、分析和探测。③提高系统的探测分析能力。通过采用多种探测和分析技术,进一步提高对所收集信息的探测、分析能力,获取攻击方更多的信息。2、蜜罐的识别对抗技术的研究部署蜜罐的出发点是为了安全防护,也就是说出于防御的角度。换个角度来说,为了完善蜜罐的欺骗能力,提高蜜罐的有效性,可以开展识别蜜罐的研究。目前初步打算从两个方面着手开展这项工作:①利用各种扫描攻击的手段探索虚拟蜜罐所模拟的系统和服务与真实的系统有什么不同,比如:探测真实的系统和模拟的蜜罐系统在响应上有何不同,这个不同就成了蜜罐的指纹;②如果一个蜜罐被设计成模拟某类服务器,但是它也有某些特征使其被识别为另一类服务器,这些矛盾的身份可以作为一个蜜罐的特征。随着针对蜜罐的识别对抗技术的研究,还可以探寻更多的识别蜜罐的方法。3、研究蜜罐在安全领域的应用蜜罐在网络安全领域的应用也是目前研究的热点,今后可以继续这方面的研究,并应用于我们开发的系统,使我们的系统在应用中发挥更大的作用。例如:①研究其如何检测和阻遏Worms②研究其如何预防Spam③其它应用52
4、研究和部署其它类型的蜜罐对各种类型的蜜罐进行深入细致的研究。对现已发布的蜜罐进行部署和实验,并进行比较,为完善我们的系统提供帮助。53
6总结蜜罐技术为信息系统安全提供了新思路,作为一个有价值的资源,特别是在收集有关攻击者行动的信息以及他们所配备的工具的信息方面,没有哪个机制可以与蜜罐的效率相比较。不过,蜜罐目前还不成熟,还没有被认作为与防火墙或入侵检测系统一样在每一个安全意识环境里具有固定地位的标准产品。蜜罐不能够替代其他安全机制,而应该与现存的安全机制一起工作来增加系统的安全性。另外,安装和运行一个蜜罐还包含着很高的风险,如果使用不当,一个蜜罐可能会变成攻击者的又一个被入侵的设备,而且可能影响到其他的节点。蜜罐对管理的需求以及对分析的要求也非常高,因此使用起来比较复杂。我们通过自己的工作,开展了对蜜罐技术的研究、实验和应用,并且通过和入侵检测、被动探测等其他相关技术的结合,设计了具有蜜罐功能的综合安全防御系统,增加了安全防护的主动性,对提高系统的安全性进行了创新性的尝试。蜜罐正处于幼年期,新的想法和技术以后还会浮现出来,而且随着蜜罐变得更加先进,黑客也将开发出新的方法来探测和攻击如此的系统,促使攻防对抗技术在双方得到进一步的提高。因此为了提高我们开发的蜜罐系统的能力,抵御日益增加的入侵活动,还需要不断对新的思想和技术进行研究和利用,使蜜罐系统在保护系统安全性方面发挥出应有的价值。54
致谢在我的课题和硕士论文完成之即,谨向在我攻读硕士学位的过程中曾经指导过我的老师,关怀过我的领导,和所有帮助过我的人们致以崇高的敬意和诚挚的感谢!指导老师在百忙当中对我的研究工作提出了许多宝贵的意见和建议,并为我提供了很好的研究和实验环境,使我的工作的得以顺利地完成。特别是在论文的书写过程中,给予了积极的指导和帮助。在此表示衷心的感谢。连琪二OO七年九月于重庆55
参考文献[1]WhitePaper:Honeypots.RetoBaumann.Feb.26,2002.http://www.rbaumann.net.ChristianPlattner.http://www.christianplattner.net.[2]LanceSpitzner.Honeypots–DefinitionsandValueofHoneypots.Oct2001.http://www.enteract.com/˜lspitz/honeypot.html.[3]Hosus(Honeypotsurveillancesystem).ThemagazineofUSENIX&SAGE,Dec.2002.[4]OpenSourceHoneypots:LearningwithHoneyd.LanceSpitzner.January20,2003.http://www.tracking-hacker.com/.[5]Honeyd:AVirtualHoneypotDaemon(ExtendAbstract).NielsProvos.[6]SimulatingNetworkswithHoneyd.RoshenChandran,SangitaPakala.Dec.14,2003.http://www.paladion.net[7]KnowYourEnemy:PassiveFingerprinting.HoneynetProject.24May2000.http://project.honeynet.org/[8]KnowYourEnemy:PassiveHoneynets.HoneynetProject.18January,2003.http://project.honeynet.org/[9]KnowYourEnemy:DefiningVirtualHoneynets.HoneynetProject.27January,2003.http://project.honeynet.org/[10]Honeyd–AlowinvolvementHoneypotinAction.RetoBaumann.http://security.rbaumann.net[11]Honeypots.Baumann,RetoandPlattner,Christian.March142003.http://security.rbaumann.net/download/diplomathesis.pdf[12]AVirtualHoneypotFramework.NielsProvoshttp://www.citi.umich.edu/techreports/reports/citi-tr-03-1.pdf[13]用iptales实现包过虑型防火墙.2003-1-15http://www.Fengnet.com[14]SANSIntrusionDetectionFAQWhatisp0fandwhatdoesitdo?.BentePetersen.http://www.sans.org/resources/idfaq/p0f.php[15]RemoteOSdetectionviaTCP/IPStackFingerPrinting.Fyodor.http://www.insecure.org/nmap/nmap-fingerprinting-article.html[16]Linux2.4PacketFilteringHOWTO简体中文版.RustyRussell.2002/06/05[17]TRACEROUTE的介绍与功能http://www.fanqing.com/a1/b5/20021209/060201352.html[18]入侵检测系统实例剖析韩东海等清华大学出版社[19]曹爱娟,刘宝旭,许榕生.网络陷阱与诱捕防御技术综述[J].计算机工程,2004,301~3.56
[20]崔志磊,房岚.一种全新的网络安全策略-蜜罐及其技术[J].计算机应用与软件,2004,21(2):99~100.[21]王璐,秦志光.业务蜜网技术与应用[J].计算机应用,2004,24(3):43-45.57
附录HoneypotMe使用的honeyd.conf#虚拟网络拓扑的配置routeentry192.168.40.123network10.0.1.0/24route192.168.40.123link192.168.40.0/24route192.168.40.123link10.0.1.0/24route192.168.40.123addnet10.1.0.0/1610.0.1.100latency50msloss0.1bandwith1Mbpsroute10.0.1.100link10.1.0.0/16#虚拟蜜罐的配置###Windows计算机createwindowssetwindowspersonality“WindowsNT4.0ServerSP5-SP6”setwindowsdefaulttcpactionresetsetwindowsdefaultudpactionresetaddwindowstcpport80“perlscripts/iis-0.95/iisemul8.pl”addwindowstcpport139openaddwindowstcpport137openaddwindowsudpport137openaddwindowsudpport135opensetwindowsuptime3284460bind192.168.40.56windowsbind192.168.40.59windowsbind10.0.1.52windowsbind10.1.0.52windows###Linux2.4.x计算机createlinuxsetlinuxpersonality“Linux2.4.16–2.4.18”setlinuxdefaulttcpactionresetsetlinuxdefaultudpactionresetaddlinuxtcpport110“shscripts/pop3.sh”addlinuxtcpport25“shscripts/smtp.sh”addlinuxtcpport21“shscripts/ftp.sh”58
setlinuxuptime3284460bind10.1.0.51linuxbind10.0.1.51linuxbind192.168.40.57linuxbind192.168.40.58linux#虚拟路由器的配置###Cisco路由器createroutersetrouterpersonality“CiscoIOS11.3–12.0(11)”setrouterdefaulttcpactionresetsetrouterdefaultudpactionresetaddroutertcpport23“/usr/bin/perlscripts/router-telnet.pl”setrouteruid32767gid32767setrouteruptime1327650bind192.168.40.123routerbind10.0.1.100router59
您可能关注的文档
- 中华蜜蜂谷胱甘肽s-转移酶和小分子热激蛋白基因的生物学功能分析
- 老蜜蜡的增值空间
- 中班语言活动:《甜蜜的家》活动评析
- 小班音乐课教案及反思《蜜蜂做工》
- 中班音乐游戏教案《大象和小蜜蜂》
- 改进蜜蜂交配算法及其在排课问题中应用
- 蜜蜡佛珠的正确佩戴方法
- 田园风味仙儿搭,甜蜜约会必杀技,hold住哦
- 中班优秀音乐教案《熊和蜜蜂》
- 蜜桔、翠冠梨种植改建项目可行性评估报告
- 【6A文】女性纵横职场 必学会十句甜言蜜语.doc
- 陆地棉和毛棉种间ssr遗传图谱构建及其茸毛和蜜腺基因的染色体定位
- 毕业论文-罗平油菜花蜂蜜包装设计
- 不同抗螨性能东方蜜蜂obp3基因的克隆与表达变化规律的研究
- 不同特性肥料对南丰蜜橘果实品质的影响
- 惠济区年产1000吨有机蜂蜜加工扩建项目
- 澄清型蜜柚芦柑复合果汁加工工艺研究
- 蜂蜜行业调查数据分析报告2016版