CN114003910A - 一种基于动态图对比学习的恶意变种实时检测方法 - Google Patents

一种基于动态图对比学习的恶意变种实时检测方法 Download PDF

Info

Publication number
CN114003910A
CN114003910A CN202111337338.2A CN202111337338A CN114003910A CN 114003910 A CN114003910 A CN 114003910A CN 202111337338 A CN202111337338 A CN 202111337338A CN 114003910 A CN114003910 A CN 114003910A
Authority
CN
China
Prior art keywords
graph
heterogeneous
node
window
variant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111337338.2A
Other languages
English (en)
Other versions
CN114003910B (zh
Inventor
李博
刘旭东
刘陈
苏明
甄子扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN202111337338.2A priority Critical patent/CN114003910B/zh
Publication of CN114003910A publication Critical patent/CN114003910A/zh
Application granted granted Critical
Publication of CN114003910B publication Critical patent/CN114003910B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明通过网络安全领域的方法,实现了一种基于动态图对比学习的恶意变种实时检测方法。通过监测新的恶意软件变种运行产生的系统事件流,选取60s为窗口滑动大小,连续地为每个恶意软件变种构造当前滑动窗口的异构图并进行实时检测,每个窗口内分为:异构图序列构造阶段、异构图数据增强阶段、基于滑动窗口的图学习阶段和基于判别器的变种检测阶段。本发明提供的方法利用同一恶意软件家族中,揭示恶意软件真实意图的执行行为相似的特点,从运行新的恶意软件变种产生的系统事件数据流中动态构造恶意软件变种的异构图,然后利用3种异构图数据增强方法生成精美的正负对比实例对,再通过计算图的相似性来实现对新的恶意软件变种的检测,比已有动态检测方法只提取系统调用序列或流量特征更全面更鲁棒,具有更高级别的语义。

Description

一种基于动态图对比学习的恶意变种实时检测方法
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于动态图对比学习的恶意变种实时检测方法。
背景技术
恶意软件攻击是网络安全里最广泛和最昂贵的攻击类型,而且它们正迅速发展成为更多公司和组织的攻击目标。在经济利益的驱动下,大量恶意软件转换技术涌现,例如代码混淆技术、加密技术、加壳技术和反调试技术等,导致新的恶意软件变种数量呈爆炸式增长。Symantec2017安全报告中指出,每分钟大约有69个新的恶意软件被检测到,超过50%的新恶意软件实际上是现有恶意软件的变种。
现有的恶意软件变种的检测方法分为静态检测方法和动态检测方法。
静态的检测的方法就是不需要执行恶意软件,直接通过反编译工具从恶意软件的二进制文件中提取特征,现有的研究[1-3]大都提取操作码、字节码和API调用等单一或混合特征来表示恶意软件变种的二进制文件,再采用机器学习或深度学习方法检测恶意软件变种。
2017年,Raff等人提取恶意软件变种的字节码的n-gram信息作为分类特征,然后使用卷积神经网络(CNN)和来进行分类。由于字节码与操作码相比含有大量的噪声,因此该方法的准确性受到噪声信息的限制。2017年,Puerta等人提取操作码的频率来表示恶意软件变种的二进制文件,采用支持向量机来进行分类。然而,特征提取太单一,不能包含足够的信息来保证准确性。2019年,Zhanga等人直接从恶意软件解压后的配置文件中提取操作码和API调用两种有用信息作为分类特征,对于不同类型的特征,他们又分别采用CNN和BPNN从操作码双元模型和API调用频率中提取高级特征,合并两个高级特征形成混合特征输入到分类器进行分类。
动态的检测方法需要在隔离的环境下运行恶意软件,通过观察其运行行为来揭示其真实的恶意意图。现有的动态方法大都从沙箱报告中提取鲁棒的系统调用序列或流量统计特征作为恶意软件变种的不变表示,采用机器学习或深度学习方法来检测恶意软件变种。
2017年,Sun提出一个结合了“静态逻辑结构”和“动态运行时信息”的Android恶意软件变种检测系统,分别从清单文件和二进制代码中提取组件信息形成静态行为图,静态行为图加上收集的运行时绑定调用形成运行时行为图,运行时行为图再加上可疑的系统调用集形成最终的总特征,最后用提取的总特征和所有已有样本的签名进行匹配进行分类。2018年,Zhang等人从沙箱监控的可执行文件中提取敏感的系统调用,即利用信息增益提取对恶意行为更敏感的系统调用,再主成分分析提取特征,最后使用多层神经网络进行分类。2019年,Hao等人设计并实现了一个网络流量分析框架DART,该框架结合了一个鲁棒流表示的特征选择方法和一个基于ARTL的算法来检测恶意变种,但该方法只依赖于网络流量的统计特征,其目的是减少源域和目标域在边缘分布和条件分布上的差异。最新的,Chen等人提出了MatchGNet,他们将恶意软件的执行事件建模成静态的异构图,并提取了基于元路径的图嵌入以检测恶意软件,从而可以有效地从大量良性样本中识别未知恶意软件。
现有的静态的检测方法分为基于语法和语义的,其中基于语法的很容易被最普遍的代码混淆技术所规避,无法检测出新的的恶意软件变种。而基于语义的静态检测方法虽然可以检测代码混淆技术产生的恶意变种,但无法检测加密或加壳的新的恶意软件变种。
现有的动态的检测方法的准确性大多依赖于已有的恶意软件训练样本,根据提取单一的系统调用序列或流量等运行行为来表征恶意软件变种,一方面提取的单一特征不能完全概括恶意软件的所有行为信息导致假阳性过高,另一方面,如果训练样本中某一家族的样本比较少,则无法根据提取的特征准确地识别出新的恶意软件变种的具体家族。并且新的变种攻击很难收集有效的样本,造成可分析的样本很少。并且针对这些未知攻击,需要花费大量人力财力进行标注,有些甚至无法标注。而现有的恶意变种检测方法的成功都依赖于大量的标注样本,导致这些变种总是轻易规避现有的监督学习检测方法,对网络安全造成巨大的危害。据我们调查,很少有工作考虑实时准确的检测新的恶意软件变种,因为面对新注入的节点或事件时,现有的检测技术都无法有效地重新训练整个图,从而导致它们无法实时检测恶意软件变体。
发明内容
为此,本发明首先提出一种基于动态图对比学习的恶意变种实时检测方法,通过监测新的恶意软件变种运行产生的系统事件流(包括Process connect IP、Processdownload File、Process delete Process等恶意变种实时运行行为),选取60s为窗口滑动大小,连续地为每个恶意软件变种构造当前滑动窗口的异构图,然后设计异构图数据增强方法生成精美的正负对比实例对,最后进行实时检测,每个窗口内分为:异构图序列构造阶段、异构图数据增强阶段、基于滑动窗口的图学习阶段和基于判别器的变种检测阶段;
所述异构图序列构造阶段从运行新的恶意软件变种产生的底层系统事件数据中,动态地构造恶意软件变种的异构图序列,该阶段的输入是json格式的事件流(其中每条事件为一条字符串);所述异构图数据增强阶段提出了3种类型的数据增强方法,旨在为每个待测的恶意变种生成精美的正负对比实例对;所述基于滑动窗口的图学习阶段使用滑动窗模型来处理持续产生的系统事件数据,每个窗口根据当前滑动窗口异构图包含的新节点的比例分情况选择一个编码器进行动态异构图学习,学习当前滑动窗口的图嵌入,并以更高级别语义上下文的元图为指导的图神经网络来得到异构图的图嵌入;所述基于判别器的变种检测阶段通过比较正负实例对来输出各恶意软件变种的检测结果,其中待测变种的检测结果为具体的恶意类型,属于virus、trojan、worm、backdoor、adware、exploit、dropper中任意一类,有助于信息系统实时防护这些常见类型的恶意变种。
所述异构图序列构造阶段构造恶意软件变种的异构图序列的具体方法为:分为步骤1.1-1.4四个步骤:
步骤1.1:给定异构图序列G={G1,G2,…,Gt-1}以及当前时间窗口的系统事件数据集Dt,去掉Gt-1中过期的节点和关系,对于Dt中的每条事件数据(vs,vd,r),其中vs和vd分别表示源实体和目标实体,r表示该对实体之间的依赖关系。判断vs和vd的类型是否属于V=Process∪File∪System∪Memory∪Registry∪Mutex∪Attribute∪Network,如果是则进入步骤1.2,否则进入步骤1.4;
步骤1.2:判断Gt-1中是否已经包括vs节点或vd节点,如果不包括则在Gt-1中添加新节点vs或vd,并加上边r,否则进入步骤1.3;
步骤1.3:判断Gt-1里节点vs和vd之间是否有边,如果没有,则加上边r,否则进入步骤1.4;
步骤1.4:直接处理Dt里下一条事件数据,并循环步骤1.1到步骤1.4,直到处理完Dt里所有系统事件数据动态构造当前时间窗口的异构图Gt,还有对应的邻接矩阵At。并且存储Gt中的新节点集为
Figure BDA0003351054710000041
所述异构图数据增强阶段生成精美的正负对比实例对的具体步骤包括步骤2.1-步骤2.3:
步骤2.1:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据API属性遮掩方法对Gt进行转换,生成增强样本Gt.mask,其中遮掩函数为:
Figure BDA0003351054710000042
具体的操作是设计一个满足高斯分布的噪音矩阵对原始异构图的属性矩阵里的一部分数值进行混淆:
Figure BDA0003351054710000043
其中,Lm是遮掩的位置矩阵,V是满足高斯分布的噪音矩阵。
步骤2.2:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于元图的取样方法对Gt进行转换,生成增强样本Gt.sample,其中取样函数为:
Figure BDA0003351054710000044
步骤2.3:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于显性邻域的图扩散方法对Gt进行转换,生成增强样本Gt.enhance,具体的操作是对于Gt里的目标节点v以及元路径Mi,先搜索它们的显性邻居,再拓展显性邻居的一阶进程节点为隐性邻居,最后将两侧的显性+隐性邻居两两相连,即可得到增强后的Gt.enhance。
所述基于滑动窗口的图学习阶段得到当前滑动窗口异构图嵌入的具体步骤包括步骤3.1-步骤3.10:
步骤3.1:基于滑动窗口的图学习阶段包含两个可选择的动态编码器,需要根据当前滑动窗口异构图中的新节点集和所有节点集的比例进行选择。判断
Figure BDA0003351054710000051
是否大于0.5,是则进入步骤3.2使用组合的层次图注意编码器来学习当前滑动窗口的图嵌入,否则进入步骤3.6使用动态游走增量更新编码器来直接增量更新当前窗口的图嵌入;
步骤3.2:给定异构图Gt和实验统计得到的元图集M={M1,…,M|M|},对于每个表示唯一异构语义关系的元图Mi,从Gt里的目标节点v开始指导随机游走,得到目标节点v通过Mi到达的邻居集
Figure BDA0003351054710000052
Figure BDA0003351054710000053
步骤3.3:使用节点聚合器聚合邻域
Figure BDA0003351054710000054
里各动态邻节点的信息得到目标节点v的中间节点嵌入;
Figure BDA0003351054710000055
其中,k∈(1,…,K-1),
Figure BDA0003351054710000056
Figure BDA0003351054710000057
分别是第k-1层的目标节点v和邻节点u通过元图Mi得到的嵌入向量,其中
Figure BDA0003351054710000058
使用邻节点u的状态向量进行初始化。
步骤3.4:得到聚合了动态邻节点的节点嵌入
Figure BDA0003351054710000059
后,我们再使用一层密集连接层,它以串联方式嵌入前(K-1)层作为输入,得到一个既能包含更多邻域信息又不会因为层数太多而导致更多噪音的紧密嵌入
Figure BDA00033510547100000510
Figure BDA00033510547100000511
步骤3.5:重复步骤3.2到步骤3.4,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure BDA00033510547100000512
然后直接进入步骤3.9;
步骤3.6:当
Figure BDA00033510547100000513
时,重复步骤3.2,得到元每一个元图Mi得到相应的邻居集
Figure BDA00033510547100000514
但是和步骤3.2的区别是,随机游走过程中只有遇到新的未知节点则加入邻居集
Figure BDA0003351054710000061
遇到已知的节点则跳过,最后得到的
Figure BDA0003351054710000062
里只包含根据Mi遍历到的动态邻节点;
步骤3.7:使用邻居集
Figure BDA0003351054710000063
里的动态邻节点直接扩充目标节点v上个时间窗
Figure BDA0003351054710000064
口的图嵌入得到一个大的表征矩阵,具体表示为:
步骤3.8:重复步骤3.6到步骤3.7,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure BDA0003351054710000065
步骤3.9:由于各元图代表了唯一的异构语义上下文,他们在不同家族中重要程度不同,所以通过前馈神经网络根据每个恶意软件变种元图之间的相关性自动学习各元图Mi的权重
Figure BDA0003351054710000066
Figure BDA0003351054710000067
步骤3.10:把M里由各元图指导得到的子图嵌入聚合成最后的图嵌入hGt
Figure BDA0003351054710000068
所述基于判别器的变种检测阶段输出检测结果的具体方法为步骤4.1-步骤4.4:
步骤4.1:得到了每个窗口的图嵌入hGt后,为了提高检测性能,我们设计了一个2层的MLP投影头,它可以将图嵌入投影到和损失函数同样的低维空间,具体的投影头为:
Figure BDA0003351054710000069
步骤4.2:维护一个批次Bm,里面包含原始异构图的
Figure BDA00033510547100000610
一个增强的正样本的低维嵌入
Figure BDA00033510547100000611
(其中
Figure BDA00033510547100000612
),以及所有负样本的低维嵌入
Figure BDA00033510547100000613
我们计算原始异构图Gt与所有负样本的相似性,如果
Figure BDA00033510547100000614
(τ是预先指定的相似性阈值,值为0.5),则进入步骤4.3,否则进入步骤4.4;
步骤4.3:计算Bm的对比误差l:
Figure BDA0003351054710000071
通过最大化误差l来训练所设计的两个动态图编码器。
步骤4.4:当前窗口的行为不足以识别该新的恶意变种,继续滑动,进入下一个窗口。
本发明所要实现的技术效果在于:
本发明考虑在同一恶意软件家族中,揭示恶意软件真实意图的执行行为大多相似的特点,从运行新的恶意软件变种产生的系统事件数据流中动态构造恶意软件变种的异构图,并设计3种类型的异构图数据增强方法来生成精美的对比实例对,最后通过对比判别器来实现对新的恶意软件变种的检测。一方面,通过实时监测新的恶意软件变种运行产生的底层的系统事件数据来动态检测恶意软件变种的异常行为,可以抵抗已有的转换技术;另一方面,通过把收集到的系统事件数据(包括各种实体和实体之间的依赖关系)构造成异构图,再根据两种可选择的动态编码器学习恶意软件变种的图嵌入作为其不变的表征,比已有动态检测方法只提取系统调用序列或流量特征更全面更鲁棒,具有更高级别的语义。
附图说明
图1基于动态图对比学习的恶意变种实时检测总框架;
图2 3种异构图数据增强示意图;
图3恶意软件变种检测的概要图;
图4 8类恶意软件以及变种。
具体实施方式
以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于此实施例。
本发明提出了一种基于动态图对比学习的恶意变种实时检测方法。从运行新的恶意软件变种产生的底层系统事件数据中构造恶意软件变种的异构图序列。设计了3种类型的异构图数据增强方法为每个窗口的异构图生成了精美的正负对比实例对。最后通过对比判别器实现对新的恶意软件变种的检测。为了实现实时处理系统事件数据流并及时检测出恶意软件变种减少损失,本专利使用滑动窗模型来处理持续产生的系统事件数据(快速流),每个窗口根据当前窗口异构图包含的新节点的比例分情况选择一个动态编码器来学习当前滑动窗口的图嵌入。最重要的是提出了以更高级别语义上下文的元图为指导的图神经网络来得到异构图的图嵌入,其中待测变种的检测结果为具体的恶意类型,属于virus、trojan、worm、backdoor、adware、exploit、dropper中任意一类,有助于信息系统实时防护这些常见类型的恶意变种。
本发明通过监测新的恶意软件变种运行产生的系统事件流(包括Processconnect IP、Process download File、Process delete Process等恶意变种实时运行行为),通过实验选取60s为窗口滑动大小,连续地为每个恶意软件变种构造当前滑动窗口的异构图并进行实时检测。总框架如图1所示,每个时间戳包括(a)异构图序列构造阶段,(b)异构图数据增强阶段,(c)基于滑动窗口的图学习阶段和(d)基于判别器的变种检测阶段。
步骤1:异构图序列构造阶段。
步骤1.1:给定异构图序列G={G1,G2,…,Gt-1}以及当前时间窗口的系统事件数据集Dt,去掉Gt-1中过期的节点和关系,对于Dt中的每条事件数据(vs,vd,r),其中vs和vd分别表示源实体和目标实体,r表示该对实体之间的依赖关系。判断vs和vd的类型是否属于V=Process∪File∪System∪Memory∪Registry∪Mutex∪Attribute∪Network,如果是则进入步骤1.2,否则进入步骤1.4。
步骤1.2:判断Gt-1中是否已经包括vs节点或vd节点,如果不包括则在Gt-1中添加新节点vs或vd,并加上边r,否则进入步骤1.3。
步骤1.3:判断Gt-1里节点vs和vd之间是否有边,如果没有,则加上边r,否则进入步骤1.4。
步骤1.4:直接处理Dt里下一条事件数据,并循环步骤1.1到步骤1.4,直到处理完Dt里所有系统事件数据动态构造当前时间窗口的异构图Gt,还有对应的邻接矩阵At。并且存储Gt中的新节点集(节点增删、关系增删)为
Figure BDA0003351054710000091
步骤2:异构图数据增强阶段(如图2)。
步骤2.1:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据API属性遮掩方法对Gt进行转换,生成增强样本Gt.mask,其中遮掩函数为:
Figure BDA0003351054710000092
具体的操作是设计一个满足高斯分布的噪音矩阵对原始异构图的属性矩阵里的一部分数值进行混淆:
Figure BDA0003351054710000093
其中,Lm是遮掩的位置矩阵,V是满足高斯分布的噪音矩阵。
步骤2.2:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于元图的取样方法对Gt进行转换,生成增强样本Gt.sample,其中取样函数为:
Figure BDA0003351054710000094
步骤2.3:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于显性邻域的图扩散方法对Gt进行转换,生成增强样本Gt.enhance,具体的操作是对于Gt里的目标节点v以及元路径Mi,先搜索它们的显性邻居,再拓展显性邻居的一阶进程节点为隐性邻居,最后将两侧的显性+隐性邻居两两相连,即可得到增强后的Gt.enhance。
步骤3:基于滑动窗口的图学习阶段。
步骤3.1:基于滑动窗口的图学习阶段包含两个可选择的动态编码器,需要根据当前滑动窗口异构图中的新节点集和所有节点集的比例进行选择。判断
Figure BDA0003351054710000095
是否大于0.5,是则进入步骤3.2使用组合的层次图注意编码器来学习当前窗口的图嵌入,否则进入步骤3.6使用动态游走增量更新编码器来直接增量更新当前窗口的图嵌入。
步骤3.2:给定异构图Gt和恶意软件检测概要图(如图3所示),实验统计得到的元图集M={M1,…,M|M|},对于每个表示唯一异构语义关系的元图Mi,从Gt里的目标节点v开始指导随机游走,得到目标节点v通过Mi到达的邻居集
Figure BDA0003351054710000101
Figure BDA0003351054710000102
步骤3.3:使用节点聚合器聚合邻域
Figure BDA0003351054710000103
里各动态邻节点的信息得到目标节点v的中间节点嵌入;
Figure BDA0003351054710000104
其中,k∈(1,…,K-1),
Figure BDA0003351054710000105
Figure BDA0003351054710000106
分别是第k-1层的目标节点v和邻节点u通过元图Mi得到的嵌入向量,其中
Figure BDA0003351054710000107
使用邻节点u的状态向量进行初始化。
步骤3.4:得到聚合了动态邻节点的节点嵌入
Figure BDA0003351054710000108
后,我们再使用一层密集连接层,它以串联方式嵌入前(K-1)层作为输入,得到一个既能包含更多邻域信息又不会因为层数太多而导致更多噪音的紧密嵌入
Figure BDA0003351054710000109
Figure BDA00033510547100001010
步骤3.5:重复步骤3.2到步骤3.4,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure BDA00033510547100001011
然后直接进入步骤3.9。
步骤3.6:当
Figure BDA00033510547100001012
时,重复步骤3.2,得到元每一个元图Mi得到相应的邻居集
Figure BDA00033510547100001013
但是和步骤3.2的区别是,随机游走过程中只有遇到新的未知节点则加入邻居集
Figure BDA00033510547100001014
遇到已知的节点则跳过,最后得到的
Figure BDA00033510547100001015
里只包含根据Mi遍历到的动态邻节点,
步骤3.7:使用邻居集
Figure BDA00033510547100001016
里的动态邻节点直接扩充目标节点v上个时间窗口的图嵌入得到一个大的表征矩阵,具体表示为:
Figure BDA00033510547100001017
步骤3.8:重复步骤3.6到步骤3.7,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure BDA00033510547100001018
步骤3.9:由于各元图代表了唯一的异构语义上下文,他们在不同家族中重要程度不同,所以通过前馈神经网络根据每个恶意软件变种元图之间的相关性自动学习各元图Mi的权重
Figure BDA0003351054710000111
Figure BDA0003351054710000112
步骤3.10:把M里由各元图指导得到的子图嵌入聚合成最后的图嵌入hGt:
Figure BDA0003351054710000113
步骤4:基于判别器的变种检测阶段。
步骤4.1:得到了每个窗口的图嵌入hGt后,为了提高检测性能,我们设计了一个2层的MLP投影头,它可以将图嵌入投影到和损失函数同样的低维空间,具体的投影头为:
Figure BDA0003351054710000114
步骤4.2:维护一个批次Bm,里面包含原始异构图的
Figure BDA0003351054710000115
一个增强的正样本的低维嵌入
Figure BDA0003351054710000116
(其中
Figure BDA0003351054710000117
),以及各大恶意类型(如图4)包含的所有负样本的低维嵌入
Figure BDA0003351054710000118
我们计算原始异构图Gt与所有负样本的相似性,如果
Figure BDA0003351054710000119
(τ是预先指定的相似性阈值,值为0.5),则进入步骤4.3,否则进入步骤4.4;
步骤4.3:计算Bm的对比误差l:
Figure BDA00033510547100001110
通过最大化误差l来训练所设计的两个动态图编码器。
步骤4.4:当前窗口的行为不足以识别该新的恶意变种,继续滑动,进入下一个窗口。
为了证明上述方案的有效性,本专利通过实验统计的有效的元图集和滑动窗口,设计了一个动态自监督对比学习的新型恶意变种检测框架,并提出了3种异构图数据增强方法来生成精美的正负对比实例对,根据不同结构的元图指导动态图编码器学习每个新的恶意变种的图嵌入,作为一个全面、鲁棒的特征,最后通过对比判别器来进行类别的检测。本专利的算法MG-RMVD和现有的较先进的恶意软件检测算法SVM+RBF、RNN+LR、MalConv、MatchGNet进行了对比验证,验证结果表明本专利的算法的检测准确率更高,且假阳性率更低,能够动态实时给出新的恶意变种的检测结果,对比验证结果如表1所示。
表1未知恶意变种检测结果对比
Figure BDA0003351054710000121

Claims (5)

1.一种基于动态图对比学习的恶意变种实时检测方法,其特征在于:通过监测新的恶意软件变种运行产生的系统事件流,恶意变种实时运行行为包括Process connect IP、Process download File、Process delete Process等,选取60s为窗口滑动大小,连续地为每个恶意软件变种构造当前滑动窗口的异构图,然后设计异构图数据增强方法来生成精美的正负对比实例对,最后进行实时检测,每个窗口内分为:异构图序列构造阶段、异构图数据增强阶段、基于滑动窗口的图学习阶段和基于判别器的变种检测阶段;
所述异构图序列构造阶段从运行新的恶意软件变种产生的底层系统事件数据中,动态地构造恶意软件变种的异构图序列,该阶段的输入是json格式的事件流,其中每条事件为一条字符串;所述异构图数据增强阶段提出了3种类型的数据增强方法,旨在为每个待测的恶意变种生成精美的正负对比实例对;所述基于滑动窗口的图学习阶段使用滑动窗模型来处理持续产生的系统事件数据,每个窗口根据当前窗口异构图包含的新节点的比例分情况使用编码器进行动态异构图学习,学习当前窗口的图嵌入,并以更高级别语义上下文的元图为指导的图神经网络来得到异构图的图嵌入;所述基于判别器的变种检测阶段通过比较正负实例对来输出各恶意软件变种的检测结果,所述检测结果为具体的恶意类型,属于virus、trojan、worm、backdoor、adware、exploit、dropper中任意一类,并将判断结果进行输出。
2.如权利要求1所述一种基于动态图对比学习的恶意变种实时检测方法,其特征在于:所述异构图序列构造阶段构造恶意软件变种的异构图序列的具体方法为:分为步骤1.1-1.4四个步骤:
步骤1.1:给定异构图序列G={G1,G2,…,Gt-1}以及当前时间窗口的系统事件数据集Dt,去掉Gt-1中过期的节点和关系,对于Dt中的每条事件数据(vs,vd,r),其中vs和vd分别表示源实体和目标实体,r表示该对实体之间的依赖关系,判断vs和vd的类型是否属于V=Process∪File∪System∪Memory∪Registry∪Mutex∪Attribute∪Network,如果是则进入步骤1.2,否则进入步骤1.4;
步骤1.2:判断Gt-1中是否已经包括vs节点或vd节点,如果不包括则在Gt-1中添加新节点vs或vd,并加上边r,否则进入步骤1.3;
步骤1.3:判断Gt-1里节点vs和vd之间是否有边,如果没有,则加上边r,否则进入步骤1.4;
步骤1.4:直接处理Dt里下一条事件数据,并循环步骤1.1到步骤1.4,直到处理完Dt里所有系统事件数据动态构造当前时间窗口的异构图Gt,还有对应的邻接矩阵At,并且存储Gt中的新节点集为
Figure FDA0003351054700000021
3.如权利要求2所述一种基于动态图对比学习的恶意变种实时检测方法,其特征在于:所述异构图数据增强阶段设计了3种数据增强方法旨在生成精美的正负对比实例对,具体步骤包括步骤2.1-步骤2.3:
步骤2.1:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据API属性遮掩方法对Gt进行转换,生成增强样本Gt.mask,其中遮掩函数为:
Figure FDA0003351054700000022
具体方法是设计一个满足高斯分布的噪音矩阵对原始异构图的属性矩阵Xt里的一部分数值进行混淆:
Figure FDA0003351054700000023
其中,Lm是遮掩的位置矩阵,V是满足高斯分布的噪音矩阵,
步骤2.2:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于元图的取样方法对Gt进行转换,生成增强样本Gt.sample,其中取样函数为:
Figure FDA0003351054700000024
步骤2.3:给定当前滑动窗口原始的异构图Gt=(At,Xt),根据基于显性邻域的图扩散方法对Gt进行转换,生成增强样本Gt.enhance,具体的操作是对于Gt里的目标节点v以及元路径Mi,先搜索它们的显性邻居,再拓展显性邻居所有的一阶进程节点为隐性邻居,最后将两侧的显性+隐性节点两两相连,即可得到增强后的Gt.enhance。
4.如权利要求3所述一种基于动态图对比学习的恶意变种实时检测方法,其特征在于:所述基于滑动窗口的图学习阶段得到每个滑动窗口的异构图嵌入的具体步骤包括步骤3.1-步骤3.10:
步骤3.1:基于滑动窗口的图学习阶段包含两个可选择的动态编码器,需要根据当前滑动窗口异构图中的新节点集和所有节点集的比例进行选择,判断
Figure FDA0003351054700000031
是否大于0.5,是则进入步骤3.2使用组合的层次图注意编码器来学习当前滑动窗口的图嵌入,否则进入步骤3.6使用动态游走增量更新编码器来直接增量更新当前滑动窗口的图嵌入;
步骤3.2:给定异构图Gt和实验统计得到的元图集M={M1,…,M|M|},对于每个表示唯一异构语义关系的元图Mi,从Gt里的目标节点v开始指导随机游走,得到目标节点v通过Mi到达的邻居集
Figure FDA0003351054700000032
Figure FDA0003351054700000033
步骤3.3:使用节点聚合器聚合邻域
Figure FDA0003351054700000034
里各动态邻节点的信息得到目标节点v的中间节点嵌入;
Figure FDA0003351054700000035
其中,k∈(1,…,K-1),
Figure FDA0003351054700000036
Figure FDA0003351054700000037
分别是第k-1层的目标节点v和邻节点u通过元图Mi得到的嵌入向量,其中
Figure FDA0003351054700000038
使用邻节点u的状态向量进行初始化;
步骤3.4:得到聚合了新的邻节点的节点嵌入
Figure FDA0003351054700000039
后,我们再使用一层密集连接层,它以串联方式嵌入前(K-1)层作为输入,得到一个既能包含更多邻域信息又不会因为层数太多而导致更多噪音的紧密嵌入
Figure FDA00033510547000000310
Figure FDA00033510547000000311
步骤3.5:重复步骤3.2到步骤3.4,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure FDA00033510547000000312
然后直接进入步骤3.9;
步骤3.6:当
Figure FDA00033510547000000313
时,重复步骤3.2,得到元每一个元图Mi得到相应的邻居集
Figure FDA00033510547000000314
但是和步骤3.2的区别是,随机游走过程中只有遇到新的未知节点则加入邻居集
Figure FDA00033510547000000315
遇到已知的节点则跳过,最后得到的
Figure FDA00033510547000000316
里只包含根据Mi遍历到的动态邻节点;
步骤3.7:使用邻居集
Figure FDA0003351054700000041
里的动态邻节点直接扩充目标节点v上个时间窗
Figure FDA0003351054700000042
口的图嵌入得到一个大的表征矩阵,具体表示为:
步骤3.8:重复步骤3.6到步骤3.7,直到处理好元图集M里每一个元图Mi得到相应的节点嵌入
Figure FDA0003351054700000043
步骤3.9:由于各元图代表了唯一的异构语义上下文,他们在不同家族中重要程度不同,所以通过前馈神经网络根据每个恶意软件变种元图之间的相关性自动学习各元图Mi的权重
Figure FDA0003351054700000044
Figure FDA0003351054700000045
步骤3.10:把M里由各元图指导得到的子图嵌入聚合成最后的图嵌入hGt
Figure FDA0003351054700000046
5.如权利要求4所述一种基于动态图对比学习的恶意变种实时检测方法,其特征在于:所述基于判别器的变种检测阶段输出检测结果的具体方法为步骤4.1-步骤4.4:
步骤4.1:得到了每个窗口的图嵌入hGt后,为了提高检测性能,我们设计了一个2层的MLP投影头,它可以将图嵌入投影到和损失函数同样的低维空间,具体的投影头为:
Figure FDA0003351054700000047
步骤4.2:维护一个批次Bm,里面包含原始异构图的
Figure FDA0003351054700000048
一个增强的正样本的低维嵌入
Figure FDA0003351054700000049
(其中
Figure FDA00033510547000000410
),以及所有负样本的低维嵌入
Figure FDA00033510547000000411
我们计算原始异构图Gt与所有负样本的相似性,如果
Figure FDA00033510547000000412
(τ是预先指定的相似性阈值,值为0.5),则进入步骤4.3,否则进入步骤4.4;
步骤4.3:计算Bm的对比误差l:
Figure FDA0003351054700000051
通过最大化误差l来训练所设计的两个动态图编码器;
步骤4.4:当前窗口的行为不足以识别该新的恶意变种,继续滑动,进入下一个窗口。
CN202111337338.2A 2021-11-12 2021-11-12 一种基于动态图对比学习的恶意变种实时检测方法 Active CN114003910B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111337338.2A CN114003910B (zh) 2021-11-12 2021-11-12 一种基于动态图对比学习的恶意变种实时检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111337338.2A CN114003910B (zh) 2021-11-12 2021-11-12 一种基于动态图对比学习的恶意变种实时检测方法

Publications (2)

Publication Number Publication Date
CN114003910A true CN114003910A (zh) 2022-02-01
CN114003910B CN114003910B (zh) 2024-05-07

Family

ID=79928722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111337338.2A Active CN114003910B (zh) 2021-11-12 2021-11-12 一种基于动态图对比学习的恶意变种实时检测方法

Country Status (1)

Country Link
CN (1) CN114003910B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114550098A (zh) * 2022-02-28 2022-05-27 山东大学 基于对比学习的考场监控视频异常行为检测方法及系统
CN115865492A (zh) * 2022-11-30 2023-03-28 四川大学 一种基于相似度指向的变种流量生成方法
CN117251691A (zh) * 2023-08-04 2023-12-19 华能信息技术有限公司 一种可疑样本分析处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190371A (zh) * 2018-07-09 2019-01-11 四川大学 一种基于行为图的Android恶意软件检测方法和技术
US20200137083A1 (en) * 2018-10-24 2020-04-30 Nec Laboratories America, Inc. Unknown malicious program behavior detection using a graph neural network
CN111860327A (zh) * 2020-07-21 2020-10-30 广州道源信息科技有限公司 一种基于视觉计算视频传输的图像检测与分析方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190371A (zh) * 2018-07-09 2019-01-11 四川大学 一种基于行为图的Android恶意软件检测方法和技术
US20200137083A1 (en) * 2018-10-24 2020-04-30 Nec Laboratories America, Inc. Unknown malicious program behavior detection using a graph neural network
CN111860327A (zh) * 2020-07-21 2020-10-30 广州道源信息科技有限公司 一种基于视觉计算视频传输的图像检测与分析方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114550098A (zh) * 2022-02-28 2022-05-27 山东大学 基于对比学习的考场监控视频异常行为检测方法及系统
CN114550098B (zh) * 2022-02-28 2024-06-11 山东大学 基于对比学习的考场监控视频异常行为检测方法及系统
CN115865492A (zh) * 2022-11-30 2023-03-28 四川大学 一种基于相似度指向的变种流量生成方法
CN115865492B (zh) * 2022-11-30 2024-02-20 四川大学 一种基于相似度指向的变种流量生成方法
CN117251691A (zh) * 2023-08-04 2023-12-19 华能信息技术有限公司 一种可疑样本分析处理方法及系统

Also Published As

Publication number Publication date
CN114003910B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
Aslan et al. A new malware classification framework based on deep learning algorithms
Ni et al. Malware identification using visualization images and deep learning
Lin Deep learning for IoT
Fan et al. Malicious sequential pattern mining for automatic malware detection
CN114003910B (zh) 一种基于动态图对比学习的恶意变种实时检测方法
Yakura et al. Neural malware analysis with attention mechanism
Gao et al. Malware classification for the cloud via semi-supervised transfer learning
Liu et al. ATMPA: attacking machine learning-based malware visualization detection methods via adversarial examples
Sun et al. Pattern recognition techniques for the classification of malware packers
Xue et al. Malware classification using probability scoring and machine learning
Rahman et al. Adaptive intrusion detection based on boosting and naïve Bayesian classifier
Zhang et al. Malicious codes detection based on ensemble learning
Gao et al. Android malware detection via graphlet sampling
CN110572393A (zh) 一种基于卷积神经网络的恶意软件流量分类方法
Yan et al. A survey of adversarial attack and defense methods for malware classification in cyber security
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
Kakisim et al. Sequential opcode embedding-based malware detection method
Zhang et al. MALDC: a depth detection method for malware based on behavior chains
Li et al. Semi-supervised two-phase familial analysis of Android malware with normalized graph embedding
He et al. Detection of Malicious PDF Files Using a Two‐Stage Machine Learning Algorithm
Masabo et al. Improvement of malware classification using hybrid feature engineering
Liu et al. The similarity analysis of malicious software
Nalavade Using machine learning and statistical models for intrusion detection
Liu et al. A Malware detection method for health sensor data based on machine learning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant