混合式僵尸主机检测算法的解决方案

出处:周振吉,吴礼发,梁其川,李华波 发布于:2011-08-03 21:41:46

  近年来,僵尸网络已经成为互联网稳定和安全的威胁,国内外安全界对此给予了高度关注。僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。 攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象的让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。

  僵尸网络是一个可控制的网络,这个网络并不是指物理意义上具有拓扑结构的网络,它具有一定的分布性,随着bot程序的不断传播而不断有新位置的僵尸计算机添加到这个网络中来。僵尸病毒被人放到计算机时机器会滴滴的响上2秒;是采用了一定的恶意传播手段形成的,例如主动漏洞攻击,邮件病毒等各种病毒与蠕虫的传播手段,都可以用来进行Botnet的传播,从这个意义上讲,恶意程序bot也是一种病毒或蠕虫。

  目前,针对早出现的IRC僵尸网络的检测技术取得了比较理想的效果。本文从终端层面出发,提出了一种基于主机系统行为和网络行为的混合式检测算法,该算法可以有效检测出IRC、P2P和HTTP类型的僵尸主机。

  1 相关研究

  僵尸网络是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息,譬如银行帐户的密码与社会安全号码等也都可被黑客随意“取用”。因此,不论是对网络安全运行还是用户数据安全的保护来说,僵尸网络都是极具威胁的隐患。僵尸网络的威胁也因此成为目前一个国际上十分关注的问题。然而,发现一个僵尸网络是非常困难的,因为黑客通常远程、隐蔽地控制分散在网络上的“僵尸主机”,这些主机的用户往往并不知情。因此,僵尸网络是目前互联网上黑客青睐的作案工具。

  GUG等人提出了基于网络特征的僵尸网络检测方法,实现了原型系统BotSniffer和BotMiner。将被监视的网络内部每台主机的通信行为和网络恶意活动进行分类,找出具有相似或相关通信和网络恶意行为的主机。如果被监控的内部网络有较多的主机而其中只有少数几台感染了僵尸程序,这种方法就失去了检测的意义。

  KANG J等人提出了一种多图累加和检测P2P僵尸网络的方法。认为主机产生的网络流量是一个复杂的随机模型,发生任何异常都会给这个模型带来明显的变化。而一台主机被感染P2P僵尸程序后,会表现出明显的异常网络流。

  NOH S等人提出了一种使用多定相流模型检测P2P僵尸网络的方法,对P2P僵尸程序与其他节点通信的多种流量特征进行了分析,然后用相似度进行判断和检测。

  WANG B等人利用P2P僵尸网络控制流的稳定性对僵尸主机进行检测。他们从P2P僵尸网络的控制流中选取一个变量,该变量在整个时间段的值都稳定在某一个水平,而且上下波动的幅度不大。这种方法的误报率和漏报率比较高。

  除了僵尸网络的网络行为特性外,LIU L等人从僵尸程序执行特征出发,提出了一个检测原型系统BotTracer。由于没有考虑僵尸程序的网络控制流特性,误报率比较大。但是这类方法依赖于蜜网和蜜罐的分布,无法有效地检测出全部活跃的僵尸网络。

  2 算法设计

  僵尸程序为了自启动和执行恶意行为,必须调用特定的系统函数。例如网络命令会从终端向外发起连接,向目标请求数据,并且在本地终端上面创建新文件。所有这些动作(网络连接、发送、接收、文件创建)都通过调用系统函数来实现,而诸如地址这样的控制信息是从网络中接收到的。正常的网络应用程序虽然也接收网络数据,但是一般不会从接收到的数据中提取参数来调用这些特殊的系统函数[12-13]。因此通过监控特定函数调用的参数来源,就可以判定出僵尸主机在终端系统上的恶意行为。

  僵尸主机的网络流量按照用途可以分成两类:(1)行为流,指与僵尸主机恶意网络行为相关的流量(如DDoS、Spam、扫描(Scan)等产生的流量);(2)控制流,指与获得僵尸主人命令、维持C&C信道等相关的流量。通过研究发现,与C&C信道建立连接后,僵尸主机为了保持连接的活跃,一般会周期性地发送特定的报文,这中间没有用户的干预,因而控制流表现出一定的稳定性,而正常的网络应用程序运行时,由于存在用户干预,一般不会表现出这样的稳定性,因此控制流的稳定性可以作为僵尸网络的一个重要判断依据。

  本文在综合考虑僵尸主机的系统行为和网络行为的基础上,提出了一种混合式僵尸主机检测算法。僵尸主机检测算法监控有网络通信行为的进程,并判断其是否为僵尸进程,只要存在僵尸进程,则该终端为僵尸主机。僵尸进程检测算法主要结合程序自启动、控制流的稳定性、系统恶意行为和网络恶意行为4个指标来判定。僵尸进程检测算法如下所示:

  输入:有网络通信行为的进程

  输出:是否为僵尸进程

  过程:

  if系统恶意行为||网络恶意行为

  if自启动&&控制流稳定

  报警;

  exit;

  else

  可能是者、木马等其他恶意代码;

  end if

  else

  什么都不做;

  end if

  2.1 系统行为监控算法设计

  根据上面的分析,本节给出系统行为监控算法,算法中BotBehavior变量记录恶意行为数,X0是根据实践预定义的阈值。恶意行为累计达到一定的阈值时,则标记为系统恶意特征。系统行为监控算法如下所示:

  输入:Windows操作系统某一进程和该进程接收到的网络数据

  输出:报警信息(也可无报警)

  过程:

  BotBehavior=0;    //初始化时,僵尸行为数为0;

  SelectAPI 1=AutoAPISet;//APISet是一些自启动行为必须调用的系统函数

  SelectAPI 2=MalAPISet;//APISet是一些恶意行为必须调用的系统函数

  X=X0;            //给判定阈值赋初值

  while进程为终结

  捕获该进程的系统调用call;

  if call 属于SelectAPI1

  报警自启动

  else if call 属于SelectAPI2

  if call 的参数是接收自网络的数据

  BotBehavior ++;

  end if

  end if

  if BotBehavior>=X

  报警系统恶意行为;

  exit;

  end if

  end while

  2.2 网络行为监控算法设计

  控制流的稳定性是判定僵尸网络的一个重要依据。基于参考文献[6]中提出的稳定性思想,本节设计了一个改进的流量稳定性衡量方法。

  2.2.2 稳定性检测算法

  3 算法评估

  以提出的混合式僵尸主机检测算法为基础,设计并实现了一个检测原型系统——BotScout。BotScout运行在Windows操作系统上,主要由函数调用监控模块、系统行为监控模块、污染传播监控模块和网络行为监控模块组成,总体架构如图1所示。

  系统函数对监控模块的调用基于Microsoft Detours 2.1 Express设计,根据监控的功能,系统把拦截的Win32API函数分为系统行为函数、污染传播函数和网络行为函数三大类。

  (1)系统行为监控模块。僵尸程序经常把自己注入到其他进程中以躲避杀毒软件和防火墙的拦截,因此如果某个进程注入代码到其他的进程,则监控被注入进程的行为。僵尸程序为了实现自启动必须修改特定的注册表项或者一些特定文件,而窃取系统的敏感信息也是通过访问特定的文件、注册表、键盘消息实现,监控这些函数的调用就可以发现此类恶意行为。

  (2)污染传播监控模块。为检测僵尸程序“可控性”,算法对接收到的网络数据进行监控。网络数据监控发生在网络接收时,这些接收到的数据称为脏数据,算法持续跟踪脏数据:当脏数据写入新的内存空间时,跟踪写入过程,把新的内存区的数据标识为脏数据,并将其加入到脏数据链表中。监控污染的传播相当重要,否则会发生漏报。其实,还有一些函数也会起到污染传播的作用,例如把某个内存内容转化为数值的函数、大小端转化函数,还有一些加密、解密、压缩、解压缩的函数等;并且许多内存拷贝函数是inline或者静态链接在文件中的,在原型系统BotScout中暂不考虑这些函数,这也是下一步重点工作之一。

  (3)网络行为监控模块。如何有效地分离控制流和行为流是这个模块的一个难点。僵尸程序启动后自动与C&C信道建立连接,因此标记起始建立的网络连接为控制流,并在整个进程检测周期中对相同协议的网络连接进行统计,分析其稳定性;僵尸主机本质上是控制流驱动行为流,因此如果一个新的网络连接建立过程中地址绑定参数使用了控制流接收到的数据,则标记这个新连接为行为流,并对内容进行分析。

  3.1 测试环境

  由于僵尸网络范围非常广,在实际应用中将整个僵尸网络中的所有节点检测、追踪出来是不可能的,所以僵尸网络检测一般是检测出网络中的部分节点。本文的试验和检测环境为安装有检测系统的局域网,检测对象为局域网内部的主机节点。

  BotScout运行在单台终端系统上,系统测试拓扑如图2所示。测试主机通过交换机连接在一起,经过边界路由、防火墙与互联网通信,所有流量控制在此测试环境内,不会对其他主机产生影响。

  共有6台测试机,分别对应6个样本,每台运行120 min。这6台测试机的运行环境为Windows XP SP3,配置为2CPU Intel(R) Core(R) 2.0 GHz、2 GB内存,100 MB网卡

  3.2 测试结果

  本实验选择了两类样本程序:(1)僵尸程序样本。实验选择了SDBot、AgoBot和SpamThru三种不同控制协议的僵尸程序;(2)正常网络应用程序样本。实验选择了经典的IRC聊天工具mIRC,热门的网页浏览器Internet Explorer和流行的P2P软件eMule。对实验数据进行横向测试,结果如表1所示,僵尸程序样本都能在较短的时间内被检测出来,而正常网络应用程序在整个运行周期内都没有报警。

  在充分研究僵尸主机的行为特点以及僵尸网络命令与控制信道的特性后,提出了一种综合系统行为与网络行为的混合式僵尸主机检测算法,并对现有的僵尸网络行为稳定性衡量方法进行了改进。基于该算法设计实现了一个僵尸主机检测原型系统BotScout,并对这个系统的性能进行了测试。实验结果验证了算法的可行性、有效性和准确性。


  

参考文献:

[1]. IRC datasheet https://www.dzsc.com/datasheet/IRC_1942824.html.


版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!