基于网络的入侵检测数据集研究

来源:A Survey of Network-based Intrusion Detection Data Sets

摘要:标记数据集是训练和评估基于异常的网络入侵检测系统所必需的。本文对基于网络的入侵检测数据集进行了重点的文献综述,并对基于包和流的底层网络数据进行了详细的描述。本文确定了15种不同的属性来评估单个数据集对特定评估场景的适用性。这些属性涵盖了广泛的标准,并被分为五类,例如用于提供结构化搜索的数据量或记录环境。在此基础上,对现有数据集进行了全面的综述。本综述还强调了每个数据集的特性。此外,本工作还简要介绍了基于网络的数据的其他来源,如流量生成器和数据存储库。最后,我们讨论了我们的观察结果,并为使用和创建基于网络的数据集提供了一些建议。

一、引言

信息技术安全是一个重要的问题,入侵和内部威胁检测的研究已经投入了大量的精力。在处理与安全相关的数据[1]-[4]、检测僵尸网络[5]-[8]、端口扫描[9]-[12]、蛮力攻击[13]-[16]等方面已经发表了许多贡献。所有这些工作的共同点是,它们都需要具有代表性的基于网络的数据集。此外,基准数据集是评价和比较不同网络入侵检测系统(NIDS)质量的良好基础。给定一个带标签的数据集,其中每个数据点都被分配给类normal或attack,可以使用检测到的攻击数量或虚警数量作为评估标准。

不幸的是,没有太多具有代表性的数据集。Sommer和Paxson[17](2010)认为,缺乏具有代表性的公共可用数据集是基于异常的入侵检测面临的最大挑战之一。Malowidzki等人(2015)和Haider等人(2017)也发表了类似的声明。然而,社区正在解决这个问题,因为在过去几年中已经发布了几个入侵检测数据集。其中,澳大利亚网络安全中心发布了UNSW-NB15[20]数据集,科堡大学发布了CIDDS-001[21]数据集,新布伦瑞克大学发布了CICIDS 2017[22]数据集。未来还会有更多数据集发布。然而,现有数据集没有全面的索引,很难跟踪最新的发展。

本文对现有的基于网络的入侵检测数据集进行了文献综述。首先,对底层数据进行更详细的研究。基于网络的数据以基于包或基于流的格式出现。基于流的数据只包含关于网络连接的元信息,而基于包的数据也包含有效负载。然后,对文献中常用的评价网络数据集质量的不同数据集属性进行了分析和分组。本调查的主要贡献是对基于网络的数据集进行了详尽的文献综述,并分析了哪些数据集满足哪些数据集属性。本文重点研究了数据集内的攻击场景,并强调了数据集之间的关系。此外,除了典型的数据集之外,我们还简要介绍了流量生成器和数据存储库作为网络流量的进一步来源,并提供了一些观察和建议。作为主要的好处,本调查建立了一组数据集属性,作为比较可用数据集和确定合适数据集的基础,给出了特定的评估场景。此外,我们创建了一个网站1,其中引用了所有提到的数据集和数据存储库,我们打算更新这个网站。

本文的其余部分组织如下。下一节将讨论相关工作。第三部分详细分析了基于包和流的网络数据。第四部分讨论了文献中常用来评价入侵检测数据集质量的典型数据集属性。第五节概述了现有的数据集,并根据第四节确定的属性检查每个数据集。第六节简要介绍了基于网络的数据的进一步来源。在本文件以摘要结束之前,第七节讨论了意见和建议。

二、相关工作

本节回顾基于网络的入侵检测数据集的相关工作。需要注意的是,本文没有考虑基于主机的入侵检测数据集,比如ADFA[23]。读者可以在Glass-Vanderlan等人的[24]中找到关于基于主机的入侵检测数据的详细信息。

Malowidzki等人[18]将缺失的数据集作为入侵检测的一个重要问题进行了讨论,对好的数据集提出了要求,并列出了可用的数据集。Koch等人的[25]提供了入侵检测数据集的另一个概述,分析了13个数据源,并根据8个数据集属性对它们进行了评估。Nehinbe[26]为IDS和入侵防御系统(IPS)提供了关键的数据集评估。作者研究了来自不同来源的七个数据集(如DARPA数据集和DEFCON数据集),强调了它们的局限性,并提出了创建更真实数据集的方法。由于在过去的四年中发布了许多数据集,我们延续了2011年到2015年[18],[25],[26]的工作,但提供了比我们的前辈更最新和更详细的概述。

