Systematic Mining of Associated Server Herds for Malware Campaign Discovery(SMASH)阅读笔记

基本概念

1. 恶意软件

  恶意软件是互联网上存在的重要威胁之一。2012年以来,基于Web的攻击数量增长了近三倍,75%的恶意软件使用HTTP协议进行攻击和通信。

  恶意软件使用HTTP协议作为传播和攻击的媒介的原因:
  1. 大多数网络都使用HTTP协议,因此恶意软件使用HTTP协议传播更容易感染受害者,使用HTTP协议通信更方便;
  2. 现行网络存在大量的正常HTTP通信包,恶意软件的流量可以很容易隐藏其中;
  3. 大多数HTTP请求使用域名查找服务器,恶意软件可以通过使用Fast-Flux来避免IP屏蔽或者隐藏自己。

2. 恶意软件的通信行为与攻击行为

  通信行为指恶意软件与其服务器的通信;攻击行为指恶意软件针对良性服务器的攻击。
在这里插入图片描述
​  在上图所示的通信行为(a)中,两个客户端向多个C&C域名服务器利用login.php发送HTTP请求。恶意软件通常使用类似的域名机制来避免检测,它们实际上共享同一IP地址。这里的所有C&C域名服务器构成一个恶意活动群体。

  上图所示的攻击行为(b)是一个ZmEu扫描攻击活动,两个客户端在利用已知的代码注入漏洞扫描七个良性服务器的setup.php。在这个事例中,客户端扫描phpAdmin的默认路径来尝试注入,这些良性服务器上都有目标文件setup.php。这七个目标良性服务器共同构成了一个恶意活动群体。


研究现状

  现有的检测工作主要针对恶意行为,包括依赖于签名、客户端行为的模式匹配和对于某个服务器的监督学习。

  对于一个普通的服务器来说,普通用户的行为与恶意软件有明显区别。对于普通的服务器来说,提供许多不同的script或页面供用户访问,用户倾向于访问不同页面,执行不同的操作。然而恶意的服务器是为了明确的目的搭建的,如恶意软件下载,它只需要少数几个明确的script和页面来处理被感染机器的请求。本文发现在同一类型的恶意行为中,服务器之间存在一些关联。例如,它们尽管拥有不同的域名但是有相同的IP地址,或者它们的域名由同一机构在相近的时间注册。

1.基于DNS的恶意软件检测

  Antonakakis和Bilge等学者提出,使用不同的域名特征来评估单个域名的可靠程度的方法,如顶级域名的数量、与域名相关的恶意软件样本数量和域名请求数量的变化等。但是这些检测方法无法检测攻击涉及到的服务器,并且需要使用恶意域名的种子来训练检测系统。 Antonakakis还提出了一种针对由DGA生成的恶意域名的检测方法,这个方法对于其他恶意域名生成方法则不适用。Kopis方法可以被用于检测一般的恶意域名,但它需要监测DNS上层结构中的流量,限制了它的应用领域。

2.基于签名的恶意软件检测

  Nelms和Perdisci等学者提出了基于签名的恶意域名检测方法,通过提取恶意软件流量中的签名再将签名应用于实时网络监测中。Perdisci提出一个将恶意软件请求样本进行聚类,生成结构特征的检测系统,生成的结构特征用于在实时网络中检测被感染的主机。Gao研究服务器之间的时间关系来推测那些容易出现在种子域名中的恶意域名。Li研究了恶意软件服务器之间的拓扑结构,能够从一小组种子服务器推断出其他的恶意服务器。但是上述方法的性能都局限于恶意域名种子,因此不能够用于检测新的、未知种子的恶意软件活动。

3.基于集群的恶意软件检测

  基于集群的检测技术在垃圾邮件和恶意软件的检测方面也有广泛应用。Zhang提出了一种利用普通服务器之间的关系来检测垃圾邮件的方法。近期,Invernizzi提出了一个检测恶意软件分发网络的系统,该系统使用了四种技术来对候选连接分组,再使用邻接图来进一步降低误报。Stringhini提出了一种通过HTTP重定向设置来检测恶意网页的方法,该方法首先根据TLD、域名、页面、IP、和参数的不同组合对URL进行分组,再使用28个特征对这些分组进行分类。上述检测系统的缺陷在于,要么需要针对特定的攻击渠道,如论坛垃圾邮件、HTTP重定向、恶意软件分发网络,或者需要庞大且富有多样性的用户群,这些需求限制了检测方法的实用性。

