没有合适的资源?快使用搜索试试~ 我知道了~
基于角色的横向运动检测与无监督学习
智能系统与应用16(2022)200106基于角色的横向运动检测与无监督学习Brian A. 鲍威尔约翰霍普金斯大学应用物理实验室,劳雷尔,MD 20723,美国A R T I C L E I N F O关键词:入侵检测无监督学习A B标准通过受损账户进行的对抗性横向移动仍然难以通过传统的基于规则的防御发现,我们提出了一种基于行为的,无监督的横向运动检测方法,使必要的使用系统的角色,它在网络上执行的功能,以确定异常的系统间连接。它是基于这样的观察,即随着时间的推移,特定系统与之通信的远程主机可以被组织成一组稳定且可学习的角色,并且正常连接的两端上的两个主机的角色确定支持该连接的进程的动态,例如,针对域控制器的工作站的认证涉及进程的特殊序列。如果一个过程被攻击者破坏并用于促进横向移动,这些正常模式可能会以可识别的方式被破坏。我们使用无监督学习系统聚类根据角色,然后应用频繁项集挖掘过程序列建立规则模式的系统之间的通信的基础上的角色。罕见的过程序列可能表明恶性的横向运动,可能是通用的连接到远程主机与新的角色。1. 介绍横向移动是网络攻击生命周期中必不可少的一步。在成功入侵之后,对手将在目标网络中从一个系统移动到另一个系统,执行侦察,窃取凭据并升级权限。横向移动很普遍,超过60%的已知攻击都采用了CB ( 2019 ) 技术。它也很难检测, 在2020 年Mandiant(2020)中,在网络上发现的已知策略不到一半。通过受损帐户进行的活动不会被发现,因为它们往往看起来很正常:访问经过适当的身份验证,并且受损系统上可用的授权软件可用于进一步访问:例如,在2020年的美国政府网络上,被称为传递哈希的凭据妥协被用于进行30%的横向移动活动,远程桌面协议(一种本地Windows实用程序)支持25%的连接,只有大约10%的活动涉及代码漏洞网络安全和机构(2021)。基于规则的入侵检测系统很难检测到这样的活动,缺乏可识别的签名的妥协。机器学习和更广泛的人工智能为网络攻击检测提供了新的途径 。 Ahmadet al. ( 2021 ) ; Buczak and Guven ( 2016 ) ;HagemannandKatsarou(2020); Ma ga'n-Carrio'netal. ( 2020)已经进行了关于将机器学习应用于传统类别的检测,入侵(恶意软件传播,拒绝服务,僵尸网络等)Moustafa和Slay(2015);Tavallaee等人(2009);KDD(1999),仍然迫切需要开发更符合现代高级威胁技术的能力:即使用授权服务和受损帐户在网络中悄悄移动。 虽然大多数入侵类型都有共同的“特征”(例如,快速连续的许多连接表明蠕虫或侦察,大量数据传输表明渗透),授权的横向移动不需要显示这种明确的指标ATT& CK(2019); Hausknecht(2019)。但是,如果我们能够将统计模式识别和行为建模的方法应用于描述正常用户、系统和网络特征的数据,那么就有可能在企业环境中发现恶意活动,而无需明确的指标或历史先例。在本文中,我们将无监督学习应用于发现异常网络上的系统之间的连接。我们专注于一般的连接,而不仅仅是身份验证,我们的方法不依赖于任何明确的妥协指标,与对手的战术或技术,或使用任何特定的协议或服务的文物。该方法强调,一个系统在网络中的作用,本质上是它的功能,是一个强有力的指标,如何,以及与其他系统,它的通信。我们建立基于角色的系统配置文件,使我们能够识别偏离角色模式的连接;这种异常连接可能表明敌对的横向电子邮件地址:brian.a. jhuapl.edu。https://doi.org/10.1016/j.iswa.2022.200106接收日期:2021年11月3日;接收日期:2022年7月7日;接受日期:2022年7月24日2022年8月2日在线发布2667-3053/© 2022作者。由爱思唯尔有限公司出版。这是一篇开放获取的文章,获得了CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表智能系统及其应用杂志首页:www.journals.elsevier.com/intelligent-systems-with-applicationsB.A. 鲍威尔智能系统与应用16(2022)2001062运动这些配置文件模拟了系统间连接中涉及的进程的时序特性。所有系统间的连接都是由相关主机上运行的进程发起和维护的:我们假设,一般来说,正常的进程动态遵循基于连接中所涉及的系统角色的模式。正常的系统功能,如身份验证、网络时间协议(NTP)同步和域名系统(DNS)查询,往往涉及可识别的进程组合;例如,当Windows客户端对域控制器进行身份验证时,进程lsass.exe通常与安全引用监视器(通过进程ntoskrnl.exe)紧密连续地执行。(2013年)。前者在系统上执行本地安全策略,后者提供启用访问控制的同时,域控制器与NTP服务器或DNS服务器交互用于完全不同的目的,因此涉及不同的进程和/或进程动态。正常行为的可靠模式可用于发现干扰进程时序或采用与基于系统角色的预期相关的新进程的对抗性活动,包括进程注入和劫持ATT CK(2021)等特定技术。如果广告商将恶意代码注入可执行文件以打开与某个远程系统的连接,则它最好是根据远程系统的角色通常涉及系统间通信的可执行文件,并且它最好以可识别的时间模式与其他可执行文件一起执行。这通常限制了攻击者可以横向移动的方式、时间以及移动到哪些其他系统。基于角色的模型适用于感兴趣的各个系统,如下所示:无监督学习用于基于端口使用将系统的所有远程对等系统(在一段时间内与其连接的那些系统)组织成角色。然后,从连接日志(例如, 炭黑网络连接)。然后将具有相同角色的对等体的连接的时间序列收集在一起并挖掘模式;这些模式(或它们的一些表示)构成了感兴趣的系统如何与特定角色的远程系统当感兴趣的系统建立新的连接时,对等系统的角色被识别,并且包括连接的过程针对适当的模型被测试。这种方法的一个明显问题是,如果连接到具有新角色的系统,则从那时起没有历史过程数据来构建模型,并且无法测试连接然而,与一个具有新角色的系统的联系本身就是一种异常,因为它偏离了历史先例。这些异常很可能表明恶意活动:攻击者根据效率或权宜选择他们的行动,并且很可能连接几乎没有业务通信的系统。E X示例比比皆是:具有广泛连接性且没有访问控制的物联网设备通过网络提供了一条隐秘的路由;然而,许多系统(如工作站和核心服务器)可能很少(如果有的话)与它们通信。攻击者可以在任何受感染的系统上建立枢纽,通过这些枢纽,他们可以传输命令和控制,路由命令或移动数据:这些枢纽可能链接很少直接通信的系统,例如工作站到工作站,文件服务器到打印机,邮件服务器到工作站等。总之,我们提出了一个无监督的框架,旨在确定两个层面上的横向运动它本质上是在问:这两个系统是否应该如果是这样,他们的谈话方式是否正确?这项工作是一个贡献,希望和不完整的武器库的方法能够检测明显授权的横向移动,现代网络入侵的据作者它是第一个使用系统角色来模式化系统间的连接,并将这些模式应用于横向移动检测问题。角色分配的无监督方法也是原创的,尽管存在类似的方法,将在下一节中进行审查。以前的入侵检测框架没有明确地研究系统间连接的启动和维护中涉及的进程动态;正如下一节所讨论的,在系统调用和UniX命令序列的分析方面有相当多的类似研究,但这些研究适用于主机级入侵检测(与主机间或网络级入侵检测相比),并且系统间进程的分析带来了独特的挑战,例如需要捕获进程序列内的时间结构。最后,我们强调使用无监督学习作为检测范式,与监督方法相反,监督方法需要标记的足够真实的活动样本在部署的环境中是有用的。2. 相关工作此分析涉及检测企业网络中的恶意连接虽然通用的,在这个意义上,该方法是不可知的协议,技术,或有效载荷,其好处是最清楚地看到作为一种手段,检测认证连接,其中明确的指标的妥协和其他规则通常缺乏。因此,它适用于外部对手通过受损账户进行的经认证的横向移动,也适用于同样通过授权手段进行的恶意内部和伪装活动。有两个广泛的领域的先前研究有关这项工作。第一个与系统分类有关,我们将系统分为角色;第二个与分析系统事件序列(用户活动、系统调用、进程执行)以进行异常检测有关。我们在下面分别回顾了每一种方法的相关文献。2.1. 系统分类在所提出的方法的第一步是系统的角色的无监督组织。有许多方法可以执行这种分类:我们选择基于系统角色的分组-系统在向网络上的其他主机提供服务方面的行为。该方法仅使用被动连接日志数据的单个源因此,这是一个简单的例子,说明如何在操作环境中实现中心概念,即强调系统在检测恶意连接方面的重要性。下面的参考文献回顾了基本文献,并提出了可以在我们的框架中实现的系统角色系统和流量识别问题,在应用程序,协议,或服务类型方面,已经看到了广泛的发展,主要是应用到服务质量,策略执行和网络管理。我们强调,我们不希望执行流量分类,即将流量分配给已知的协议或应用类别,如点对点通信,在线游戏或洋葱路由Kim et al.(2008);Nguyen and Armit-age(2008);Salman et al.(2020)。我们对使用流量分类(例如,请参见Lakhina)执行流量异常检测(以识别蠕虫传播或端口扫描等人(2005); McHugh et al. (2008)和其中的参考文献)。我们的问题要容易得多,因为我们不关心积极地识别一组特定系统的地面真值标签;我们只是希望根据功能特性对它们进行划分。在这种情况下,我们专注于以前的文学与类似的目标。网络流数据的使用形成了几个早期研究的基础。徐等人的重要工 作 。 ( 2005 ) 在 ( src_ip , src_port , dst_ip ,dst_port)四元组上执行集群,以将系统分解为广泛的类别,如服务器、代理和与扫描或利用相关的流量。也与流动记录,魏等人。(2006)分析了流量统计数据,如每日字节总数、不同目的地的数量和平均生存时间,将系统集群为传输控制协议(TCP)服务器、用户数据报B.A. 鲍威尔智能系统与应用16(2022)2001063()下一页协议(UDP)服务器和用户工作站。Erman et al.(2006)的相关工作将各种聚类算法应用于流导出的特征,如数据包数量、平均数据包大小和数据包的平均到达间隔时间,以根据常见服务(如Web、电子邮件和对等网络)组织流量。小图(graphlets)技术,即使用互联网协议地址(IP)和端口数据生成主机到主机通信的拓扑表示的小无向图,在Karagiannis等人(2005)中用于监督流量分类。在Himura等人的研究中,Graphlet已经被应用于非监督分类问题。(2013年)。Tan等人(2003)研究了基于连接模式的企业系统到角色的无监督解析。相对于其相邻系统集相似的系统被分层地分组在一起;这种方法的成功取决于功能相似的系统相对于该度量也相似的程度在Xu et al.(2011)中,引入了一个系统关联图,其中系统顶点共享一条边,如果它们连接到同一个远程系统;边根据这个共享邻居集的基数进行加权然后在该图上执行谱聚类,以将系统组织成具有相似邻居交互的Dewaele et al.(2010)对九个连接相关的量执行聚类,包括对等体的数量、目的端口数量与对等体数量的比率以及目的IP地址的第二和第四字节的熵的比率。这种方法成功地按常见的协议(如Web、对等、邮件和DNS)对流量进行了分类。我们不是通过代理(通过连接拓扑和其他特征)执行角色分析,而是使用连接日志数据来根据端口使用情况对系统进行分类:这种分析比连接模式更接近功能描述。但是,如前所述,没有先验的理由表明,上述著作中强调的分类不能用于这一方法。2.2. 横向移动和伪装检测关于横向移动和内部威胁检测的问题有大量的研究,总结在以下评论中:Bertacchini和Fierens(2009); Bridges et al.(2019);Liu et al. (2018 a); Salem等人(2008)。这一领域的许多先前研究都集中在检测漏洞利用和恶意软件活动上 。( 2014); Dr.a.(2014); Tavallaee等人(2009),通常在KDD CUP 99入侵数据集的上下文中。与各种各样的工作相反,我们在这里开发的方法是一种基于行为的检测能力,旨在针对通用的横向运动,没有明确的妥协指标。2.2.1. 基于网络的指标相关的研究集中在网络内部的恶意身份验证访问(或登录事件),适用于内部和外部威胁。认证图将系统表示为顶点,登录表示为它们之间的边,在Kent et al.(2015)中被引入作为检测异常登录活动的工具。这些图可以从身份验证日志数据中构建,并在监 督Bai 等人 ( 2019 ) ;Goodman 等人 ( 2015 ) ;Kaiafas 等人( 2018 ) 和 无 监 督 设 置 Bowman 等 人 ( 2020 ) ;Chen 等 人(2012);Eberle和Holder(2009);Eberle等人(2010);Holt等人(2019);Powell(2020);Siadati和Memon(2017)的许多作品中进行了分析。一些作者使用其他数据源增强了登录数据以表征横向移动:Chen等人(2018)将身份验证记录与一般网络连接和DNS查询的数据相结合,以创建用于训练自动编码器以执行异常检测的图形特征。在Bian et al.(2019)中,来自网络流的数据与身份验证记录相结合,构建了一个监督分类器来检测恶意连接。Bohara等人从网络中广泛部署的监视器中提取连接和命令&控制数据。(2017); Fawaz等人2016年:创建图表所有的网络连接,并试图识别长链的连接,表明多枢轴横向运动。枢转活动的长链也是Apruzzese等人提出的基于流的检测方案的目标。(2020); Hu sa`ketal. (2021年)。 从多个数据源创建的二分用户系统图,包括登录,Web访问,电子邮件和文件访问记录 , 用 于 训 练Gamachchi 和 Boztas ( 2017 ) 中 的 一 类 学 习 者 ;Gamachchiet al. (2017)识别恶意连接。 In Yen et al. (2013)中,来自多个源的数据(包括认证和代理日志)和面向连接的数据(如用户代理字符串)被用作被聚类以识别异常的特征;该方法适用于恶意外部和内部连接。应用和技术特定的方法也已被探索:在Djidjev et al. (2011),挖掘表示安全外壳(SSH)连接的图以识别对应于单个用户活动的子图,其中低概率的大子图被标记为异常。 在Purvine et al. (2016),可达性图表示通过网络的逻辑路由进行了分析,以确定风险系统具有高重要性和高可达性;这些见解可以用于设计缓解策略。与这些工作相反,我们的框架评估了异常的个体连接(与访问链),其中连接可以是任何类型的(与主要的身份验证)。但重要的是,我们的方法不应被视为这些方法的替代品,而是潜在的相互加强,因为每个目标都与横向运动问题的不同方面相关。2.2.2. 基于主机的指标另一个主要的工作集中在基于主机的恶意活动指标上,包括系统调用跟踪、命令行使用、文件访问模式和其他用户驱动的恶意行为分析。这些研究中的许多都利用了分类和离散序列异常检测方案,这些方案与我们在时间序列中识别异常过程集群的方法相关并形成对比(另见最近的评论Bridges et al.(2019); Liu et al.(2018年b))。这一领域最早的工作是将关联规则学习应用于Uni X命令序列,以创建用户行为模型。(1996); Lee等人(1997); Teng等人,(1990年)。 其基本思想是用户的shell命令遵循一种模式,如果偏离这种模式,则可能表明帐户已被破坏,或者用户是恶意行为者。后两项研究探索了使用RIPPER Cohen(1995)来识别规则未预测的异常命令。统一指令分析将继续作为大量进一步研究的基础。在Davison和Hirsh(1998)中,一种名为理想在线学习算法的方法假设马尔可夫过程控制命令序列,并对过去的UniX命令数据应用指数加权来预测下一个命令;异常可以被识别为预测错误。Maxion和Townsend(2002)使用朴素贝叶斯来确定封闭集合中的哪个用户生成了某个命令序列;它在这个问题上是有效的,但它显然不是为了处理新用户(如外部威胁)而设计的。隐马尔可夫模型(HMM )很快就被应用于建模命令序列的问题:在Lane(1999)中,HMM被应用于UniX命令,并与朴素贝叶斯进行比较,揭示了对HMM的轻微偏好这表明,确实可能有命令序列中重要的时间结构,概率建模;然而,分析Yeung和Ding(2003)得出结论,HSPs劣于更简单的基于频率的分析。此外,Iglesias et al.(2009 b)认为,命令一致性的χ2测试优于Hacks,除非一致性包含O1000个命令。Lane和Brodley(1999)研究了固定长度命令序列的相似性比较,发现可以通过命令行为准确区分被分析的用户。在Sharma和Paliwal(2007)中提出了朴素贝叶斯和相似性度量的组合,其中相似性B.A. 鲍威尔智能系统与应用16(2022)2001064基于高斯核的贝叶斯算法比朴素贝叶斯算法有普遍的改进。在Iglesias et al. (2009a),其中将用户命令的固定长度序列与来自每一类用户的原型序列进行几种不同的概率模型的比较研究发现Schonlau等人。(2001),其中报道了混合多步和贝叶斯单步马尔可夫过程是Uni x命令序列的最佳模型。在Balajinath和Raghavan(2001)中,遗传算法被用于对固定长度的用户命令序列进行建模,异常分数受到序列中正确预测的命令的比例的影响。用于检测伪装和帐户泄露的行为分析的另一个主要主题是系统调用跟踪:程序用于与系统内核交互的进程序列。恶意活动预计会改变这些序列,因此在正常系统调用序列上训练的模型可以用于异常检测。正如程序执行产生一系列系统调用,网络连接也产生一系列系统间进程。当我们在本文中研究后者时,参考了以下几种方法,并将在本文中结合我们的用例进行讨论。这一领域最早的研究可能是Hofmeyr及其合作者的工作,Hofmeyr et al.(1998);Hofmeyr resow and Hofmeyer(1997)。在这些工作中,系统调用的序列被划分为k长度的连续性,并通过汉明距离进行比较,其中该距离用作异常度量。在随后的工作中,这种技术被称为序列时间延迟嵌入(stide);我们将在本文后面更多地介绍这种方法。在Warrender等人(1999)的研究中,stide通过在整个子序列中用简单的失配计数代替汉明距离进行了改进,并与RIPPER和HSPs进行了比较,发现HSPs的假阳性率最低。很快,递归神经网络Ghosh et al.(1999)和进化神经网络Han et al.(2004)就开始解决这个问题:两种神经网络都优于stide 。Ahmed和Masood(2009)考虑了具有径向基函数单元的神经网络,其中特别关注在较长的系统调用序列中定义单个攻击顺序的窗口大小。该窗口大小对应于stide分析中的k,并且与stide一样,被发现对精度有很大影响。在ESKIN(2001)中取消了固定长度比较窗口,其中稀疏马尔可夫转换器用于识别上下文相关的窗口大小;这些模型通常优于stide和相关的固定窗口大小方法。Creech和Hu(2014)进行了进一步的工作来识别系统调用的有意义的分组,其中极端学习机能够学习将调用分组到适当的语义单元中;该模型优于stide和Hacks。提出了一种建立异常系统调用字典的方法序列(而不是对正常序列进行建模)在Cabrera等人(2001)中使用stide来识别它们;这种方法在特定的Unix程序(如sendmail)的环境中表现最好,其中异常被过程限制 在Xie et al. (2014),在一组标记的恶意系统调用数据上训练单类支持向量机,包括常见的利用工具,如Metasploit meterpreter和Hydra login cracker。它表现良好,但不是一个异常检测系统。基于序列相似性核的支持向量机在Tian 等人的研究中表现出优于径向基函数核。( 2007年)。如果序列被解释为文档,则可以使用文本分类的方法来分析它们:在Liao和Vemuri(2002)中,对单个系统调用进行tf-idf加权,并使用k-最近邻距离评估异常;在Rawat等人(2006)中,系统调用进行二进制加权,结果与Liao和Vemuri(2002)相当。在这种情况下,Chen等人(2005)在监督设置中将支持向量机和神经网络应用于这些特征。Kang等人采用了“系统调用包“表示法。(2005年),其报告了优于固定长度方法如STIDE的性能。Ye et al.(2001)使用各种统计技术(如χ2、Hotelling's T2和基于Markov链的测试)分析了类似的面向频率的系统调用表示在Tandon和Chan(2003)中,规则学习被应用于系统调用跟踪,并与stide进行了比较,在检测根据1999年DARPA攻击分类标记的真阳性方面,它比stide做得更好。Chen和Dong(2006)开发了一种基于频繁项集的分析,并显示其性能优于在不同用户的系统调用上训练Qian和Xin(2007)探索了Hynomial,他们发现该方法Murtaza等人开发了基于核状态的概率模型。(2013),并显示产生比stide和Hestrin更低的假阳性率。Tapiador和Clark(2010)开发了一个有趣的模型,该模型使用信息理论方法来识别试图通过命令填充等操作欺骗异常检测功能的攻击者。 在Maggi et al.(2010),Kruegel等人(2003)发起的系统调用及其参数的分析;Tandon和Chan(2003),通过首先将系统调用聚类到类中,然后使用这些类构建HMM模型来识别异常调用来扩展。这种方法在概念上与我们的方法类似,我们的方法也使用聚类将过程作为更大的有意义函数的一部分进行分组;但是,在我们的情况下,我们寻求而在Maggi et al. (2010)目的是要一起调用类似的参数。用户行为的其他方面已经被建模用于异常检测:Salem和Stolfo(2011)建模了与文件和信息访问相关的用户行为,并期望对手(利用受损的帐户)在此任务中不会如此直接和有效。文件系统访问的其他特征,如时间戳和文件大小,在Mehnaz和Bertino(2017)中进行了分析。图形用户界面(GUI)交互,包括键盘活动和鼠标移动,通过Garg等人的支持向量机建模。(2006)和随机森林被应用于Microsoft Word交互在El Masri等人。Singh等人使用了递归和卷积神经网络。(2019)对各种用户行为的时间行为进行建模,如登录时间、应用程序类型和访问的数据量,以检测异常。这些模型的性能与a)Laz-arevic(Ertoz)中讨论的方法集合相当。我们现在简要地回顾一下上面的一些方法,基于角色的横向移动检测的上下文。依赖于固定大小的一致性的方法,或者不容忍任意大小的一致性的方法,在我们的用例中不会表现得很固定大小的子序列包括可以在时间上任意远离的过程,并且因此在因果关系上不相关。这样的子序列不会对应于更高级别的系统功能,也不会表现出相关的规则性。我们验证了stide,其固定的窗口大小,对我们的用例表现不佳。此外,关联规则学习失败的原因很简单,没有一种可靠的方法来处理只有一个元素的连续性,这是我们问题的常见情况(对应于单个孤立的进程)。最后,HMM和递归神经网络是高质量的时间模型;然而,在这种情况下,我们只希望了解单个进程集群的时间结构,因为这些对应于可能被对手干扰的更高级别的系统功能。这些过程集群是小的时间序列,大多数包含少于五个元素,太少了,无法可靠地训练这些类型的模型,或者包含与其功能相称的丰富的时间依赖性。B.A. 鲍威尔智能系统与应用16(2022)2001065=3. 实验设置和数据来源在这项研究中,我们从数千台主机的企业网络上的计算机系统中获取数据并进行所有测试我们将开发的基于角色的模型适用于单个系统(主体),监控每个主体在网络中的连接。正如我们将发现的那样,由于其计算性能和警报容量,基于角色的检测最适合应用于网络上相对较小的关键系统子集。因此,我们对125个高价值系统的“观察名单”进行测试,这些系统将作为入侵检测策略的一部分进行监控。此子集包括关键基础架构(如EX更改、虚拟化和认证机构服务器);包含重要操作数据的系统(如文件共享和研究部门数据库);支持管理任务的应用程序服务器;以及高权限用户(如域和桌面管理员)的工作站。我们的模型所利用的主要数据源是从中央安全事件和事件管理(SIEM)系统中检索的CarbonBlack Network Connect日志,并保留了数周的历史数据。所有分析都是在驻留在本地云环境中的LinuX虚拟机(双Xeon处理器,8 GB RAM)上进行的,使用代表性状态转移应用程序编程接口(RESTful API)来查询SIEM。所有代码都是自定义的Python,主要使用sklearn库。4. 按功能角色构建基于角色的模型的第一步是根据功能角色将主体系统的对等体(在一段时间内与之连接的那些系统)组织我们继续假设每个对等系统的地面真实的作用是未知的,而必须从连接数据推断这样就无需手动将网络上的每个系统分配给预定义的综合角色集。要组织一个主题的对等系统-它的邻居-到角色,我们提出了一个系统分类方法的基础上端口的使用:每个系统都被赋予一个服务器配置文件的基础上,它使用的本地端口在一段时间内为其他系统提供数据。系统还可以基于系统在一段时间内访问的服务器的远程端口来获得客户端配置文件。这两个概要文件旨在从本质上总结特定系统如何充当服务器以及如何充当客户端。这些配置文件采用“端口空间“中的矢量形式这个词的用法相当普遍:可以考虑通过端口发送的数据的相对量、涉及端口的连接的相对数量或其它。更粗粒度的表示是每个端口的简单二进制“开/关“。角色是通过集群的服务器和/或客户端配置文件的同行在主题的邻居:系统的配置文件属于同一个集群被认为是具有相同的角色。角色从来没有被明确地标识过(也就是说,给出了像“域控制器”这样的描述性标签);它们仅仅是组织系统的容器。此外,对等系统这种方法的一个重要警告是,虽然某种类型的服务器(比如域控制器)不需要使用“标准”端口来实现其功能(因为我们对明确识别系统角色不感兴趣),但它们都需要使用相同的端口来实现相同的功能(例如,域控制器必须侦听所有域控制器上的同一端口,无论它是什么)。我们将在下面更详细地讨论这个过程。4.1. 创建服务器配置文件要创建服务器配置文件,需要一个数据源,关于涉及系统的端口到端口连接的信息。相关数据字段是系统的IP和连接中涉及的端口以及时间戳。网络流量数据(如Netflow)和端点日志(如碳黑网络连接(netconn)数据)是提供这些数据的两个合适的来源。在这项研究中,我们利用在真实的、可操作的企业网络内的大量端点上收集的netconn数据的 集 合 ; 感 兴 趣 的 特 定 字 段 是 local_ip 、 remote_ip 、local_port、remote_port和timestamp。在下面的内容中,我们将介绍如何为单个系统构建服务器配置文件,我们将其视为Windows网络上的域控制器(DC)。首先,在netconn数据库中查询local_ip或remote_ip与DC的IP地址匹配我们感兴趣的是一段时间内的记录,这段时间足够长,可以捕获具有代表性的连接样本;足够长的时间可以包括数千条记录,这是一个很好的经验法则,但可能需要一些实验。要创建DC我们从记录中找到的所有DC端口的列表开始:当DCIP 匹配local_ip 时,这些是local_port ,当DC IP 匹配remo-te_ip时,这些是remote_port。这个列表显然包括客户端端口(DC本地的那些端口,它们发起到远程系统的连接)和服务器端口(DC本地的那些端口,它们接收由远程系统发起的连接客户端端口通常是短暂的、高编号的端口,在DC发起连接时随机选择;因此,我们不希望在记录中看到许多此类端口的实例因此,我们实现了一个基本的启发式算法来决定哪些端口最有可能是服务器端口:我们根据记录中的连接数 图 1显示了DC的排名。请注意,只有相当数量的连接与前十几个端口相关:这些几乎肯定是服务器端口。我们采用一个简单的规则来只收集最常用的端口:如果一个端口的连接数在连续排名较高的端口的连接数的固定因子内,我们就保留该端口在这项研究中,我们选择了一个因子3,对应于图1中的红色水平线。例如,端口636有8289个连接,为下一个使用率最高的端口提供8289/3 2763的截止值;由于端口139只有2282个连接,因此不包括在内。使用此规则,系统图2给出了DC的服务器配置文件在连接比例方面的示意图:我们可以很容易地验证这些是与DC的主要服务器功能相关的标准端口(例如, 身份验证、网络时间协议、轻量级目录访问协议、远程过程调用等)。图1.一、 域控制器端口根据它们在24小时内参与的连接数进行排名。仅对最常用的端口进行编号。只有红线以上的端口将用于分析系统。B.A. 鲍威尔智能系统与应用16(2022)2001066∈()=- ‖(,)=,‖x ‖ ‖y‖∑- -图二、 域控制器服务器配置文件示意图。顶部的端口号标记了框,并根据它们在24小时内参与的所有连接的百分比进行了着色。在每个框X下方以数字形式提供了标记。DC的服务器配置文件的大小是其他服务器的典型大小-最多十几个4.2. 创建客户端配置文件创建系统的客户端配置文件与上面的讨论类似,但这里我们感兴趣的是了解系统如何倾向于作为客户。为此,我们将重点放在系统访问的远程端口上,当DCIP与remote_ip匹配时为local_ports,当DC IP与local_ip匹配时为remote_ports。我们再次需要消除远程系统上的临时端口(这些端口与它们的客户机活动相关联),以便只考虑远程服务器端口用于创建服务器配置文件的相同的使用排名启发式方法在这里也很有用,但我们该过程的结束导致类似于图1的服务器简档向量的客户端简档向量。 二、4.3. 确定系统角色为了将一个主体 由于我们专注于检测系统网络内部的横向运动,因此只考虑网络内部的系统。一旦获得对等点列表,必须使用上述方法对每个对等点进行分析。然后,必须将类似的配置文件分组在一起:这些组就是系统角色。在图3中,示出了三个对等系统的小示例邻域:来自上方的DC、社区中的虚拟化服务器(具有活动端口80、135、443和445)以及IP语音(VoIP)服务器(具有活动端口5060和8443)请注意DC的配置文件是如何被扩展为包括其他系统端口的(零)条目的依赖于任何特定的聚类方案,因此使用上面介绍的两种特征表示来探索各种方法。所考虑的第一种方法是应用于轮廓的分区聚类,其中每个轮廓是空间中的向量,该空间具有由跨邻域表示的端口的数量给定的维度;在图3的示例中,特征空间的维度是14。实际上,这个空间的维数可能会变得很大;例如,我们数据样本中的工作站平均有50个左右的端口代表它们的邻居。众所周知,面向距离的算法在高维度上表现不佳并且与直觉相反空间。因此,在应用基于欧几里德距离d x,y x y的分区聚类算法时必须小心,如k均值或均值漂移聚类。为了改善高-关于聚类的维度,有一种球形k均值算法Hornik et al.(2012),其中向量x和y的接近度通过余弦相似度来测量,dθ(x,y)=cosθ=X射线.(一)球形k-均值算法对所有向量进行归一化,以便将它们投影到单位超球体表面上的点这些点然后根据余弦相似性在球体的表面上被划分;这种方法,如果点位于从球体中心的相似方向上,则认为它们是接近的在这项研究中,我们测试了k-均值和球形k4.5. 聚类轮廓相似度不是直接对轮廓向量进行聚类,而是可以分析相似性矩阵SRn×n,它由在n个系统的邻域中的所有轮廓向量之间计算矩阵X被归一化,使得相似向量x,y具有Sx,y≥1。为成比例的数据,选择余弦相似性以给出良好的高维行为;对于二进制数据,我们另外考虑应用于系统的端口集合(出现在每个系统的简档中的端口集合)的Jaccard指数J x y|(二)|(2)|p xp y|同样,对于它们中的每一个);这样做是为了使对等点可以被集群化一起其中px,y是配置文件x,y中的端口集合。一旦相似性矩阵X在我们将探讨几种聚类技术和配置文件表示,以找到最适合此应用程序的技术。考虑两种剖面表示:第3.1节中讨论的剖面表示和图1和图2中描绘的剖面表示。图2和图3所示,其中每个端口被分配一个0到100之间的值,对应于在历史记录过程中涉及该端口的连接的百分比。另一种表示是更粗粒度的二进制:每个端口的一个简单的“open“或“closed“值。在下文中,前者被称为比例表示,后者被称为二进制表示。4.4. 剖面分区聚类本分析采用的系统分类方法如下:图三. 一组服务器配置文件。另一方面,各种聚类方法可以直接应用到它。我们认为谱和凝聚层次聚类作为两个概念上不同的方法来解决这个问题。谱聚类将对称相似矩阵解释为无向图的邻接矩阵,并计算图的Laplacian, 其中,度矩阵x的分量D是nDii=Sij.(三)j=1然后,构造矩阵XV∈Rn× Rn,其列为L的最相关特征向量,并对行进行k-均值聚类,这个矩阵X.特征向量的相关性可以通过在对应特征值的图中寻找“肘“来确定在下文中,我们采用后一种方法。层次聚类不是在其谱上聚类,而是直接应用相似性矩阵。凝聚聚类从每个数据在它自己的聚类中开始,然后依次将它们合并成更大的聚类。首先,合并最相似的样本。然后基于这些合并的点(聚类)计算新的相似性矩阵X,其中B.A. 鲍威尔智能系统与应用16(2022)2001067()下一页()=∈()下一页∈ []∑()=min(,),使用多种规则之一来计算新聚类之间的相似性得分:这里,我们采用平均链接,其中两个聚类之间的新相似性得分被计算为所有组成点的成对相似性的平均值。集群被不断地合并,直到低于某个相似性阈值的所有集群都被合并,或者与其他集群方法一样,集群的数量可以使用集群质量的度量来凭经验确定。与谱聚类一样,我们采用后一种方法。4.6. 聚类方法在此分析中采用的聚类质量的度量是轮廓分数,其是所有点x上的轮廓系数s x的平均值,其中结果如图4所示:(a)显示了每种聚类方法的每种轮廓表示(比例和二进制)的所有测试对象的平均聚类数和平均轮廓分数。在图4(b)中,这些量按测试对象(沿x轴列出)划分,用于(a)中以红色突出显示的五种方法。有几件重要的事情需要注意:首先,只有少数例外(使用余弦相似性对二进制特征进行谱聚类,比例特征上的谱聚类),所有方法都能找到相当高质量的聚类(平均轮廓得分> 0. 75)。第二,在在这些成功的方法中,我们看到了聚类的平均数量的良好宽度,从比例特征上的k-均值的22左右到二进制特征上的k-均值的32。这些方法都产生紧密聚类的事实表明,在不同的尺度上存在自然聚类(即,如果一个簇与其它簇相关,则该簇可以被分成两个子簇而不损害轮廓分数,s xb(x)-a(x)max{a(x),b( x)}其中,对于簇中的x,C,(四)其子集群与之相关的方式。) 这在实践因为它允许改变系统角色的分辨率,这会影响异常检测算法的性能同样值得注意的是,如图4(b)所示,高质量的方法相互跟踪这表明这种特征化对聚类a(x)=1∑d(x,y),(5)法|- 1 y ∈ C,x scin = y|-1y∈C,x∕= y是x和所有其他点y之间的平均聚类内距离d x,y在集群中,b x1dxy(6)C′=scinC|C′|yC′是x和不在C中的所有其他点y之间的最小平均聚类间距离。系数满足-
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功