虽然许多数据集论文(如CIDDS-002[27]、ISCX[28]或UGR ' 16[29])只对一些入侵检测数据集做了一个简要的概述,但Sharafaldin等人对[30]提供了更详尽的综述。他们的主要贡献是一个生成入侵检测数据集的新框架。Sharafaldin等人还分析了11个可用的入侵检测数据集,并根据11个数据集属性对其进行了评估。与早期的数据集论文相比,我们的工作重点是对现有的基于网络的数据集提供一个中立的概述,而不是提供一个额外的数据集。

最近的其他论文也涉及到基于网络的数据集,但主要关注的焦点有所不同。Bhuyan等人对网络异常检测进行了全面的综述。作者描述了现有的9个数据集,并分析了现有异常检测方法所使用的数据集。类似地,Nisioti等人的[32]关注于用于入侵检测的无监督方法,并简要参考了现有的12个基于网络的数据集。Yavanoglu和Aydos[33]分析比较了最常用的入侵检测数据集。然而,他们的审查只包含七个数据集,包括其他数据集,如HTTP CSIC 2010[34]。总而言之,这些作品往往有不同的研究目标,而且只是接触对于基于网络的数据集,则略有不同。

三、数据

通常,网络流量以基于包或基于流的格式捕获。在包级捕获网络流量通常是通过镜像网络设备上的端口来完成的。基于包的数据包含完整的有效载荷信息。基于流的数据更加聚合,通常只包含来自网络连接的元数据。Wheelus等人通过一个说明性的比较强调了这一区别:“捕获包检查和NetFlow之间的一个很好的区别示例是徒步穿越森林,而不是乘坐热气球飞越森林”[35]。在这项工作中,引入了第三类(其他数据)。另一个类别没有标准格式,并且因每个数据集而异。

A基于分组的数据

基于包的数据通常以pcap格式捕获,并包含有效负载。可用的元数据取决于使用的网络和传输协议。有许多不同的协议,其中最重要的是TCP、UDP、ICMP和IP。图1显示出了不同的报头。TCP是一种可靠的传输协议,它包含诸如序列号、确认号、TCP标志或校验和值之类的元数据。UDP是一种无连接的传输协议,它的头比TCP小,TCP只包含四个字段,即源端口、目标端口、长度和校验和。与TCP和UDP相比,ICMP是一个包含状态消息的支持协议,因此更小。通常,在报头旁边还有一个可用的IP报头传输协议的。IP报头提供源和目标IP地址等信息,如图1所示。

b .流为基础数据

基于流的网络数据是一种更简洁的格式,主要包含关于网络连接的元信息。基于流的数据将所有在时间窗口内共享某些属性的包聚合到一个流中,通常不包含任何有效负载。默认的五元组定义,即,源IP地址、源端口、目标IP地址、目标端口和传输协议[37],是一种广泛使用的基于流的数据属性匹配标准。流可以以单向或双向格式出现。单向格式将主机A到主机B之间共享上述属性的所有包聚合到一个流中。从主机B到主机A的所有数据包聚合为另一个单向流。相反,一个双向流总结了主机a和主机B之间的所有数据包,不管它们的方向如何。

典型的基于流的格式有NetFlow[38]、IPFIX[37]、sFlow[39]和OpenFlow[40]。表I概述了基于流的网络流量中的典型属性。根据特定的流格式和流导出器,可以提取额外的属性,如每秒字节数、每个包的字节数、第一个包的TCP标志,甚至有效负载的计算熵。

此外,可以使用nfdump2或YAF3之类的工具将基于包的数据转换为基于流的数据(但不是相反)。读者如果对流导出器之间的差异感兴趣,可以在[41]中找到更多细节,并分析不同的流导出器如何影响僵尸网络分类。

c .其他数据

这个类别包括所有既不是纯基于包也不是基于流的数据集。这类的一个例子可能是基于流的数据集,这些数据集已经用来自基于包的数据或基于主机的日志文件的附加信息进行了丰富。KDD CUP 1999[42]数据集就是这一类别的一个著名代表。每个数据点都有基于网络的属性,比如传输的源字节数或TCP标志的数量,但是也有基于主机的属性,比如失败登录的数量。因此,这个类别的每个数据集都有自己的一组属性。由于每个数据集都必须单独分析,所以我们不对可用属性做任何一般性的说明。

四、数据集属性

为了能够比较不同的入侵检测数据集,并帮助研究人员为其特定的评估场景找到合适的数据集,有必要将公共属性定义为评估基础。因此,我们研究了文献中用于评估入侵检测数据集的典型数据集属性。一般概念FAIR[43]定义了学术数据应该遵循的四个原则实现,即可查找性、可访问性、互操作性和可重用性。在与这个一般概念相一致的同时,本工作使用更详细的数据集属性来提供基于网络的入侵检测数据集的重点比较。通常,不同的数据集强调不同的数据集属性。例如,UGR ' 16数据集[29]强调较长的记录时间来捕捉周期效应,而ISCX数据集[28]强调精确的标记。由于我们的目标是研究基于网络的入侵检测数据集的更一般的属性,所以我们试图统一和概括文献中使用的属性,而不是采用所有的属性。例如,一些方法评估特定类型攻击的存在,比如DoS(拒绝服务)或浏览器注入。某些攻击类型的存在可能是评估这些特定攻击类型的检测方法的相关属性,但是对于其他方法没有意义。因此,我们使用一般的属性攻击来描述恶意网络流量的存在(见表三)。第五节提供了关于数据集中不同攻击类型的更多细节,并讨论了其他特定的属性。


我们不像Haider et al.[19]或Sharafaldin et al.[30]那样开发评估评分,因为我们不想判断不同数据集属性的重要性。我们认为,某些属性的重要性取决于具体的评估场景,不应该在调查中普遍判断。相反,应该让读者能够找到适合他们需要的数据集。因此,我们将下面讨论的数据集属性分为五类,以支持系统搜索。图2总结了所有数据集属性及其值范围。

A.一般资料

以下四个属性反映了关于数据集的一般信息,即创建年份、可用性、正常网络流量和恶意网络流量的存在。

1)创建年份:由于网络流量受概念漂移影响,每天都会出现新的攻击场景,因此入侵检测数据集的年龄起着重要作用。此属性描述创建年份。与数据集发布的年份相比,捕获数据集的底层网络流量的年份与数据集的最新程度更相关。

