【论文翻译】Gotcha - Sly Malware! Scorpion: 基于Metagraph2vec的恶意软件检测系统

Gotcha - Sly Malware! Scorpion: 基于Metagraph2vec的恶意软件检测系统

摘要:

        恶意软件检测由于其对互联网和计算设备安全的严重破坏和威胁,几十年来一直受到反恶意软件行业和研究人员的关注。为了对抗不断发展的恶意软件攻击,本文首先研究了如何利用基于内容和基于关系的特征来刻画恶意软件;为了对不同类型的实体(即文件、档案、机器、应用编程接口、动态链接库)以及它们之间丰富的语义关系(即文件-档案、文件-机器、文件-文件、应用编程接口-动态链接库、文件-应用编程接口关系)进行建模,我们构建了一个结构化的异构信息网络,并提出了基于元图的方法来描述文件之间的相关性。为了测量所构建的HIN上文件的相关性,由于恶意软件检测是一项成本敏感的任务,因此需要有效的方法来学习HIN的潜在表示。为了应对这一挑战,基于已建立的元图方案,我们首次尝试学习HIN中节点的低维表示,提出了一种新的HIN嵌入模型metagraph2vec,其中HIN结构和语义都被最大限度地保留用于恶意软件检测。对科莫多云安全中心的真实样本集进行了全面的实验研究,以比较各种恶意软件检测方法。实验结果表明,我们开发的系统Scorpion集成了我们提出的方法优于其他替代恶意软件检测技术。开发的系统已经并入了Comodo杀毒产品的扫描工具。

关键词

恶意软件检测;异构信息网络;网络嵌入;Metagraph2vec。

