谢添丞,吴凌淳,林羽丰,高瑞玮,杨国平,彭钰寒,冉黎琼,韩 楠
(1.成都信息工程大学 软件工程学院,四川 成都 610225;2.成都信息工程大学 管理学院,四川 成都 610225)
网络流量监控和分析(Network Traffic Monitoring and Analysis,NTMA)主要目的是了解互联网服务对日常生活的影响。NTMA的主要功能是提供网络流量视图及检测网络异常,并且为监控系统提供网络流量统计信息。NTMA应用范围广泛,能够保证网络服务稳定运行。通过收集关于流量工程和故障排除的历史数据来维持网络稳定运行,并找出网络故障的根本原因。
流量监控与分析是一项复杂的工作,NTMA应用也面临着许多严峻挑战,如庞大的通信量、极高的传输速度、网络流量数据源的复杂性、采集网络流量数据方法的多样性。随着网络结构复杂程度的不断上升,设计多样性的分布式应用程序变得困难,并需要高效的网络服务运行机制在线分析大型流量。存储成本的降低使得创建大规模的历史数据集进行回顾性分析更容易被实现。
大数据说法最早出现在流量监测和分析,从数据的信息量、传输速率、多样性以及准确性中提取出有价值的信息是大数据的目的,也是现在大数据面临的挑战。
当今学者常将大数据技术应用于NTMA[1],如分布式文件系统的Hadoop(HDFS)、大数据平台的Spark和Hadoop、分布式机器学习和图形处理引擎MLlib和Apache Giraph。这类技术为应用程序处理复杂的数据集,但不确定其是否充分利用并发掘了新兴大数据技术的潜力。本文基于大数据方法的NTMA应用网络以往研究成果的案例,讨论了NTMA在大数据技术方面的开发程度,并介绍了目前大数据技术在NTMA应用中遇到的挑战。
通过介绍近年来有关NTMA的文献,旨在帮助相关研究者根据NTMA应用的领域与目的,选用适合的大数据技术方法,并简述了使用大数据方法时NTMA所突出的问题以及有前景的研究方向。
通过大数据相关的文献调查,大数据目前有了基本的定义。Hu等人[2]认为大数据不仅数据量大,还说明数据具有多样性以及速度等其他特征,其定义可分为3类:属性型定义、比较型定义和架构型定义。
架构型定义和比较型定义比较抽象,按照架构定义,大数据问题会在数据集到达传统方法无法存储和处理的程度时发生。比较型定义通过比较数据的属性和传统数据库的能力描述大数据,2011年Mckinsey公司的研究报告将大数据定义为:规模超过了传统数据库软件工具的捕获、存储、管理和分析能力的数据集。架构型定义通过数据的特征分析数据本身的过程来描述大数据,美国国家标准与技术研究院(NIST)对大数据的描述为:大数据是指数据的数量、获取的速度以及数据的表示限制了使用传统相关的数据库方法进行有效分析的能力,需要使用具有良好可扩展性的新型方法来对数据进行高效的处理。
由上面定义可知,大数据的5个特征(5-V)为:数量、速度、多样化、准确性和价值,这些特征是评判大数据性能的标准,其他针对大数据技术[2-4]和分析[5-6]的研究也利用5-V来评判大数据的质量。因此,大数据被概括为数据集很大(volunme),需要以高速率或实时(velocity)捕获和分析,数据来源可能不同(variety),组合面向列的数据库等结构化数据、服务器日志等非结构化数据以及XNL或JSON文档等半结构化数据,数据具有不同属性(veracity),数据分析给用户和企业可以带来价值(value)。
综上所述,NTMA是大数据应用的一个例子,所以也具有5-V的特征,应对大数据挑战而开发的方法也适用于NTMA技术。
Fayyad等人[7]对数据进行收集、选择、预处理、转换、挖掘、解释和可视化这一系列的操作称为数据挖掘(Knowledge Discovery and Data Mining,KDD)。文献[5]将这些操作从系统的角度分为3组:输入、分析和输出。
数据输入执行的是数据管理的过程,从原始数据的收集到数据以合适的格式交付给后续挖掘,它包括数据的预处理(即准备数据的初始步骤)、异构源的集成和伪数据的清理。
数据分析模块接收处理后的数据并对其进行信息提取,该信息包括分类模型、隐藏模式以及数据间关系和规则等,可应用于统计建模分析和机器学习数据挖掘等领域。
数据输出的过程中会将信息转化为知识,如测量信息质量、以简洁明了的方式显示信息,并协助分析人员解释结果。
图1是根据数据挖掘的几个阶段来归纳NTMA。数据挖掘适用于任何数据分析,但大数据是每一个方法论的根本性挑战,如需考虑数据的数量、处理速度和多样性,数据管理在处理复杂的大数据任务时会发挥降低数据量和复杂性等关键性作用,并在分析速度和结果的方面表现优良,对大数据至关重要。
图1 数据挖掘过程
大数据挑战(5-V)的方法需要在综合分析框架中考虑整个数据挖掘过程,该框架应该包含允许实现覆盖整个数据挖掘周期的应用程序逻辑的编程模型。利用并行和分布式计算框架是处理大数据集的一种常见方法,需要覆盖所有数据挖掘阶段,而这些框架仍有待被开发。
按照文献[3-4]的分类方法区分了4种大数据处理系统:① 一般用途:处理大数据的平台,一般不对数据特征和执行算法做假设;② SQL:专注于结构化和表格数据的可扩展处理平台;③ 图处理:专注于处理大型图的平台;④ 流式数据处理:流式数据处理持续输入系统的大规模数据的平台。
图2用系统的例子描述了分类方法,MapReduce、Dryad、Flink、Spark属于通用数据处理系统类[8],Hive、HAWQ、Apache Drill、Tajo属于sql类,Pregel、GraohLab属于图形处理类,Storm和S4属于流式数据处理类。
图2 大数据处理系统
Hadoop是一般大数据平台中应用最广泛的处理器,图3为Hadoop V2.0与Spark[9]的组成部分。
图3 基于Spark的Hadoop 2.0栈
Hadoop V2.0由Hadoop内核、MapReduce和HDFS组成。YARN是提供对多线程并行作业的集群资源访问的默认资源管理器,其他资源管理器(如Mesos)和执行引擎(如TEZ)也可为Spark使用。
为了解决MapReduce的局限性,在Hadoop V2.0后引入了Spark框架,该框架引入了内存分布式数据集,可以优化迭代工作负载。MapReduce则依赖于map/reduce的基本操作,应用在读取并存储到磁盘的数据。如迭代和实时的大数据应用,Spark已在非批处理场景中应用广泛,可以解决map/reduce所不能解决的批处理问题。
谷歌的Sawzall[10]、雅虎的Pig Latin[11]、 Facebook的Hive[12]以及微软的SCOPE[13]等高级语言和系统即将在Hadoop上运行。为了解决Hadoop原本的环境问题,引入了MapReduce的Mahout[14]和Spark的MLlib等一些库。此外,系统还补充了针对特定处理模型的工具,如支持图处理的GraphX和支持流处理的Spark Streaming。
除了Apache Hadoop发行版,Cloudera CDH、Hortonworks HDP和Map融合数据平台等为数据处理和集群管理提供了不同的特性。
基于文献[15]的网络管理应用程序分类法对大数据方法处理NTMA的研究以管理应用为最终目的分为8类:流量预测、流量分类、故障管理、网络安全、拥堵控制、流量路由、资源管理和Qos/QoE管理。
由于文献[15]中的分类法适合描述网络管理应用程序,但此类应用程序对NTMA的依赖程度很大,且使用大数据方法进行拥堵控制、流量路由、资源管理和Qos/QoE管理的文献较少,所以以前四类为研究重点。针对这些类别问题的大规模数据集是不可用的,或者研究人员还不确定如何在这些场景中应用大数据方法,导致现在忽略了使用大数据方法研究出的成果。
表1展示了NTMA的应用程序类别,并已有了每个类别相对应的工作例子。
表1 NTMA应用领域
2.2.1 流量预测
流量预测可以作为流量工程的构建模块,帮助定义并可以预测网络连接未来状态,可在网络中部署更多内存以维持QoS的性能。
流量预测是一个时间序列的预测问题。经典的预测方法(ARIMA或SARIMA方法)和机器学习(神经网络)通常是根据以前在同一链路上的测量来预测流量,但通常会因为网络行为的变化使得预测变得更加困难。部署需要大量带宽的新应用程序或其他类似操作将使网络配置发生突然变化,为流量预测方法带来了重大挑战。
2.2.2 流量分类
流量分类是管理和监控网络的关键步骤,其目的是识别产生流量的服务。相关运营商需要有关其服务的资料,如了解服务的要求及其对整体网络性能的影响。
通过简单地检查网络和传输协议中的信息流量分类就能很好地发挥作用,如通常可以通过检查TCP/UDP端口号来识别互联网服务。流量分类的复杂性在不断上升,其一,互联网服务的数量很大且不断增加;其二,识别服务只能观察网络中的少量信息;其三,网络服务都运行在少数加密协议(TCP上的HTTP)上而造成信息包中检测不到信息,且联网服务是动态地不断更新。
人们提出了许多流量分类的方法,根据数据包分类策略可对数据进行以下几个分组:① 数据检测查找预定义消息[16]或协议,分析数据内容;② 有监督的机器学习法从流量中提取特征并在训练阶段建立模型,再将特征值与服务关联;③ 无监督机器学习方法由于可在没有之前历史记录的情况下对流量聚类,因此该学习方法适用于无训练数据的服务;④ 行为方法基于终端节点[17]的行为来识别服务,检测流量算法为运行特定服务的节点建立模型,该模型的功能包括识别客户端连接服务器的类型、使用的数据速率以及与服务器链接的顺序等。
2.2.3 故障管理
故障管理的功能是对网络中的故障进行预测、检测、隔离和修复,目标是将停机时间最小化。无论是根据测量结果分析及预测故障并及时做出反应以避免中断,或是被动评估流量和系统日志以了解故障根源,故障管理都可以发现问题的根本原因。
在大型网络中各式各样的系统都可能会受到故障的影响,如故障的路由器可能会导致其他路由过载,从而在网络中引发一连串的故障。系统日志会记录各种网络元素产生的故障问题,通常是通过异常检测的方法识别流量中的异常情况或系统日志中的异常事件来检测网络故障。异常事件也可能由网络安全漏洞或更换使用模式引起,为了提高可见的网络元素数量,分析算法会同时对流量、系统日志和活动测量进行评估,并识别问题的根本原因。
2.2.4 网络安全
许多NTMA被用于保护网络安全,一般应用于检测安全漏洞、病毒和恶意软件,可通过隔离受感染的系统以降低损失。检测恶意网络活动主要有两种方案:基于攻击标志和基于异常检测。
基于攻击标志的检测技术会建立一个自己的知识库,存储了病毒、恶意软件或其他威胁的已知信息,对已知的攻击可以详细地报告出攻击类型以及应对方案,并快速做出行动。但是对于未知的攻击,该方案的效果就十分有限,而且知识库必须不断更新迭代以保证覆盖大部分的攻击方式。
基于异常检测[18-19]的方法通常是预设一组正常的数值,如CPU利用率、磁盘利用率、内存利用率等,这些数值可以是人为定义,也可以是通过观察机器在正常情况下运行的反应。再通过监控机器数值的实时动态,若发现机器数值于预设数值基线不同时则出发警报。这种检测方法能提前预知威胁,但无法检测干扰网络的阴性攻击,且对预设正常的数值要求较高,所以可能出现大量的误报情况。
属于上述方法的NTMA应用均受益于大数据方法,下面将举例说明典型的大数据方法(5-V)在当今所面临的挑战。
以流分类为例,对动态数据包进行分类要考虑流量(volume)与时效性(velocity),且输入的数据量通常很大,也会使用不同的方法对需要时效的网络流量如Gbit/s流进行分类。
在数据的多样性(variety)方面,随着越来越多的数据被加密,可用于流量分类或故障管理算法的数据信息将变得越来越少。现在使用的算法结合了DNS和流量检测用于不同的数据源,如文献[20]。异常检测也常用于量轨迹、路由信息等多种数据源流,从而获得不同的异常信号。
准确性(veracity)方面常体现在网络安全中,需对攻击样本进行训练以识别网络中的攻击。但是这种样本的设计是有挑战性的,虽然简单的攻击可以在测试中模拟,但复杂的攻击往往很难被模拟。
在价值(value)方面,当网络受到未被发现的攻击所入侵时,网络运行会产生巨大的损坏,所以在5-V的所有特性中价值是至关重要的。
随着互联网各类技术的不断成熟,大数据也逐渐面临着来自互联网的挑战,即互联网的测量。世界上有50万个网络、16亿个网站、30亿的用户、500亿个网页,每年要访问高达1 ZB数据。文献[21]指出为了解决数据收集系统的伸缩性,相关学者在设计用于高速数据采集工具上进行了大量的研究,以及如何在不影响数据质量的情况下减少数据大小。
互联网的检测可分为主动测量和被动测量。主动测量是向网络发送数据并观察互联网的响应过程,由于主动测量固定了数据类型以及其发送与接收地址,所以常用于故障排除。被动测量是独立于数据包和流量评估的,只能通过持续观察且实时提取数据获得信息。
这种架构的组件可以集成到路由器或专用的网络监视器这类的单个设备,或部署在分布式架构中。由于大数据技术始终贯穿着NTMA应用,分布式架构在一般的网络设置中很常见。收集器将收集需要采集的大数据监控数据以及记录许多预处理功能,例如基于流量数据的监视中只需将每个通信流的数据导出到收集器。NTMA应用程序收集数据的方法分为基于包和基于流量两种。
3.1.1基于包的方法
分析数据包会消耗大量资源,为NTMA应用程序提供了多种执行选择。深度包检测技术(DPI)既能允许数据包通过,也能拒绝数据包的请求。由于现有的硬件技术不达标[22-23],数据的传输速率成为了一大挑战。但有一些技术可以以几Gbit/s的速率执行DPI,同时还能存储数据[24]。
为了使基于包的方法有突破性创新,网络检测团体提出了许多方案。其中最经典的方法是在数据采集前进行预处理,过滤和采样操作设置在采集点上,以便导出小部分通过过滤采样的包,也可以只导出包头以替代完整的包内容。文献[25]指出只收集每个流量的初始数据包就足以进行流量分类。
表2展示了一些实际部署中用不同方法在不同情况下捕获包的跟踪量,捕捉时间长达至少一小时。第一行表示在一个大约有2万ADSL客户连接的ISP网络捕获包跟踪的大小;第二行表示在有1.5万名用户使用的学生校园网捕获包跟踪的大小。这两次捕捉行为都是在早上进行的,且均捕获到了超过半个TB的信息。据表2第一行显示,ISP跟踪可以每小时获得大约45 GB的报头,说明保存到传输层的数据包报头的策略只能减少部分数据量。表2最后一行显示的是类似于文献[25]的ISP网络在一天中信息捕获量的大小,虽然数据量显著减少,但每天仍能保存超过600 GB的信息。
表2 不同情况下捕捉到的包数量
如今,DPI在加密和限制性隐私策略[26]的领域下难以实现,需要设计能在加密流量的情况下替代DPI进行检测的算法。
3.1.2 基于流量的方法
基于流的方法通过收集数据包处理数据,导出每个流的所有流量[27]。网络流量是有共同特征的数据包,由于数据是聚合的,分析流量记录的NTMA应用系统对传输的要求较低。数据隐私因为加密而得到了更好地保护,但是信息丢失是不可避免的。2013年据Cisco统计网络流量分析的方法有90%是基于流量的,剩下的10%是基于包的[28]。
Cisco NetFlow、sFlow和IPFIX (IP Flow Information Export protocol)等技术在流量监测技术最为常见。NetFlow被广泛用于各种NTMA应用,如网络安全[29]。sFlow十分依赖数据包的采样,会从1 000个数据包中采样1个,虽然使得NTMA的性能降低,但sFlow仍然是最适合检测攻击的技术。IPFIX操作灵活且功能齐全,常用于导出流量信息[30],其多用于NTMA应用检测SSH的攻击。
基于流量的监控会产生很大的数据集[21],表3是根据文献[27]构建的,展示了Cisco的NetFlow v5和NetFlow v9以及IPFIX三种方法在50 Gbit/s的流量输出下测量的流量状态。
表3 50 Gbit/s的流量输出下不同方法测量的流量状态
选用IPFIX方法可使基于流量方法的NTMA应用程序输出70 Mbit/s的数据,这是一个数据挖掘点的输出量,因此有多个数据挖掘点的NTMA应用程序可能要面对Gbit/s级别的数据量输入。
NTMA应用程序通常需要处理历史数据,如表2所示,存储来自挖掘点的流量数据所需的空间是随时间线性增长的,据文献[21]研究可知4年将消耗30 TB的内存。
数据收集属于数据挖掘,因为在不同的场景中获取数据的方式会有很大的不同,所以比较依赖于问题域。数据提取是通过大数据框架提供的工具和方法将原始数据从数据源头传输至预处理和分析模块。由于数据从数据源输出是未处理的状态,并且在后续阶段大数据流量和大量分布式收集器将产生大量的数据进行解析和预处理,所以如何处理这些数据成为一个巨大的挑战。
现在互联网上有许多处理大数据的工具:① Flume,是一个可以从各种数据源收集日志的分布式系统;② Sqoop,能建立Hadoop与相关数据库之间传输数据的通道;③ Kafka,可为在线的数据流提供分布式发布订阅消息系统的平台。这些工具具有灵活性,它们可以以分布式的方式处理多个数据流,并在将数据输入框架后立即对新的数据流进行预处理。
在NTMA技术领域,很少有人提出将流量测量用于NTMA的大数据框架。而NTMA所面临的挑战是将不同格式且来自于不同数据源的数据输入至框架中,并且现在已经取得了新的进展。
Apache Spot是一个集成了网络安全领域不同应用模块的开放平台,其中模块Kafka负责存储收集到的原始数据,并传输至基于python编译的Spot Workers进行解析和预处理。原始数据和经过处理后的数据记录都将存储在大数据框架中。
网络数据分析平台PNDA是由Linux基金会开发的一个十分有前景的开源平台,能对不同的数据源进行管理并分析。该平台会将数据自动保存在分布式文件系统中,因此不需要手动将数据强制放入特定的领域模块。它还含有大数据框架的工具,如用于数据挖掘的Kafka模块。
通过Spot和PNDA的研究表明,大数据框架只有在安装了NTMA格式的插件才能提取其数据,这些插件是使用Kafka等挖掘模块的必要工具。
理论研究得出NTMA模块可以使用大数据框架的通用存储系统,但实际上大数据框架的一些结构会使得NTMA数据的存储变得更加复杂。
3.3.1 通用系统
图4展示了通用大数据系统[9, 31]的分类,大多数的大数据存储系统致力于系统的可扩展性研究,提升多个服务器的性能达到增加系统容量的效果,而不是只升级单个服务器。这种研究虽然诞生了大型的分布式系统,但随之而来的也有许多如节点崩溃或者网络故障等风险。因此,大数据存储[9, 15]的研究中表示一致性、可用性和容错率是其重要的特征。
图4 通用大数据存储系统
在文件系统方面谷歌率先开发出了谷歌文件系统(GFS)[32],并且该文件系统拥有较高的可扩展性,即使运行在普通的服务器上也能展现出高容错和高性能的状态,GFS的子程序Colossus[33]和Facebook Haystack也能达到这种效果。如今,GFS有了许多开源的衍生程序,例如Apache HDFS和Kosmosfs。
大型数据集要进行更高层次的数据挖掘时其相关数据库的性能会降低,而NoSQL数据库则例外。与普通数据库相比,NoSQL数据库没有固定的数据库模式,并且可扩展性比其相关的数据库更高。NoSQL数据库有4种不同的类型:① 键值存储数据库通常使用Hash表存储键值对,查找速度较快,其典型的代表有亚马逊的Dynamo和Memcached;② 列存储数据库以列存储数据,可扩展性强,典型的代表有Cassandra[34]、HBase;③ 文档型数据库将数据存储为Value的结构化数据,适用于任何数据结构,代表例子有MongoDB;④ 图形数据库存储有边与节点构成的图,可以使用高效的图相关算法,如Titan。
NewSQL系统不仅具有NoSQL的数据存储管理能力,并保存了相关数据模型和SQL查询等功能属性,谷歌Spanner就是运用NewSQL系统的典型代表。
3.3.2 基于大数据框架的NTMA数据存储
互联网是一个大型的分布式系统,其关键技术在于如何存储测量的集成式数据属性。测量数据通常由其特有的平台接收,并且大数据框架无法读取导出的数据。尽管尝试了文献[35]这样可扩展和灵活的方法,但仍未达到预期目标,因此需要特殊的存储解决方案,或者将数据转换为其他格式。
Libpcap、libtrace、libcoral、libnetdude和Scapy这些库可以用于捕捉数据包并转化为pcap格式进行读取和保存数据。由于pcap的踪迹无法被分开单独识别破解,分布式大数据文件和数据库系统如HDFS或Cassandra通常无法读取pcap文件的踪迹。用于存储基于流的测量格式也有类似的问题,如nfdump是一款用于NetFlow收集、存储、过滤、统计分析的开源软件,虽然其收集器会根据预先设定好的参数将文件分成若干个二进制文件,但这些文件所占用的内存特别大,且基于Hadoop的系统不能使用该方法。
如今一些文献提出了解决该问题的新方法:① 将原始格式的测量数据加载到分布式系统中,并扩展系统框架处理传统格式的文件;② 为处理网络大数据提出新的存储格式和工具;③ 将网络数据转化并导入传统的大数据存储系统。
Lee等人[1]开发了一种名为PcapInputFormat的Hadoop API,它能够以数据原来的格式管理IP数据包和网络流量记录,常用于跟踪数据包的文件。基于Hadoop的NTMA应用程序能在该API的作用下持续分析pcap及NetFlow踪迹,该API还能处理未被转换过的文件记录并避免系统按顺序读取文件的性能损失。Ibrahim基于MapReduce和新引入API开发了类似的流量分析算法以解析Hadoop中的pcap文件。
Nagele建立了一个基于java的Hadooppcap库[36],能够快速且灵活地对pcap文件进行分析,并引入一个能串并行互相转化的寄存器,使得Hive能直接分析pcap数据。文献[37]使用了相同的能串并行转化的寄存器构建了一个基于Hadoop的网络安全平台,该平台常用于sFlow、Netflow、DNS测量和垃圾邮件捕获。
BGP在选择路由时总会有一定的误差,但可以通过引入 BGPStream提供能连接来自API和应用程序的实时BGP数据的工具和库就可以将误差降低,并可以高效地挖掘在线动态数据。
无论是HDFS、pcap还是NetFlow技术,他们的预定义连接口都是一一对应的。因此,对于选用何种测量格式和分析框架都要执行类似的筛选方法。
近年来,许多作者提出了对大型网络检测更好的存储方法和解决方案。文献[38]提出用DBStream对数据流进行持续计算分析,部分学者为了实现更高的存储效率以及升级索引和检索机制,优化了pcap和基于流的解决方案。然而这些解决方案的方向都是基于大数据框架思想以及键值对数据库和列数据库,且系统通常是集成式,会缺乏可拓展性。
NTMA算法的使用通常需要被研究物的特征向量,因此需要对原始数据进行预处理,将其转换为特征向量。
许多方法在解决存储格式的问题上会将数据特征提取到大数据框架中,NTMA算法则是需要从原始数据中提取出一组特征值用于基于包和基于流的分析。
目前已知的大型网络测量常用方法是将离开数据采集点的原始数据与处理数据在加载到大数据框架之前进行转换。
文献[39]提出将测量值从原始格式转换为查询优化格式,极大地提高了网络性能。文献[40]提出了一个基于Hadoop的网络分析框架,它是第一个将perfSONAR测试的数据导入Apache Avro系统的框架。文献[41]在处理流日志时将二进制的原始数据转换成文本文件并加载到HDFS中。
Marchal等人[42]提出了“基于大数据架构的大规模安全监控”,该架构使用的数据来自于DNS测量、NetFlow记录和蜜罐技术收集的数据。作者将测量数据加载到Cassandra系统中,并部署了Hadoop API直接读取二进制测量格式。文献[43]中IPFIX数据采集点将大量数据以JSON格式传递给Spark,以此使得Spark Streaming能监控大量的IPFIX数据。
文献[44]中,sFlow在Hadoop系统上收集并分析大型校园网记录,通过使用Apache Flume提取兴趣字段到Cassandra系统中。Sarlis等人提出了一个基于sFlow和NetFlow的网络分析系统,测量结果会被转换为最优的格式加载到HDFS和HBASE中,帮助加快测量速度。与使用Hive或Shark的基本分析实现相比,该系统可提速70%[45]。
针对大数据场景的研究中,Cisco提出了一个完整的解决方案——OpenSOC,其含有许多解析测量结果的功能并将结果加载到大数据框架中。Cisco还发布了使用Netflow和IPFIX的网络安全综合指南[46],可以保护大数据框架免受入侵、攻击和已知威胁。
大数据框架中的一些数据库可以用于进行数据的特征提取和选择,大部分库都是只能在特定的环境中使用,小部分库如Spark ML和Spark MLlib可以在所有环境中使用,然而能用于NTMA中特征提取和选择的研究却很少。
大多数研究所用的数据集太过老旧,如文献[40]和文献[47]。文献[48]的工作是研究使用经典数据集进行攻击病毒检测和DM/ML测试的流量特征,且作者不赞成使用文献[49]的数据集进行试验。
Abt等人[50]构建了基于NetFlow特征检测的僵尸网络C&C通信,其准确率和召回率均达到92%以上。文献[51]提出使用Netflow特征检测DDoS。文献[52]的研究中,对IPFIX的记录进行特征选择,得到了一组用于P2P流量分析的关键特征。很少有相关研究使用大型数据集,大部分人使用的都是针对特定问题而定制的小数据集。目前针对每一个特定的问题都有其对应的解法,但是没有一套整体的解决方案。
在数据分析方面,最重要的是如何将分析方法应用于大型NTMA数据集。在数据管理方面,现在有可用于NTMA的通用框架。
分析算法大致分为两类:统计算法和机器学习算法。机器学习可以根据如何训练模型进一步分为有监督、无监督和半监督。近年来,深度神经网络和强化学习等新的机器学习算法也经常被使用。
大数据具有数据量大和高维数等特征,导致分析算法难以应用到大数据领域,一些机器学习算法不能随输入数据的大小而线性扩展,需要调集大量系统资源处理大数据的数据集。这些问题有两个解决方案:其一是对原始数据进行进一步的预处理,降低其复杂性;其二是使用并行算法,使用有效的近似方案代替原本的方案进行数据处理。
目前已有几种方法可以并行化统计算法和更改机器学习算法,文献[53]也提出了一些统计算法的并行版本。Pébay等人[54]研究了并行统计算法。文献[55]对并行神经网络进行了描述,文献[56]对深度学习的并行训练进行了部分研究。
数据挖掘过程中应用大数据技术可以使用非分布式框架进行数据分析。文献[57]使用Hadoop进行实时入侵检测,并使用MapReduce计算特征值,在经过预处理简化后的数据上使用经典的机器学习算法。Vassio等人[58]采用集中式分类以及传统的机器学习框架,使用大数据方法降低数据维数。Shibahara等人[59]部署了一种能通过神经网络对恶意url进行分类并分析IP地址层次的系统,其只使用MapReduce进行特征值提取。
总体来说,基于大数据技术的NTMA的研究年代较近,成果不足,研究热度不高,尚处于研究的初级阶段。随着互联网技术愈发壮大,网络环境对NTMA的需求也在日益增长。将大数据技术应用于NTMA可以有效提升数据传输的性能,本文全面梳理了大数据技术与NTMA应用体系,并向流处理与批处理归纳了经典的数据框架,展望了大数据技术在NTMA应用领域中的前景,为网络监测工作打下坚实基础。