2)公共可用性:入侵检测数据集应公开可用,作为比较不同入侵检测方法的依据。此外,数据集的质量只能由第三方检查,如果它们是公开可用的。表III包含此属性的三个不同特征:yes, o.r. (on request)和no。On request是指在向作者或负责人发送消息后授予访问权限。

3)正常用户行为:此属性指示数据集中正常用户行为的可用性,并接受yes或no值。值yes表示数据集中存在正常的用户行为,但它不声明是否存在攻击。一般来说,入侵检测系统的质量主要取决于其攻击检测率和误报率。此外,正常用户行为的存在对于评估IDS是必不可少的。然而,缺少正常的用户行为并不会使数据集不可用,而是表明它必须与其他数据集或真实世界的网络流量合并。这样的合并步骤通常称为覆盖或盐化[44]、[45]。

4)攻击流量:IDS数据集应包含各种攻击场景。此属性指示数据集中是否存在恶意网络通信,如果数据集中至少包含一次攻击,则该属性的值为yes。表四提供了关于特定攻击类型的附加信息。

B.数据的性质

此类别的属性描述数据集的格式和元信息的存在。

1)元数据:第三方很难对基于包和基于流的网络流量进行内容相关的解释。因此,数据集应该与元数据一起提供关于网络结构、IP地址、攻击场景等的附加信息。此属性指示附加元数据的存在。

2)格式:网络入侵检测数据集以不同的格式出现。我们大致将它们分为三种格式(参见第三节)。(1)基于分组的网络流量(例如pcap)包含带负载的网络流量。(2)基于流的网络流量(如NetFlow)只包含关于网络连接的元信息。(3)其他类型的数据集可能包含基于流的跟踪,带有来自基于包的数据甚至来自基于主机的日志文件的附加属性。