1导言

       随着互联网和计算设备变得越来越普遍,它们的安全性变得越来越重要。恶意软件(恶意软件的简称)是设计来在没有所有者知情同意的情况下渗透或破坏计算系统的软件[40],如病毒、蠕虫、特洛伊木马、僵尸程序和软件。恶意软件已被网络犯罪分子用作发动各种安全攻击的主要武器,如窃取机密信息、远程劫持计算设备以发送大量垃圾邮件,以及破坏关键基础设施,从而给合法用户造成严重损害和重大财务损失[40]。例如,最近的一项研究[29]显示,由于恶意软件感染,5亿份个人记录被盗或丢失;另据报道,2017年,威胁受害者除非支付赎金,否则公布受害者数据或永久阻止其访问的恶意软件ransomware的全球损害成本超过50亿美元[10]。因此,恶意软件的检测是反恶意软件行业和研究人员的主要关注点。

       为了保护合法用户免受恶意软件攻击,最重要的是反恶意软件产品,如Comodo、卡巴斯基和赛门铁克的防病毒软件。传统上,他们主要使用基于签名的方法[40]进行检测。然而,恶意软件攻击者可以使用加密、混淆和多态等技术轻松避开这种方法[1]。为了解决这个问题,反恶意软件产品从操作系统(OS)内核级别监控软件的行为,以阻止恶意行为。虽然动态检测对低级混淆更有弹性,但它本身成本高,而且扩展性不好。不幸的是,在经济利益的驱动下,恶意程序以每天数千的速度被创建和传播[44],使得这些基于客户端的恶意软件检测方法难以有效。为了对抗恶意软件攻击,近年来通过应用数据挖掘和机器学习技术在云(服务器)端开发了智能恶意软件检测系统[12,20,36,39,41,45,46]。在许多这样的系统中,基于标记的文件(恶意的或良性的),不同的分类模型建立在各种基于内容的特征上,例如Windows应用程序编程接口(API)、n-gram二进制文件、静态或动态提取的系统调用。这些系统中仅利用文件内容的模型在对恶意软件样本的特定集合进行分类方面取得了孤立的成功,但是忽略文件样本之间的关系是这种检测方法的显著限制。实际上,文件样本之间的关系可以为恶意软件检测提供关于其属性的宝贵信息。例如,如果一个未知文件(即没有类标签的文件)总是与许多特洛伊木马共存,那么该文件极有可能是恶意的特洛伊木马下载器[44] ——一种从远程服务器下载并安装多个不需要的软件(例如特洛伊木马、广告软件)的恶意软件。为了应对基于内容的恶意软件检测的挑战,已经开发了利用文件关系(例如,文件到机器关系[3]、文件放置[32]、文件共存[30,44])来进行恶意软件检测的系统。然而,这些系统在恶意软件检测中只考虑了一种文件关系。

        恶意软件攻击和防御正在进行一场永无止境的军备竞赛。仅利用文件内容或文件关系进行检测的方法为恶意软件攻击者提供了绕过检测的可能性。例如,如图1所示,要检测新收集的文件“File-U: GWHookMan.dll”是否是恶意的,如果我们只指望文件内容(如能很好反映程序代码行为的Windows API调用),“File-U”与良性文件“File-B1: AXSLE.dll”非常相似,后者是与Adobe Photoshop Elements 6关联的动态链接库(dll)文件;在这方面,可以预测它是良性的。如果我们仅仅依赖于文件关系(例如,文件替换表示文件在相同的档案中被压缩,就像在相同的档案中一样 .zips),“File-U”总是和一个良性的网络游戏程序“File-B2: Lostsaga.exe”一起被替换在同一个zip文件中;在这方面,它也可以被预测为良性的。实际上,“文件-U”是一个与网络游戏木马“文件-M1:游戏守望者. exe”相关的恶意驱动程序。虽然从文件内容来看,“文件-U”和“文件-M1”并不直接相关,但它们所调用的应用编程接口有着内在的联系。比如“File-M1”调用的“SetTimer”的API和“File-U”调用的“SetDoubleClickTime”的API都在“USER32”中。DLL”和这两个API也总是被其他网络游戏木马一起调用(例如,“File-M2: PK32.exe”),因为它们都与网络游戏加速的执行有关。为了捕捉像“File-U”这样狡猾的恶意软件,它需要新颖的表示来描述这种复杂的关系,以及基于该表示的检测模型。

        为了应对上述挑战,在本文中,我们利用基于内容和基于关系的特性来表征给定的Windows可移植可执行文件,例如,如果两个文件总是在相同的档案中被替换,并且它们具有属于相同的动态链接库的应用编程接口,并且也被一组其他文件一起调用,则它们将是相关的。为了捕捉这种复杂的关系,我们首先引入一个异构信息网络(HIN) [27]来表示,然后使用基于元图的方法[48]来结合更高级别的语义来建立文件的相关性。由于恶意软件检测是一个速度敏感的应用,并且大多数网络挖掘方法都有很高的计算和空间开销,为了解决这个问题,我们利用网络嵌入技术,提出了一个新的HIN嵌入模型metagraph2vec来学习HIN中节点的低维表示,其中HIN结构和语义都得到最大限度的保留。之后,将为恶意软件检测构建一个分类器。我们开发了一个名为Scorpion的系统,集成了我们提出的恶意软件检测方法,它具有以下主要特征:

  • 新颖的特征表示可检测狡猾的恶意软件:我们不再仅使用文件内容或文件关系来描述给定的文件,而是将两者都用于恶意软件检测。在Scorpion中,首先从给定的文件中提取基于内容的特征(例如,Windows API调用),并进一步分析各种关系,例如(1)文件是否在相同的档案中被替换,(2)文件是否在用户的计算设备中共存,(3)文件是否由相同的父文件创建(例如,即时消息(IM)软件安装包“QQ9.0.1.exe”将创建多个文件,包括“bugreport.exe”和“QQCloud”。动态链接库”(在安装过程中),(4)提取的应用程序接口是否属于同一个动态链接库(例如,“写文件”和“创建文件”的应用程序接口都在“内核32”中。动态链接库”),以及(5)应用程序接口是否由同一组文件一起调用。基于这些提取的特征,为了对不同种类的实体(即文件、档案、机器、API、DLL)以及它们之间丰富的语义关系(即文件-档案、文件-机器、文件-文件、API-DLL、文件-API关系)进行建模,首先引入一个结构化的HIN来表示给定的文件;提出了一种基于元图的方法来描述文件间的相关性。这是处理不同类型特征(即文件内容和文件关系)的自然方式,但据我们所知,这是第一次尝试以如此全面的方式表示文件,能够提供针对恶意软件规避状态的更具弹性的解决方案。
  • HIN的高效表示学习:基于已建立的元图方案,在首次尝试学习HIN中节点的低维表示时,提出了一种新的HIN嵌入模型metagraph2vec,该模型能够保持不同类型节点之间的语义和结构相关性。尽管HIN嵌入模型metagraph2vec是针对恶意软件检测而提出的,但它是一个通用的框架,能够学习HIN中期望的节点表示,因此可以进一步应用于各种网络挖掘任务,如节点分类、聚类和相似性搜索。
  • 为反恶意软件行业应用开发的实用系统:我们开发了一个用于智能恶意软件检测的实用系统 Scorpion ,并基于科莫多云安全中心的真实样本集进行了全面的实验研究,证明了我们开发的系统的有效性和效率。Scorpion已经融入到Comodo杀毒产品的扫描工具中。一年多来,它一直基于真实的日常样本收集(每天超过500,000个PE文件)进行部署和测试。

        本文的其余部分组织如下。第2节介绍了我们的系统架构。第3节详细介绍了我们提出的方法。在第4节中,基于从科莫多云安全中心收集的真实样本,我们系统地评估了我们开发的系统在与恶意软件检测的其他替代方法进行比较时的性能。第5节介绍了系统开发和运行的细节。第6节讨论了相关工作。最后,第7节总结。

2系统架构

        我们开发的恶意软件检测系统Scorpion的架构如图2所示,由以下组件组成:

  • 数据收集器。通过安装的Comodo杀毒产品,用户可以将PE文件上传到Comodo云安全中心进行检测。该模块收集上传的文件以及文件、机器和档案之间的关系。
  • 特征提取器。基于从先前模块收集的数据,它首先从文件中提取基于内容的特征(例如,Windows API调用),然后分析不同类型的实体(即,文件、归档、机器、API、DLL)之间的各种关系(即,文件-归档、文件-机器、文件-文件、API-DLL、文件-API关系),以描述PE文件。(详见第3.1节。)
  • HIN上的元图生成器。在该模块中,基于从先前组件中提取的特征,首先提出一个结构化的HIN来建模不同类型实体之间的关系;然后从HIN构建不同的元图,以从不同的视图(即,具有不同的语义含义)捕捉对等文件之间的相关性。(详见第3.2节。)
  • Metagraph2vec。基于前一模块构建的元图方案,提出了一种HIN嵌入模型metagraph2vec,用于学习HIN中节点的低维表示,该模型能够保持不同类型节点之间的语义和结构相关性。在metagraph2vec中,给定一个元图方案,首先提出一种元图引导的随机游走方法,将文本语料库中的词上下文概念映射到一个HIN中,然后利用跳图学习一个HIN的有效节点表示。随后,提出了多视图融合算法来融合基于不同元图方案学习的不同表示。(详见第3.3节。)
  • 恶意软件检测器。在使用metagraph2vec对HIN进行潜在表示学习之后,PE文件的映射低维向量将被馈送到支持向量机(SVM)以训练分类模型,基于该分类模型可以预测未标记文件是良性的还是恶意的。

3建议的方法

        在这一节中,我们介绍了如何同时利用基于内容和基于关系的特征来表示对等文件的详细方法,以及如何基于该表示来解决恶意软件检测问题。

3.1特征提取

        基于内容的功能。由于Windows API调用可以有效地反映PE程序代码的行为[45](例如“KERNEL32”中“GetFileType”的API。DLL "可以用来检索指定文件的文件类型,而" USER32 "中的" GetDlgItemText "的API。动态链接库”可以用来获取与对话框中的控件相关联的标题或文本),我们从收集的对等文件的导入表[45,46]中提取窗口应用编程接口调用作为基于内容的特征来表示它们。如果一个PE文件以前被第三方二进制压缩工具如UPX和ASPack Shell压缩过,或者嵌入了自制的打包器,那么在特征提取之前,首先会使用Comodo反恶意软件实验室开发的CMDsm进行解压缩。请注意,API调用的基于内容的特性在这里被用作案例研究,以促进对我们进一步提出的方法的理解,而静态或动态提取的其他特性(例如,n-gram二进制文件、动态系统调用)也适用于我们的进一步研究。

        基于关系的特征。虽然基于内容的特性,如应用编程接口调用,可以用来表示文件的行为,以捕捉狡猾的恶意软件,如“File-U: GWHookMan.dll”如前所述,它与相关的在线游戏特洛伊木马“File-M1:GameWatcher. exe”之间的内在和复杂的关系提供了检测的关键信息。为了检测日益复杂的恶意软件,除了基于内容的特性之外,在我们的应用程序中还考虑了以下类型的关系。

  • R1:为了描述文件和它所替换的档案之间的关系,我们构建了文件-替换-档案矩阵R,其中每个元素表示如果文件I在档案j中被替换。
  • R2:为了表示文件-机器关系,我们生成了文件-存在-机器矩阵E,其中每个元素表示文件I是否存在于机器j中。
  • R3:文件可以在其执行过程中创建另一个文件。为了表示两个文件之间的这种关系,我们建立了文件-创建-文件矩阵C,其中元素表示文件i是否创建文件j。
  • R4:为了描述文件及其提取的应用编程接口调用之间的关系,我们生成了文件-包含-应用编程接口矩阵I,其中每个元素表示文件I是否包含应用编程接口j。
  • R5:为了表示应用编程接口属于一个动态链接库的关系,我们生成了应用编程接口下面的-动态链接库矩阵B,其中每个元素意味着如果应用编程接口i属于动态链接库j。

3.2基于元图的相关性

        为了描述对PE文件、档案、机器、应用编程接口、动态链接库以及它们之间的丰富关系(即R1-R5),以适当的方式对它们进行建模是很重要的,这样可以更好、更容易地处理不同类型的关系。我们介绍了如何使用HIN,它能够由不同类型的实体和关系组成,通过使用上述特性来表示PE文件。我们首先介绍与HIN相关的概念如下。

        定义3.1异构信息网络(HIN)[27]。HIN被定义为具有实体类型映射和关系类型映射的图,其中表示实体集,是关系集,表示实体类型集,是关系类型集,实体类型数|A| > 1或关系类型数|R| > 1。表示为的HIN G的网络模式[28]是一个图,其中节点作为来自的实体类型,边作为来自R的关系类型。

        HIN不仅提供了数据关联的网络结构,还提供了分类关联的高级抽象。对于我们的案例,我们有五种实体类型(即PE文件、档案、机器、API、DLL)以及它们之间的五种关系类型(即R1-R5)。基于上面的定义,我们的应用程序中的HIN的网络模式如图3所示,这使得能够以综合的方式表示PE文件,同时利用基于内容和基于关系的信息。

        不同类型的实体和关系促使我们使用机器可读的表示来丰富对等文件之间的相关性语义。为了解决这个问题,已经提出了元路径的概念[28]:元路径P是在网络模式的图上定义的路径,并且以定义了类型A1和A1+1之间的复合关系,其中·表示关系组合运算符,L是P的长度。通过利用基于内容的功能来公式化PE文件相关性的典型元路径是,这意味着两个PE文件可以通过HIN上包含相同API的路径连接;而的元路径表示两个PE文件可以通过存在于同一机器上的路径在HIN上连接,HIN是一个基于关系特征的公式。虽然在我们的应用程序中,元路径可以用来描述对等文件之间的相关性,但它无法捕获更复杂的关系,例如“File-U: GWHookMan.dll”与其关联的在线游戏特洛伊木马“File-M1: GameWatcher.exe”之间的关系(即,它们是相关的,因为它们总是在相同的档案中被替换,并且它们具有在相同的dll中的API,并且也被相同的一组其他在线游戏特洛伊木马一起调用)。这需要一个更好的描述来处理这种复杂的关系。元图[48]建议使用实体和关系类型的有向无环图来捕获两个HIN实体之间更复杂的关系,定义如下:

        定义3.2。元图[48] M是一个有向无环图,有一个源节点和一个目标节点,定义在一个模式为的HIN 上。形式上,元图被定义为,其中分别受的约束。

        在我们的应用程序中,基于图3中显示的HIN模式,结合来自科莫多反恶意软件实验室的人类专家的领域知识,我们生成了12个有意义的元图来表征对等文件之间的相关性(即图4中所示的MID1–MID12)。事实上,元路径是元图的特殊情况(例如,MID2和MID3是MID7的特殊情况)。但是元图能够以方便的方式表达更复杂的关系。不同的元图在不同的视图上测量两个对等文件之间的相关性。例如,MID7描述了如果两个对等文件在相同的机器上共存并且在相同的档案中也被替换,则它们是相关的;而MID10描述了如果两个PE文件在相同的档案中被替换,则它们是连接的,并且它们具有在相同的DLL中的API,并且也被相同的一组其他PE文件一起调用(例如,“File-U: GWHookMan.dll”与其相关联的在线游戏特洛伊木马“File-M1: GameWatcher.exe”之间的关系可以使用该元图很好地描述)。为了度量HIN实体(例如,PE文件)之间的相关性,HIN [17,28,37,48]的传统表示学习主要集中在分解HIN的矩阵(例如,邻接矩阵)以生成该HIN中节点的潜在维度特征。然而,分解大规模矩阵的计算成本通常非常昂贵,并且还受到其统计性能缺点的影响[15]。由于恶意软件检测是一个速度敏感的应用程序,需要高性价比的解决方案,因此需要一种针对HIN的可扩展表示学习方法。

3.3 Metagraph2vec

        为了应对上述挑战,我们首先将HIN表征学习问题形式化如下。

        定义3.3。HIN表征学习[11,14]。给定一个,表示学习任务是学习一个函数,它将每个节点映射到d维空间中的一个向量,该向量能够保持它们之间的结构和语义关系。

        为了解决HIN表示学习问题,由于HIN的异构性(即由多类型实体和关系组成的网络),很难直接应用传统的同构网络嵌入技术(如DeepWalk[24]、LINE[31]、node2vec[15])来学习HIN的潜在表示。为了解决这个问题,metapath2vec[11]被提出,它利用基于元路径的随机游动和异构跳跃图来学习HIN的潜在表示,从而保持不同类型节点之间的语义和结构相关性。在我们的应用程序中,要捕获像“File-U:GWHookMan.dll“,基于元图的方法被设计来捕捉PE文件之间的关系,这种方法比基于元路径的方法更具表现力来描述PE文件之间的复杂关系。这就需要一种新的方法来学习HIN的潜在表征。为了解决这个问题,我们提出了一个新的HIN嵌入框架metagraph2vec来学习HIN中理想的节点表示:首先,提出了元图引导的随机游走,将文本语料库中的单词上下文概念映射到HIN中;然后利用skip gram学习HIN中有效的节点表示;然后,提出了一种基于不同元图模式的多视图融合算法。

元图引导随机游走。给定齐次网络中的一个源节点v_{j},传统的随机游动是一个随机变量的随机过程,使得是从节点v_{k}的邻域中随机选择的一个节点。步骤i的跃迁概率是通过忽略相邻节点而分布在相邻节点上的归一化概率类型。但是这种机制无法捕捉到HIN中不同类型节点之间的语义和结构关联。在这里,我们将展示如何使用元图来引导HIN中的随机行走者生成多种类型节点的路径。在我们的应用中,给出了一个,其模式,以及一个基本形式为A_{1}的元图模式M:,我们放置两个随机的步行者,即步行者u和步行者v,穿过HIN。步骤i的转移概率定义如下:

其中,\phi是节点类型映射函数,分别表示节点u^{i}v^{i}的邻域的A_{t}A_{t'}类型。注意,如果步行者u和步行者v是同一个,那么元图引导的随机行走可以被认为是基于元路径的随机行走。所提出的元图引导随机游动生成的路径能够保持不同类型节点之间的语义和结构关系,从而有利于HIN结构向skip-gram的转换。

skip-gram。在通过元图引导的随机游走策略将文本语料库中的单词上下文概念映射到HIN(即,语料库中的句子对应于采样路径,单词对应于节点)之后,在路径上应用skip-gram[21],以最大化观察节点邻域(在窗口w内)的概率关于它目前的表现。skip-gram的目标函数是:

其中Y(v_{j})v_{j}的当前表示向量,使用softmax函数定义:

由于它的效率,我们首先应用分层softmax技术[22]来求解方程3;然后使用随机梯度下降(SGD)[2]来训练跳跃图。

多视图融合。给出了一个元图方案,利用上述元图引导的随机游走策略和skip-gram,学习一个HIN的节点表示。在我们的应用程序中,如第3.2节所述,我们有12个有意义的元图(即MID1–MID12)。不同的元图从不同的角度描述了PE文件之间的关系,即具有不同的语义。例如,MID1通过PE文件的内容相关性(即它们调用的api)描述PE文件的相关性;MID3通过文件-机器关系(即它们共存的机器)描述PE文件的相关性;而MID10则从一个更全面的角度对PE文件的相关性进行了分析,其中包含了它们的内容相关性和不同的内在连接(即,它们在相同的存档中被替换时是连接的,它们调用的一些API来自相同的DLL,也被其他文件调用)。由于不同的mata图以非常不同的方式描述PE文件的相关性,为了探索这些不同视图之间的互补性,我们建议使用一种多视图融合算法来合并基于不同元图方案学习的不同节点表示。

        给定m种基于m个元图方案学习的节点表示(在我们的例子中m=12),合并的节点表示可以表示为:,其中Y_{i}的权重。为了确定每个映射的低维向量空间Y_{i}\alpha _{i}的权重,我们测量了它们之间的几何距离。当且仅当两个向量空间具有相同的维数时,基于两个向量空间之间的主角的距离度量是有效的[53]。在我们的例子中,m映射向量空间都具有相同的维数d。因此,我们应用基于主角的测地距离[19]来测量映射向量空间之间的几何距离。空间Y_{i}Y_{j}之间的主角定义为满足以下条件的0≤θ≤π/2:

θ为0当且仅当,然而当且仅当。设为空间Y_{i}Y_{j}之间的d个主角,它们之间的测地距离公式为:

因此,我们将每个映射向量空间Y_{i}\alpha _{i}计算为:

4实验结果与分析

        在这一节中,我们使用从科摩多云安全中心收集的真实样本进行了五组实验研究,以充分评估我们开发的恶意软件检测系统Scorpion的性能,并集成上述方法。

4.1实验装置

        通过安装的科莫防病毒产品,其用户可以扫描其计算设备中的PE文件,并将客户端科莫防病毒识别的“可疑”文件(即,可能始终包括复杂的和不断演变的恶意软件)上传到云中,以进行进一步检测。我们从科摩多云安全中心获取数据集,该中心包含了3782名用户(即机器)于2018年1月15日上传的59749个PE文件(即,其中14285个用户在云端被检测为恶意,其中21429个被检测为良性,其中24035个未知,需要进一步预测)。我们将云中检测到的这些作为培训数据(即35714个PE文件:14285个恶意软件和21429个良性文件)和24035个未知文件作为测试数据(为了获得地面真相,科莫多安全实验室反恶意软件专家进一步分析,其中8893个被标记为恶意,15142个为良性)。经过特征提取,并基于设计的网络模式,构造的HIN具有613581个节点(即PE文件类型59749个节点,机器类型3782个,存档类型75274个,API类型468074个,DLL类型6702个节点),11479527个边缘,包括R1-R5的关系。为了定量验证恶意软件检测的有效性,我们使用表1中所示的性能度量。

4.2不同元图的评价

        在这组实验中,基于第4.1节描述的数据集,我们评估了不同元图(即MID1-MID12)描述的PE文件的不同类型的相关性的性能。在实验中,给出了一种元图方案,利用元图引导的随机游走方法和3.3节描述的skip-gram学习HIN中PE文件类型节点的低维表示,然后将其反馈给SVM建立恶意软件检测的分类模型。对于支持向量机,我们使用LibSVM,根据经验将惩罚设置为1000,而其他参数则默认设置。实验结果如表2所示,从中我们可以看出,不同的元图在恶意软件检测中表现出不同的性能,因为每个元图都代表了恶意软件检测领域的特定语义。从表2中还可以看出:(1)基于内容的关联(MID1:文件调用的API)描述的PE文件的关联性优于基于关系的关联(MID2:文件存档,MID3:文件机,MID4:文件文件的关联);(2)基于元图的方案比基于元路径的方案更具表现力描述PE文件之间更复杂、更全面的关系从而获得更好的检测性能的方法:i)对于基于内容的相关性的描述,MID9优于MID1、MID5和MID6;ii)对于基于关系的相关性的描述,MID7MID8优于MID2、MID3和MID4;iii)显然,由内容和基于关系的关联(即MID10-MID12)组成的元图所描述的PE文件之间的关系提供了比其他关系更高级别的语义,基于这些关系的检测明显优于其他关系(即MID1-MID9)。如果将不同的元图合并在一起进行检测,它将有兴趣看到性能。这将在下一组实验中进行评估。

