1、基于蜜罐网络的邮件捕获系统分析与部署Analysis and Deployment for the Honeypot-based Mail Capture System李秋锐 1 司响 2 宋士超 2 (中国人民公安大学,北京 100038)摘要:散布钓鱼网站的方式多种多样,由于大多数的钓鱼网站链接都是通过垃圾邮件传播的,因此本文从垃圾邮件传播的角度入手,通过分析钓鱼邮件发布者使用的网络安全漏洞,建立一个基于 Honeyd 的邮件捕获系统,从而获取大量垃圾邮件,以便于以后通过邮件分析达到对钓鱼网站主动探测的目的关键词:蜜罐 Honeyd 垃圾邮件 网络钓鱼Abstract:There are
2、many ways for disseminate of phishing sites. Since most of the phishing website link are spread through spam, so this article is focus on the spread of spam. By analyzing network security vulnerabilities, we establish a honeyd-based mail capture system, the target of this system is to gain a lot of
3、spam, for detecting phishing sites by analysis mail cpatured later.Keyword: honeypot Honeyd Spam Phishing1 前言网络钓鱼是伴随着网络技术的发展而产生的,根据中国反网络钓鱼联盟的 2011 年 4 月报告,4 月份联盟处理钓鱼网站数量达 2635,截止到 2011 年 3 月底,中国反钓鱼网站联盟累计认定处理的钓鱼网站数量为 43842 个。尽管网络钓鱼收到多方重视,但钓鱼网站的数量还是有增无减。 1根据统计,钓鱼网站的链接其传播方式主要有垃圾邮件、即时通讯和媒体传播,本文主要研究与垃圾邮件
4、有关的传播方式,由于常规的钓鱼探测系统虽然可以很有效的对邮件进行分析,但却不能实时的获取邮件,所以该系统通过建立蜜罐网络达到欺骗垃圾邮件发布者,获取大量垃圾邮件的目的,以便于为随后的邮件分析提供样本,从而主动探测钓鱼网站的有关信息。2 蜜罐系统蜜罐系统是一种用于捕捉探测,攻击和漏洞扫描行为的安全工具,其本身是一个包含漏洞的系统,由于蜜罐系统没有提供任何实质性的服务,所以可以认定每一个试图主动与其进行连接交互数据的行为都是可疑的。目前很多款优秀的蜜罐软件,如 KFSensor、honeyd 等等,本文将基于Honeyd 软件来构建蜜罐系统。Honeyd 是一款强大的开源虚拟蜜罐软件,属于一种低交
5、互式的蜜罐系统,可运行在 UNIX 和windows 系统中。可以在虚拟的网络环境中模拟多个地址,虚拟蜜罐主机可以根据具体的配置文件模拟多种网络服务,外部的主机可以对虚拟蜜罐主机进行常规的 ping、tracert 等操作,回应数据包时,honeyd 的个性化引擎使回应包与被配置的操作系统特征相适应,同样 honeyd 也可以为真实的作者简介:作者 李秋锐(1987 ) ,男,湖北,硕士研究生 Email:作者 司响(1984 ) ,女,河北,硕士研究生 Email:作者 宋士超(1985 ) ,男,河北,硕士研究生 Email:主机提供代理。Honeyd 软件结构由配置数据库,中央包分配器,
6、协议处理器,个性化引擎和自选路由组件组成。具体架构如图一所示:路由中央包分配器T C PU D PI C M P服务路由个性化引擎配置数据库图一 honeyd 软件结构如图一所示,Honeyd 接收到的数据会由中央包分配器处理,中央包分发器首先会检查 IP 长度和校验和。然后根据配置数据库的数据查找到符合目标位置的蜜罐主机配置。确定具体的配置后,数据包就会交付给相应的协议处理器进行处理。协议处理器具体分为三部分:ICMP 处理器,UDP 处理器,TCP 处理器。ICMP 处理器支持多数的 ICMP 查询,一般情况下,都会响应 echo 请求,并处理 “destination unreachab
7、le”的消息。对于分配到 TCP 处理器和 UDP 处理器的数据包,,Honeyd 可以为其与任意的服务建立连接,这些服务都是外部的应用程序,可以通过标准输入输出进行数据交互。 2由于不同蜜罐主机处理方式也各不相同,这就导致蜜罐主机发送的数据包也就具有的不同的特点,对于 honeyd 来说,最为重要的就是在扫描时自己的蜜罐身份不能被暴露出来,所以个性化引擎组件的工作内容就是模拟不同系统的网络栈行为。具体来说,honeyd 利用 Nmap 的指纹库来作为TCP 和 UDP 连接的个性化参考,利用 Xprobe 指纹库来作为 ICMP 连接的个性化参考。3 垃圾邮件所使用漏洞分析由于制造、传播垃圾
8、邮件的行为都是不合法的,所以很多垃圾邮件制造商都会想着隐藏自己的行为。图二给出垃圾邮件制造商隐藏自己踪迹的常用方法。垃圾邮件发布者开放代理的代理服务器开放代理的代理服务器开放中继转发的邮件服务器邮件传输邮件传输受害用户连接连接图二 垃圾邮件商常用技术中继转发Smtp 协议就是简单邮件传输协议,与 25 端口和 tcp 协议联系在一起,主要用于可靠的并有效的进行邮件传输。在 Smtp 协议中具有中继转发服务,即通过别人的邮件服务器将邮件递送到目的地址,一般来说,中继转发服务针对的对象都是有选择的并通过认证的用户。然而一些具有安全漏洞的 Smtp 服务器都会无限制的开放中继转发服务,这种服务器就有
9、可能被垃圾邮件制造商发现并进行滥用。开放代理代理服务器是介于客户端与服务器之间的另一台服务器,其用于获取某种特定的服务,允许多于一台的主机共用一个 IP 地址连接互联网,代理就像是一个中间人,与其他客户端进行连接。而一个有安全漏洞的代理服务器允许任意一个 IP 地址连接任意一个 IP 地址或端口,这种代理服务器称之为开放代理。垃圾邮件制造商会持续的扫描开放的代理,一旦定位就会使这些代理服务器与垃圾邮件服务器连接,然后使用代理与其他正常的邮件服务器连接,通过发送特定的 Smtp 指令就可以发送垃圾邮件。 34 基于 honeyd 构建虚拟网络与部署在本文中基于 honeyd 软件模拟两种服务:具
10、有开放中继转发漏洞的邮件服务器和具有开放代理漏洞的代理服务器。图三给出蜜罐网络 mail capture 的具体架构。路由器H o n e y d 主机邮件服务器开放中继转发的邮件服务器 V 1开放代理的代理服务器 V 2W e b 服务器 V 3蜜罐网络 m a i l c a p t u r e1 9 2 . 1 6 8 . 0 . 11 9 2 . 1 6 8 . 0 . 31 9 2 . 1 6 8 . 0 . 41 9 2 . 1 6 8 . 0 . 51 9 2 . 1 6 8 . 0 . 21 9 2 . 1 6 8 . 0 . 2 5 5图三 配置的蜜罐网络整体结构图三中,在
11、Mail capture 内存在有两台实际存在的主机和三台虚拟主机,其中实际存在的主机是 honeyd 主机和 SMTP 服务器与路由器直接连接,其余三台提供的服务都是基于 honeyd 主机虚拟的。对于具体的 Mail capture 配置,honeyd 主机与邮件服务器直接与路由器进行连接,其中 honeyd主机的 IP 地址为 192.168.0.1,邮件服务器的 IP 地址为 192.168.0.2。两台主机都使用的 Ubuntu 操作系统用。对于虚拟主机的配置来说,首先需要决定每一台虚拟主机有关配置后才能进行下一步的操作,具体每一台虚拟主机的配置如下:V1 :操作系统版本为 linu
12、x 2.6.6、IP 地址为 192.168.0.5、主机模拟的服务为 Smtp 服务;V2:操作系统版本为 linux 2.6.6、IP 地址为 192.168.0.4、主机模拟的服务为开放代理服务;V3:操作系统版本为 linux 2.6.6、IP 地址为 192.168.0.3、主机模拟的服务为 web服务。具体操作以开放中继转发的虚拟邮件服务器 V1 为例:create linux set linux personality “linux 2.6.6” add linux proto tcp port 25 “./script/spam.py”bind linux 192.168.0.
13、5至此开放中继转发的虚拟邮件服务器就设置成功,其他两个虚拟服务的设置方法与其类似。 4其中两个模板是整个系统的核心-SMTP 开放中继转发模拟器和开放代理模拟器。对于 SMTP 模拟器,honeyd 接受来自 25 端口、TCP 协议的数据包,并且以一个 SMTP 服务的角色进行回应,每接受一份信息,其表现的都像一个开放中继转发的邮件服务器进行转发,其实际上信息不会被发送出去而是存储在当地服务器里面。下面给出 SMTP 模拟器的局部配置。if command in “HELO“, “EHLO“:whom = data5:.strip()self.hello = whomself.push(“2
14、50 Hello %s, pleased to meet you.rn“ % whom)elif command = MAIL:whom = data10:.strip()self.mailfrom = whomself.push(“250 %s. Sender okrn“ % whom)elif command = RCPT:whom = data8:.strip()self.rcptto.append(whom)self.push(“250 %s. Recipient okrn“ % whom)elif command = DATA:self.set_terminator(rn.rn)se
15、lf.found_terminator = self.data_found_terminatorself.push(354 Enter mail, end with “.“ on a line by itselfrn)elif command = QUIT:self.push(“221 %s closing connectionrn“ % self.host)self.close_when_done()elif command = RSET:self.reset()self.push(250 Reset statern)else:self.push(“500 Command unrecogni
16、zedrn“)对于以上代码,具体的作用为,指示虚拟服务当接受到具体命令后,应该做出什么样的回应,例如当接受到”HELO” 或”EHLO”指令后,需向指令发送人回应“Hello, pleased to meet you”这些回应与正常的邮件服务器完全相同。对于开放代理模拟器,具体分为两种:Http 代理模拟器和 SOCKS 代理模拟器。Http 代理模拟器其正常接收多个 TCP 端口的数据并提供代理服务,当垃圾邮件商连接该模块时,垃圾邮件商就会要求代理服务器连接到受害者的邮件服务器上,代理服务器收到该请求后,不会直接响应该请求,其会连接到自己的邮件服务器上,并发送给垃圾邮件商一个回应包,使之以为
17、连接成功。垃圾邮件商就会认为其已经成功连接到目标 SMTP 服务器,从而发送垃圾邮件。SOCKS 代理模拟器其接受多个 TCP 端口的数据并提供 SOCKS 代理服务,该模拟行为表现的像一个不需要认证的代理,允许来自任意 IP 地址的连接。在成功连接到该模拟器后,垃圾邮件商就要求连接到外部的一个 TCP 端口和地址。如果要求连接的 tcp 端口号不是 25 的话,就回应一个错误信息;如果 tcp 端口号为 25 端口的话,随后的行为与 Http 代理模拟器类似。5 部署中存在的问题及解决方案5.1 蜜罐系统对系统的影响由于蜜罐的特殊性,其难免会与系统造成一定的影响,蜜罐部署工作重点之一就是降低
18、对系统的影响。具体即根据自己的需求选择合适的蜜罐,对于要求不高的系统可部署安全性较高的低交互式蜜罐,然后就是做到对蜜罐进行实时的监督和控制,由于蜜罐需要对外交互数据才能获取价值,所以可以在防火墙端进行一些设置来平衡交互程度和安全性之间的关系,该系统采用限制蜜罐系统同时连接数,周期性的允许定量的数据传出等方法来降低对系统的影响。5.2 honeyd 部署位置的选取该邮件捕获系统配置的位置选取在防火墙的 DMZ 区,相对于防火墙外来说,这样可以有效于防火墙内部的系统进行数据交互并且处于相对安全的环境中,而相对于防火墙内部来说,这样会接受到更多的信息,因为由于防火墙的保护,内部的主机只能接受到很少的
19、攻击信息,不利于蜜罐的正常工作。综上所述,最为合适的位置应该部署在防火墙的 DMZ 内。但部署在 DMZ 内的难度很大,一旦蜜罐被攻陷,攻击者会使用蜜罐作为跳板来攻击其他的服务,所以要使其他服务与蜜罐安全的隔离,这样也会增加 DMZ 部署的负担。5.3 honeyd 采集数据的方式该邮件捕获系统所使用的数据采集方式为 ARP 欺骗方式,相对而言以 ARP 欺骗进行数据采集的蜜罐系统更容易配置在一个现有的网络之中。Honeyd 采集数据的方式大体上分为两种,第一种方法称之为 blackholing,当大家希望一个没有任何活动系统的完整网络采用这种方法,这意味着不管攻击者所瞄准的是特定网络中的什么
20、 IP 地址,都可以视为攻击。因此这种方法就是将整个网络的流量都直接路由到 honeyd 主机上;第二种方法为 ARP 欺骗,这种方法应用在一个网络中同时具有实际存在的系统和虚拟的系统,其目的在于将所有非存在的系统的流量都转发给 honeyd 主机 5。6 总结蜜罐在安全领域的应用已经越来越广泛,相对于其他机制,蜜罐系统部署简单,配置灵活,收集到的数据有很大的针对价值,本文就是根据蜜罐技术模拟出 smtp 的开放中继服务和开放代理服务,然后构建出一个用于收集垃圾邮件的系统,用于网络钓鱼探测系统的研究。7 参考文献1 中国反钓鱼网站联盟 2011 年 4 月钓鱼网站处理简报R 2011 年 4
21、月2 翟继强、叶飞,利用 Honeyd 构建虚拟网络J 计算机安全 2006 年(03)3 Steding-Jessen, K., Vijaykumar, N. L., and Montes, A. Using low-interaction honeypots to study the abuse of open proxies to send spamJ INFOCOMP Journal of Computer Science (2008).4 Roshen Chandran, Sangita Pakala. Simulating Networks with Honeyd EB /OL . http: / / www. paladion. net/ papers/ simulating_networks_with_honeyd.pdf.5 Lance Spitzner honeypots:追踪黑客M 清华大学出版社 2004 年