3)匿名性:由于隐私原因,入侵检测数据集往往不会公开,或者只能以匿名的形式提供。此属性指示数据是否匿名以及哪些属性受到影响。表III中的none值表示没有执行匿名化。值yes (IPs)表示IP地址要么被匿名化,要么从数据集中删除。同样,值yes (payload)表示有效负载信息被匿名化,要么从基于分组的网络流量中删除。

C.数据量

此类别中的属性根据容量和持续时间描述数据集。

1) Count:属性Count将数据集的大小描述为包含的包/流/点的数量或物理大小(GB)。

2)持续时间:数据集应涵盖较长时间内的网络流量,以捕捉周期性影响(如白天与夜晚或工作日与周末)[29]。属性持续时间提供每个数据集的记录时间。

D.记录环境

此类别中的属性描述捕获数据集的网络环境和条件。

1)流量类型:描述网络流量的三种可能来源:真实的、模拟的或合成的。Real是指在有效的网络环境中捕获真实的网络流量。仿真的意思是在测试床或仿真网络环境中捕获真实的网络流量。综合意味着网络流量是综合创建的(例如,通过一个流量生成器),而不是由一个真实的(或虚拟的)网络设备捕获的。

2)网络类型:中小企业的网络环境与互联网服务提供商(ISP)有着本质的区别。因此,不同的环境需要不同的安全系统,评估数据集应该适应特定的环境。此属性描述创建相应数据集的基础网络环境。

3)完整网络:该属性采用Sharafaldin等人的[30],表示数据集是否包含来自具有多个主机、路由器等网络环境的完整网络流量。如果数据集只包含来自单个主机(例如蜜罐)的网络流量,或者只包含来自网络流量的一些协议(例如独占SSH流量),则将值设置为no。

E.评价

以下特性与使用基于网络的数据集评估入侵检测方法有关。更精确地说,这些属性表示预定义子集的可用性、数据集的平衡和标签的存在。

1)预定义的分割:有时,即使在相同的数据集上对不同的IDS进行评估,也很难对它们的质量进行比较。在这种情况下,必须明确是否使用相同的子集进行训练和评估。如果数据集附带用于训练和评估的预定义子集,则此属性提供信息。

2)均衡:基于异常的入侵检测通常采用机器学习和数据挖掘方法。在这些方法的训练阶段(例如,决策树分类器),数据集应该与其类标签相平衡。因此,数据集应该包含来自每个类(normal和attack)的相同数量的数据点。然而,真实世界的网络流量是不平衡的,它包含了比攻击流量更多的正常用户行为。此属性指示数据集是否与其类标签相平衡。在使用数据挖掘算法之前,应该通过适当的预处理来平衡不平衡的数据集。他和Garcia[46]提供了从不平衡数据中学习的良好概述。

3)带标签:带标签的数据集是训练监督方法、评估监督和非监督入侵检测方法所必需的。此属性表示是否标记了数据集。如果至少有两个类normal和attack,则将此属性设置为yes。此属性中可能的值为:yes, yes with BG。(yes with background)、yes (IDS)、indirect和no。是的,有背景意味着有第三类背景。属于类背景的包、流或数据点可以是正常的,也可以是攻击。Yes (IDS)是指使用某种入侵检测系统来创建数据集的标签。数据集的一些标签可能是错误的,因为IDS可能不完美。间接意味着数据集没有显式标签,但是可以通过其他日志文件自己创建标签。

五、数据集