4.3 Metagraph2vec的评估

        在这组实验中,我们通过与几种最新的网络表示学习方法(DeepWalk[24]、LINE[31]和metapath2vec[11])的比较来评估我们提出的方法metagraph2vec。对于DeepWalk和LINE,我们忽略了HIN的异构性,直接将HIN作为表示学习的饲料;对于metapath2vec,由于MID1-MID6是特殊的元图,也可以看作元路径,所以我们使用它们来指导metapath2vec中的随机游动。metagraph2vec所用的参数设置与用于深步行、直线和metapath2vec的典型值一致:向量标注d=128(每一顺序为128行(1阶和2阶))、每个节点步行r=10、行走长度l=80和窗口大小w=10。为了便于比较,我们使用[11,24,31]中的实验程序:我们随机选择第4.1节(10%至90%)中描述的部分培训数据进行培训,其余部分用于测试。我们还使用所有培训数据对第4.1节中描述的测试数据集评估其性能。将SVM作为所有方法的分类模型。表3说明了不同网络表示学习方法的检测结果。从表3中,我们可以看到,所提出的元图形H2VEC模型在ACC和F1方面都优于所有恶意软件检测基线。也就是说,metagraph2vec学习的文件表示方式明显优于当前最先进的方法。metapath2vec的成功在于适当考虑和适应HIN的异构特性(即多类型节点和关系),以及元图引导随机游走对节点路径进行采样的优势。此外,从表2和表3中,我们还可以看到,与基于单个元图方案(即MID1-MID12)学习的任何节点表示相比,我们还可以看到,利用第3.3节提出的多视点融合算法,结合不同元图方案学习到的不同节点表示,可以显著提高检测性能。

