Scientific Journal of Information Engineering June 2015, Volume 5, Issue 3, PP.97-101
P2P Botnet and Its Detecting Technology Qi Zhou1, Jing Gao1, Xiaoli Dong1, Qintao Dong2 1. School of Information Science and Engineering, Lanzhou University, Lanzhou 730000, China 2. 68231troop Political Affairs Office of PLA, China
Abstract In this article, firstly, we classified the P2P botnet by their character; then its network running mechanism and life cycle were analyzed; finally, by combining several common P2P botnet, we summarized the current detecting methods that based on mainframe and network, and pointed out main difficult of the P2P botnet detection. Keywords: Botnets; P2P; Detection; Network Traffic
基于 P2P 的僵尸网络及其检测技术 周琦 1,高靖 1,董小丽 1,董秦涛 2 1. 兰州大学 信息科学与工程学院,甘肃 兰州 730030 2. 解放军 68231 部队政治处 摘 要:本文首先分析 P2P 僵尸网络的种类,接着对其网络运行机制、生命周期进行深入分析,结合几种常见 P2P 僵尸 网络,总结了现行的基于主机和基于网络的检测方法,最后提出了 P2P 僵尸网络检测的难点。 关键词:僵尸网络;P2P;检测;网络流量
引言 僵尸网络是由大量被僵尸程序控制的主机通过某种 C&C(命令与控制)信道所组成的网络。僵尸网络 融合了传统的恶意软件,成为一种可控的、能够发动各种恶意活动的攻击平台。控制者主要通过被僵尸网 络控制的感染主机进行恶意行为。近几年出现的基于 P2P (Peer-to-Peer) 的僵尸网络,具有更强的隐蔽性、 健壮性和危害性,给僵尸网络追踪、检测和防御带来极大的挑战,引起了网络安全机构及专家学者的高度 重视。根据 2013 年华为云安全中心统计,从全球来看,中国和美国的僵尸网络主机数分别占整体数量的 30.3%和 28.2%,远远高于其他国家,而从控制者来看,美国境内的控制者最多,占重量的 (42.2%),随后是 德国 (9.1%),法国 (7%) 和英国 (5.8%),而中国则约为 3.8%。
P2P 僵尸网络研究
1
1.1 P2P 僵尸网络的种类 本文在文献[1]的基础上对 P2P 僵尸网络的分类进行更加详细的描述。根据 P2P 僵尸网络选用 P2P 协议 进行组网的方式以及选择僵尸主机的来源将 P2P 僵尸网络划分为 3 种类型; (1) 寄生型 P2P 僵尸网络:使用现有的合法 P2P 网络组网,僵尸主机也来自于该网络内的主机; (2) 吸附型 P2P 僵尸网络:依赖于现有的合法 P2P 网络组网,僵尸主机来自于整个 Internet 中的脆弱主 机; (3) 独立型 P2P 僵尸网络:使用现有的 P2P 协议或者设计新的 P2P 协议组成独立的网络,网络内的节点 全部是僵尸主机(不含有良性的 P2P 节点)。
- 97 http://www.sjie.org
1.2 P2P 僵尸网络运行机制 僵尸网络的 C&C(命令与控制)信道机制是僵尸网络设计中最重要的组成部分。C&C 机制直接决定了 僵尸网络的通信协议和网络拓扑结构,从而影响到僵尸网络在网络维护、代码升级、命令分发时的网络运 行效率,以及在对抗安全检测和防御、网络或计算机故障时表现出来的韧性。按照僵尸牧主发布命令和僵 尸主机获取命令的方式划分,C&C 机制可以划分为“pull”和“push”机制[2]。“pull”机 制也称为“命令 发布/订阅”机制,是指僵尸主机主动地从僵尸牧主发布命令的地方获取命令;“push”机制是指僵尸主机 被动地等待命令被推送过来,然后将命令转发给其它僵尸主机成员。 (1) Pull 机制 集中式僵尸网络的 C&C 信道通常使用“pull”机制实现。在 IRC 僵尸网络中,所有的僵尸主机周期性 连接到预定的 IRC 频道上,等待僵尸牧主在这个频道上发布命令;在 HTTP 僵尸网络中,僵尸牧主将命令 发布到某个 Web 页面中,僵尸主机定期使用 HTTP 协议访问这个 Web 页面以检查是否有命令更新。该 Web 页面的地址是事先编码到僵尸程序代码中的,在运行期间可以通过僵尸牧主发布“地址修改命令”对其进 行更改。 P2P 僵尸网络如果使用定制的 P2P 协议,可以根据需要使用“pull”机制或“push”机制。如果使用 “pull”机制,一般会借鉴 P2P 文件共享系统中的文件查询思想:僵尸牧主挑选一个或若干僵尸主机发布命 令,让其申明拥有某个特定文件,这个文件的文件名需要预先编码到僵尸程序代码中。僵尸主机定期在网 内查询这个文件来获取命令;一旦申明拥有这个文件的僵尸主机接收到查询命令,就回复查询成功报文, 查询成功报文中包含有命令或者发布命令的地址;接下来,当发出查询请求的僵尸主机接收到查询成功报 文后,就直接解析命令或是到指定的位置获取命令。 采用“pull”机制实现的僵尸网络都需要僵尸主机周期性地请求命令或者检查命令的更新,实现起来比 较容易,但是这种“周期性”规律增加了被检测到的危险。 (2) Push 机制 基于“push”机制的 P2P C&C 的核心思想是:僵尸牧主将命令发送给网内的僵尸主机,接收到命令的 僵尸主机主动将命令转发给其它的节点。这种方法避免了周期性请求或检查新的命令,减少了被检测到的 危险。 僵尸主机一般把命令伪装成正常的查询报文发送给所有的邻接节点,并依赖于这些邻接节点继续转发 该命令。这个报文对于良性节点来说就是正常的查询报文,而僵尸节点能够将其解析为命令。这种方案易 于实现且难以被防御者检测到,因为命令转发流量中混合了正常的查询检索流量。
1.3 P2P 僵尸网络生命周期 大体上来说,P2P 僵尸网络的生命周期可以分为三个阶段[1]:感染阶段、组网与二次感染阶段和接收及 命令控制阶段。 (1) 感染阶段 也称为初次感染阶段。攻击者会利用网络中易感计算机的系统漏洞,使用蠕虫、木马等恶意代码技术, 通过电子邮件、网站恶意脚本、移动载体等传播媒介来传播和感染恶意僵尸程序。 (2) 组网与二次感染阶段 在这个阶段,新感染的主机通过随机扫描等手段试图连接僵尸程序列表中的其他节点,并根据反馈的 信息更新自身信息,从而成为一台真正的 P2P 僵尸主机,进入第三个阶段。 (3) 接收及命令控制阶段 完成组网和二次感染的僵尸主机在这个阶段的主要任务就是接收和执行攻击任务。大多数情况,僵尸 网络发起的攻击都是简单地发送携带病毒的垃圾邮件。当攻击成功后,僵尸网络的规模会随着新感染主机 - 98 http://www.sjie.org
的加入而扩大。有时候僵尸牧主也会发起比较敏感的攻击行为,比如窃取身份数据、用户密码和金融数据 等。
1.4 几个重要的 P2P 僵尸网络 2002 年第一个使用 P2P 协议的僵尸网络 Slapper 出现,这标志着基于 P2P 协议的僵尸网络正式登上舞台。 早期的 Sinit 和 Nugache 等是纯分布式 P2P 僵尸网络,每台僵尸主机对等连接,僵尸主机既是客户机也是服 务器。 2004 年 Phatbot 出现,它是典型的集中式 P2P 僵尸网络,在 Phatbot 中,新感染主机需要连接到 Gnutella 网络的缓冲服务器取得僵尸节点列表,它基于 WASTE 协议构建,只支持小规模 P2P 网络,扩展性差,存在 单点失效的问题。 2007 年 Storm 僵尸网络的爆发,标志着 P2P 僵尸网络技术走向成熟,它是基于 Kademlia 协议的完全分 布式僵尸网络。开始它用来感染宿主的电子邮件都有一行与风暴相关的标题,之后常用一些当前热门新闻 事件来伪装自己。Storm 僵尸网络寄生于合法的 P2P 网络中,具有很大的隐蔽性,这些优势使得受感染主机 呈爆发式增长,2007 年 11 月,Storm 每小时都有多达 23 万台僵尸主机同时在线,成为规模最大、危害最大 的僵尸网络。
1.5 P2P 僵尸网络的检测 1.5.1
基于主机的检测
基于主机的检测主要是指在一个负责监控的主机内部安装传感器,用其监控和记录僵尸程序的可疑行 为活动。现阶段最常见的基于主机的检测方法主要是蜜罐和虚拟机技术,然而随着它们的大量应用,僵尸 牧主很容易掌握这些技术,并进行反制。该方法能够有效检测到活跃的 P2P 僵尸网络,但当僵尸网络停止 活动时就不容易检测到,因此人们开始寻求更加有效的检测方法。 1.5.2
基于网络的检测
通过大量的研究实验发现,P2P 僵尸网络节点需要频繁地交换节点信息,处理 P2P 网络扰动问题,那么 这些节点的网络行为,比如报文大小、发送的频率必然会表现出相似性。针对这些网络行为相似性,产生 了一些优秀的检测方法。 Noh 等人[3]提出了一种多阶段流模型的 P2P 僵尸网络检测方法。该方法把研究的重点放在僵尸主机与大 量的远端节点进行通信的特征上,认为按照某种规则分阶段的流具有相似但时间间隔不规律的特征,然后 对相似的流进行分组并压缩,然后通过概率矩阵来构建分组流的转换模型,最后计算出 bot 的似然率。 Zhang 等人[4][4]提出一种 P2P 流量指纹识别算法,用于建立各种 P2P 应用的统计概图,使用基于流量聚 类分析的方法来识别运行 P2P 应用的主机,然后根据观察出来的 P2P 僵尸网络节点表现出来的一些相似性, 比如同一个僵尸网络内的僵尸节点使用同样的 P2P 协议和网络、每两个僵尸节点联系的邻居节点集合之间 的交集比较大等,将 P2P 僵尸主机与合法的 P2P 网络主机分离出来。但是这种方法需要基于一个前提假设, 即检测的目标网络内至少有 2 个以上的主机是同一个 P2P 僵尸网络上的节点,从而才能有效利用僵尸节点 之间通信特征的相似性来达到检测的目的。
1.6 P2P 僵尸网络检测难点 1.6.1
传统检测技术失效
传统的基于特征匹配技术在检测 P2P 僵尸网络时,几乎完全失效,主要因为: (1) 基于特征匹配技术几乎完全不可行; - 99 http://www.sjie.org
基于特征匹配技术在检测 P2P 僵尸网络时,几乎完全失效,主要因为两个原因:首先是僵尸网络特有 的 C&C 机制,使得僵尸牧主可以很容易发布程序升级命令,频繁地修改僵尸程序的特征码;其次是当前的 P2P 僵尸程序几乎都使用了很严格的加密和认证机制,无法进行有效地特征匹配检测。 (2) 蜜网检测能力不足; P2P 僵尸网络没有 C&C 服务器,使用蜜网采集到的信息利用价值不大,而且蜜网检测点容易遭受僵尸 牧主的 DDos 攻击,从而无法工作。 (3) 巨大网络流量带来数据采集、分析困难。 随着互联网规模的迅速发展,巨大的网络流量数据常常带来难以承受的计算量,而僵尸网络的流量常 常被“淹没”在巨大的流量中,如何从中提取僵尸网络流量和行为特征,并实现告诉检测,是一个非常大 的难题。 P2P 网络特性带来的检测困难
1.6.2
(1) P2P 协议个性化特性; P2P 僵尸网络在网络构建与控制结构方面呈现多样化与个性化的特点。一些 P2P 僵尸网络采用现有的 P2P 协议进行组网,另外一些则自己开发 P2P 协议,这种个性化差异,使得目前还没有一种有效通用的检测 手段。 (2) P2P 僵尸网络的全球覆盖性; P2P 僵尸网络部署分布的范围非常广,如果要进行有效的检测,需要进行多源的网络信息采集与融合。 由于 P2P 僵尸网络踪迹隐蔽,分散在不同的层次(包括个人主机、区域网等)、不同类型设备上,这些给 获取可用检测数据造成困难。 (3) P2P 僵尸网络混迹于合法 P2P 网络; P2P 僵尸网络采用基于 P2P 的通信控制协议,网络行为特征与合法的 P2P 网络非常相似,很难将两者区 分开来,这也给检测带来很大困难。 (4) P2P 僵尸网络的良好韧性 由于没有集中式 C&C 服务器,P2P 僵尸网络具有很好的韧性。即使一大部分僵尸节点被检测出来并从 僵尸网络中移除掉,僵尸网络中剩余的节点依然能保持很高的连通性。
2
结语 随着 P2P 网络覆盖率的提高,P2P 僵尸网络给网络安全带来了极大威胁和挑战。尽管近年各国研究人员
对 P2P 僵尸网络进行许多深入细致的研究,也取得了很多突破性成果,但到现在仍没有一种通用、高准确 率的检测方法,因此,还需要我们继续深入研究通用高效的检测方法。
REFERENCES [1]
Wang P, Wu L, Aslam B, et al. A Systematic Study on Peer-to-Peer Botnets[C]. ICCCN '09: Proceedings of 18th International Conference on Computer Communications and Networks, p.1-8, 2009, IEEE Computer Society
[2]
Wang P, Aslam B, Zou C C. peer to peer botnets//Handbook of Information and Communication Security[M]. Springer Berlin Heidelberg, 2010:335-350
[3]
Noh S, Oh J, Lee J, et al. Detecting P2P Botnets Using a Multi-phased Flow Model[C]. ICDS '09: Proceedings of the 2009 Third International Conference on Digital Society, p.247-253, 2009, IEEE Computer Society
[4]
Zhang J, Perdisci R, Lee W, et al. Detecting stealthy P2P botnets using statistical traffic fingerprints[C]. DSN '11: Proceedings of the 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks, p.121-132, 2011, IEEE Computer Society
[5]
期刊:唐雅娟,柳雪娟. P2P 僵尸网络的检测方法[J].计算机安全,2013: 32-36 - 100 http://www.sjie.org
[6]
KANG Jian, ZHANG Jun-yao, LI Qiang, et al. Detecting new P2P botnet with multi-chart CUSUM[C]/ /Proc of International Conferenceon Networks Security, Wireless Communications and Trusted Computing. Washington DC: IEEE Computer Society, 2009: 688-691
[7]
期刊: 应凌云, 冯登国, 苏璞睿. 基于 P2P 的僵尸网络及其防御[J].电子学报, 2009, 01: 32-37
【作者简介】 1
周琦(1981-),女,汉,硕士研究生,信息安全。
3
董小丽(1981-),女,汉,硕士研究生,信息安全。
Email: zhouq12@lzu.edu.cn
Email: dongxl12@lzu.edu.cn
2
4
高靖(1986-),男,汉,硕士研究生,信息安全。
Email: gaoj12@lzu.edu.cn
董秦涛(1985-),男,汉,硕士研究生。
Email: dong0428fan@163.com
- 101 http://www.sjie.org