4.其他检测方法

  Gu等人提出了一种通过客户端主机上寻找类似网络行为的基于异常的僵尸网络检测体系,该系统将拥有相同异常模式的一组机器判定为僵尸网络。

  Yen等人提出了一种在有相似操作系统的内部主机之间通过聚合有共同的目的地址或拥有相似载荷的流量来检测恶意软件的方法。

  上述工作都基于感染相同木马病毒的主机拥有共同的C&C通信模式,因此都通过分析客户端之间的关系来判断感染木马的主机。


系统设计与实现

  相关服务器集群的系统挖掘(Systematic Mining of Associated Server Herds,SMASH)的主要目的是通过检测网络范围内的HTTP通信来检测参与恶意活动的服务器集群。其中恶意活动包括向良性服务器通过HTTP协议发起攻击和恶意服务器之间通过HTTP进行的通信。不同于前文提到的独立研究单个服务器的方法,本文提出的检测方法研究存在相似行为的所有服务器之间的不同关系。本文将这些参与同一恶意行为的所有服务器称为一个恶意活动群体。

  SMASH的架构如下图所示。SMASH以HTTP网络流量作为输入,包含五个组件,分别为流量预处理、ASH挖掘、ASH关联、筛选和恶意活动群体推测。
在这里插入图片描述

1.流量预处理

  流量预处理的目的是筛选输入流量,减少SMASH需要处理的流量。筛选过程分为两步。

  首先,假设拥有相同二级域名的域名属于同一群体,例如 a.xyz.com.cn和b.xyz.com.cn均属于xyz.com.cn,基于服务器的角度,这二者可以认为是一个服务器,不做区分。一些CDN(Content Delivery Network)网络服务器和云服务器会因此被认为是一个服务器,例如Facebook的CDN服务器都会被聚合为"fbcdn.net";亚马逊的云服务器被聚合为"amazonaws.com"。按照这个聚合方案,可以减少60%需要处理的服务器。

  随后根据域名的声誉将知名的域名默认为良性服务器不作为后续检测的目标,本文将服务器的声誉定义为与其通信的客户端数量,通过利用客户端的请求来将公共服务器从输入列表中移除。在这里利用逆文本率(IDF)来筛选公共服务器的声誉值,将IDF的筛选阈值设置为200,这个阈值非常谨慎地仅仅将非常热门的服务器过滤,留下了99%的服务器。

  经过上述两个步骤后,输入流量减少了58.6%。

2.相关服务器集群挖掘

  ASH的目的是找到在同一恶意活动群体中密切相关的服务器集群。在此,本文定义了一个主要维度和三个次要维度来描述服务器之间的关系,并且系统地挖掘相关服务器集群。尽管每个维度自身生成的相关服务器集群不能够区分恶意活动群体和良性服务器,但是多个维度的结果相关联后更有可能发掘出恶意活动群体内的服务器集群。

  按照各个维度的特征提取,将服务器以特征向量的形式表示,以此聚类,寻找相似的服务器。由于恶意活动群体在不同维度上聚类的结果中被选出来的服务器会不同,所以很难给每个维度赋予唯一权重。为了解决这个问题,本文使用客户端相似度作为主要维度,因为同一恶意活动群体的恶意服务器的客户端往往相似(但不是相同),这样既可以抵御攻击者的混淆手法在各个维度特征造成的影响,又可以实现更可靠的聚类分组。每个次要维度从特定的角度来表征不同服务器之间的关系。本文设计的SMASH是一个可拓展系统,当发现了新的感兴趣的维度时可以将其添加到新的维度中。

  1)主要维度

  本文使用客户端相似度作为主要维度,两个服务器之间的客户端相似度取决于与它们连接的客户端的交集。定义服务器Si和Sj之间的客户端相似度计算公式为:

   C l i e n t ( S i , S j ) = ∣ C S i ∩ C S j ∣ ∣ C S i ∣ ∗ ∣ C S j ∩ C S i ∣ ∣ C S j ∣ Client(S_{i},S_{j})=\frac{|C_{S_{i}} \cap C_{S_{j}}|}{|C_{S_{i}}|}*\frac{|C_{S_{j}} \cap C_{S_{i}}|}{|C_{S_{j}}|} Client(Si,Sj)=CSiCSiCSjCSjCSjCSi

  其中, C S i C_{S_{i}} CSi表示与服务器 S i S_{i} Si连接的客户端集合,比值 ∣ C S i ∩ C S j ∣ ∣ C S i ∣ \frac{|C_{S_{i}} \cap C_{S_{j}}|}{|C_{S_{i}}|} CSiCSiCSj<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值