4.4参数敏感性、可扩展性和稳定性评估

        在这组实验中,基于第4.1节中描述的数据集,我们首先对参数的不同选择如何影响metagraph2vec在恶意软件检测中的性能进行敏感性分析。从图5(a)和5(b)所示的结果中,我们可以观察到,当r=15和l=80用于恶意软件检测时,可以实现计算成本(每个节点的行走次数r和x轴上的行走长度l)和效率(y轴上的F1)之间的平衡。我们还研究了潜在维度(d)和邻域大小(w)对性能的影响。如图5(c)所示,当d达到150左右时,性能趋于稳定;同样,从图5(d)可以看出,当w增加到10时,性能趋于稳定。总的来说,metagraph2vec对这些参数并不严格敏感,并且能够在经济高效的参数选择下达到高性能。然后我们进一步评估metagraph2vec的可扩展性,它可以并行化以进行优化。我们使用不同线程数(即1、4、8、12、16)的默认参数运行实验,每个线程使用一个CPU核。图6.left显示了metagraph2vec在单线程情况下部署多个线程的加速,这表明当线接近最佳线时,模型实现了可接受的次线性加速;而图6右边显示了使用多个线程进行模型更新时性能保持稳定。总体而言,该系统对于具有大量节点的大规模HIN是有效的和可扩展的。对于稳定性评估,图7显示了训练(即十倍交叉验证)和测试接收器工作特性(ROC)曲线;在测试数据集中标记未知文件时,它以0.01 FP的速率达到令人印象深刻的0.974 TP速率。

