A fully scalable big data framework for Botnet detection based on network traffic analysis 研读报告 | 刘广睿的思维实验室
0%

A fully scalable big data framework for Botnet detection based on network traffic analysis 研读报告

中文译名“可扩展的僵尸网络流量检测大数据框架”。本工作由S.H. Mousavi等人完成,于2019年发表于Information Sciences。

Abstract

传统僵尸网络检测方法受限于系统可接受的网络带宽,无法满足Gbps级的网络需求。因此在数据收集、存储、特征提取和分析方面都存在瓶颈。本文提出了一个可扩展的大数据框架,可对僵尸网络检测系统中每个组件进行扩展。框架可用于任何僵尸网络检测方法,包括统计方法、机器学习方法和基于图的方法。实验结果表明本框架可在一个真实网络环境中实现5Gbps的吞吐量和5000万个IP地址访问。框架运行时间随着输入数据的增长呈对数上升。

1. Introduction

当前互联网应用的规模快速增长,网络安全威胁加剧,这使传统网络安全方法逐渐失效。如今僵尸网络是最严重的网络安全威胁之一,每个僵尸网络由分布在整个互联网上的受感染主机网组成。每个感染主机(Bots)都由僵尸网络的管理者(Botmaster)通过代理软件控制,两者之间的通信被称为命令与控制通道(C&C通道)。

2. Related word

可扩展性是僵尸网络检测方法面临的重要挑战之一,但目前没有工作实现了在高速网络带宽的可扩展性,即同时实现数据处理与存储的可伸缩性。

3. Proposed scalable big data framework for botnet detection Scalability(可扩展的僵尸网络检测框架)

在检测僵尸网络的整体过程中,即从网络嗅探到数据收集到特征提取最后到部署分析算法(如机器学习、基于图的分析、基于统计的分析等)都必须考虑数据量的可伸缩性。图1显示了该框架的总体架构,该框架可以从被监控的网关手机数据,进行被动分析。也可以部署在大型ISP或拥有大量网络用户的企业级组织。
图 1: 僵尸网络检测框架

3.1 网络流量处理模块

该模块对网络流量进行处理,根据需求从接受到的流量中提取原始网络数据。这里配置了一些常用的僵尸网络检测数据获取工具,包括DNS流量提取器、Http流量提取器以及NetFlow流量提取器。所有工具必须以符合整体处理流程的速度处理数据,并且每个工具并行处理输入的流量。这个模块中的工具可以选取一些常见的并行网络流量处理工具,如PFring[1]与Nprobe2。另外如Napatech[3]等专为高速网络流量开发的高性能硬件也可于此模块部署。

3.2 可伸缩的队列模块

第二个模块任务是同步数据的生产者和消费者。由于有许多数据生产者和消费者并行处理原始数据,因此该模块提供了一个分布式队列系统来进行协调。在此模块的协助下,即使后续模块没有准备好或发生拥塞,框架的可用性也不会受到影响。网络上可能分布着许多数据生产者传感器,每个传感器只处理整个网络的一部分,并将原始数据发送到一个队列系统中。此模块将在一个列队中聚合所有原始数据,并为下一个模块中的并行处理提供基础设施。这个模块可以使用Apache Kafka[4]和Redis[5]等分布式队列系统。

3.3 流处理模块

队列模块就像一个枢纽模块,不需要任何处理就可以接收和保存原始数据。而流处理模块需要将所有接收到的数据统一处理并存储在一个可伸缩的数据结构中。其主要有一下两个任务:首先,它需要处理接收到的数据,然后进行清理和解析,最后将它们存储在一个可扩展的大数据存储系统中(如HDFS)。其次,它需要根据检测方法提取特征,为后续的分析模块做准备。

3.4 大数据平台

检测APT和复杂僵尸网络需要在大时间窗口中存储和处理网络行为。因此我们选取Hadoop平台进行数据存储与处理,Hadoop本身具有可扩展性。值得注意的是,数据存储格式和压缩方案对其它模块性能有很大影响,通常大数据处理的瓶颈是I/O和数据从硬盘到主存的传输速度。数据压缩可以有效降低主存与磁盘之间的数据交换。由于僵尸网络流量都是结构化数据,需要进行多次聚合和统计操作,因此这里选择柱状存储格式。Apache Parquet可实现结构化、柱状存储并支持多种压缩编解码器[6]。在这种架构下,可能有许多消费者进程,其中每个进程都处理输入记录的一部分,并将预处理和解析后的数据存储到HDFS parquet文件中。

3.5 分析模块

根据输入数据选择最佳的存储格式与压缩方法,将预处理并格式化后的数据存储在可扩展的大数据平台上。分析模块还要为各种不同的僵尸网络检测方法提供工具与基础设施。

4. Experimental setup and results

采用Bilge等人提出的Disclosure模型[7]测试评估本框架。改模型是使用基于NetFlow特征的机器学习算法检测C&C服务器,具体步骤如下:

  1. 环境部署
  2. 收集并导入NetFlow数据
  3. 基于特征的检测算法
  4. 基于特征的NetFlow
  5. 基于hive和用户自定义功能提取特征
  6. 准备训练和测试数据集
  7. 使用SparkML部署机器学习算法

5. Experimental results

实验主要目的是评估框架可伸缩性以及在C&C服务器检测中的效果。实验验证本框架在数据收集、存储、特征提取和机器学习算法四个阶段都可以提供可扩展性,并且发现了网络检测最复杂的阶段是特征提取。

6. Conclusions

近年来,随着网络规模和僵尸网络复杂性的增长,僵尸网络检测安全策略的可扩展性称为主要挑战。目前为止,已发表的研究还没有提出有效的解决大型网络的可伸缩性部署的解决方案。本文为此问题提出了一个完整的策略框架,但也存在缺点。框架安装需要充足的计算资源,小型企业负担不起,云服务提供商为大数据部署提供计算基础设施或许称为可能。

References

  • [1] S. Gallenmüller , P. Emmerich , F. Wohlfart , D. Raumer , G. Carle , Comparison of frameworks for high-performance packet IO, in: Architectures for Net- working and Communications Systems (ANCS), 2015 ACM/IEEE Symposium on, IEEE, 2015, pp. 29–38 .
  • [2] L. Deri , N. SpA , nProbe: an open source netflow probe for gigabit networks, in: TERENA Networking Conference, 2003 .
  • [3] Napatech, Zero Packet Loss, 2016, http://www.napatech.com/ .
  • [4] N. Garg , Apache Kafka, Packt Publishing Ltd, 2013 .
  • [5] J.L. Carlson , Redis in Action, Manning Publications Co., 2013 .
  • [6] D. Vohra , Apache parquet, in: Practical Hadoop Ecosystem, Springer, 2016, pp. 325–335 .
  • [7] L. Bilge , D. Balzarotti , W. Robertson , E. Kirda , C. Kruegel , Disclosure: detecting botnet command and control servers through large-scale netflow anal- ysis, in: Proceedings of the 28th Annual Computer Security Applications Conference, ACM, 2012, pp. 129–138 .
  • [8] A fully scalable big data framework for Botnet detection based on network traffic analysis

- - - - - - - - - - - - - - - - 本 文 结 束 啦 感 谢 您 阅 读 - - - - - - - - - - - - - - - -