第一章 什么是蜜罐?
在计算机术语中,蜜罐是一种计算机安全机制,用于检测,偏转或以某种方式抵消未经授权使用信息系统的企图。通常,蜜罐由看似是站点的合法部分的数据组成,但实际上是隔离和监视的,并且似乎包含信息或对攻击者有价值的资源,然后被阻止。这类似于警察刺痛行动,俗称“诱饵”犯罪嫌疑人。
蜜罐的另一重要作用在于可以拖延攻击者攻击时间,让攻击者将时间浪费在蜜罐上。蜜罐属于主动保护,它要对所有入侵的操作和行为进行监视和记录。根据可交互程度,蜜罐可分为:低交互、中交互和高交互型蜜罐。
1.1 低交互蜜罐
低交互蜜罐最大的特点是模拟(设计简单且功能有限,安装配置和维护都很容易)。蜜罐为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟。由于它的服务都是模拟的行为,所以蜜罐可以获得的信息非常有限,只能对攻击者进行简单的应答,它是最安全的蜜罐类型。
这种蜜罐没有真实的操作系统,它的价值主要在于检测,也就是对未授权扫描或者未授权连接尝试的检测。他只提供了有限的功能,因此大部分可以用一个程序来模拟。只需将该程序安装在一台主机系统中,配置管理希望提供的服务就可以了,管理员所要做的工作就是维护程序的补丁并监视所有的预警机制。这种蜜罐所提供的功能少,出错少,风险低,同时它能够为我们提供的关于攻击者的信息量也有限,只能捕获已知的攻击行为,并且以一种预定的方式进行响应,这样容易被攻击者识破,不管模拟服务做得多好,技术高明的黑客最终都能检测到他的存在。
1.2 中交互蜜罐
中交互蜜罐是对真正的操作系统的各种行为的模拟,它提供了更多的交互信息,同时也可以从攻击者的行为中获得更多的信息,与低交互蜜罐相比,它的部署和维护更为复杂。在这个模拟行为的系统中,蜜罐可以看起来和一个真正的操作系统没有区别,攻击者可以得到更多的交互。它们是比真正系统还要诱人的攻击目标,因此必须要以一个安全的方式来部署这种交互。必须开发相应的机制以确保攻击者不会危害其他系统,并且这种增加的功能不会成为攻击者进行攻击的易受攻击环节。攻击者可能会访问到实际操作系统,但他们的能力是受限的,这种类型的蜜罐必须要进行日常维护,以应对新的攻击。由于它具有较大的复杂度,所以出错的风险也相应的增大,另一方面他可以收集到更多攻击者的信息。
1.3 高交互蜜罐
高交互蜜罐具有一个真实的操作系统,它的优点体现在对攻击者提供真实的系统,当攻击者获得ROOT权限后,受系统数据真实性的迷惑,他的更多活动和行为将被记录下来。缺点是被攻击的可能性很高,如果整个高交互蜜罐被攻击,那么它就会成为攻击者下一步攻击的跳板,构建和维护它们是极为耗时的。目前在国内外的主要蜜罐产品有DTK,空系统,BOF,SPECTER,HOME-MADE蜜罐,HONEYD,SMOKEDETECTOR,BIGEYE,LABREA TARPIT,NETFACADE,KFSENSOR,TINY蜜罐,MANTRAP,HONEYNET十四种。
最为常见的高交互蜜罐往往被放置在一种受控环境中,如防火墙之后。借助于这些访问控制设备来控制攻击者使用该蜜罐启动对外的攻击。这种架构的部署和维护十分的复杂,而且这种类型的蜜罐还要求对防火墙有一个恰当的过滤规则库。同时还要求配合IDS的功能,要求IDS的签名数据库进行更新,且要不停监视蜜罐的活动。它为攻击提供的交互越多出错的地方就越多。一旦进行了正确的实现,高交互度的蜜罐就能够最大程度的洞察攻击者。例如想在一个Linux蜜罐上运行一个FTP服务器,那么你见里一个真正的Linux系统来运行FTP服务。这种解决方案优势是双重的,首先,你能够捕获大量信息。这可以通过给攻击者提供真实的系统与之交互来实现,你能够了解到攻击者的整个攻击行为,从新的工具包到IRC的会话的整个过程。高交互的第二个优势是对攻击者如何攻击不是假设,它们提供一个能够捕获行为的开放的环境,高交互度解决方法将使得我们能学到以外的攻击行为,例如:一个蜜罐在一个非标准的IP协议上捕获密码后门命令。然而,这也增加了蜜罐的风险,因为攻击者能够用这些真实的操作系统来攻击非蜜罐系统。结果,要采用附加技术来组织对非蜜罐系统的攻击。高交互蜜罐虽然优于前两种交互蜜罐,但是开发和维护过于复杂。
低交互型蜜罐安装简单,但收集信息量少;中交互型
蜜罐认知能力强,可以在网络中随心所欲的配置;高交互型蜜罐更为高级,有其真实的操作系统。根据提供信息的状况还可分为:牺牲型蜜罐、外观型蜜罐和测量型蜜罐。牺牲型蜜罐
可建立在任何设备上,如Linux~务器、Cisco路由器、WindowsNT等,提供真实的攻击。而外观型不可以提供真实攻击,它只是表面上看起来是一个系统,不能深入的提供细节信息。测量型介于两者之间。
1.4 分布式蜜罐
在网络中,大面积分散地嵌入蜜罐可以有效地弥补上述蜜罐的不足,这就需要在网络中配置多个蜜罐。假设根据主机数的多少来配置蜜罐,那么如果主机数非常多,其对应于主机的蜜罐数也要随之增多,这就需要很多时间和人力来安装这些蜜罐。然而如果这个网络很少被入侵,或者即便入侵,入侵的面积也是有限的,那么在这里设置这么多的蜜罐就大大的浪费了时问和费用,而且蜜罐也不能起到应有的作用,这也给以后的使用和维护造成了不必要的麻烦。同时,在一个网络中,也有可能有多个系统,各个系统有各个系统类型的蜜罐。蜜罐的类型不同会造成各系统间的区域划分不明显,给空间上的分配造成混乱,蜜罐也不容易升级。对于蜜罐的升级,现在提出的动态蜜罐可能在各系统上都能使用,但是这样做不利于管理和维护具体系统下的蜜罐,比如对于各个系统类型的确认及维护。而且由于不能分清系统,不能准确的针对各系统进行安全设置,结果就会给系统的安全性带来了一定的隐患。
因此,我们希望能合理规划一个蜜罐系统。在这个蜜罐系统中,其系统间在物理上可联系,但逻辑上要独立;系统内在物理上可独立,但逻辑上要有联系。也就是说:对于不同的操作系统,地理位置可能相同,但具体设置的蜜罐之间是没有联系的。而对于一个系统内的蜜罐,它的蜜罐可能位于不同的地方,但实际上蜜罐设置之间有相互依赖的关系,各蜜罐是属于同一个系统的。
第二章 蜜罐的发展历史
熊被吸引和偷蜂蜜的比喻在许多传统中很常见,包括日耳曼语和斯拉夫语。对于熊来说,一个常见的斯拉夫语词是“蜂蜜食客”。熊偷蜂蜜的传统已经通过故事和民间传说传承下来,特别是著名的小熊维尼。巴西民间故事“Bonecadepixe”讲述了一只偷盗的猴子被一个球杆制成的木偶困住的故事。最早的蜜罐技术在CliffordStoll1989年的书“TheCuckoo’sEgg”中有所描述。2017年,荷兰警方使用蜜罐技术追踪暗网市场的用户汉莎。
2.1 概念的形成
尽管一些组织在很多年前就开始在蜜罐技术领域进行研究和实践,但是直到1990年才有一些文章针对这类问题进行专门的探讨。在Clifford Stoll所著的《The Cuckoo`s Egg》一书中,记述和讨论了在1986年至1987年的10个月间发生的一系列事件。这本书以类似小说的体裁记录了名为Stoll的天文学家,在其受到侵入的系统中了解和诱骗攻击者的故事。而另一篇由Bill Cheswick所写的名为“An Evening with Berferd in Which a Cracker Is Lured,Endured,and Studied”的论文更多在技术角度对蜜罐的概念进行了探讨。Bill Cheswick的论文同样采自真实的事件,不同的是,这篇论文中所描述的系统是真正为了被攻击而搭建起来的,而Stoll的只是在发现自己的系统被侵入之后才突发的决定进行这场游戏。Bill Cheswick将目标集中于监测所搭建系统所受到的安全攻击并从中发现攻击者的行为方式。这两个作品第一次完整而有目的的探讨了蜜罐的概念,内容也相当引人入胜,但美中不足的是其中都没有对蜜罐的含义进行准确的界定,也没有探讨蜜罐对于安全领域的价值。
2.2 奠基
为了使蜜罐系统更加高效,很多政府组织和技术性公司的人员都在着手开发成型的蜜罐产品。第一个被公开发布出来的蜜罐工具包是由著名的安全专家Fred Cohen创建的DTK(Deception Toolkit)。DTK的0.1版本在1997年11月发布,是一种免费提供的蜜罐解决方案。DTK由C语言和Perl脚本构成,部署在UNIX系统上,模拟了很多UNIX系统的漏洞,记录这些漏洞受到攻击的信息。1998年,随着蜜罐的价值更加受到重视,第一个商业蜜罐产品CyberCop Sting正式现身。该产品最初由Secure Network Inc.的Alfred Huger开发,于1998年被NAI购买。CyberCop Sting相比DTK具有很多不同的特性:例如该产品运行于Windows平台,这使得该系统的部署获得了很大简化;另外该产品可以同时模拟很多不同类型的系统,这就使得用户不但可以模拟单个系统,还可以创建一个模拟网络。同样在1998年,Marty Roesch也开发了一个与Sting颇多相似的被称为NetFacade的产品。尽管该产品在商业方面没有取得什么成就,但是从这个产品的开发过程中衍生出了一个非常重要的开放源代码项目Snort。可以说1998年是蜜罐取得极大发展的一个年头,而接下来的1999年HoneyNet项目的创建可以说为蜜罐在安全领域的地位打下了非常坚实的基础。这是由几十名安全专家发展的一个非赢利性质的项目,在这个项目中提出了的HoneyNet是一种高级的蜜罐形式。在项目创建后的几年时间里,HoneyNet成功的展现了这类技术在研究和监测攻击方面的价值。并且这个项目的技术信息和研究成果通过Know Your Enemy(了解你的敌人)系列文章得到了广泛的传播,使得蜜罐的理念逐步深入人心。
2.3 如火如荼的发展
由于2000年到2001年间网络蠕虫爆炸性的发展,使得蜜罐的实用价值得到了体现。为了应对这些传播速度极快的恶意软件,安全厂商和安全组织迫切的需要寻找一种有效的获取样本和理解其行为模式的手段,而蜜罐为这种需求提供了完美的解答。SANS、SecurityFocus等知名的安全组织都通过部署模拟某些Windows系统漏洞的蜜罐捕获蠕虫病毒,并深入的对其进行分析。另外在2002年1月8日,一个未知exploit被一个Solaris 蜜罐捕获,这是第一个有书面记载的未知exploit捕获。这一事件对安全领域产生了很大的触动,也使得很多安全专家大跌眼镜。这一事件表明蜜罐技术在防御未知威胁方面也大有用武之地。至今为止,蜜罐已经以很多种不同的形式获得了实际应用,并在安全领域中担当起越来越重要的作用。
第三章 蜜罐技术研究现状
3.1 国内
我国对蜜罐技术的研究与国外有较大差距,我国2001年才开始正式对蜜罐技术进行立项研究,截至目前,国内的研究成果仍然很少。在仅有的几个国内蜜罐研究组织中,北京大学计算机研究所信息安全工程研究中心的密网项目研究组可以算是最突出的了,该项目组的狩猎女神项目部署了一个GenII密网,并已经接入互联网,接受整个互联网的攻击,以实时监控分析攻击数据。狩猎女神项目的主要研究方向有以下几方面:
(1)密网研究。
学习国外最新的密网技术,并通过部署的蜜罐对实际的攻击进行分析,以从实践中增进对蜜罐的了解。
(2)客户端蜜罐研究
通过主动登录等方式探测僵尸网络、钓鱼网站以及一些其他的恶意网站,对这些网站的行为进行捕获分析,并以自动化检测为最终目标。
(3)密网核心数据研究
对密网所捕获的攻击数据进行统计分析和其他相关性分析。
3.2 国外
国外对蜜罐的研究以“蜜网研究联盟”为主,蜜网研究联盟当初建立的主要目的是促进蜜罐技术的国际交流,目前,已经有十几个国家参与了密网研究联盟的研究,根据蜜网研究联盟的资料,现在国外的蜜罐研究大致有以下几个方面:
(1)蜜场
与其他蜜罐技术不同,蜜场通常直接用于防护目标网络,也就是说,蜜场通常架设在目标网络的核心部分。具体而言,蜜场一般架设在目标网络每个子网的网关以及在一些核心主机上。当检测到攻击流时,蜜场会动态配置其中的某个蜜罐主机使之具有与被攻击主机相同的配置,然后通过重定向技术将攻击者的攻击引导到蜜罐主机上并对攻击者的攻击进行记录、分析。
蜜场以其规范性、集中性为主要特性,通常蜜场都是由网络安全专家进行安装配置以及维护,它对攻击的控制和分析非常规范。然而蜜场的优越性同样也预示着他的缺陷,即它的重定向和蜜罐系统的真实性是很难实现的。蜜罐重定向技术首先需要有高精度的攻击检测系统检测到攻击,然后还要在攻击者不发现的前提下将攻击重定向到蜜罐主机,为了使蜜罐主机不被发现,还需要使蜜罐主机与原始攻击目标具有尽可能高的相似度,而这些过程还都是动态实现的,不难看出,这些工作的难度是相当大的。
(2)应用层蜜罐
应用层蜜罐通常是针对系统的某一应用架设的蜜罐系统,它是一种针对性非常强的蜜罐系统,因此对相应应用层具有很高的相似度,并且对本层的攻击能够提取更多有用价值,然而因为其不完整性,识别这类蜜罐较其他蜜罐而言也容易许多。
(3)客户端蜜罐
客户端蜜罐技术与传统的蜜罐技术不同,可以说是一种主动的蜜罐技术,传统的蜜罐技术通常会虚拟服务器端,等待攻击者对虚拟的服务端进行攻击,而客户端蜜罐则虚拟客户端,以虚假的客户端对具有网络安全隐患或者明知有蠕虫、病毒甚至木马的服务端进行登录访问,并将这些网站对蜜罐主机进行的修改记录下来形成日志。客户端蜜罐软件通常用于探测僵尸网络、恶意网站和钓鱼网站等。
(4)蜜标
蜜标并非真正的蜜罐系统,而应该算是一种广义的蜜罐。蜜标实际是真实系统自身的一种陷阱设置。具体而言,蜜标将真实系统或服务的某些冗余或无用信息伪装成有用信息诱惑攻击者对之进行访问,一旦发现这些信息被访问,则系统就会被通知有攻击,跟踪这些蜜标很容易可以找到攻击线索。
(5)动态蜜罐
动态蜜罐是一种根据网络情况自行部署蜜罐的系统,通常而言,动态蜜罐会在网络某台主机上部署一个路由部件。通过该部件监测网络流量,动态蜜罐能够获得关于整个局域网的网络情况,然后动态蜜罐会自行配置蜜罐主机,以等待黑客攻击。当网络拓补发生变化时,路由部件会选择相应的路由协议获得新的网络结构,并对蜜罐部署作出相应的变动,以保证蜜罐虚拟主机的真实度。目前国外对以上这些蜜罐技术的研究许多都还处于研究阶段,不难看出,以上这些蜜罐技术都是很有针对性的蜜罐技术,并且他们中的大多数不是被动地防御而是主动捕获攻击者的攻击信息。然而,截至目前为止,这些技术大多数还不成熟,对这些技术的研究仍需要一段很长的时间。
3.3 蜜罐的展望
Honey Farm:蜜场是蜜罐概念的发展。蜜场的思想是将网络中可疑数据流重定向到蜜场中。在网络中放置检测器,当发现可疑数据流时,利用重定向器将其导向蜜场。所有蜜罐集中于蜜场,与外网之间用防火墙隔离。蜜场的优势在于集中性。
Honey Token:Honey Token概念的提出,使蜜罐不再局限于硬件设备。Honey Token是一个数字化的实体。它可以是一张信用卡号码、一个Excel电子表格、一个数据库的入口,或者是一个伪造的登录。任何黑客感兴趣信息的无价值的赝品均可成为蜜罐。Honey Token是一种高度灵活和简单的且带有多种安全应用软件的工具
动态蜜网:动态蜜网,将低交互蜜罐和高交互蜜罐结合起来,需要虚拟蜜网技术的支持,利用被动指纹工具监控网络。依据获得的网络信息对蜜网进行部署和配置。最主要的是其自适应能力,能够自动学习周围的网络环境,配置适当数量的蜜罐,并随网络环境的变化做出调整。
Linux系统蜜罐:随着Linux服务器操作系统的发展,大部分黑客开始尝试攻击Linux操作系统。并且,国产化操作系统也是以Linux系列为主(可信计算平台),对于Linux蜜罐的研究与实现具有重要的意义。
工控系统蜜罐:震网攻击事件发生后,工业控制安全越来越得到大家的重视,无论是什么工业控制系统,都有可能成为被攻击的目标,而工业控制系统方面并不存在有效的信息安全设备,那么,工业蜜罐是有效的选择。
移动终端蜜罐:移动终端拥有庞大的用户量,但是APP市场并不安全,加上短信、电话欺骗等,是不是安全APP(360)等没有报警,手机终端就是安全的?
第四章 项目设计
4.1 功能构架
我们的分布式蜜罐系统分为典型的三个层次:中央层,节点层,蜜罐层。
系统部署于内网之中,主要起混淆防护和收集信息的作用,所以系统应用场景主要为企业、学校、政府等系统内网中,通过蜜罐触发情况,对整个内网系统安全进行综合态势感知。
中央层:中央层主要负责对各个节点中心进行管理并接收各蜜罐节点中心所收集的数据,对数据进行分析处理存入数据库中并及时响应威胁产生报警并将结果数据上传至态势感知平台。对于整个蜜罐系统,中央层是系统的大脑。
节点层:节点层负责管理配置所部署的蜜罐,节点层负责协调多种蜜罐所收集到的信息,并对蜜罐收集的信息进行简单的处理然后上传到中央层。
蜜罐层:蜜罐层是由多种蜜罐组成的结合体,充分利用各种蜜罐的收集到的信息。蜜罐层是整个系统信息来源的基础,具有感知作用,是系统的眼睛。
图4.1 节点拓扑图
4.2 数据流描述
图4.2 数据流
蜜罐层只负责信息的收集并将收集到的信息发送给上级节点层,各个节点控制层负责将各种蜜罐收集到的信息进行初步分析处理耦合上传到中央层,在中央层负责最后的处理,对利用大数据技术进行分析处理存入数据库。一般来说,数据流到中央层就终止了,但是如果该机构存在态势感知平台,还可将数据上传到态势感知平台对整个机构安全情况进行分析。整个过程像树根一样,从最外层蜜罐层开始收集信息,通过节点中心的处理和耦合再将信息传送到中央层。
图4.3 节点网络拓扑图
4.3 物理部署
整个系统网络拓扑图如上,该网络拓扑图只表示了一个节点,其它节点也类似,部署于某个子网中。
节点放置在各重要子网中或者需要收集信息的地方,用现实来类比相当于放置摄像头。以此来进行最好的防护和最丰富的信息收集,蜜罐层蜜罐基本都是虚拟蜜罐,不需要物理部署,只用部署节点控制中心即可,在节点控制中心通过软件虚拟化技术,部署多种蜜罐。节点控制中心和隶属于他的蜜罐可以直接进行通信,而中央层和各个节点中心不在同一个网段中,两者之间的通信可以通过设置路由器静态路由来实现。
第五章 项目实现
5.1 实验环境搭建
5.1.1 安装Vmware或者Virtualbox
Vmware和VirtualBox都是有名的虚拟机软件,通过他们我们可以在本地主机上模拟其他操作系统。我们的大部分操作都将在虚拟机内完成。<br />![](https://cdn.nlark.com/yuque/0/2020/png/479381/1585565713799-1d359f12-73bd-45c9-bea1-65cf0c995b91.png#align=left&display=inline&height=259&originHeight=551&originWidth=976&status=done&style=shadow&width=458)<br />图5.1 Vmware
5.1.2 HoneyDrive的安装
HoneyDrive简介: HoneyDrive是一款Linux蜜罐系统,它是以虚拟设备(OVA)的方式安装在Xubuntu 12.04.4版本上面。HoneyDrive系统里面包含了10款预装和预配置的蜜罐软件,如Kippo SSH honeypot、Dionaea、Amun malware honeypots、Honeyd low-interaction honeypot、Glastopf web honeypot、Wordpot、Conpot SCADA/ICS honeypot、Thug和PhoneyC honeyclients等,并且系统上面还提供了一些脚本和工具来分析数据,并且数据通过可视化的方式呈现。如Kippo-Graph, Honeyd-Viz, DionaeaF和ELK stack等。
图5.2 HoneyDrive3
5.1.3 其它工具的安装
对于我们的蜜罐,我们需要进行一些攻击测试来验证蜜罐部署情况。需要用到以下工具:
SSH、Telnet、MySQL等服务爆破工具。我们在github上找的一款开源软件,超级弱口令检查工具,也可以用Hydra代替。
扫描工具,我们选择著名的nmap,他能完成所有的扫描功能。
SSH、Telnet、MySQL等连接工具。我们选用MobaXterm,它是一个集多种连接功能于一身的工具,功能强大。
漏洞扫描工具:Nessus。大名鼎鼎的Nessus,一个强大的漏洞扫描工具。
5.2 节点控制中心实现
首先,在服务器中部署上Vmware或者Docker,依靠Vmware和Docker的虚拟化技术,我们可以以此来部署多种蜜罐,更可以增加系统的安全性,防止攻击者突破我们的蜜罐对生产环境产生威胁。
在系统实现中,我们采用的Vmware搭建HoneyDrive,依靠HoneyDrive来部署各种蜜罐。依靠HoneyDrive我们可以很灵活快速的搭建上我们的蜜罐。
图5.3 节点控制中心主要构成
5.3 蜜罐选择
在蜜罐层,我们将蜜罐分为三种,分别是探针蜜罐,综合蜜罐和其他蜜罐。
这三种蜜罐各有各的功能及部署与实现方式。
图5.4 蜜罐种类
5.3.1 探针蜜罐
探针蜜罐,顾名思义就是在整个网段中起示警和迷惑作用,当有主机对蜜罐进行扫描时,探针蜜罐会将扫描主机ip和相关信息发送给节点控制中心,节点控制中心将信息发送给中央层进行预警或其他处理。该种蜜罐的实现方式采用Honeyd来实现,Honeyd可以模拟大量的系统和任意网络拓扑,用来混淆视听和警戒再好不过了。
Honeyd简介: Honeyd 是一个小的守护程序,它能够产生虚拟的主机,这些主机能够被配置以提供任意的服务,系统特征也是与之相适应,以至于使之看起来像真实的系统在运行。在一个局域网的网络仿真中,Honeyd 能够使单个主机拥有许多 IP(多达 65536 个)。通过提供对威胁探测和评估的机制,增强了计算机的安全性,通过隐藏真实的系统在虚拟的系统中,也达到了阻止敌手的目的。
5.3.2 综合蜜罐
综合蜜罐我们选择了两款蜜罐软件结合起来。综合蜜罐能吸引攻击者的注意并且记录攻击者的一些行为,捕获恶意软件等等功能。该蜜罐是我们信息收集的重点部分。我们选择的两款蜜罐分别是Kippo和Dionaea。Kippo能很好的模拟SSH服务,并且记录攻击者下载的工具执行的指令,功能强大。而Dionaea虽然是一款低交互的蜜罐,但是功能不可小觑,他可以诱捕恶意攻击,获取恶意攻击会话与恶意代码程序样本,是Kippo一个很好的补充。
Kippo简介: Kippo是一个中等交互的SSH蜜罐,提供了一个可供攻击者操作的shell,攻击者可以通过SSH登录蜜罐,并做一些常见的命令操作。 当攻击者拿下一台服务器的权限后,很可能会进行小范围的端口探测或者批量的端口扫描,以便横向扩展,获取更多服务器的控制权,因此部署内网SSH蜜罐,把攻击者引诱到蜜罐里来,触发实时告警,即可让安全人员及时知道已经有攻击者渗透内网、知道哪台服务器已被控制、以及攻击者在蜜罐上做了哪些操作。
Dionaea简介: Dionaea(捕蝇草) 低交互式蜜罐(http://dionaea.carnivore.it) 是 Honeynet Project 的开源项目,起始于 Google Summer of Code 2009,是Nepenthes(猪笼草)项目的后继。Honeynet Project 是成立于 1999 年的国际性非盈利研究组织,致力于提高因特网的安全性,在蜜罐技术与互联网安全威胁研究领域具有较大的影响力。Dionaea 蜜罐的设计目的是诱捕恶意攻击,获取恶意攻击会话与恶意代码程序样本。它通过模拟各种常见服务,捕获对服务的攻击数据,记录攻击源和目标 IP、端口、协议类型等信息,以及完整的网络会话过程,自动分析其中可能包含的 shellcode 及其中的函数调用和下载文件,并获取恶意程序。有别于高交互式蜜罐采用真实系统与服务诱捕恶意攻击,Dionaea 被设计成低交互式蜜罐,它为攻击者展示的所有攻击弱点和攻击对象都不是真正的产品系统,而是对各种系统及其提供的服务的模拟。这样设计的好处是安装和配置十分简单,蜜罐系统几乎没有安全风险,不足之处是不完善的模拟会降低数据捕获的能力,并容易被攻击者识别。
5.3.3 其他蜜罐
如果要实现其他功能的蜜罐,也可以用docker或者直接Vmware手动安装。
对于很多攻击者来说,进入内网的第一时间,他们会对内网进行一次存活主机扫描,再然后就是常见漏洞扫描,比如EternalBlue(永恒之蓝)漏洞,MS17-010或者最近的CVE2019-0708。所以我们可以在蜜罐层中部署一台高交互的未打相关补丁的windows蜜罐,从而使这个目标更加具有诱惑性,以此来诱导和收集更加详细而丰富的信息。
图5.5 漏洞批量扫描工具
5.4 Kippo部署及测试
Honeydrive已经集成好了Kippo,所以能很快速的进行蜜罐配置。
所以在安装好Honeydrive后,无需配置即可使用Kippo蜜罐。
1.打开终端,输入/honeydrive/kippo/start.sh即可启动Kippo。
Kippo启动后如果有SSH连接22端口,端口转发规则会将其转到Kippo监听的端口。
图5.6 Kippo启动
2. __执行指令ifconfig得到蜜罐ip地址
图5.7 ip查看
3.__接下来我们就可以使用SSH连接工具进行连接,伪造的默认用户名为root,密码为123456。我们按照正常黑客攻击流程来测试kippo蜜罐
攻击者用nmap等扫描器扫描到我们的蜜罐开启了22号端口,尝试SSH口令爆破。
图5.8 SSH爆破
4.__攻击者爆破成功,获得ssh连接的口令,也就是我们蜜罐口令。
接下来攻击者用SSH连接工具进行连接。
图5.9 SSH连接
5.__连接成功,显示为root权限。攻击者此时所有的行为都暴露在我们眼下,当然攻击者执行各种命令所得到的信息都是虚假的。
查看日志,Cat /honeydrive/kippo/log/kippo.log
日志上显示了攻击者执行的所有指令和行为。
图5.8 kippo日志
6.__当攻击者使用exit退出时,这时候的退出界面是由kippo伪造的,攻击者在伪造界面输入的所有内容都将被我们记录。
图5.9 隐藏记录
7.除了通过查看日志来分析攻击者行为以外,Kippo还提供了图形化界面。
访问127.0.0.1/kippo-graph,进入图形化界面
图5.10 Kippo图形化界面
攻击者的ip,猜测口令等等都可以看到,由此我们可以很轻松的进行溯源或者其他处理。
5.5 Dionaea部署与测试
Dionaea通过模拟各种常见服务,捕获对服务的攻击数据,记录攻击源和目标 IP、端口、协议类型等信息,以及完整的网络会话过程,自动分析其中可能包含的 shellcode 及其中的函数调用和下载文件,并获取恶意程序。
同样,Dionaea集成于HoneyDrive,我们可以轻松的使用它,快速完成蜜罐部署。
1. 运行指令/honeydrive/dionaea-vagrant/runDionaea.sh即可开启Dionaea。
此时再运行netstat -pantu即可查看Dionaea伪装的服务所在端口,可以看到Dionaea模拟了。服务开放的端口中,tcp端口对应有web服务80、443端口,ftp服务21端口,MSSQL的1433端口,MySQL的3306端口,支持SMB的445端口,RPC和DCOM服务使用的135端口,wins服务42端口,udp端口有VoIP使用的SIP对应的5060端口,tftp服务的69端口。
图5.11 netstat查看端口
2.用nmap扫描的结果显示如下,显示是一台开放了很多常用端口的主机
:
图5.12 nmap扫描主机
3.__扫描记录已经保存在日志中,打开日志即可查看扫描过程,攻击者用ftp上传的文件保存在/opt/dionaea/var/dionaea/wwwroot/目录下
图5.13 Dionaea日志
4.用Nessus进行漏洞扫描,扫描到4严重、5高危、6中危,这些服务漏洞都是由Dionaea伪造的,以此来吸引攻击者。
图5.13 Nessus扫描结果
5.__查看漏洞详细结果,我们可以看出Dionaea伪装成了一台windows主机。
图5.14 Nessus扫描结果
6. Dionaea结果也有图形化界面。
进入DionaeaFR目录下,执行python manage.py runserver即可打开图形化界面。
访问127.0.0.1:8000,我们所有的操作都记录在上面。
图5.15 Dionaea图形化界面
5.6 蜜罐功能性描述与耦合
图5.16 蜜罐功能
依靠honeyd部署的探针蜜罐具有警戒和混淆的作用,并不能收集到太多的信息。而综合性蜜罐则主要执行信息收集功能。其他蜜罐则根据需求添加,以此来获得特定方面的详细数据,比如要增加蜜罐的诱惑性和真实性,可以放一台永恒之蓝蜜罐。
三种蜜罐,集预警,混淆,收集为一体,从服务模拟到系统模拟,既可以保护真实服务器又可以对攻击者信息进行收集。
每一种蜜罐都有自己的日志和自己的图形化界面形式,而分布式蜜罐系统则要求所有信息最后在中央层汇总进行分析处理,所以我们需要在节点控制中心实现这个功能,将各个蜜罐日志简单整理传输到中央层。我们可以通过路由器设置静态路由使二级节点与中央层主机进行通信,从而能将信息发送给中央层主机。最后节点控制中心还要执行操作,将日志信息整理传输给中央层。
图5.17 蜜罐通信