4.5与其他传统机器学习方法的比较

        在这组实验中,我们基于第4.1节描述的数据集,将第3节中提出的方法与其他传统机器学习方法相结合的Scorpion进行了比较。对于这些方法,我们构造了三种特征:f-1:基于内容的特性(即API调用);f-2:三个基于关系的原始特性(即第3.1节中引入的R1-R3);f-3:API调用的增强特性和R1-R3。基于这些特征,我们考虑了两种典型的分类模型,即朴素贝叶斯(NB)和SVM。实验结果见表4。从结果可以看出,特征工程(f-3:不同特征的连接)有助于机器学习的性能,但是Scorpion添加了HIN所代表的知识,显著优于其他基线。这再次证明,为了检测日益复杂的恶意软件,基于元图的方法在HIN之上,Scorpion能够构建更高层次的语义和结构连接,具有更具表达性和综合性的视图,从而达到更好的检测性能。

4.6与反恶意软件产品的比较

        在本节中,我们将根据测试数据集中标记的8893恶意软件,与一些流行的反恶意软件产品进行比较,评估我们开发的系统Scorpion的检测性能。为了进行实验,我们使用Kaspersky(K):18.0.0.405、McAfee(M):10.5.3、Symantec(S):22.11.0.41、TrendMicro(T):11.0和VirusTotal1进行比较。VirusTotal(VT)是一项免费服务,它分析上传的文件和URL,并有助于快速检测恶意软件,它聚合了60多个反恶意软件扫描引擎(如果VT中有超过1/3的反恶意软件供应商检测到该文件是恶意的,则将其视为恶意软件进行比较)。比较结果如表5所示,从中我们可以看出,Scorpion在检测来自不同家族(如Locky、Ramnit、在线游戏特洛伊木马等)的新释放恶意软件方面优于其他公司(TPR为97.4%)。Scorpion的成功可能在于其新颖的更高层次的语义和全面的PE文件描述,以及使用所提出的metagraph2vec进行有效的HIN表示学习。

