为您推荐

随着数字经济时代来临,带来产业技术路线革命性变化和商业模式突破性创新,行业应[...]
随着数字化时代的发展,新业务场景持续涌现,所带来的安全威胁不断升级,比如无文[...]
图神经网络在网络安全中的应用
龚左叶 |
山石网科 新技术研究院 |
自然界和社会群体中的个体之间存在着复杂的关联关系,通过这种关系我们可以开展社交、认识世界、探索世界。那么在人工智能飞速发展的时代,机器学习如何表达这种关联关系以及个体画像呢,放在网络安全这种存在天然互联网络结构的领域,又该如何表达,又能进行何种网络安全领域的下游任务呢。
近年来,深度学习在自然语言处理、机器视觉、搜索广告推荐等领域都表现出了良好的效果,给社会带来了巨大的进步,比如如今大火的GPT系列算法模型,造就了垂直领域的百花齐放,进而开启了大模型的商用和产业化时代。然而传统的深度学习的基础是神经网络结构,学习的对象是图像、视频、文本等规则的欧式空间数据,对于现实生活中众多的非欧式空间数据,如典型的图结构数据,其复杂性、不规则性等特点使得典型深度学习的学习表示难以企及。
为使图数据能够适用深度学习,有些研究通过固定节点数量和邻居节点顺序将非欧式空间数据转换为欧式空间数据进行表示[1],但对数据的结构特征造成了破坏导致学习到的数据表示缺失。再有图计算能够有效地挖掘图的结构信息,但缺乏对节点的特征学习,而典型神经网络模型能够有效地表达欧式空间数据,却很难捕捉到图结构数据之间的相互关系。现实生活中往往很多任务都可以很自然地使用图进行表示,且实体节点之间存在复杂的相互关系,比如电子商务推荐、分子结构预测、恶意软件检测等,这些都很难使用前述的某个或某组合方法同时有效地表达其结构信息和节点特征。为统一解决上述问题,图神经网络(Graph Neural Networks, GNN)凭借其在处理非欧式空间数据及其复杂特征方面的优越性受到了大量关注,并被广泛应用[2]。
图1 欧式数据和非欧式数据示例
图神经网络作为一种处理图数据(图论中的图)的特殊神经网络模型,用于学习图数据的结构信息和节点特征表示。典型的神经网络和图计算的学习机制显然不能同时完成该任务,因而需要一种新的学习机制,其中消息传递机制是当前最为流行的图神经网络学习机制,它描述了节点特征在网络中传播的过程,传播的结果最终都会更新在节点表示中[3]。消息传递机制包含聚合和更新两种操作机制,其中聚合是对当前节点的邻居节点进行聚合,更新是通过邻居节点的聚合表示结合上一时刻该节点的表示对当前节点的表示进行更新。类似于人类知识技能更新的过程:在自身有一定知识技能的基础上从周边学习更多的知识技能,然后将学到的知识技能和自身已有的结合起来,更新并获得更高阶的知识技能。
在图神经网络的学习过程中,节点会赋予节点特征向量,而边的特征则视学习任务而定,根据学习任务的不同GNN可执行节点、边、图等层级的任务,比如在异常检测场景中识别异常的主机可以视为一个节点分类任务,Lo[24]等提出的用于IoT场景的入侵检测模型E-GraghSAGE为边分类任务等。
图2 消息传递机制示例
和典型神经网络模型一样,图神经网络也有一系列的典型模型,比如GCN、GAT、GraphSAGE、图自编码器等。
图卷积神经网络(Graph Convolution Networks, GCN)[4]可以说是GNN的开山之作,首次将图像中的卷积操作用在了图结构数据中,即采用卷积的方式对邻居节点进行聚合,根据卷积的方式不同,可分为基于谱域的GCN和基于空间域的GCN,,具体可看[7]。GCN训练时通常需要将整个图载入内存和显存,不利于大规模图数据学习,同时训练需要包含整个图的结构信息(包括待预测的图结构信息),也不利于现实场景。为弥补GCN存在的缺陷,Hamilton等[6]提出了GraphSAGE(Graph Sample and Aggregate, GraphSAGE),通过邻居节点采样和Mini-Batch训练的方式很好的解决了GCN的问题,同时解决了分批训练时参数无法共享问题,可用于监督学习也可用于无监督学习。但邻居节点采样时未考虑到不同节点的重要性,针对此问题,Petar[5]等使用基于注意力机制的图神经网络网络(Graph Attention Networks, GAT)根据邻居节点的特征不同为其分配不同的权重,也就是说使用注意力权重对邻居节点进行聚合,解决了邻居节点有重要性区分的问题,但是注意力权重的计算和存储也会消耗更多的计算资源和内存资源。
图3 GraphSage采样原理示例
和其他机器学习任务一样,GNN模型的开发流程均包含任务定义与调研、数据收集与清洗、特征挖掘与分析、算法选择与模型训练、模型评估与部署等过程,唯一不同的是GNN多了图结构构建的过程,这也是GNN模型开发的关键核心所在。
图5 GNN在网络安全领域的应用
在任务定义与调研阶段,我们就需要明确是否使用GNN,这几乎关系到后续所有的GNN建模流程。不同于其他机器学习任务,GNN使用的是图结构数据这类非欧式空间数据,在数据的使用上会存在一定的差异,因此在收集的数据、特征挖掘、模型选择、训练方式、上线部署等流程的细节上还是会存在一定的差异。而是否使用GNN可以从两个方面来进行评估:从任务角度深度解析要用GNN解决这个问题的原因,以及考量成本、效率以及模型部署的相关问题。确定用GNN解决当前问题之后,需要确定这是分类任务、聚类任务还是异常检测任务,不同的任务对应不同的图构建方法、不同的模型选择以及训练方式。
明确使用GNN解决当前问题之后需要进行图的构建,图包括同构图、异构图、时空图等,而网络安全场景中很多图任务都是异构的,因此重点要考虑的是节点的类型、边的类型、需要哪些节点、需要哪些边以及节点是否需要采样、节点特征表示、边属性表示等问题。一个好的图结构设计的重要性要比后期GNN模型选择更加重要,其重要性类比业界中广为流传的一句话:数据和特征工程决定机器学习的上限,模型和算法只是逼近这个上限,里面的特征工程就是GNN建模任务中的图结构设计。
针对当前问题设计一个好的图结构后,在选择GNN模型时,根据不同的图任务去选择经典的模型基本上都能得到一个性能良好的GNN模型。当然有时候也会根据任务的复杂度以及业务属性考虑去设计合适的模型结构,比如针对解决网络安全领域里十分不平衡的任务时,就需要对模型结构、损失函数等进行设计以取得预期的检测性能。
网络安全问题的频发给个人和企业造成了极大损失的同时也给国家带来了严重的威胁。为对抗网络攻击,机器学习方法以其优异的泛化性能得到了广泛应用,包括以特征挖掘为基础的传统机器学习方法和端到端学习的深度学习方法。网络安全中机器学习的应用前提对象包括时序特征、文本特征、统计特征等,忽略了或者说很难处理网络安全实体之间的交互关系,而网络安全实体之间天然存在的某种联系,对网络安全任务来说至关重要。比如恶意软件存在高密度和强关联性的API调用图[9],恶意域名之间存在相似的行为等[10]。GNN的出现很好的弥补了这一缺陷,其擅长同时挖掘网络安全实体之间的语义信息和结构信息,以一个更健壮和抽象的系统视角看待攻击,帮助理解攻击的结构模式,攻击就很难逃逸。因此近些年来GNN在网络安全任务中的应用和研究引起了学术界和工业界的广泛重视,这里对GNN在网络安全领域应用较多的场景进行了梳理,包括入侵检测、网络攻击检测、恶意软件检测、漏洞检测、威胁关联分析等。
图4 GNN建模流程
作为一种主动安全防护技术,入侵检测主要通过收集网络或系统中的信息来检查是否存在违反安全策略或攻击的行为。根据检测的图结构数据来源可分为基于网络的GNN入侵检测和基于主机的GNN入侵检测,均包含数据的预处理、相关图结构的构建、图Embedding提取以及模型的训练和检测等。
图6 基于GNN的入侵检测一般流程[13]
网络入侵检测主要是通过分析网络数据并构建检测方案以分析网络中的异常行为。根据网络数据类型通常可以分为三种类型的网络图:数据包图、数据流图和身份认证图。其中基于数据流图的GNN方法在网络入侵检测中应用最为广泛,通过构建同构图、属性图、时空图或动态图等网络流图结构利用监督、半监督或无监督学习方法在数据流图层面执行节点、边或图级别的入侵检测任务,比如DDos攻击检测、僵尸网络检测、APT攻击检测等。基于数据包图的GNN可以提供网络中传输的数据的细粒度视图,以用于DDos攻击检测、IoT入侵检测等,而基于身份认证图的GNN方法则是通过构建身份认证请求相关图任务,以用于发现企业网络中的异常行为,比如横向移动攻击等。
基于主机的入侵检测方法主要是利用主机或服务器的日志、应用事件等信息来发现内部的可疑行为。在GNN入侵检测场景中,主要是通过构建系统溯源图来完成主机层面的入侵检测任务,同时也会附加使用比如系统调用图、身份认证图、网络流图等来发现主机级别的入侵行为。比如Wang[14]等使用系统溯源图对主机活动进行建模,利用GraphSage在节点分类任务上实现实时的异常主机检测,Chen[12]等通过异质系统溯源图建模溯源数据中系统实体关系及其上下文信息,通过子图采样的方式实现APT攻击检测。但是经验上来说仅使用系统溯源图进行入侵检测任务通常来说会有局限性,因此Li[15]等通过同时建模主机生命周期内的溯源图和主机通信相关的网络交互图来以期实现类似APT的复杂攻击检测,但因缺乏相关数据而没有同时使用两种图结构数据进行实验验证。
当前常用的攻击检测方法主要集中在对数据包Payload、协议特征、流特征等进行深度分析,根据攻击特征采用模式匹配、统计分析、机器学习等方法进行检测,但是大部分技术都忽略了流量的结构关联特征,而结构关联特征在网络安全领域又至关重要,比如APT攻击具有潜伏周期长、多步骤、隐蔽性强等特点,导致传统单步检测效果不佳,因此研究者通过构建系统溯源图、网络流图等来实现APT的精准检测[15]。
网络拓扑/流量方向:分析会话、流、数据包等层级具有区分能力的特征进行攻击检测作为当前主流的研究方向,在很多攻击检测任务上都取得了一定成效。为建模更贴合现实攻击场景的检测模型,研究人员进一步对网络拓扑/流量方向的图特征进行了探索。比如赵键锦[16]等在恶意加密流量检测任务中,构建了节点为会话、边表示访问相同网络服务或共享相似通信行为的有向加密流量图,使用GAT实现了恶意加密流量的高效检测。Lo[17]等通过构建僵尸网络的网络拓扑图,采用改进的GCN模型对僵尸网络进行检测并在结果可解释性方面进行了探索等。除了恶意加密流量检测、僵尸网络检测,类似的研究还有很多,比如研究方向较深入的还有DDos攻击检测、恶意域名检测等,但都还需要进一步研究更具鲁棒性的网络拓扑/流量方向的图方法并在工程化落地方面进行深入探索。
图7 GNN检测恶意域名一般流程[19]
代码/Payload方向:除了网络拓扑/流量攻击方向,网络安全领域还有很大一部分的攻击载体可以通过明文进行区分,但攻击者为绕过防护检测措施采用了五花八门的绕过手段进行混淆,比如XSS攻击、Webshell、恶意代码等,导致检测效果不佳。为提高检测的泛化能力,Liu[18]等对XSS Payload做预处理,并构建了XSS Payload结构图,采用半监督学习方法实现了XSS的精准检测,该方法对于缺乏标注样本的网络攻击检测领域来说具有重要的指导意义。另外还可以通过分析代码的语法结构、Opcode或者函数调用关系等,精确构建数据流图、控制流图、函数调用关系图等来对代码进行结构上的深度抽象和语义关系挖掘,进而提升Webshell、恶意代码等检测方法的泛化能力。
图8 GCN检测XSS攻击架构[18]
使用GNN检测恶意软件,在图结构构建时,一般都是从函数层、文件层、系统层、网络层这4个层面去进行分析,并分别得到控制流图CFG、函数调用图FCG、文件依赖图和文件分布图。控制流图主要是用于函数内部的代码分析,比如将函数的二进制代码转为CFG进行恶意软件的检测。但该方法忽略了函数之间的调用关系且CFG构建也耗时耗力,FCG则很好的弥补了这点,FCG在进行恶意软件检测时主要是构建文件内的函数调用/依赖关系或者API间的调用关系,为使模型更有效且具鲁棒性还可加入CFG相关的图特征。文件依赖图的思想是构建文件之间的关系或文件与其他实体之间的关系,并用来分析恶意软件行为,比如用来识别PC层次的恶意软件十分有效,为进一步强化语义关系,设计合理的元路径也是一个不错的探索方向。
前面介绍的关于恶意软件相关的图结构都是内容层面的,结合GNN也都取得了较好的检测效果,但是随着混淆技术和加密技术的发展,该方法则具有较大的局限性。而恶意软件彼此之间存在的相似性以及下载行为与正常具有较好区分性的特点使得可以考虑针对网络层面的文件分布和下载特征进行图结构构建,但恶意软件的快速进化使得基于静态图的检测方法存在局限性且可能存在较大的计算开销,因此在未来还应该进一步探索高效的动态图神经网络去检测恶意软件。
软件漏洞检测和恶意软件检测的方法比较类似,但主要是使用2.3节中介绍的函数层和文件层的图检测方法,是因为软件漏洞检测是检测程序中的缺陷因而更加关注代码的语义信息,因此采用GNN方法时也会比较注重语义信息的提取[19]。
利用GNN检测软件中存在的漏洞,一种方法是建模漏洞间的关系图,或者叫漏洞依赖图VDG,它在考虑到了漏洞间的联系的同时还要抽象漏洞本身的特征。相比之下更常用的是建模程序内的关系图,比如抽象语法树、CFG、程序依赖图PDG等,而代码属性图CPG融合了三者,包含了更为丰富的结构特征但缺乏序列化特征。为完善CPG图特征,可以通过增加额外的边以添加序列化等特征[20],同时还可以基于此构建异构图采用GNN去执行软件漏洞检测任务。漏洞检测任务中精确定位软件中漏洞也是很重要的一个点,当前有些方法可定位漏洞的位置,但是还存在各种各样的问题,比如漏洞定位还不够精确,未来可以进一步研究定位语句级别的漏洞检测方法等。
网络威胁情报CTI已在业界被广泛用于抵御网络攻击并提供全面而有价值的告警信息,而CTI的提取和分析需要对攻击事件描述进行深入分析并采用正则表达式或机器学习方法进行IOC提取,该方法面临提取精度低且孤立的IOC无法全面的描述威胁概况的处境。针对此状况,Zhao[21]等采用多粒度注意力机制从非结构化威胁描述中精准提取IOC再利用异构信息网络构建不同类型IOC之间的依赖关系,并提出一种新的基于异构GCN的CTI计算框架用于衡量IOC之间的依赖关系并进行知识识别。与此同时在CTI中使用溯源图促进了CTI的发展,但已有攻击行为与溯源图记录的攻击行为可能完全不一致,导致该方法不够高效和鲁棒。Wei[22]等提出了DeepHunter框架,它采用属性Embedding网络和图Embedding网络两种GNN结构描述IOC信息和IOC之间的关系并使用图模式匹配方法得到了高鲁棒性的攻击行为检测方法。
图9 用于威胁情报提取和IOC关联的异构信息网络(HINTI)[21]
对于安全设备产生的告警,具有异源、告警疲劳等特点,比较常见的处置方法是做告警聚合和关联分析以输出高质量的告警信息。采用GNN去做这件事的研究较少,有种做法[23]是对获取到的告警列表提取向量特征,并按时间顺序提取告警次序图,依据告警物理设备生成拓扑图并采用GNN的方法进行处理,以此实现告警关联并提升网络管理的效率。
前面介绍的方法都是当前研究较为热门的方向,除了这些,网络安全中其他相关任务也可以通过设计合适的图网络结构进而采用GNN提取图结构和节点特征,再执行网络安全的相关下游任务,比如DNS/HTTP/ICMP等隐蔽隧道检测、Tor等代理识别、路径穿越攻击检测、网络安全态势感知任务等。无论是哪种网络安全任务,采用GNN的方法时,最重要的都是深入分析并合理拆解任务进而设计最合适的网络结构,这个流程是和机器学习方法论一样的。
不同于传统的神经网络算法模型仅能处理欧式空间数据,对于像图结构这样的非欧式空间数据表现的比较差或者干脆不能够处理,GNN的特殊模型结构能够很好的学习表示图结构数据,并学习图结构和节点特征表示用于下游任务,况且现实生活中的绝大部分任务都能够抽象成图数据,同时,一些欧式空间数据通过特殊的设计也能转化为图数据,比如文本分类任务、图像相关任务,并且表现出了不俗的性能,更有甚者超越了传统的神经网络算法模型,这使的GNN的应用范围进一步扩大。而在网络安全领域,因为应用场景的特殊性,这块的研究落地的十分少,但从现有的研究来看,GNN表现出来了其他算法模型没有的独特优势,研究落地也就能够指日可待。
虽然GNN当前在很多网络安全任务中都展现了独特优势和良好性能,但是不可避免的也面临较多的难题和挑战。
(1)高质量数据匮乏
高质量的数据是机器学习任务的基础,在网络安全领域也有少部分高质量的数据,但由于很多任务的数据要么不全,要么很久没有更新导致与实际场景差异过大,或者数据模棱两可等等原因,导致相关任务缺乏权威的高质量数据集。
(2)隐蔽性威胁检测
APT攻击复杂多变、时间周期长,且高质量的开源数据集缺乏,新型攻击手法越来越隐蔽,致使APT的研究和检测任重而道远。当然除了APT检测,网络安全领域其他任务,比如僵尸网络检测、恶意软件检测等也同样面临相同的问题,因此需要不断研究和更新现有的攻击和防御技术,以保持攻守平衡。
(3)大规模GNN的应用挑战
大规模GNN的应用中因为图数据的不规则性、图特征的复杂性以及训练过程中样本之间的依赖性等特点对模型计算效率、内存管理等方面提出了新的挑战。同时典型GNN采用整批训练的方式在大规模图数据应用中存在内存问题,分批训练又增大了数据划分和迭代更新的难度,另外GNN的特殊性使其对CPU和GPU的需求和硬件结构不匹配还增大了模型加速的难度[2]。近来很多研究都在着力解决这些问题,并取得了一些成效,但进一步研究优化对于实际的应用落地会具有更强的推动作用。
(4)针对GNN的后门攻击
近来针对模型的后门攻击屡见不鲜,GNN也不例外。针对GNN的后门攻击也主要是发生在模型训练阶段,比如当用户选择第三方数据训练时,攻击者通过精心构造的子图作为触发器并被作为后门数据(标签为良性)送入模型训练,在预测阶段通过调用触发器使模型输出指定标签以达到恶意目的。而其防御存在后门数据标签与训练标签一致难以区分、难以确定触发器所在位置等挑战,而这些如何有效解决也是现在研究的热点之一。
(5)取证分析和可解释性
可解释性在网络安全领域非常重要,无论是误报的排查,还是将模型交付给业务方的可信度。而GNN在这一块比传统的机器学习更有优势,比如GNN用于僵尸网络检测任务中,可以很直观的可视化检测结果或者过程,就很容易判断是否存在僵尸主机以及关联关系,同时也便于取证分析。但是现在关于GNN在网络安全领域的可解释性研究还较少,未来还需要更多的探索。
图神经网络在图数据处理方面表现出了极大优势和潜力,并且能够处理各种能够抽象成图数据的任务,给现实生活中的很多机器学习任务都提供了一种新的解决思路和途径,并极大的提高了相关任务的检测效果。而网络安全领域中的相关任务所拥有的天然互联的图结构十分契合图神经网络的设计初衷,但是相关的研究却不多,落地的更是少之又少,其他领域比如在推荐、风控、黑产灰等场景,美团、腾讯、携程、字节等国内厂商利用图神经网络在产品落地方面都取得了不错的效果。
总的来说,虽然网络安全领域的机器学习应用存在特殊性,但是图神经网络在这个领域的应用研究前景还是十分可观的,未来可在这一块进行深入探索和应用落地研究,赋能安全防护产品更上一步台阶。
[1]. 马帅,刘建伟,左信.图神经网络综述.计算机与发展. 59(1): 47-80,2022
[2]. 肖国庆,李雪琪, 陈玥丹等.大规模图神经网络研究综述.计算机学报. 2023
[3]. Justin Gilmer, Samuel S.Schoenholz Patrick F. Riiley et al. Neural message passing for quantum chemistry . International Conference on Machine Learing. 2017
[4]. Thomas N.Kipf, Max Welling. Semi-supervised classification with graph convolutional networks. International Conference on Learning Representations. 2017
[5]. Velickovic Petar, Guillem Cucurull, Arantxa Casanova et al. Graph attention networks. International Conference on Learning Representations. 2018
[6]. William L. Hamilton, Rex Ying, Jure Leskovec. Inductive representation learning on large graphs. Conference on Neural Information Processing Systems. 2017
[7]. 徐冰冰, 岑科廷, 黄俊杰, 等. 图卷积神经网络综述. 计算机学报, 2020, 43(05): 755-780
[8]. Wang D, Cui P, Zhu W. Structural deep network embedding. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 2016
[9]. Hisham Alasmary, Aminollah Khormali, Afsah Anwar et al. Analyzing and Detecting Emerging Internet of Things Malware: A Graph-Based Approach. IEEE Internet Things. 2019
[10]. Wenxuan He, Gaopeng Gou, Cuicui Kand et al. Malicious Domain Detection via Domain Relationship and Graph Models. IEEE, 2019
[11]. 图神经网络在反欺诈领域的应用:https://max.book118.com/html/2021/1013/8130063140004017.shtm
[12]. Tieming Chen, Chengyu Dong, Mingqi Lv, et al. APT-KGL: An Intelligent APT Detection System Based on Threat Knowledge and Heterogeneous Provenance Graph Learning. IEEE, 2022
[13]. Trisran Bilot, Nour el Madhoun, Khaldoun al agha et al. Graph Neural Networks for Intrusion Detection: A Survey, IEEE Access, 2023
[14]. Su Wang, Zhiliang Wang, Tao Zhou et al. Threatrace: Detecting and Tracing Host-based Threats in Node Level Through Provenance Graph Learning. IEEE Transactions on Information Forensics and Security. 2022.
[15]. Zitong Li, Xiang Cheng, Lixiao Sun et al. A Hierarchical Approach for Advanced Persistent Threat Detection with Attention-based Graph Neural Networks. Security and Communication Networks. 2021
[16]. 赵键锦, 李祺, 刘胜利等. 面向6G流量监控: 基于图神经网络的加密恶意流量检测方法. 中国科学: 信息科学, 2022, 52: 270–286
[17]. Wai Weng Lo, Gayan Kulatilleke, Mohanad Sarhan et al. XG-BoT: An Explainable Deep Graph Neural Network for Botnet Detection and Forensics. Internet of Things. 2023
[18]. Zhonglin Liu, Yong Fang, Cheng Huang et al. GraphXSS: An Efficient XSS Payload Detection Approach Based On Graph Convolutional Network. Computer&Security.2022
[19]. Bo Yan, Cheng yang, Chuan Shi et al. Graph Mining for Cybersecurity: A Survey. ACM Transactions on Knowledge Discovery from Data. 2023
[20]. Yaqin Zhou, Shangqing Liu, Jing Kai Siow et al. Devign: Efective Vulnerability Identiication by Learning Comprehensive Program Semantics via Graph Neural Networks. NeurIPS. 2019
[21]. Jun Zhao,Qiben Yan,Xudong Liu et al. Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network. 23rd International Symposium on Research in Attacks, Intrusions and Defenses.2020
[22]. Renzheng Wei, Lijun Cai Aimin Yu et al. DeepHunter: A Graph Neural Network Based Approach for Robust Cyber Threat Hunting. Security and Privacy in Communication Networks. 2021
[23]. 张鑫, 张雪, 徐洪磊等. 告警关联方法、装置以及介质. CN115545997A. 2022
[24]. Wai Weng Lo, Siamak Layeghy, Mohanad Sarhan et al. E-GraghSAGE: A Gragh Neural Network based Intrusion Detection System for IoT. IEEE/IFIP Network Operations and Management Symposium. 2022
© 2010 – 2023 山石网科,保留一切权利。 北京市公安局朝阳分局备案编号1101051794 京ICP备09083327号-1 https://beian.miit.gov.cn/