入侵检测是一个复杂的业务,无论你是部署一套入侵检测系统(IDS),还是在你的网络上收集和分析计算机及设备日志,识别合法活动中的恶意流量总是既困难又费时。
概述
所幸还有蜜罐技术,通过蜜罐识别恶意流量非常简单,因为任何经过蜜罐的流量,首先要清洗一遍消除误报,当触发蜜罐设置的预警行为时,蜜罐自动向设定的支持人员发出警报,蜜罐是一个经过周密配置的伪装计算机设备,任何人都不应该接触它或尝试登录,因为所有活动都是非法的,不需要从恶意流量中分析善意的行为,唯一的问题是,入侵者有多危险?
作为一个长期从事安全的专业人士,我们在互联网上创建了八个蜜罐跟踪黑客和恶意软件行为,我可以观察到从脚本小子到职业犯罪团伙的一切活动,我可以看到和了解银行账户窃取木马的一举一动,可以第一时间看到许多新奇的黑客活动。
更重要的是,我已经认识到蜜罐在企业环境中的影响,它们作为早期预警系统而星光灿烂,我曾经看到过蜜罐在企业LAN上捕获到外国工业间谍的踪影,他们诱惑受企业信任人员帮助他们窃取机密,并以看不见的恶意软件为幌子转移安全团队的注意力,在近10年的蜜罐维护生涯中,我发现刚安装好的蜜罐一般很难立即发现恶意软件。
简而言之,作为早期预警系统,蜜罐是低成本的,低干扰和低维护的,但能在网络环境中有效地提醒威胁,可以给防御纵深方案增加一道防线。
三个常见的蜜罐解决方案
我考查了三个常见的蜜罐软件解决方案:KeyiKeyfocus的KFSensor,MicroSolved的HoneyPoint Security Server和免费开源的Honeyd。我在一个封闭的实验环境中测试了这三个蜜罐,在Windows Server 2008 R2的Hyper-V托管的虚拟机上运行,KFSensor和HoneyPoint运行在Windows 7企业版上,Honeyd运行在Ubuntu 9.10上,使用Nessus 4.2.2和BackTrack 4,从相同私有LAN上的远程物理机手动建立连接,模拟攻击探测,所有基于主机的防火墙和Windows上的用户账号控制(UAC)都被禁用了,因为它们可能会干扰各种本可以成功的攻击和探测。
为什么要使用专业的蜜罐软件?你不需要KFSensor,Honeyd或HoneyPoint Security Server建立蜜罐,我经常建议读者使用准备丢掉的旧电脑作为早期预警蜜罐系统,你已经为硬件和软件支付了费用,为什么不好好利用一下呢?
专用蜜罐软件在旧电脑上有许多优势,首先,蜜罐软件通常会为你努力工作,它们创建服务,提供大量的虚假功能,并简化了日志和报警,大多数蜜罐软件伴随低或中等交互服务,允许用户进行定制。
其次,蜜罐软件通常擅长数据捕捉,有时提供入侵检测签名,数据包捕捉和网络协议分析,并提供过滤和微调功能,例如,有些基于GUI的蜜罐允许你点击一个事件消息,创建一个"忽略规则"过滤掉合法的流量,相对于将一台旧电脑配置为蜜罐,专用蜜罐软件可以把可能需要两天的过程压缩到10或15分钟内完成。
当人们想到蜜罐时,总会不经意地比较高交互性蜜罐和低交互性蜜罐,他们通常认为复杂的,高逼真的陷阱(功能齐全的服务,好像一个真实的网站,一个电子邮件服务器等)更容易迷惑黑客,他们的一举一动都可跟踪,这种类型的高交互性蜜罐提供逼真的网络环境,成熟的蜜罐可以更好地确定黑客的动机,并更好地记录黑客都做了些什么。
例如,有一次,我在一家大型国防工业承包商现场看到,新安装的蜜罐捕获到有人在探测SharePoint Web服务器,我们快速创建了三个站点区域,旨在帮助我们勾画出入侵者的轮廓,一部分是计算机游戏,一部分容纳了NASA航天飞机计划的密码,另一部分则好像是F17战斗机飞行员通信代码,秘密的航天飞机计划被来自NASA公共网站的简单页面重定向,黑客很快就进入到航天飞机计划,开始使用SharePoint的搜索功能寻找中东议题,这可不是闹着玩的,最后我们发现一名外国间谍以临时工作人员的身份隐藏在财务部门工作。
因为高交互蜜罐需要做大量的工作以增加风险,攻击者使用这些可利用的蜜罐实施伤害行为(如攻击其它公司,安装密码嗅探器等),我赞同大多数企业使用低或中等交互的蜜罐,中等交互的蜜罐伪装一些常见的任务,但不实现完整的服务,例如,一个伪装的FTP服务可能诱使探测者登录,或允许匿名登录,并提供虚假的文件供他们下载,一个伪装的电子邮件服务器甚至可以让攻击者读取和发送邮件,KFSensor允许在伪装的服务上发送邮件,使得潜在的垃圾邮件发送者以为他发现了一个真实的电子邮件服务器,这个想法提供了足够的功能确定入侵者是否构成了威胁,但入侵者拿不走更多东西,即使它得到的信息也全部都是伪造的,毫无用处。
低交互蜜罐是最简单的,作为早期预警系统的蜜罐通常是低交互的,意味着它们监控一或多个网络端口,当有人试图连接到特定端口时就报警,低交互蜜罐不会构造完整的合法服务,攻击者很可能不会明白为什么远程端口没有正确响应,在尝试了几次攻击失败后往往会选择放弃,但没关系,你想要记录的行为都已经全部记录下来了,想要进一步研究只需要安排好时间就可以了。
低交互蜜罐不会将自己伪装成真的服务,它们只是在有人试图搞破坏之前,向计算机安全或突发事故响应团队发出警报。
所有蜜罐软件有几个核心功能都是通用的,首先,必须开放一或多个端口和服务,吸引入侵者来攻击,其次,必须捕获到入侵者的源地址(通常为IP地址),日期,时间和试图发送出去的数据,所有连接尝试都应该记录下来(除非明确指示要求忽略的),并产生警报,以便突发事件响应团队可以参与进来,最后,好的蜜罐有助于数据分析,无论是通过详细的数据包分析,密码尝试分析,还是将相关探测汇集成一个事件。
平台和安装
蜜罐软件应该易于安装和配置,KFSensor在这方面做得很好,提供了直观的GUI,但它只能运行在Windows XP或更高版本上,HoneyPoint和Honeyd可以运行在Windows,Linux和Mac OS X上,Honeyd也支持Solaris和BSD,HoneyPoint安装相当简单,但需要小文本文件操作许可证,Honeyd在这三个蜜罐软件中是最万能的,但偏偏它也是最难安装和配置的,对Linux命令控来说可能不难,但对习惯了窗口操作的Windows用户来说,从下载,编译和配置就会使他们望而怯步,因为一切都是在命令行下操作的。这三个蜜罐软件都可以作为普通程序运行在用户空间,也可以作为系统服务或守护进程在后台运行,作为系统服务有一个好处是,系统重启后可以更方便地启动它们。
模拟水平和服务
大多数蜜罐程序都是低交互到中等交互的,或更准确地说,有些服务模拟的水平很低,有些服务模拟的水平属中等,我考查的这三个蜜罐均属于低到中等模拟水平,如果特定服务需要高交互,KFSensor和Honeyd允许将探测请求路由到外部实时系统,被转发的攻击者仍然认为他还连接在同一个目标系统和IP地址,蜜罐继续捕捉数据,因此管理员可以全面了解攻击者干的一切。
所有蜜罐必须模拟一或多个服务,并且必须监听这些服务使用的TCP或UDP(或ICMP)端口,许多蜜罐都只能模拟有限的端口,KFSensor,Honeyd和HoneyPoint都声称可以模拟全部TCP和UDP端口(0~65535),我不知道这是否是真的,在这次考查中我没有逐一去验证,但我过去曾经验证过KFSensor和Honeyd,Honeyd的确支持全部端口,并且性能表现不错,虽然KFSensor以前的版本不支持,但最新的企业版可以,再说一次,我没有测试HoneyPoint的所有端口。
注意:蜜罐不能绑定底层主机操作系统已经占用的端口,例如,基于Windows的蜜罐就不能模拟NetBIOS服务,除非底层主机上的文件和打印机共享被禁用,SMB/CIFS被关闭。
我在另一篇文章的蜜罐功能表中列出了这三个蜜罐软件默认可模拟的内置服务(没有安装额外的软件和脚本),对于低交互蜜罐,可以模拟越多的服务越好,例如,在Windows环境中,几乎涵盖了所有流行的Microsoft应用程序和服务,这正是攻击者喜欢的,KFSensor带有许多内置服务,其次是HoneyPoint,对Honeyd来说,有许多开源的模拟脚本,但默认只预装了一部分。
模拟网络
KFSensor和HoneyPoint没有任何网络模拟功能,完全依赖于主机和主机网络路由,Honeyd拥有强大的网络模拟功能,不仅可以模拟整个路由方案(包括路由,跳数,延迟和丢包),还可以模拟每个模拟操作系统的网络堆栈,它可以骗过Nmap和Xprobe指纹扫描程序,Honeyd可以让单个实例看起来象是100个不同的操作系统,从这一点来看,其它蜜罐软件是无法和Honeyd匹敌的。
但值得一提的是,大多数攻击者不会做网络指纹识别和分析,相反,他们只顾寻找某个端口,并迅速尝试看它是否处于运行中,只有很少的时候攻击者会运行指纹识别工具(如Nmap和Xprobe2),在这个时候,网络堆栈模拟就很重要了。在绝大多数攻击中,Honeyd周全的网络模拟有点小题大做,但对于蜜罐狂人和管理员来说,这些都是基本功能,对其他大多数人而言,这并不是必需的。
警报和日志
如果没有强大的警报和日志功能,蜜罐就没有多大用处,不管是在传感器上还是在中央控制台上,所有蜜罐都会把连接尝试作为警报,警报应该允许为每个传感器,源IP地址,端口和入侵签名设置临界级别,虽然有些探测会比较可疑,但对蜜罐的所有探测都应被调查,源自更安全网络的探测更应该引起注意,这可能意味着更严重的威胁,为此,一个在非政府网络上部署蜜罐的国防工业用户要求将来自远程政府网络的通信设为最高优先级,如果探测源自更敏感的网络,这个用户希望他们的突发事件响应团队可以立即得到通知,KFSensor在设置临界级别方面提供了更丰富的功能,其次是Honeyd和HoneyPoint。
大多数蜜罐可以通过系统日志,电子邮件和Windows事件日志发送,所有警报都应该记录到本地数据库中,当然,如果能记录到外部数据库,尤其是支持SQL的数据库,则应该加分,我考查的这三个蜜罐均支持调节警报消息,不至于一个探测事件(如一个端口扫描)就触发数千封邮件发送给待命支持人员。
大多数蜜罐产品允许使用当前的警报调整未来的警报,通常用于过滤掉合法的通信,微调蜜罐是个费时的活,但一个好的蜜罐可以简化这个过程,KFSensor在提炼警报方面提供了最大的灵活性,在任何警报上点击右键,打开"访问规则"窗口,在这里可以进行定制访问规则,HoneyPoint和Honeyd也有过滤功能,但它们不是很灵活或容易实现。
报告
管理层一般都喜欢看到漂亮的报告和图片,每个人都喜欢看到随时间推移的发展趋势,遗憾的是,我还没有看到哪个蜜罐软件内置了强大的报告功能,HoneyPoint提供了10个报告,但都很简单,我希望看到有更成熟的报告功能出现在流行蜜罐软件中。
特异功能
蜜罐可以有一些奇怪的功能,一般都是为了获取与攻击者有关的更多信息,KFSensor在这三个蜜罐软件中功能是最丰富的,但HoneyPoint的特异功能最多,HoneyPoint Trojans 和HoneyBees试图提供虚假诱惑,如伪造的二进制程序,Web和电子邮件通信,MicroSolved希望在追踪黑客时可以获得更多的具体信息,我很怀疑它们的整体效果,但至少MicroSolved没有提供工具打入远程黑客的电脑,过去,一些蜜罐厂家就曾经这么做过,攻击攻击者不仅是不道德的,在大多数国家,这种做法也是非法的,HoneyPoint Trojans和HoneyBees没有越过这条线。
KFSensor一直是蜜罐领域公认的领导者角色,至今这一地位仍然没有其它类似产品可以撼动,KFSensor也是本次考查的三个蜜罐软件中操作最简单,功能最丰富的,唯一的缺点是缺乏内置报告,许多蜜罐,特别是具有分布式传感器和企业级功能的蜜罐,可能拥有自己的报告工具和信息需求,尽管如此,一些最基本的报告也有一段很长的路要走,HoneyPoint提供了最基本的10个报告,Honeyd的开源社区贡献了一些插件,提供了一些基本的报告功能,都远远不能满足如今的需求。
HoneyPoint凭借多平台支持,内置报告,警报跟踪和一些独特的功能让攻击者的行踪无处可藏,但不管是在功能上还是在易用性上,比KFSensor还是差一截,Honeyd可能是最灵活,最高效的蜜罐,但安装和配置也最复杂,使用Linux/Unix的组织可能不会担心这个挑战,Honeyd凭借免费标签吸引了大把用户,它是最有潜力超越KFSensor的。虽然KFSensor只能安装在Windows上,但它一样可以模拟Linux/Unix环境中的端口和服务。
不管你选择哪个蜜罐产品,或者即使你仅仅是用一台旧电脑充当早期预警系统,在时间和金钱上适当投入,在安全上会更可靠,心态也会更平和,因为当你的防火墙,IDS,杀毒软件或其它安全防御失效时,你的蜜罐总是会提醒你,建立一个简单的蜜罐成本并不高,但可以筑起第二道防线。