5系统部署与运行

        到目前为止,我们开发的系统Scorpion,其中集成了我们提出的方法,已纳入扫描工具的科摩多的杀毒产品。Scorpion已经被用于预测来自Comodo云安全中心的每日样本收集,该中心每天包含超过500000个新收集的PE文件。请注意,恶意软件不断演变,每天都会产生新的恶意软件样本。为了说明恶意软件生产的时间趋势,我们开发的系统Scorpion的训练数据是动态变化的,以包括新收集的样本和信息。我们的系统蝎子已经部署和测试的基础上,真正的每日样本收集了一年多。

        为了开发这个系统,科莫多已经花费了30多万美元,其中15万美元用于硬件设备。由于高检测效率和有效性,蝎子可以大大节省人力和降低人员成本:科摩多云安全中心的60多名反恶意软件分析师每天都在使用该系统。在实践中,反恶意软件分析师必须花费至少8个小时来手动分析100个PE文件以检测恶意软件。使用开发的Scorpion系统,可以在数小时内使用多个服务器对大约500000个PE文件进行分析(包括特征提取和预测)。这将使超过1200万的Comodo防病毒产品用户受益。

6相关工作

        近年来,人们在利用机器学习和数据挖掘技术开发智能恶意软件检测系统方面进行了大量的研究工作[3,5,6,20,30,42,43,45,46]。它们大多利用基于内容的特征或基于关系的特征进行检测。对于基于内容的检测[7,12,20,36,38,39,41,45],使用各种类型的内容特征,如API调用,n-gram二进制文件,静态或动态提取的系统调用来捕获PE文件的特征;而基于关系的检测方法[3,4,6,23,30]利用关系,如文件关系,特征表示的文件机关系。实际上,结合基于内容和关系的特征可以在恶意软件检测中获得更好的性能。在我们之前的工作[44]中,我们提出了一个半参数分类模型,将文件内容和文件共存结合起来进行恶意软件检测;在我们最近的另一项工作[18]中,我们首次引入HIN来建模文件、API以及它们之间的关系,然后构建HIN上的元路径来描述HIN上的相关性用于恶意软件检测的文件。不幸的是,恶意软件攻击和防御正在进行一场永无止境的军备竞赛。由于元路径结构无法描述更复杂的关系,如“File-U:GWHookMan.dll“及其相关的网络游戏特洛伊木马”File-M1:GameWatcher.exe",以捕获像“File-U:GWHookMan.dll"在这篇论文中,我们建议使用元图在HIN上,以捕捉PE上更全面的关联性用于恶意软件检测的文件。

        HIN近年来得到了广泛的研究。通常,HIN用于为不同类型的实体和关系建模[16,25]。它已被应用于各种应用,如科学出版物网络分析[26,28]、基于知识图的文档分析[33,34]、Twitter用户社交网络分析[13,47,49–52]和恶意软件检测[18]。对于HIN实体的相关性计算,已经提出了几种度量方法(例如元路径[28]和元图[48])。然而,由于恶意软件检测需要经济有效的解决方案,因此需要高效的HIN表示学习方法。最近,许多有效的网络嵌入方法[8,9,35]被提出来解决同构网络的表示学习问题,如DeepWalk[24]、node2vec[15]和LINE[31]。然而,由于HIN的异构性,很难直接应用于HIN的表征学习。为了应对这一挑战,metapath2vec[11],HIN2vec[14]被提出用于HIN表示学习,它们都是基于元路径方案的。在我们的应用中,需要一种新的基于元图模式的高效HIN表示学习方法。为了解决这个问题,我们提出metagraph2vec来学习HIN的潜在表示,它能够保留HIN中不同类型节点之间的语义和结构关联。

7结论

        为了对抗不断演变的恶意软件攻击,本文首先研究了如何利用基于内容和关系的特征来刻画狡猾的恶意软件,然后开发了一个智能系统Scorpion对其进行检测。在Scorpion中,为了对不同类型的实体(即文件、存档、机器、API、DLL)及其之间丰富的语义关系(即文件存档、文件机器、文件文件、API-DLL、文件API关系)进行建模,首先引入结构HIN来表示给定的文件;在此基础上,提出了一种基于元图的文件相关性描述方法。为了降低HIN表示学习的高计算量,在Scorpion中,首次尝试基于元图模式学习HIN中节点的低维表示,提出了一种新的HIN嵌入模型metagraph2vec。对来自科摩多云安全中心的真实样本进行了全面的实验研究,比较了各种恶意软件检测方法。有希望的实验结果表明,蝎子优于其他替代恶意软件检测方法以及流行的杀毒产品。该系统已经被整合到Comodo杀毒产品的扫描工具中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值