企业安全建设之蜜罐技术的应用(一)

2019-04-08 20,841

面对越来越复杂的逃避技术,以及采用加密技术来保护网络通信,防止被窃听的协议越来越多,入侵检测系统能提供的有用信息越来越少,入侵检测系统也受到高误报率的困扰,从而进一步降低了它们的作用。蜜罐技术能够帮助我们解决一些问题。

图片1.png

 

蜜罐技术做为安全工具已经有了近20年的发展。1991年1月, 一群荷兰黑客试图进入贝尔实验室的一个系统。 而当时贝尔实验室的一个研究团队将这伙黑客引导到了他们自己管理的一个”数字沙盒“。 这被认为是第一个蜜罐技术的应用。

一个蜜罐的价值可以由它可获取的信息来衡量,通过监测进出蜜罐的数据来收集NIDS无法获得的信息。例如,即使使用了加密技术保护网络流量,我们仍然能够记录一个交互式会话中的按键。为了检测恶意行为,入侵检测系统需要已知攻击特征,而通常检测不到未知的攻击。另一方面,蜜罐可以检测未知的攻击,例如,通过观察离开蜜罐的网络流量,我们可以检测到漏洞威胁,即使是使用从未见过的漏洞利用手段。--因为蜜罐没有生产价值,任何连接蜜罐的尝试都被认为是可疑的。因此,分析蜜罐收集的数据所产生的误报比入侵检测系统收集到的数据导致的误报少。在蜜罐的帮助下,我们所收集的大部分数据可以帮助我们了解攻击。

图片2.png

蜜罐的部署方式和诱饵的复杂程度各不相同。对不同类型的蜜罐进行分类的一种方法是通过它们的参与程度或交互程度:

高交互蜜罐通常基于真实的应用环境来构建,能提供真实的服务。高交互蜜罐可用来获取大量的信息,能够捕获攻击者多种操作行为,从而具备发现新的攻击方式和漏洞利用方法的能力。由于高交互蜜罐给攻击者提供了一个相对真实的应用环境,因此风险较大,通常会注重数据控制方面的功能。

低交互蜜罐,该类蜜罐通常只提供少量的交互功能,蜜罐在特定端口监听连接并记录数据包,可以用来实现端口扫描和暴力破解的检测 。低交互蜜罐结构简单,易于安装部署,由于模拟程度低功能较少,收集信息有限但风险也较低。

高交互蜜罐提供了一个攻击者可以交互的真实系统,相反,低交互蜜罐只能模拟一部分功能,例如网络堆栈。

高交互蜜罐可以完全被攻陷,允许对手获得对系统的完全访问,并实施进一步的网络攻击。相反,低交互蜜罐只是模拟一些服务,低手不能利用这些服务获得对蜜罐的完全访问。低交互蜜罐有更多限制,但它们有助于在更高层面上收集信息。例如,了解网络探测或蠕虫活动,它们也可以用于分析垃圾邮件,或主动防范蠕虫。

高交互蜜罐与低交互蜜罐对比:

高交互蜜罐

低交互蜜罐

真实的服务、操作系统或应用程序

模拟的TCP/IP协议栈、弱点等

高风险

低风险

难以部署和维护

容易部署和维护

铺货大量的信息

捕获有关攻击的定量信息

 

蜜罐还分为物理蜜罐和虚拟蜜罐。

物理蜜罐通常指真实的物理计算机,安装了相应的操作系统并具备网络环境,它能提供部分或完全真实的应用服务。物理蜜罐通常成本较高。

虚拟蜜罐通常是利用虚拟机技术模拟而成的蜜罐,成本相对物理蜜罐较低。但由于虚拟机本身的特点,虚拟蜜罐容易被有经验的攻击者识别。还有这两年流行的基于Docker的蜜罐。

虚拟机蜜罐具有可度量性和易维护性,在一台机器上可以有数以千计的蜜罐,部署它们代价低,并且几乎每个人都可以容易地使用它们。