我们认为,在搜索足够的基于网络的数据集时,标记的数据集属性和格式是最决定性的属性。入侵检测方法(监督的或非监督的)决定是否需要标签以及需要哪种类型的数据(包、流或其他)。因此,表II提供了关于这两个属性的所有研究的基于网络的数据集的分类。表三给出了关于第四节数据集属性的基于网络的入侵检测数据集的更详细概述。在搜索基于网络的数据集时,特定攻击场景的存在是一个重要方面。因此,表III显示了攻击流量的存在,而表IV提供了数据集中特定攻击的详细信息。关于数据集的论文描述了不同抽象级别的攻击。例如,Vasudevan等人在他们的数据集中(SSENET- 2011)将攻击流量描述为:“Nmap、Nessus、Angry IP scanner、Port scanner、Metaploit、Backtrack OS、LOIC等是参与者用来发起攻击的一些攻击工具。”相比之下,Ring等人在他们的CIDDS-002数据集[27]中指定了执行端口扫描的数量和不同类型。因此,攻击描述的抽象级别可能在表四中有所不同。对所有攻击类型的详细描述超出了本文的范围。相反,我们推荐感兴趣的读者阅读Anwar等人的开放存取论文“从入侵检测到入侵响应系统:基础、需求和未来方向”。此外,一些数据集是其他数据集的修改或组合。图3显示了几个已知数据集之间的相互关系。

基于网络的数据集,按字母顺序排列

AWID [49]。AWID是一个公共可用的数据集4,主要针对802.11网络。它的创建者使用了一个小型网络环境(11个客户机),并以基于包的格式捕获了WLAN流量。在一个小时内,捕获了3700万个数据包。从每个数据包中提取156个属性。恶意网络流量是通过对802.11网络执行16次特定攻击而产生的。AWID被标记为一个训练子集和一个测试子集。

Booters[50]。Booters是罪犯提供的分布式拒绝服务(DDoS)攻击。Santanna et. al[50]发布了一个数据集,其中包括九种不同的启动程序攻击的跟踪,这些攻击针对网络环境中的一个空路由IP地址执行。结果数据集以基于分组的格式记录,包含超过250GB的网络流量。单独的包没有标记,但是不同的Booters攻击被分成不同的文件。数据集是公开可用的,但是出于隐私原因,booters的名称是匿名的。

僵尸网络[5]。僵尸网络数据集是现有数据集的组合,可以公开使用。僵尸网络的创建者使用了[44]的叠加方法来组合ISOT[57]、ISCX 2012[28]和CTU-13[3]数据集的(部分)。结果数据集包含各种僵尸网络和正常用户行为。僵尸网络数据集被划分为5.3 GB训练子集和8.5 GB测试子集,都是基于包的格式。

CIC DoS[51]。CIC DoS是加拿大网络安全研究所的一组数据,可以公开使用。作者的意图是创建一个带有应用层DoS攻击的入侵检测数据集。因此,作者在应用层上执行了8种不同的DoS攻击。将生成的跟踪结果与ISCX 2012[28]数据集的无攻击流量相结合生成正常的用户行为。生成的数据集是基于分组的格式,包含24小时的网络流量。

CICIDS 2017 [22]。CICIDS 2017是在模拟环境中历时5天创建的,包含基于分组和双向流格式的网络流量。对于每个流,作者提取了80多个属性,并提供了关于IP地址和攻击的附加元数据。正常的用户行为是通过脚本执行的。数据集包含了多种攻击类型,比如SSH蛮力、heartbleed、僵尸网络、DoS、DDoS、web和渗透攻击。CICIDS 2017是公开可用的。

cidds - 001 [21]。CIDDS-001数据集是在2017年模拟的小型商业环境中捕获的,包含为期四周的基于单向流的网络流量,并附带详细的技术报告和附加信息。该数据集的特点是包含了一个在互联网上受到攻击的外部服务器。与蜜罐不同,来自模拟环境的客户机也经常使用此服务器。正常和恶意的用户行为是通过在GitHub9上公开可用的python脚本执行的。这些脚本允许不断生成新的数据集,并可用于其他研究。CIDDS-001数据集是公开可用的,包含SSH蛮力、DoS和端口扫描攻击,以及从野外捕获的一些攻击。

cidds - 002 [27]。CIDDS-002是基于CIDDS-001脚本创建的端口扫描数据集。该数据集包含两个星期的基于单向流的网络流量,位于模拟的小型业务环境中。CIDDS-002包含正常的用户行为以及广泛的不同端口扫描攻击。技术报告提供了关于外部IP地址匿名化的数据集的附加元信息。数据集是公开可用的。

你可能感兴趣的:(基于网络的入侵检测数据集研究)