P2P僵尸网络的检测
摘要:点对点(P2P)分布式架构的提出为恶意代码提供了更具隐蔽性和弹性的命令分配机制,使得P2P僵尸网络成为互联网上最严重的威胁之一。研究这种僵尸网络的检测技术非常具有现实意义,由于它具有较强的个性化差异,目前还没有通用的检测方法,现有的检测方法主要是通过分析其恶意行为及网络通信流量,析取其内在活动规律和传播机制等。讨论了P2P僵尸网络的结构和机制,分析相关的几种主要的检测技术并对未来可能的研究重点作出了预测。
关键字:僵尸网络;点对点;检测技术;网络安全
Abstract:The distributed architecture of Peer-to-Peer(P2P)has provided malwares (malicious softwares)the command distribution mechanism with increased resilence and obfuscation.P2P Botnet has become one of the most serious threats to Internet.At present,there is no general detection approach because of the strong differences between individuals,and most researches focus on analyzing their malicious behaviors on the host and communication SO as to understand the rules of their activities and transmission mechanism.This paper discussed the structure and mechanism of P2P Botnet.analyzed the major several related detecting research methods,and predicted the future detecting technology an d development.
Key words:Botnet;Peer—to—Peer(P2P);detecting technology;network security
1 引言
僵尸网络(Botnet)是指采用一种或多种传播手段,将大量主机感染僵尸(Bot)程序,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。僵尸网络的实质就是在恶意代码控制下的主机构成的网络。
近年来,僵尸网络已经成为了当前进行Internet攻击的主要平台,攻击者可以通过该平台发起垃圾邮件、分布式拒绝服务攻击(DDoS)、身份窃取、钓鱼等各种网络攻击,其隐蔽性、破坏性和威胁程度都远大于单一的网络攻击模式。目前,黑客们从传统的集中型的命令与控制僵尸网络迁移到更加对等的以分布式结构为基础的P2P体系架构(如Storm僵尸网络)。安全厂商Palo Alto Networks-2 最近发布的2009年度春季应用软件使用和风险报告分析了超过60个大型企业的企业级应用软件的使用和流量后指出,P2P结构所占比例为92%。这种趋势对于僵尸网络的检测来说是很不幸的,因为对于集中型的结构,至少还有一个大的目标可以重点监测;而P2P的方式意味着检测目标变得更加细化而很难被逐一消灭。因此,需要有新的检测方法来有效检测P2P僵尸网络以应对日益复杂的网络安全环境。 1 僵尸网络概述 1.1 僵尸网络及其结构
僵尸网络(Botnet)的组成包括:僵尸主控者(Botmaster)、僵尸主机(Bot)、命令与控制(Command and Control,C&C)网络。僵尸主控者是僵尸网络的控制者;僵尸主机是被攻击者控制的主机;僵尸主机从命令与控制网络获得命令,协调攻击和欺骗活动。命令与控制网络一般有一个或多个命令与控制(C&C)服务器,僵尸主控者通过控制这些服务器来管理和控制僵尸网络,僵尸网络的结构图1所示。
Botmaster C&C服务器 Bot Fulture Bot Bot Target system
图1 僵尸网络的结构
僵尸网络根据其僵尸网络规模的大小、被检测和破坏的难易程度以及指令(命令和控制)的控制方式大体可以分为3种结构。
1)中心化的僵尸网络:这种架构的僵尸网络依赖于一个中心服务器,攻击者和僵尸主机通过该中心服务器进行通信,配置简单,但很容易被检测和破坏。例如IRC僵尸网络。
2)分布式的僵尸网络:一个P2P系统是等同的、自治的实体构成的一个自组织的系统,在一个联网的环境中共享分布式的资源,避免了中心化的服务。P2P僵尸网络就是将P2P协议嵌入到特定僵尸程序中并使用该协议来构建其命令与控制信道的僵尸网络。基于IRC和HTTP的僵尸网络都需要僵尸主机与中心服务器通信,但是由于中心服务器方式存在单点失效的威胁,基于该方式的僵尸网络比较容易被检测到,所以,P2P协议成为一种好的选择,P2P网络中的每个节点既可以是客户端也可以是服务器,从而不存在关闭某个节点就可以关闭整个僵尸网络的风险。
3)混合型的僵尸网络:综合了上面两种僵尸网络结构的优点而改进的新型的僵尸网络结构,它既拥有同时作为客户端和服务器的P2P僵尸网络节点,也有专门作为客户端的僵尸网络节点,这种结构的P2P僵尸网络既避免了单点失效又简化了僵尸网络的通信机制。目前的P2P僵尸网络大多采用的是分布式及混合型的僵尸网络结构,其中混合型的僵尸网络由于可控性强更受攻击者的青睐。 1.2 P2P僵尸网络的命令与控制机制
P2P僵尸网络使用ls2p协议来构建其命令与控制信道,僵尸网络中的僵尸主机能够同时作为服务器和客户端,不依赖于中心化的协调,僵尸主机可以直接连接其他僵尸主机并交换信息,网络攻击的控制中心无处可寻,僵尸主控者可以使用P2P僵尸网络中的任意僵尸主机,只要将命令在网络中广。播就可以实现攻击。
P2P僵尸网络的命令与控制机制可以被分为推模式机制和拉模式机制两类。
推模式机制也被称为命令发布机制:Botmaster或者C&C服务器知道所有的Bot地址或可以通知到它们的方法,这种方式容易暴露Bot;拉模式机制是指Bot向C&C服务器请求命令,可以是交互式的也可以是非交互式的:交互式的需要Bot连接到C&C服务器;非交互式则不需要Bot连接到C&C服务器,而是Bot按照约定去某个地方取命令,例如Web网页、FⅢ,服务器上的文件等。
拉模式机制使得P2P Botnet的传播更加隐蔽,网络组织结构更加鲁棒,使得网络安全人员对P2P僵尸网络的检测和定位更加困难,但同时它也能揭示P2P僵尸网络行为的一些特征,正确识别P2P僵尸网络的命令与控制机制的行为活动特征是检测P2P僵尸网络的重要依据。 2 P2P僵尸网络的检测技术
早期对僵尸网络的研究主要集中在如何检测和跟踪到单个的僵尸主机,但是随着僵尸网络采用协议和结构的复杂性,特别是采用P2P协议之后,僵尸网络的隐藏性和破坏性大大增加,需要对僵尸网络的行为、传播、拓扑结构等方面进行综合研究,对僵尸网络也逐渐从基于主机特征的检测转到行为特征分析和网络
流量监测等方面。
目前研究P2P僵尸网络行检测的主要手段是对其进行行为分析,同时通过网络流量分析来研究P2P僵尸网络的检测方法也逐渐增多,由于P2P僵尸网络的规模越来越大,基于数据加密的通信也被应用到P2P僵尸网络中去,通过对僵尸流量的分析来检测僵尸网络具有更大的优势,而且数据挖掘技术和信息熵理论的引入为网络流量检测提供了强有力的分析工具。以下是几种主流的P2P僵尸网络检测技术。 2.1 基于主机特征的检测
基于主机特征的检测主要是指在一个负责监控的主机内部部署传感器用来监控和记录相关的系统事件,对僵尸程序的可疑活动行为进行监测。当存在僵尸网络时攻击时,监控主机就会产生一些典型的异常行为,主要表现为添加注册表自启动项、篡改重要文件、窃取敏感信息以及远程访问等,这类似于恶意代码的检测方法,僵尸网络感染的一般过程如图2所示。 传播 目标 自我复制 下载更新程序 选择 扫描 机器 感染 本地主机感染 数据传送 隐藏恶意代码 远程访问 关键记录 数据盗窃等行为
系统配 置程序
图2 僵尸网络的感染过程
目前基于主机特征的僵尸网络监测技术主要采用是“蜜罐”技术和虚拟机技术。“蜜罐”是一种特殊构造的计算机或网络陷阱,被设计用来吸引和检测恶意代码,这种检测方法利用主动式和被动式蜜罐系统获取Bot程序的二进制代码,监控Bot主机的传播方式和通信方式,从而得到僵尸网络的行为特征,这些行为包括感染行为(如驻留系统的模式(用户模式或内核模式)、安装文件、修改文件、修改注册表、对系统进程和函数的调用、键盘操作记录、对系统服务和网络服务的控制)、传播行为(如扫描、漏洞的利用)和通信行为(如IP地址、端口号、协议特征)等。这些恶意的主机行为特征可用于对P2P僵尸网络的检测。
Holz等人通过对病毒的二进制代码进行反汇编来剖析僵尸病毒的传播机制、恶意行为、控制信道加密方式等特点,从而实现了对P2P僵尸网络的跟踪、检测和反制。该方法的优点在于通过伪装成受控主机加入到僵尸网络、接受和回复攻击者的命令,从而发现并阻断其通信信道以便削弱僵尸网络的危害能力;但是它只能检测一类特定的僵尸网络,不具有通用性,并且只适用于分析加密方式简单的僵尸程序,对于未知的或是经过变形处理的病毒很难发挥效用。此外,采用反汇编技术需要对计算机底层工作原理如CPU架构、指令集、汇编语言等有很深的认识且难度较高,而且如果在僵尸程序中加入大量的花指令,连续不断地跳转,定时器设置陷阱等,那么对僵尸程序的二进制进行反汇编将十分耗时且低效,难以应对僵尸程序的推陈出新。