图片3.png

 

高交互蜜罐

一个高交互蜜罐是一个常规的计算机系统,如商用现货(commercial off-the-shelf ,COTS)计算机、路由器或交换机。该系统在网络中没有常规任务,也没有固定的活动用户,因此,除了运行系统上的正常守护进程或服务,它不应该有任何不正常的进程,也不产生任何网络流量。这些假设帮助检测攻击:每个与高交互蜜罐的交互都是可疑的,可以指向一个可能的恶意行为。因此,所有出入蜜罐的网络流量都被记录下来。此外,系统的活动也被记录下来备日后分析。

用于虚拟高交互蜜罐的最重要的可选项:VMware和用户模式Linux(UML),这两个工具允许我们在一台物理机器上并发运行多个系统和应用程序,便于收集数据。

 VMware

图片4.png

基于VMware的高交互蜜罐设置

如图给出了VMware虚拟高交互蜜罐的示意,主机系统是你的物理机器,我们在上面安装VMware,深灰色系统是客户虚拟机,它在一个模拟的环境中运行。正如你所看到的,我们将为蜜罐配置一个专用网络范围内的IP地址。

图片5.png

桥接网络示意图

如图,客户虚拟机的虚拟网络接口与主机的网络接口相互配合,并使用它向本地网络发送数据包,主机系统把所有目的主机是虚拟机的数据包路由到正确的虚拟机,整个过程对虚拟机是透明的,也就是说,攻击者(几乎)不能辨别主机是否作为一个虚拟机在运行。

在主机系统上,可以监视几个方面。首先,可以捕捉所有进出蜜罐系统的网络数据,既然所有这些数据都通过主机系统,可以在用于连接客户虚拟系统和网络的接口上使用tcpdump或Wireshark/Tshark。因此,我们就可以捕获蜜罐所有的网络通信,以后可以利用这些信息研究攻击。这个过程对蜜罐系统是透明的,不留迹象,不会暴露这一监视。

