来源:《Survey of Approaches and Features for the Identification of HTTP-Based Botnet Traffic》,Acarali, D., Rajarajan, M., Komninos, N. & Herwono, I. (2016). Survey of Approaches and Features for the Identification of HTTP-Based Botnet Traffic. Journal of Network and Computer Applications, doi: 10.1016/j.jnca.2016.10.007
2、基于http的僵尸网络的行为
2.2行为和观察到的流量
当bot通过生命周期进行时,它将执行不同的任务。每个步骤都应该生成流量,这些特性反映了机器人想要实现的目标。本节提供了可能在生命周期的每个阶段都可以观察到的流量特性。
2.2.1传播行为
僵尸网络通过对脆弱系统的感染积累资源。基于http的机器人二进制文件通过传播载体(例如驱动器)传播给受害者。Asprox,由Borgaonkar(2010)观察),垃圾邮件和社会工程(例如KoobFace,由thomas&nicol(2010)报道),以及按次付费的活动(例如:DirtJumper,由Andrade & Vlajic(2012)报道)。一个被执行的僵尸二进制文件将开始在主机系统上进行修改,以使自己变得模糊。一些可能触发二次注入,联系一个嵌入的目标,从中下载额外的配置文件(Silva et al., 2013)。感染过程的具体动态在不同的产品、传递载体和运动之间有所不同。这些复杂性使得很难将僵尸感染与其他类型的恶意软件区分开来。因此,传播行为被认为超出了我们的工作范围。我们认为这是一个更大的话题,值得单独研究。
2.2.2集结的行为
已经成功感染了受害者的机器人将试图集合到相关的C&C服务器上。这一过程可能会在机器人的一生中多次重复,原因是重新启动主机(Silva et al., 2013)或具有变化域或ip的服务器。为了建立初始连接,一些僵尸使用一个域列表进行二进制文件编码,它们将试图解析这些域(例如,Rahimian et al.(2014)所研究的Citadel)。或者,可以实现域生成算法(DGA)。(据Sood et al.(2014)报道,在宙斯、Citadel和ICE1X中可见)。DGAs得到一个种子值,并自动生成“伪随机”域名的集合。机器人和botmaster都必须使用相同的种子来匹配它们的结果(Sood et al., 2014)。这增加了一层混淆,为注册域名提供了一种伪装(其中只有少数)。DGAs还允许使用另一种模糊技术,称为域fluxing, C&Cs经常切换它们的域名(Sood et al., 2014)。另外,僵尸网络可以使用fast-fluxing,从而使服务器的IP地址进行转换。
2.2.3交互行为
一旦建立了与C&C的成功连接,僵尸就可以共享和接收来自botmasters的数据。在一些僵尸网络中,新成员需要注册C&Cs(例如,在他们的第一个HTTP请求中包含一个15位数字的识别号码,由Andrade & Vlajic(2012)报道)。对于命令传播,基于http的僵尸网络使用基于拉的方法,成员必须发起自己的连接,并持续轮询C&Cs进行更新。Asprox (Borgaonkar, 2010), dirt(Andrade & Vlajic, 2012)和Zeus (Binsalleeh et al., 2010)都显示了这种轮询行为。这样做的好处就是周边的控制措施,比如防火墙都被绕过了。大多数防火墙允许HTTP端口上的传出连接,用于标准web流量的80或443。从C&Cs接收到的数据可以包括配置文件、更新(用于维护目的)或攻击指令(例如,Asprox机器人可以接收JavaScript文件进行下载,Borgaonkar(2010)报道)。机器人也可以将数据发送回服务器,包括运行攻击的日志信息(Farina et al., 2016)或者从受害者节点获取的用户个人信息。
2.2.4攻击行为
僵尸将根据所收到指令的性质进行攻击。基于http的僵尸网络已经被观察到进行各种攻击活动,包括DDoS(例如BlackEnergy, Shiaeles等人(2012)),web注入和浏览器攻击(例如,Zeus和Citadel (Sood et al., 2014)), SQL注入(例如Asprox, Borgaonkar(2010)),以及其他许多。产生的流量将自然地取决于攻击的性质。
表1提供了一些报告的bot行为和由它们生成的相应通信量的摘要。
3、基于http的僵尸网络流量的特征和识别。
基于http的僵尸网络产生的流量是其潜在行为的特征。因此,基于这种理解建立现有的基于网络的检测方法,以区分良性和恶意的流量。在本节中,根据他们旨在识别的流量类型来调查针对(或适用于)基于http的僵尸网络的当前检测方法。
3.1识别集结流量
Sharifnya & Abadi(2013)研究了像Kraken这样的domain-fluxing僵尸网络的集合行为,并提出了一个识别使用DGAs的声誉系统。僵尸预计会生成一些域名,每个域名都将被查询,直到一个可以被解决。系统根据相似度对DNS查询进行分组,然后检查它们的域,这些域似乎是由算法生成的。对于一系列的观测时间窗口,他们提取这样的主机,a)查询其中一个域和b)生成大量的查询失败。然后将这两个属性组合起来计算主机的负信誉评分。在多个时间窗口中出现的主机,或者作为一个组的一部分,被认为更可疑,并且得分更高。
domain-fluxing也是Schiavoni等人(2014)的焦点,他提出了一个名为Phoenix的系统。他们通过遵守语言规则(描述为可发音的)来建立良性域。DNS流量中的恶意域名使用黑名单进行标识,并提取与这些域相关的查询。域和它们的流量使用半监督学习方法,用于识别与良性模型是否匹配。期望DGAs生成的域是随机的,因此并不是由真实的单词组成的。然后,Phoenix通过它们的ip映射集群化了恶意域。每个集群都被假定为一个单一的算法,因此被用来生成底层DGA的指纹。作者使用指纹进行检测,并在对诸如Torpig和SpyEye等僵尸网络的DNS流量进行测试时报告良好的结果(Schiavoniet al., 2014)。但是,他们注意到这种方法对未注册的域无效,而且是特定于语言的。因此,来自另一种语言的域名可能会导致误报(Schiavoni et al., 2014)。
3.2识别控制流量
bot和C&Cs之间的通信周期特性被大量用于检测交互行为。Wang等人(2010)声称机器人应该是自动的和系统的、重复的、具有规则间隔的行为集合。基于此,他们将C&C流量描述为在机器人和他们的服务器之间交换的一系列类似的周期性HTTP消息。集群用于在TCP会话中发现统计相似的流,不包括不完全握手或空有效负载。将包含周期性行为模式的集群压缩为签名,以便在将来的探测中使用。在对Kraken、Zeus和BlackEnergy进行测试时,作者发现每个恶意软件家族都有类似的周期模式,这表明它甚至可以区分来自不同僵尸网络的流量。这种方法的主要缺点是,显示随机通信模式的僵尸网络可能会被忽略。
Soniya & Wilscy(2013)将正常的HTTP流量描述为“bursty”,意思是在短时间内将大量的连接发送到相同的目的地。根据他们的研究,僵尸网络流量(按照计划和自动方式生成)应该随着时间的推移更加均匀地分布。他们提出了一种检测方案,该方案通过流动时间和大小的规律性来确定C&C通信。从正常的和僵尸网络的流量中提取流量(从BlackEnergy和Zeus的样本中收集),并按目标目的地进行聚合。然后计算了流量大小和流量时间的熵值,用于训练神经网络分类器。尽管只使用流级分析,作者报告了良好的检测结果(97.4%检出率,假阳性率为2.5%)。他们认为,使用白名单可以减少误报(主要由软件升级引起)。
Etemad & Vahdani(2012)采用了类似的方法,将僵尸网络进行集中检测。像Wang et al.(2010)一样,他们通过定期的HTTP消息来识别C&C流量。他们强调,从一个事务到另一个事务没有任何连接,所以僵尸不断地建立新的连接来检索命令。该系统使用协议分析程序从网络数据中提取HTTP流量,然后识别主机已经GET、POST或HEAD请求的交换,服务器已经做出响应。然后使用一个HTTP分析器来确定类似消息中周期性重复的级别。消息相似性不是通过检查整体的数据包,而是通过观察每个包的开头(即第一个字节序列)来确定模式或关键字。然而,正如作者所指出的,这一工作也受到了一个事实,即随机的HTTP机器人流量很可能不会被检测到。
另一个问题是由流量引起的假阳性的数量,这是良性的和周期性的。Eslahi等人(2013)提出了一种解决这一问题的方法,以及检测行为的随机模式。根据僵尸网络活动的典型特征,他们定义了一个HAR(高访问率)和LAR(低访问率)过滤器。实际上,这些过滤器的设计目的是为可疑的周期性提供上界和下界。当应用到web流量时,HAR过滤器删除了被认为太频繁的HTTP连接,因此很可能是由自动化的软件更新生成的。与此同时,LAR过滤器消除了由僵尸产生的周期性HTTP连接(Eslahiet al., 2013)。其结果是区分了良性和恶性的周期性。作者报告说,该方法成功地减少了数据量(删除了原始测试包的99.6%),但是错误的结果仍然是由重复的用户行为引起的。他们建议通过将用户代理字段作为一个特性(Eslahi et al., 2013)来解决这个问题,不过如果僵尸网络使用HTTPS,这将是无效的。
Eslahi等人(2015)再次探索了周期性的水平。在这项工作中,作者旨在更好地描述最有可能与僵尸网络相关联的周期性流量类型。它们通过消息相似性提取具有GET或POST请求和组的HTTP流量。僵尸网络流量然后确定使用三个指标:周期性因素(PF)捕获重复,绝对的频率范围(RF)捕获事件的频率,和时间序列因子(TF)捕获事件分布。根据作者的观点,僵尸网络流量的事件应该在多个时间窗口中重复,生成一个统一的次数,并且在相同的时间间隔内被观察。这证明了僵尸的自动化系统特性。然后,使用决策树将每个度量的值组合起来,给流量一个最终的周期性分类。这项工作通过对周期性的僵尸网络流量给出一个更清晰的定义来改进其他的工作。然而,假阳性会再次报告,作者得出结论认为,为了获得更好的结果,应通过其他措施来补充周期。