来源:Lidong Wang, “Big Data in Intrusion Detection Systems and Intrusion Prevention
Systems.”Journal of Computer Networks, vol. 4, no. 1 (2017): 48-55. doi: 10.12691/jcn-4-1-5.
摘要:介绍了网络攻击、入侵检测系统、入侵预防系统以及基于签名的检测和基于异常的检测方法。比较了入侵检测/防范系统(ID/PS)的方法。介绍了一些数据挖掘和机器学习方法及其在入侵检测中的应用。介绍了大数据入侵检测系统和大数据分析的海量数据、异构特征和实时流处理。文中还讨论了入侵检测系统的挑战和系统中大数据流处理带来的挑战。
网络犯罪和恐怖主义的许多类别和应用都包含身份的错误表述,或者试图通过身份验证访问攻击者没有合法权限的业务或服务。在欧盟内部,eIDentity、Authentication & signature法规于2014年10月发布。欧洲CAMINO项目介绍了在打击网络犯罪和网络恐怖主义的现实路线图方面的初步成果。CAMINO项目的主要目标是为提高抵御网络恐怖主义和网络犯罪[1]的能力提供一个现实的路线图。入侵检测系统(IDS)通常被认为是经过认证、防火墙、密码学、授权技术等一线安全措施[2]后的二线安全解决方案。IDS是使入侵检测过程自动化的软件。入侵预防系统(IPS)是一种软件,具有IDS的所有功能,并且可以试图阻止可能发生的事件。IDS和IPS技术可以提供许多相同的功能,但是管理员也可以禁用IPS产品中的预防功能,让它们发挥IDSs的功能。许多入侵检测和预防系统(IDPS)也可以响应检测到的威胁并使用几种响应技术:在这些技术中,IDPS可以停止攻击本身、更改攻击内容或更改安全环境(例如,重新配置防火墙)。
IDS可以监视特定的协议,比如web服务器的超文本传输协议(HTTP)。这种类型的IDS称为基于协议的入侵检测系统(PIDS)。IDSs还可以专门用于监视特定于应用程序的协议,比如基于应用程序协议的入侵检测系统(APIDS)。这方面的一个例子是apid,它监视数据库的结构化查询语言(SQL)协议。与安全事件源(如网络和不同的主机类型)的异构性一样,IDSs本身在类型、操作方式和不同的告警格式上也可能是异构的。
在安全监控中,通过开发的id可以收集四种数据进行关联。它们是:IP流记录、HTTP数据包、DNS应答和蜜罐数据。例如,流记录为检测入侵或突出显示僵尸网络通信提供了宝贵的数据。通过从网络的核心路由器导出网络流量记录,可以存储企业网络到互联网的每一个通信的痕迹,反之亦然。HTTP流量是一个众所周知的入侵向量,它代表了Internet用户流量的很大一部分。研究嵌入在HTTP数据包及其有效负载中的统一资源标识符(URL)有助于检测和防止恶意通信。域名称系统(DNS)请求被执行,以获取与域相关联的IP地址并查询相关的资源。因此,监控DNS以识别恶意域是有效的主动检测和防止恶意通信的重要部分。蜜罐通常模拟脆弱的服务,并包含虚假的生产数据。记录蜜罐信息有助于获取攻击者针对特定网络的数据,例如所使用的协议、IP地址、所使用的攻击文件和扫描策略等。
入侵检测机制有三种模式:基于签名的、基于异常的和混合检测[6]。但是,在IDS中通常使用两种攻击识别方法:1)签名是网络流量的特定定义元素,可能对识别有用;异常是正常网络行为的一些偏差。在上述两种情况下,必须预先定义签名的形式和网络的正常行为[7]。签名检测也称为误用检测。
2 攻击和入侵检测方法
2.1 入侵检测和预防系统(IDPS)和攻击
攻击可以分为以下四大类[2,7,8]:1)拒绝服务(DoS)——攻击者试图阻止合法用户使用服务;2)探针——攻击者试图通过扫描受害者等方式查找目标主机的信息,获取可用服务和操作系统的信息;3) U2R(user to root)——未经授权访问本地超级用户(根)特权;4)R2L(remote to local)——通过猜测密码等方式从远程机器上获得未授权的访问,以获取受害者主机上的本地帐户。
入侵检测方法可分为五类:统计、规则、状态、模式和启发式。结果表明,基于模式的方法在识别未知攻击和隐藏攻击[10]时是有效的。表1[10]显示了IDS分类。
攻击者有时愿意在很长一段时间内分散他们的行动,以避开探测系统。因此,在这种情况下,有必要将焦点从实时检测转移,这极大地限制了分析和相关能力。相反,更可取的方法是专注于全包捕获、深度包检查和大数据分析,以便使用更高级的算法进行分析和关联,并减少这种规避尝试。虽然离线分析(分析捕获的流量)不可避免地导致了延迟攻击检测,但必须考虑到,在大多数APTs中,犯罪者有时会花费大量时间试图达到特定的目标(例如,泄漏敏感数据)。
组织应该考虑使用具有多种IDPS技术的系统,以便在检测和预防恶意活动方面实现更精确和全面的性能。IDPS技术的四种主要类型包括基于主机、网络、基于网络行为分析(NBA)和基于无线的;每个工具都提供不同的日志记录、信息收集、检测和预防功能。介绍了一种利用GPU进行负载模式匹配计算的入侵检测系统Gnort。该系统基于Snort开源NIDS(网络入侵检测系统),该系统利用现代显卡未充分利用的计算能力,从CPU上卸载代价高昂的模式匹配操作,从而提高总体处理吞吐量。Gnort使用合成网络跟踪实现了2.3 Gbit/s的最大流量处理吞吐量,同时在监视实际流量时使用了一个普通的以太网接口。结果表明,现代的显卡可以有效地提高入侵检测系统的速度,同时也可以提高其他涉及模式匹配操作的系统的速度。
2.2 基于特征码的检测方法(Signature-based Detection)
必须向IDS提供预定义的攻击规范以进行误用(签名)检测,这要求人类安全专家手工分析攻击相关数据并制定攻击规范。攻击规范可以通过使用各种自动化技术自动生成。然而,大多数的误用检测系统都缺乏这种能力,而且大多数系统都只关注单个源产生的数据[13]。签名有四类:
(1)字符串(String)签名:字符串签名引擎支持正则表达式模式匹配和警报功能。
(2)连接(Connection)签名:它们根据网络连接和协议的一致性和有效性生成警报。
(3)DoS签名:它们包含行为描述,被认为是DoS攻击的特征。
(4)利用(Exploit )签名:他们通常识别特定利用的唯一的流量模式;因此,每个漏洞变体可能需要一个单独的签名。攻击者可以通过稍微修改攻击负载来绕过检测。每个攻击工具变体通常都必须生成一个攻击签名。
目前的反病毒解决方案容易受到零日攻击,因为它们是基于签名的,基于异常的检测缺乏可靠的机制来构建精确的概要,以区分攻击和正常事件。尽管开发一种有效的解决方案来防御所有未知的攻击是极其困难的,但是人们已经发现,大多数攻击都有一个共同点——隐藏的可执行内容。提出了一种基于异常的解决方案,用于检测网络流量中隐藏的可执行内容。杀毒产品属于基于签名的检测方法,通过匹配已知特征来识别威胁。该方法为已知的攻击提供了较高的精度,但对零日攻击无效。零日攻击包括新的类型威胁和现有攻击的变种,这些攻击在第一次发射时没有具体的特征。防范零日攻击的唯一解决方案是基于异常的检测,不依赖于特定的签名
2.3 基于异常的检测(Anomaly-based Detection)
基于异常的检测也被称为“基于行为的检测”。它是一种IDS方法,对网络、用户和计算机系统的行为进行建模,并在偏离正常行为时发出警报。它特别擅长识别探针和扫描网络硬件。由于扫描和探针是所有攻击的前身[16],它可以对潜在的入侵发出早期警告。异常检测可分为静态异常和动态异常检测。静态异常检测器通常只针对系统的软件部分;因此,他们关注完整性检查。动态异常检测通常对审计记录或监控的网络流量数据[13]进行操作。
行为偏差的探测器被称为“异常传感器”,每个传感器都检查主机或用户在网络内活动的一个方面。例如,传感器可以对每个用户登录的机器集进行配置,以发现异常的访问模式;跟踪主机接触的外部站点,以识别不寻常的连接;研究使用者在半夜的正常工作时间,以标示可疑活动;或者跟踪内部主机之间的数据流,找到收集大量数据的异常“汇聚”。多个传感器的触发提示了更多的可疑行为[9]。大量的研究集中在流量级网络的网络流量上。因此,基于最新的压缩感知方法,提出了一种新的处理包级网络数据的方法来揭示异常模式。
因为目前的网络威胁不仅包括恶意代码,比如特洛伊木马或蠕虫病毒,而且间谍软件和广告软件也没有明确的非法内容。有一种机制可以防止在网络流量中下载隐藏的可执行文件,这是必要的。提出了一种基于文件字节频率分布15的基于异常的网络入侵检测系统(NIDS)的可执行内容的解决方案。在网络流量分析中收集更多上下文的一种方法是调查正在移动的数据类型。通过深度分组检查和会话重组,可以对内容进行基于文件的分析,以提高检测精度,并将当前流量与基线进行比较,以查找数据移动中的异常。以下情况有助于识别异常:
(1)一天中的时间(Time of day):如果一个用户通常不在半夜工作,但他或她连续两天工作,这可能意味着恶意活动。
(2)应用程序模式(Application patterns):许多基于web的应用程序都具有可以分析的已知和可预测的事务模式。人们可以根据确定的基线来寻找异常。
(3)文件大小(File size):例如,如果用户在24小时内移动了2GB的流量,但是他或她通常每天移动不超过100MB,就应该触发警报。
(4)简单的DLP:可以通过指纹文件查找敏感内容或正则表达式来匹配账号或其他受保护数据。这不是完整的DLP分类和分析,但是如果没有完全DLP的开销,它可能会标记一些恶意的东西。
近年来,采样流量数据也被用作异常检测的输入,例如检测DoS攻击或蠕虫扫描。众所周知,采样会扭曲流量统计数据,如平均速率和流量大小分布。文献中广泛讨论了两种抽样方法。它们是:流抽样和分组抽样。包采样很容易实现,低CPU功耗和内存需求。流抽样作为一种替代方法出现,以克服分组抽样的局限性。它能提高准确性但仍然受高强度内存和CPU电源需求的影响。从一级ip -主干捕获的信息包跟踪使用四种常用方法进行采样:随机流采样、随机分组采样、智能采样和采样保持。然后将采样数据作为输入来检测两个常见的异常类型:端口扫描和容量异常。
端口扫描通常与蠕虫或病毒传播有关,而容量异常可能由于各种原因而发生,包括flash群和DoS攻击。提出了几种端口扫描检测技术。例如,SPICE可以执行复杂的离线贝叶斯分析,以检测隐藏端口扫描。Snort是一款灵活的开源入侵检测系统,可以根据用户定义的连接模式和速率发出扫描警报。提出了两种有效的“在线”端口扫描检测技术——阈值随机游走(TRW)和时间访问模式方案(tap)。基于假设检验,研究了一种基于小波的体积异常检测和两种端口扫描检测算法的代表性算法[19]。表2[20]显示了异常攻击的映射。点异常对应于与数据集其余部分相对应的数据样本。上下文异常(也称为条件异常)指的是一种异常行为,它只在某些情况下被认为是异常,而在其他情况下不被认为是异常。集体异常是指完全异常的数据样本的集合。
2.4 入侵检测/预防系统(ID/PS)方法的比较。
与基于签名的方法相比,基于异常的方法可以导致更快的执行速度,但往往导致高假阳性率。由于入侵模式和正态模式并不总是符合一定的分布,也不是线性可分的;因此,在采用支持向量机(support vector machine, SVM)等统计学习方法进行入侵检测[23]时,出现了上述问题。不知道数据包负载是导致应用程序级异常检测性能差的主要原因。在基于签名的方法中,对数据包有效载荷进行了严密的分析,提取了唯一的签名,因此基于签名的方法可以对现有的攻击[15]提供极高的准确性。表3[24]比较了ID/PS方法及其特性。
2.5 入侵检测系统的挑战
在大型网络上部署的IDS设备面临的一个挑战是,IDS组件通过子网进行通信,有时通过防火墙和网关进行通信。对于网络的不同部分,网络设备可以使用不同的数据格式和不同的通信协议。IDS必须能够识别不同的格式。大型网络中的IDS面临的另一个挑战是有效地监控流量。网络入侵检测系统(NIDS)组件分散在整个网络中。如果没有战略性地放置组件,许多攻击可以通过在网络[25]中遍历备选路径来绕过NIDS传感器。当前IDSs的一个主要挑战是可以维护连接状态的有限时间窗口。
由于所有现代的IDSs都侧重于实时检测,因此它们只能支持一个短时间窗口(通常是几秒钟),在这个窗口中,传输控制协议(TCP)会话可以检测到攻击。端口扫描是这个弱点的一个实例。针对主机的快速端口扫描将触发几乎任何IDS的警报。但是,如果该扫描在几分钟内进行,那么大多数IDSs[11]攻击将在未被检测到的情况下通过。在网络中,以下挑战仍然是未解决的问题,总结如下,用于入侵检测解决方案[26]:
•运行时限制:实时入侵检测应该捕获并检查每个包,而不丢失任何包。高流量负载会影响捕获和检查方法,需要一个强力的方法解决这个问题。
•假阳性的数量:减少预处理中的计算复杂度是必要的。
•入侵检测的设置应该独立于其基础设施。
•攻击异常的变化和未被发现:检测概要和方法应该动态更新和调整,以便在不影响性能的情况下检测新的攻击模式。
3 入侵检测中使用的一些数据挖掘和机器学习方法
对2001年至2008年的研究进行了总结,结果表明,攻击检测研究侧重于寻找混合解和检测分类。然而,从2010年到2015年的研究成果来看,这一时期的攻击检测研究更多地侧重于机器学习和数据挖掘,包括基于误用和基于异常的入侵检测[26]的混合解决方案
流数据的分析是很重要的。由于入侵和恶意攻击的短暂性和动态性,有必要在数据流环境中进行入侵检测。此外,事件本身可能是正常的,但如果它被视为事件序列的一部分,则被认为是恶意的。因此,有必要研究共同遇到的事件序列,找到顺序模式,并识别异常值。实时入侵检测[27]也需要数据挖掘方法来发现演化的集群并在数据流中建立动态分类模型。离群点检测是数据挖掘的一个实例,它对入侵检测非常有用。离群值有两种。第一种类型是在自己的网络外围设备中与其他类型有显著差异的类型,而第二种类型的模式属于其他网络服务,而不是属于自己的服务。许多研究表明,直接从高维数据集中找出异常值是极其困难的;因此,在减小数据集的维数方面做了大量的工作。降维可以由主成分分析(PCA)。
入侵可以从几个不同的地点发射,并瞄准许多不同的目的地。分布式数据挖掘方法可用于分析来自多个网络位置的网络数据,以检测这些分布式攻击[27]。不断发展的数据流挖掘分类器已经在大规模在线分析(MOA)中使用,因为它们能够处理数据流中的概念漂移。MOA[2]中有16个正在进化的数据流分类器。无监督的入侵检测可以基于聚类,目的是将数据实例组合成集群。所有出现在小集群中的实例都被标记为异常,因为与入侵[28]相比,正常实例应该形成大集群。表4[20]给出了基于统计、聚类、分类和信息论的网络异常检测方法的分类。PCA通常被认为是数据挖掘中的一种方法。
k-means聚类方法可用于将数据集聚类到多个集群中。可以直接对训练集进行聚类,也可以选择在降维后进行特征选择,然后对降维[29]的数据进行k-means聚类。利用KDD杯1999网络数据集,选择k-means算法对非监督学习方法进行异常检测的性能进行评价。评价结果表明,在保持低误报率[30]的前提下,可以获得较好的检测率。采用包含三种数据挖掘方法的混合IDS进行异常检测,混合IDS包含k-means、k-nearest neighbour (k-NN)和Decision Table Majority方法,该混合方法降低了DIS中的误报率。一种结合k-means、k-NN、朴素贝叶斯的混合模型被提出。该模型采用基于熵的特征选择方法进行属性选择。采用k-means聚类算法进行聚类,k-NN和朴素贝叶斯分类算法进行入侵检测。该模型比k-means或k-means与kNN的组合表现出更好的性能。基于神经网络和反向传播算法的IDS需要大量的数据,并且需要时间来保证结果的准确性。入侵检测系统的增强决策树方法是一种集成方法,其检测率较好,但具有较低的误报率。因为它结合了一些决策树,它变得复杂,需要更多的时间和空间。
与传统的神经网络相比,利用DT进行分类可以获得较好的准确率,从而减少训练和测试时间。DT在R2L和DoS类入侵检测建模中的重要性已经得到了证明。对于U2R和probe类,基于规则的分类更适合。然而,在基于可接受水平的误报率[8]建模入侵检测系统时,DT比基于规则的分类更适合。研究了一些入侵检测技术,并基于KDD CUP 99测试数据对其性能进行了评估。将DT和SVM作为入侵检测模型进行研究;设计了一种混合的DT - SVM模型和基于DT、SVM和DT - SVM模型的集成方法作为基分类器。实验结果表明,DT对正常类、探针类、R2L类和U2R类都有较好的或同等的精度。与直接支持向量机方法相比,混合的dtd - SVM方法改进或提供了所有类的一致性。集成方法为R2L和探针类提供了最佳性能。集成方法为探针类提供了100%的准确性,这表明如果选择合适的基分类器[32],那么对于其他类也可能有100%的准确性。传统的数据挖掘和机器学习方法在入侵检测和防范方面存在局限性,因为ID/IP系统产生的大数据量大、速度快、数据格式多样等。
4 入侵检测系统中的大数据
4.1 为异构数据源提供大量的数据和数据融合
传统上,用于检测和防止网络攻击的系统的范围可以分为:防病毒程序、主机IDS / IPS、网络IDS / IPS、日志记录、网络设备事件、文件完整性监视(FIM)和白名单,以及安全与信息事件管理(SIEM)。尽管这些系统在很多方面都很有用,但它们在对付当前类型的隐形网络攻击时基本上是无效的。原因是:1)它们彼此独立运行;2)产生大量的数据,分析起来比较困难、耗时,容易忽略关键的网络攻击事件[33]。大数据分析(Big Data analytics, BDA)可以更快地筛选大量数据,异构系统可以变得更高效、更有效。验证的大量数据在内容网络是一个重大的挑战,因为有大量的不同类型的来源,如博客、社交网络平台,或新闻网站和社交网络功能,和不同类型的内容,如评论、文章,微博,等等。因此,需要获得简单的规则的验证内容和利用其他用户的推荐内容。推荐用户本身必须基于声誉和信任标准进行评估[34]。
APTs检测的一个挑战是大量的数据用于检测异常。这些数据来自越来越多需要审计的不同信息源。大数据分析是一种适用于APT检测的方法。通过使用MapReduce实现,APT检测系统有可能更有效地处理高度非结构化的数据,这些数据具有任意的格式,这些格式被许多类型的传感器(如防火墙、IDS、Syslog、NetFlow和DNS)长时间捕获。此外,与传统的基于sql的数据系统[9]相比,MapReduce的大规模并行处理机制可以使用更复杂的检测算法。
一种用于阻止警报(大警报数据)泛滥的常见技术称为警报关联。警报关联的基本概念是,系统应该将多个警报过滤并聚合到一个警报中,这样,当相同的特性引起相同的警报时,就不会出现大量相同类型的警报。数据融合是一种从各种不同的源(如系统日志文件、系统消息、用户配置文件数据库、操作员命令、大量分布式数据包嗅探器和简单的网络管理协议(SNMP)陷阱和查询)聚合入侵检测数据的技术。网络空间的数据融合可以增强态势感知能力。然而,数据融合在入侵检测领域并没有得到广泛的应用。对入侵检测的报警相关性进行了大量的研究,而对事件融合或其他类型的数据融合的研究较少。需要对不同的数据融合技术进行更多的实验,特别是在包含大数据[4]的多种异构数据源的背景下。
讨论了利用大数据分析工具进行网络安全的三种主要方法。第一种方法涉及使现有的系统(如SIEM和data loss prevention (DLP))更智能,噪音更小,以便只标记和隔离最危险的网络攻击(如APTs)。在第二种方法中,分析的数据来源于内部和外部来源(例如在线和移动活动),并且分析设置是定制的(或临时的)。这意味着这些机构可以设定自己的搜索标准,在一些大数据分析系统中,可以“像谷歌一样”搜索恶意活动。第三种方法主要对威胁和不良活动的外部数据进行分析。这意味着,大数据分析系统的设计目的是在互联网(包括黑暗和公众)中搜索针对[20]组织的恶意活动。
4.2 实时流数据和大数据流处理
处理大数据的速度不是一项容易的任务。首先,系统应该能够以每秒数百万个事件的速度收集实时事件流生成的数据。其次,它需要在收集数据时并行的处理数据。第三,它应该使用复杂的事件处理引擎执行事件关联,从移动的流中提取有意义的信息。这三个步骤应该以容错和分布式的方式进行。实时系统应该是一个低延迟的系统,这样计算就可以非常快地执行,并具有接近实时的响应能力[35]。
实时分布式流处理模型可以为网络安全威胁检测的流量监控应用提供便利。由于数据量大,需要在分区中进行分离,以并行处理。高可用性、容错和故障恢复是流处理系统的关键。流处理平台必须为数据流中常见的数据丢失、延迟或无序样本等缺陷提供恢复机制。平台应该最小化数据传输中分布式进程之间的通信开销。实时监控应用程序需要分布式流处理。以分布式方式分析大数据的主要方法是使用Hadoop开源实现的MapReduce技术。然而,基于这种技术的平台并不理想,甚至有时不适合处理实时流应用程序[36]。
基于传统解决方案(如数据流管理系统(DSMS)和复杂事件处理器(CEP)的方法通常不足以应对大数据上下文中的流处理带来的挑战。流处理所需的分析任务非常需要知识,因此也需要自动推理任务。即使考虑到NoSQL数据库和并行处理技术的最新突破,在大数据上下文中有效、高效地处理流的问题也远没有得到解决。大数据流处理常常对重要事件的识别提出硬/软实时要求,因为它们的检测延迟太大可能完全无用的[34]。人们设想,通过使用Hadoop等大数据工具和名为PacketPig的网络监控工具,构建一个能够处理大数据网络流的NIDS。PacketPig可以在使用Hadoop时进行深度包检查、深度网络分析,甚至完全包捕获。聚类算法分析分组分类的有效性主要考虑[4]。
5 结论
使用具有多种IDPS技术的系统有助于实现更精确和全面的性能。杀毒产品属于基于签名的检测方法。基于签名的方法对于现有的攻击具有很高的准确性,但是不能检测到新的或未知的攻击(零日攻击)。基于异常的方法可以用来防御零日攻击,并且可以检测到大多数新的攻击,但是通常会导致很高的假阳性率。异常探测器充当异常传感器,每个传感器检查主机或用户在网络中的活动的一个方面。多个传感器的触发表明了更多的异常行为。很难直接从高维数据集中找到离群值;因此,PCA通常进行尺寸缩小。集成方法通常能够获得更好的性能,比如在建模入侵检测和预测攻击类型方面的准确性。
实时监控应用程序需要分布式流处理。高可用性、容错和故障恢复是流处理系统的关键。当前IDS的一个关键挑战是可以维护连接状态的有限时间窗口。通过数据融合可以增强态势感知,帮助处理不同的异构数据源和大数据。IDS和IPS是大数据的来源,因为它们生成大量数据,而且数据通常是异构的。IDS应该能够识别不同的数据格式和不同的通信协议,这是大数据的特点。大数据分析(Big Data analytics, BDA)可以快速筛选大量数据,异构系统可以变得更高效和有效。
https://hortonworks.com/blog/big-data-security-part-one-introducing-packetpig/