此外,也应该在主机系统上启动防火墙。作为一个附加的防御层,也可以在主机系统上启动一个入站防火墙,阻止自主传播的恶意代码访问常用端口。最好的方法,建议你阻止TCP和UDP端口445、135、139和1025的入站和出站流量,以降低风险。通过阻止入站连接,确保在你的蜜罐上没有发生"钻孔攻击"。此外,也可以在主机系统上安装入侵检测系统IDS,如Snort(http://snort.org),以便了解更多对你蜜罐的实际攻击。

 

用户模式Linux

用户模式Linux是另一个可以用来创建虚拟蜜罐的系统,创建系统非常简单,而且是免费的,但是当与VMware相比时,它的主要缺点是它只能模拟Linux系统。

UML是一个Linux内核的体系结构端口,系统内称为接口。因此,Linux内核本身可以作为一个用户进程运行,实际的Linux内核("主机系统")执行另外一个Linux内核("客户系统")实例,把它作为一个进程。这与你在有关VMware章节中学到的虚拟机类似,每个UML实例是一个完整的虚拟机,与一个真实的计算机几乎没有什么区别。这就使得有了一个简单的方法,用于建立一个高交互蜜罐。

UML作为一个操作系统只能运行在Linux上,所以,如果你正在运行Windows或BSD的各种版本,不能使用这种方式创建蜜罐。

像基于VMWare的蜜罐一样,还需要设置一些额外的工具来监视基于UML的蜜罐。首先你可能对网络日志感兴趣,从中可以得到攻击者的详细资料。如果在tap0接口上使用tcpdump或者Wireshark/ Tshark,你将监视所有进出蜜罐的流量。此外,你可能需要在主机系统上安装一个入侵检测系统,以获得更详细的恶意网络活动的信息

 

 

蜜墙

因为高交互蜜罐可能被攻击者完全攻陷,在许多情况下,攻击者使用被攻陷的机器-蜜罐,作为进一步攻击其他人或组织机构的平台。例如,我们可以利用一个被攻陷的蜜罐作为跳板,攻击另一个系统,或让它参与分布式拒绝服务攻击。针对一个计算机系统或者网络,DDOS攻击造成用户服务丢失。

保护你的蜜罐防止攻击者恶意的滥用,最简单的方法是蜜墙。

蜜墙是第三代蜜网的核心,因为它能够完成以下蜜网的所有主要任务:

数据捕捉:蜜网内的所有活动和进出蜜网的信息,能够在攻击者不知道被监视的情况下被捕获。

数据控制:控制进出蜜网的可疑流量,进一步地,该机制必须确保一旦蜜网中的蜜罐被攻陷,所有的恶意活动必须限制在蜜网内。

数据分析:帮助你作为蜜网操作员简化捕获数据分析,以及帮助计算机和网络取证。

从部署的角度来看,只有前两项任务对于保护你的蜜罐是需要的,但是,一旦你有一个使用中的高交互蜜网,你也将从蜜墙的数据分析功能中受益,使你日常分析工作变得更容易。

图片6.png

图 展示了一个蜜墙部署设置的示意图。通常蜜墙被设置为一个透明网桥,即一个工作在数据链路层的网络设备。在这种情况下,透明意味着蜜墙在连接蜜罐与互联网的两个接口上均没有IP地址,因此,攻击者不容易检测到在它们之间有一个网络设备。可选地,也可以使用第三个网络接口,用于管理和维护蜜墙(如图中的"管理"接口),这个网络接口有一个IP地址,因此还可以远程访问它。最好建立一个独立的管理网络用于这种访问。

这种设置帮助捕捉重要的数据(数据捕捉),并控制所有进出蜜网的流量(数据控制)。正如已经定义的,数据控制意味着我们想控制哪些数据包允许进入蜜网,哪些数据包允许离开蜜网。为了减少风险,应该控制流入和流出的流量。使用Linux内核的子系统netfilter / iptables,可以设置允许连接的上限,以减轻对其他主机实施拒绝服务攻击(DoS)的风险。为了预防拒绝服务攻击,每天流出的TCP流量限制为一定量的连接,同样,只允许流出一定数量的ICMP数据包,必须小心地选择这些值。一方面,它们要确保攻击者可以连接到Internet上的其他系统,攻击者应该可以从其他计算机上获得工具,并连接到一个IRC服务器,与其他人通信。另一方面,攻击者不应该由于攻击其他主机而产生大量伤害。在我们的蜜网中,作为一种最佳实践值,允许每小时有20个TCP连接、20个UDP数据包交换、50个ICMP数据包和20个其他连接(所有其他非IP协议的数字1、6和17),它包括两个运行在VMware上的Linux虚拟蜜罐。

建立一个蜜墙非常简单。蜜网计划提供了一个可启动CD-ROM,可以帮助你完成安装和配置过程,有了这个工具的帮助,你可以在几分钟内建立一个蜜墙。

一旦你准备好了一台机器打算作为蜜墙,可以开始安装过程了。从http://www.honeynet.org/tools/cdrom/上下载蜜墙最新版本,一旦你已经下载了ISO镜像,刻录到CD-ROM上,使其可启动。现在只需要从CD-ROM启动,然后开始一个基于Linux系统的安装。在你开始安装过程之前,确认硬盘上没有留下数据,因为所有的旧数据将被覆盖。一旦你接受警告信息,安装过程将开始。将安装一个基于Fedora Core的系统,同时安装所有必需的包,以实现数据采集、数据控制和数据分析。根据你的硬件,安装过程将花费5~20分钟。

一旦启动盘已经建立了基本系统,它将重新启动,配置过程开始。使用用户名roo和口令honey登录新系统,现在安装过程完成,你可以根据需求配置蜜墙。

 

从蜜罐的发展中不难看出,蜜罐通过对环境的模拟细化和感知增强,焕发着愈发强大的攻击感知能力,从传统蜜罐的终端系统层面模拟和交互感知,到商业蜜罐方案的应用层面模拟以及交互感知和驻留,再到目前攻击欺骗方案的主动诱捕、反渗透以及更为细化文件模拟和泄漏溯源,技术在不断尝试和磨合中不断进行着看似微不足道实际效果惊人的自我创造,形成了日新月异的技术进步。


用蜜罐收集恶意软件

为什么要收集恶意软件呢:“了解你的敌人”,使你更好地防御这些软件和类似软件,一般来说,对正在传播的恶意软件了解得越多,我们的防御就能组织得越好。

通过Nepenthes、Honeytra来了解蜜罐对恶意软件的收集


Nepenthes

Nepenthes一种运行在linux系统上虚拟蜜罐平台,提供足够的通用Windows服务的仿真技术以欺骗多数自动的攻击,并能自动下载恶意的负载以收集恶意代码样本。Nepenthes的主要思想是模拟网络服务的漏洞,而不是部署一个可以被自主传播恶意软件利用的带有漏洞的服务的高交互蜜罐,该程序只是模拟这些服务。

Nepenthes和Honeyd的规模相当,但是Honeyd很难模拟复杂的协议,如NetBIOS。

Nepenthes它允许我们并行部署数千个蜜罐,同时只需要中等的硬件和维护量。如果你在一台连接到internet上不带防火墙的机器上运行Nepenthes,你会很快发现有多少恶意软件在网络上游荡。

Nepenthes基于一个非常灵活、模块化的设计,其核心是处理网络接口、协调其他模块的动作。目前有几种不同类型的模块:

漏洞模块:模拟网络服务的有漏洞部分,对于效率来讲这是关键,它并不是模拟整个系统或服务,仅是模拟必要的部分。

Shellcode分析模块:分析漏洞模块接受到的有效载荷,这些模块分析接收到的shellcode,一种汇编语言程序,并从中提取有关传播恶意软件的信息。

提取模块:使用shellcode分析模块提取的信息,从远程位置下载恶意软件。这些链接并不一定要求是HTTP或FTP的URL,它们可以是TFTP或其他协议,也可能仅仅是由这些模块产生的内部描述。

提交模块:处理下载的恶意软件,例如,保存二进制到硬盘上,存储到数据库中,或者把它发送给反病毒软件厂商。

日志模块:记录模拟过程的有关信息,并帮助从收集到的数据中得到模式的概貌。

此外,还有一些组件对Nepenthes平台的功能和效率非常重要:shell模块,对每一个被模拟的shell提供一个虚拟文件系统;嗅探模块:了解更多特定端口上的新活动;

Nepenthes的局限性:Nepenthes只能收集自主传播的恶意软件---通过扫描有漏洞的系统然后利用他们进一步传播,因此,不能用Nepenthes工具收集rootkit或特洛伊木马,因为这类型的恶意软件通常不能进行自我传播。这就是Nepenthes与大多数基于蜜罐的方法一样所具有的一个局限性。一个包含浏览器漏洞利用的网站,只要在该网站被访问时才可能被触发,因为它们的被动自然属性,这样的网站将不会被常规的蜜罐检测到。走出这种两难局面的方法是使用像HoneyMonkeys或Kathy Wang的honeyclient这样的客户端蜜罐,检测这些类型的攻击。

Nepenthes应该放在你内部网络的哪个地方,一种可能是,把它部署在有周边防御系统(如防火墙)保护的网络之内,在那里它应该永远不会受到攻击。这个蜜罐捕获的任何流量,将指示该网络内的另一个计算机已经被某种自主传播的恶意软件感染了,它也可能指示来自你的网络的内部攻击。因此Nepenthes可以作为一个入侵检测系统。

另一种可能是Nepenthes直接连接到Internet而没有任何保护措施。在这种部署场景下,你可以收集对你的蜜罐的实时攻击,在几分钟内你应该能看到第一个攻击,甚至可能收集到第一个恶意软件的二进制代码,你的ISP应该不会过滤自主传播恶意软件所使用的常用TCP端口,如TCP端口445或135,如果没有这样的过滤,你应该会收到相当多的恶意网络流量。

如果你想使用Nepenthes作为你的IDS基础结构的一个额外构成模块,只需将它放在你的非军事区内,有了这个结构,你可以看到对准你非军事区的恶意网络流量。

 

产品型蜜罐一般属于低交互蜜罐。高交互蜜罐则完全提供真实的操作系统和网络服务,没有任何的模拟,从黑客角度上看,高交互蜜罐完全是其垂涎已久的“活靶子”,因此在高交互蜜罐中,我们能够获得许多黑客攻击的信息。高交互蜜罐在提升黑客活动自由度的同时,自然地加大了部署和维护的复杂度及风险的扩大。研究型蜜罐一般都属于高交互蜜罐,也有部分蜜罐产品,如ManTrap,属于高交互蜜罐。

图片1.png

低交互蜜罐

因为许多不同的原因,低交互蜜罐很有吸引力,存在很多非商业解决方案,而且很容易建立。即使你没有多少经验,也可以在短时间内建立一个由数百个低交互虚拟蜜罐组成的网络。

当敌手利用了一个高交互蜜罐时,她能获得安装新软件和修改操作系统的能力,在低交互蜜罐中情况则不同。低交互蜜罐提供对操作系统有限的访问,按照设计,它并不打算扮演一个完整功能的操作系统,通常不能被完全利用。因此,一个低交互蜜罐不适用于捕捉零天(zero-day)漏洞利用攻击 。不过,它可以用来检测已知的漏洞利用攻击,测量你的网络受攻击的频率。"低交蜜罐"这一术语意味着,一个敌手在和一个模拟环境交互,该环境试图在一定程度上欺骗他,但不构成一个完全成熟的系统。一个低交互蜜罐通常模拟有限数量的网络服务,实现仅仅够用的互联网协议,通常是TCP和IP,允许与敌手交互,使敌手相信他正在与一个真正的系统连接。

 

Honeytrap

Honeytrap是一个低交互蜜罐,也是以自动化方式收集恶意软件为目的,它使用与Nepenthes类似的方法,主要思想是欺骗入站漏洞利用程序,发送其完整的有效载荷,然后可以自动或人工分析。

在蜜罐技术中,一个经典方法是模拟服务,在上一个文章中Nepenthes就是模拟服务,但是,如果你想观察未知的攻击,这就不起作用了,如所谓的0天攻击,Nepenthes需要一个漏洞模块来模拟服务的漏洞。攻击的特征对一个0天攻击是不可能用的,因此Nepenthes不能处理此类攻击。但是Honeytrap采用了略有不同的方法,动态响应入站数据。该工具在入站连接请求时动态地打开TCP端口,因此每次一个漏洞利用程序试图攻击蜜罐时,服务器会按照需要形刑事,通过这种通用方法,可以响应大部分基于网络的攻击。

Honeytrap使用所谓的连接监视器,从网络流中提取TCP的连接企图,有两种不同类型的连接监视器可用:基于libpcap的网络嗅探器,一个包捕获动态库,搜索本地主机产生的带有序列号为0的RST包,对于linux系统,可以使用linux内核的netfilter\iptables子系统的ip_queue接口来拦截流入的连接请求。我们可以创建一个iptables规则表,把与新连接有关的SYN包交付给Honeytrap。

基于上面两种连接监视器,Honeytrap可以动态地打开TCP端口。

Honeytrap可观察针对TCP或UDP服务的攻击,作为一个守护程序模拟一些知名的服务,并能够分析攻击字符串,执行相应的下载文件指令,当不产生TCP或者UDP协议的时候Honeytrap捕获不到任何信息,但有攻击者试图使用一些安全工具进行扫描的时候,Honeytrap即可捕获到连接信息。将Dashboard更换到Honeytrap模式

图片7.png

尝试使用安全工具对honeytrap进行扫描(模拟TCP/UDP流量攻击)

图片8.png

图片9.png

经确认已收到告警邮件。

 

HoneyBot

HoneBot构造入侵检测系统,Honeybot一款很牛的僵尸网络跟踪工具。是一个基于WINDOWS的低交互蜜罐解决方案,它的基本思想类似于Honeytrap。能够在网络上模仿超过1000个易受攻击的服务的Windows蜜罐程序,可以捕获和记录入侵和袭击企图。它运行于Windows 2000及以上版本,是AtomicSfotwareSolutions公司的产品。

图片10.png

 

Honeyd

honeyd 是一款非常优秀的虚拟蜜罐软件,能完成蜜罐的大部分功能,花费的资源相对较少,并能完成对网络拓扑的模拟,对抗指纹探测。honeyd 的使用也很方便,仅需要一个配置文件,就可以完成响应的部署。此外,honeyd 的使用也是相当广泛。在引诱黑客攻击,反蠕虫,遏制垃圾邮件等方面都有广泛的应用。

Honeyd 是一个小的守护程序,它能够产生虚拟的主机,这些主机能够被配置以提供任意的服务,系统特征也是与之相适应,以至于使之看起来像真实的系统在运行。在一个局域网的网络仿真中,Honeyd 能够使单个主机拥有许多 IP(多达 65536 个)。通过提供对威胁探测和评估的机制,增强了计算机的安全性,通过隐藏真实的系统在虚拟的系统中,也达到了阻止敌手的目的。

图片11.png

Honeyd通过路由器或代理ARP为其虚拟蜜罐接收流量。对每一个蜜罐,honeyd可以模拟不同操作系统的网络栈行为

honeyd 对黑客在终端的输入提供了完善的日志,该日志文件在运行honeyd 时已经指定,即使用-f参数加指定的日志文件名。一般指定日志文件为/var/log/honeyd,可以通过查看该日志获得黑客登陆的信息和一些攻击的方法。

 

Opencanary

pirogue大神二次开发后再进行开源维护的Opencanary。当前0.4版本与官方保持同步,支持16种协议,24种攻击特征识别。项目地址:

https://github.com/p1r06u3/opencanary_web

web服务端架构:

Tornado+Vue+Mysql+APScheduler+Nginx+Supervisor

登录页面:

图片12.png

详细功能介绍参考他本人文章:https://www.secpulse.com/archives/95135.html

 

低交互蜜罐的一个缺点是缺乏保真度。他们不能完全被敌手攻陷,因为如此,他们不能产生像可以完全被敌手控制的高交互蜜罐一样多的信息。当然,这使得更容易保护你的低交互蜜罐,你不用担心有太多的危险。例如,模拟服务通常不允许攻击者安装包洪泛工具,并从你的计算机上发起拒绝服务攻击。这是假设你正在运行的蜜罐是完全安全的,如果蜜罐自身有漏洞,你的低交互蜜罐可能突然变成一个高交互蜜罐,这是我们真正想避免的。

下面将介绍一些安全增强手段,帮助减少蜜罐所受到的威胁:

1、使用chroot命令,可以把一个应用程序限制到文件系统的一小部分。实现方法是把应用程序的根改变到一个特定目录。

2、Systrace是一个许多UNIX系统可用的应用程序"沙盒",用来限制应用程序对系统的访问。

低交互蜜罐的主要特点:系统只是模拟出来的,不支持对计算机系统的完全攻陷。另一方面,它们通常提供更高的性能,且更容易部署。


本文作者:Lemon

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/103579.html

Tags:
评论  (3)
快来写下你的想法吧!

Lemon

文章数:68 积分: 647

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号