BotMiner阅读笔记

基本概念

  • 僵尸网络

  僵尸网络是目前互联网中存在的最严重威胁之一。僵尸网络是由受恶意软件影响的主机组成的网络,通常被用于分布式拒绝服务攻击(DDoS),或是类似垃圾邮件、网络钓鱼、等欺诈性活动。

  C&C通道是僵尸网络的核心组件,攻击者通过C&C通道与受控主机通信,协调各受控主机工作,实施网络攻击。这种类型的僵尸网络称为集中式僵尸网络。

  由于以C&C服务器为核心的集中式结构存在单点故障的问题,而且针对该结构通信模式的检测方法日益完善,P2P结构的僵尸网络开始被使用。攻击者通过向P2P网络中发布命令文件来发布命令,受感染主机在网络内频繁地和邻居主机通信,以便第一时间获取命令。

在这里插入图片描述

  本文所检测的僵尸网络定义为:通过C&C通道控制的一组协调工作的恶意软件实例。

  “恶意软件”指控制主机执行恶意活动的软件。从大量真实数据中观察可以发现,基于IRC协议的僵尸网络中,53%网络的攻击指令与扫描有关,通过扫描可以传播恶意软件本身或者进行DDoS攻击;14.4%网络与二进制恶意文件下载有关;大多数的基于HTTP通信的僵尸网络和P2P结构的僵尸网络多用于发送垃圾邮件。

  “受控”是指这些受控主机都需要从C&C服务器或许活动命令。

  “协调工作组”是指僵尸网络中包含多个计算机,并且执行相似或相关的C&C通信行为和恶意活动。

  本文将僵尸网络的行为分两个角度衡量:谁和谁通信,谁正在做什么。基于这两个角度分别从C平面(通信)和A平面(活动)对网络内主机进行聚类,再通过两个平面聚类的结果交叉分析,得出最后的僵尸网络推测。

研究现状

1.使用蜜罐技术

  为了收集和分析恶意软件,研究人员广泛使用蜜罐技术。

  Nepenthes等人提出一个特殊的蜜罐用于自动收集恶意软件样本。Rajab等人通过采用多方面方法收集跟踪僵尸网络,对当前流行的僵尸网络进行了深入研究。

2.最近提出的方法

  Reiter和Yen提出一个TAMD系统,该系统通过聚合拥有相同目标且携带相似负载的流量来检测恶意软件。Rishi是一个基于签名的IRC僵尸网络检测系统,它可以匹配已知的IRC僵尸网络常用名称。Binkley和Singh提出一种结合IRC统计与TCP权重来检测基于IRC的僵尸网络。

  这些系统大多限定于特定僵尸网络协议和结构,许多仅适用于IRC网络,为了补充现有的方法,本文提出一种摆脱协议和结构限制的框架。

系统设计与实现

在这里插入图片描述
  BotMiner主要由五个部分组成:

  • C平面监视器:部署在网络边缘,检查网络内外的通信流量;
  • A平面监视器:部署在网络边缘,检测网络内部主机的可疑活动;
  • C平面聚类和A平面聚类:从原始日志中提取许多特征,并采用相应的聚类算法进行聚类,以找出具有相似通信/活动行为的计算机组;
  • 跨平面联合分析:将C平面聚类和A平面聚类的结果关联分析,得出最终可疑僵尸网络的推测结果。
1.C平面监视器

  C平面监视器捕获网络中的流量,并记录其中与“谁和谁通信“相关的信息。关注的数据包的信息有:时间,持续时间,源IP,源端口,目的IP,目的端口,包的数量与字节数量。

2.A平面监视器

  A平面监视器捕获网络中的流量,并记录其中与“谁在做什么”有关的数据流量。A平面监视器分析受监控网络内部向外部发出的流量,以检测内部主机可能执行的恶意行为,如扫描、发送垃圾邮件、二进制文件下载、漏洞注入尝试等。

  A平面监视器是基于Snort构建的,本文将现有的入侵检测技术输入Snort作为预处理插件或检测特征。其中,对于检测扫描活动,本文改编了BotHunter中的SCADE(Statistical sCan Anomaly Detection Engine),主要使用了其中的abnormally-high scan rate和weighted failed connection rate两个规则;对于检测垃圾邮件相关的活动,本文制作了一个Snort的插件,专注于检测同源IP的异常DNS查询数量,以及同源IP多次向外部SMTP服务器发送信息的行为;对于检测二进制文件下载行为,本文使用一个类似PEHunter和BotHunter的方法,可以使用BotHunter中的规则进行检测。

  但需要注意的是,A平面监视器无法直接检测出僵尸网络,因为监视器设计的相对宽松,仅仅针对行为进行信息提取,不对行为的善恶进行辨别。

  由于A平面监视器是基于Snort框架构建的,于是可以动态地向其中添加新的检测方法或匹配规则。

3.C平面聚类

  C平面聚类从C平面监视器获取日志,再从日志中找出具有相似通信模式的计算机簇。聚类流程图如下所示,可以看到对于流量记录,首先经过三次过滤后进行初次聚类,然后进行特征提取,减少使用的特征数量后首先进行一次粗聚类,对于粗聚类的结果再进行一次细聚类,最终得到聚类结果。
在这里插入图片描述
  1)三层过滤

  通过过滤可以很好地减少后续聚类任务的工作量,过滤分为三层,前两层属于基础过滤,第三层是基于白名单的过滤。

  • F1 : 过滤掉网络内部主机之间相互的通信流量与外部主机主动发起向内部主机的通信流量
  • F2 :过滤掉未成功建立连接的流量包
  • F3 : 根据Alexa.com上的US前100热门网站与全球前100热门网站,过滤掉与这些知名网站的通信

  2)基本聚类

  本环节将相关流量聚合为一个C流。聚合方法为,将给定时间段E内的,拥有相同源IP、目的IP、目的端口以及协议的TCP/UDP流量,聚合为一个个表示“谁与谁通信”信息的组 C i = ( f j ) j = 1... m C_{i}=(f_{j})_{j=1...m} Ci=(fj)j=1...m

  3)特征提取与矢量化

  为了方便后续的聚类算法,需要先对流量进行矢量化。本文从C流中提取多个统计特征,用一个d维向量存储这些特征来表示每一C流。

  考虑四个参数的分布:

   fph,the number of flows per hour,每小时产生的流量

   ppf, the number of packets per flow,每个流中包含的数据包数量

   bpp,the average number of bytes per packets,数据包平均字节数

   bps,the average number of bytes per second,每秒平均字节数

  得到这四个方面统计数据的整体离散分布后,使用分位数将数据划分为13个区间: q 5 % , q 10 % , q 15 % , q 20 % , q 25 % , q 30 % , q 40 % , q 50 % , q 60 % , q 70 % , q 80 % , q 90 % q_{5\%}, q_{10\%}, q_{15\%}, q_{20\%}, q_{25\%}, q_{30\%}, q_{40\%}, q_{50\%}, q_{60\%}, q_{70\%}, q_{80\%}, q_{90\%} q5%,q10%,q15%,q20%,q25%,q30%,q40%,q50%

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值