CN116522337A - 一种基于api语义的恶意软件家族无偏检测方法 - Google Patents
一种基于api语义的恶意软件家族无偏检测方法 Download PDFInfo
- Publication number
- CN116522337A CN116522337A CN202310414805.XA CN202310414805A CN116522337A CN 116522337 A CN116522337 A CN 116522337A CN 202310414805 A CN202310414805 A CN 202310414805A CN 116522337 A CN116522337 A CN 116522337A
- Authority
- CN
- China
- Prior art keywords
- api
- apis
- semantics
- malicious software
- unbiased
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 68
- 238000009826 distribution Methods 0.000 claims abstract description 32
- 238000012549 training Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000005065 mining Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 20
- 230000008447 perception Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000014509 gene expression Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 claims description 4
- 230000002779 inactivation Effects 0.000 claims description 3
- 230000007787 long-term memory Effects 0.000 claims 1
- 239000008186 active pharmaceutical agent Substances 0.000 abstract description 31
- 230000000694 effects Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于API语义的恶意软件家族无偏检测方法,首先进行Windows开发者文档收集。其次进行API与API之间关系提取,构造API关系图。然后通过TransH知识推理对API关系图进行API内隐语义挖掘,得到全体API的语义,并将全体API语义信息作为背景知识,加入到公开的API调用序列中,进行向量化处理,得到API调用序列的初步特征。最后构建恶意软件家族无偏检测模型,得到恶意软件的家族无偏检测结果。本发明检测模型给出更准确的分类结果,减少对领域专业知识以及特征工程手段的依赖,解决了实际应用中因训练数据长尾分布导致的模型在尾部类泛化能力不足的问题。
Description
技术领域
本发明属于计算机安全技术领域,涉及一种基于API语义的恶意软件家族无偏检测方法。
背景技术
随着互联网技术的发展,计算机系统在民生、经济、政治等社会生活领域的参与度日益提升,计算机系统的安全成为亟待关注的问题。恶意软件作为危害计算机系统安全和可靠性的首要对象,在近年来已通过窃取机密信息、劫持和操纵网络流量、大量复制自身并在计算机间传播等方式,对全世界范围内的计算机系统造成了极大的威胁。因此,如何不断提高恶意软件检测系统的分析能力,高效检测恶意软件,已成为业界和学界关注的焦点。
恶意软件分析方法主要分为静态分析和动态分析两类,主要区别为是否执行待测软件样本。静态分析侧重于从原始程序文件数据本身挖掘其特性,检测准确率相对较高,但无法有效应对恶意软件通过加壳、加密、压缩等方式阻碍反汇编的情况。动态分析侧重于挖掘软件的运行时特征,可以捕获软件行为意图,且不受恶意软件加壳、加密、代码混淆的影响。
应用程序接口(Application Programming Interface,API),是应用程序与操作系统之间的调用接口。不管采取何种伪装,恶意软件必须在运行时脱壳、解密,并将原始代码加载到主机内存中,从而调用相关API实现破坏系统、窃取用户隐私信息等明显区别于正常程序的行为。因此,采用API序列作为特征的动态检测方法可以有效地对抗各种代码混淆技术。
基于API的恶意软件检测方法大致分为基于API调用序列、基于API调用图,以及基于API语义几类。基于API调用序列的方法对序列的组织情况有较高敏感性。恶意软件为逃避检测而对API序列进行的改组或改写会破坏原序列中包含的有意义行为特征,扩大行为序列差异,从而干扰检测模型判断。基于API调用图的方法涉及大量建图与图匹配操作,计算复杂度将随API调用数的增加迅速提升,而现有的图简化策略粒度较粗,容易在简化过程中丢失重要信息。使用API表层语义信息(API名称及运行时参数)作为特征的检测方法易受恶意软件无用API注入或通过代码混淆改写API的影响。
在实际生产环境中,检测模型可用的数据往往呈现长尾分布特点,即少数头部类样本规模较大,大多数尾部类样本规模较小。若直接使用这种类别不平衡数据训练,所得模型泛化能力不足,将偏向于将尾部类样本分为头部类,显然无法满足需求。现有的恶意软件无偏家族检测方案往往通过重采样方式人为控制各类样本数使其保持一致,该策略虽然能有效减缓类别不平衡造成的影响,但严重依赖数据集本身性质。除此之外,对尾部类的过采样可能导致已知信息重复,分类模型在少数数据上过拟合;对头部类的欠采样可能导致类别中部分有用信息的丢失。
综上所述,面对恶意软件日益增长的种类、数量和对抗检测能力,引入API语义,从API调用序列中提取更具区分性和鲁棒性的特征,构建具有高检测准确率与强泛化能力的恶意软件家族无偏检测模型,具有重要的实用价值。
发明内容
本发明的主要目的在于,克服使用API序列作为特征的恶意软件检测方法存在的缺陷,提供一种基于API语义的恶意软件家族无偏检测方法。该方法所解决的技术问题是,通过将从Windows开发者文档中提取的API内隐语义作为背景知识融入API调用序列的特征提取,获取更具区分性的鲁棒特征,以减少对领域专业知识以及特征工程手段的依赖;同时,通过使用类分布感知损失函数训练检测模型,克服现有恶意软件检测方法在训练数据长尾分布背景下在尾部类泛化能力不足,导致将属于尾部类的样本误分为头部类的缺陷。
本发明的目的及对主要技术问题的解决采用以下流程及技术方案实现:
1.Windows开发者文档收集
对微软官网提供的Windows最新稳定版本对应的API文档进行文档对象模型(Document Object Model,DOM)树解析,将以HTML形式存储的API文档转存为JSON文件。
2.API与API之间关系提取
通过对JSON文件形式的API文档层次结构的解析,根据API文档中的关键字,如名称(Name)等,提取JSON文档中涉及的所有API,并提取各个API之间的关系。API之间的关系可以分为结构化关系与参照关系两类。在解析API文档层次结构的过程中,根据API之间关系相关的关键字,如function_of(是…的函数)、return(返回值为)等,可以提取API文档中涉及的所有结构化关系。通过多个预定义语义模板与非结构化的自然语言描述语句之间的模式匹配,可以从文档中提取涉及的所有参照关系。这些语义模板来源于对API之间关系描述模式的归纳。
所有API及API之间的关系提取完毕后,用形如<API_h,relationship,API_t>的三元组组织记录,其中API_h与API_t代表两个不相同的API,relationship表示这两个API之间的关系。记录完毕后,以API为图节点,API之间的关系为边,构造API关系图。
3.基于TransH知识推理的API内隐语义挖掘
使用TransH算法对步骤2构建的API关系图进行知识推理,以最大限度挖掘其中的内隐语义信息,同时保证对API间一对一、一对多和多对多关系分析的支持。进行知识推理后输出经语义增强的API嵌入(API embedding)。接着对这些API嵌入利用K-Means(K-均值)算法进行语义聚类。语义聚类后,每个聚类中心API嵌入对应的语义可以代表该聚类中所有API的语义,这些聚类中心语义的集合可以代表全体API的语义。
4.借助API语义从API调用序列中提取特征
将步骤3得到的全体API语义信息作为背景知识,加入到公开的API调用序列中,然后进行向量化处理,得到API调用序列的初步特征。
5.基于类分布感知策略的恶意软件家族无偏检测
5.1恶意软件家族无偏检测模型设计
考虑到输入数据形式,构造具有LSTM(长短期记忆)结构的检测模型用于处理输入的API调用序列的初步特征,并输出检测结果。该检测模型主要由TextVectorization层(文本向量化层)、Embedding层(嵌入层)、LSTM层(长短期记忆层)、Dropout层(神经元随机失活层)与全连接层顺序连接构成,全连接层的输出通过Softmax激活函数映射为样本的分类概率。
5.2.类分布感知损失函数设计
传统恶意软件检测模型通常使用基于Softmax的交叉熵损失函数训练分类模型,在类标签分布P(y)高度倾斜时,尾部类类别标签在整体中出现的概率很低,所得模型容易将尾部类样本误分类到头部类。
实际生产环境中,部分类别恶意软件样本数量较少或难以获取,因此本发明引入BER(Balanced Error,平衡分类误差),设计了一种类分布感知损失函数,对Softmax交叉熵损失进行改进,使其能在训练过程中根据类标签分布情况分配模型在各类的特征学习注意力,优化决策边界设置,从而提高模型在尾部类上的泛化能力。该类分布感知损失函数表达式如下:
其中x为样本,f(x)代表检测模型,y为实际类标签,y′为检测模型预测的类标签,fy′(x)为检测模型预测输出的类标签,fy(x)为检测模型使用的实际类标签。γ为类分布感知项,且C为超参数。πy与πy′分别代表实际类标签分布P(y)与模型预测标签的类分布P(y′),τ为温度系数。
5.3.恶意软件家族无偏检测
使用步骤5.2中设计的损失函数训练步骤5.1中设计的检测模型。训练好的模型可以给出待检测恶意软件的家族无偏分类结果。
本发明与现有方法相比具有明显的优点和有益效果,其至少具有下列优点:
1.本发明将Windows API语义作为背景知识融入API调用序列特征提取过程,所提取出的特征具有区分性和鲁棒性特点,有助于检测模型给出更准确的分类结果,同时能减少对领域专业知识以及特征工程手段的依赖。
2.本发明将长尾学习方法中的类别重平衡策略与基于API语义的恶意软件检测方法相结合,使用自定义的类分布感知损失函数训练检测模型。这有助于解决实际应用中因训练数据长尾分布导致的模型在尾部类泛化能力不足,而将属于尾部类的样本误分为头部类的缺陷。
3.本发明着眼于恶意软件家族检测任务,可以判断检测出的恶意软件的所属类别,有助于检出后的针对性处理。
4.本发明与类似方法相比,检测性能显著提升,且提升幅度大于3%。
附图说明
图1为本发明的工作流程图;
图2为本发明的实施方式图。
具体实施方式
为进一步阐述本发明为达预定目的所采取的技术手段及效果,以下部分结合附图及较佳实施例,对本发明提出的一种基于API语义的恶意软件家族无偏检测方法流程如图1所示,详细说明如下:
基于API语义的恶意软件家族无偏检测方法,其工作流程包括API关系图构建、基于TransH知识推理的API内隐语义挖掘与利用,以及基于类分布感知策略的恶意软件家族无偏检测三个主要阶段,如图2所示。
API关系图构建工作流程如下:
步骤1、Windows开发者文档收集
从微软官网下载Windows最新稳定版本对应的API文档,通过DOM(DocumentObject Model)树解析,将以HTML形式存储的API信息转存为JSON文件,以备后续分析。
步骤2、API之间关系提取
API文档以层次结构进行组织,因此可以通过对顶层到底层API文档对应JSON文件的访问来提取API。具体而言,各API文档对应的JSON文件以该API所在头文件命名,通过提取各JSON文件中键Name(名称)对应的所有值,即可得到该头文件中包含的所有API。
在API之间的众多关系中,结构化关系隐藏在API文档的组织中,通过类似API提取的方法提取;参照关系则隐藏在API文档中非结构化的文本描述中,需要借助多个语义模板从文本中提取。
这些语义模板归纳了不同类型文本描述所共通的描述模式,其归纳过程可以通过以下步骤进行:(1)随机抽取部分API文档,归纳文本中对API间关系的描述模式,形成初始语义模板集合;(2)在初始模板集合中检查是否有上一步遗漏的关系,若有,将其定义为语义模板并加入集合;(3)不断重复步骤(2),直到初始语义模板集合无法继续扩展,即可得到最终的语义模板集合。
API文档中的非结构化文本描述在拆分为单句后,首先通过包括剪枝、实体消歧与共指消解在内的预处理,转化为不含时态、代词与模糊表述的有效信息句,再与语义模板集合中的所有模板逐一匹配抽取API关系。匹配过程中忽略与所有模板均无法匹配的有效信息句。
经提取的API及关联关系以形如<API_h,relationship,API_t>的三元组方式记录并存储,并以API为图节点,关系为边,构建API关系图。在三元组中,API_h和API_t代表两个不相同的API,relationship代表这两个API之间的关系。
步骤3、基于TransH知识推理的API内隐语义挖掘与利用工作流程如下:
步骤3.1、抽象建模
将事实存在的三元组tripletT=<API_h,relationship,API_t>中的relationship抽象为向量空间的一个超平面r,并在该超平面上定义关系向量dr,使API_h与API_t的嵌入h与t在超平面上的投影hr与tr满足hr+dr=tr,且距离取最小值,其中wr为r的法向量。
步骤3.2、API嵌入学习
训练一个模型从以一系列三元组形式表示的API关系图中学习API嵌入表示,模型优化目标为:
其中tripletF=<API_h′,relationship,API_t′>,通过替换tripletT中的API_h和/或API_t得到,h′,t′分别为API_h′与API_t′在向量空间中的嵌入表示。γ表示tripletT与tripletF之间的距离常数,[x]+表示max(0,x)。C为软约束权重,是训练过程中的超参数,e代表任一API嵌入,ε是一个取值在0到1之间的常数。优化过程满足以下约束:(1)所有API嵌入的向量模不超过1,即对任意e,都有‖e‖2≤1;(2)hr与dr正交垂直,且dr落在超平面上;(3)超平面法向量wr的模为1,即‖wr‖2=1。这种方式确保语义相近的API将具有相似的嵌入表示,同时保留了同一API在不同关系中充当的不同角色。
步骤3.3、语义聚类
对各API的嵌入表示进行语义聚类,语义聚类借助K-Means(K-均值)算法实现,聚类数目通过肘方法确定。聚类结束后,用聚类中心的语义代表该聚类中的所有API,用所有聚类中心语义的集合代表全体API的语义。
步骤4、借助API语义从API调用序列中提取特征
将步骤3得到的全体API语义信息作为背景知识融入对API调用序列的向量化处理中,这样可以将原始API调用序列转化为API语义序列,进而获取能代表这些原始API调用序列的初步特征。这种策略使检测模型在恶意软件改变API序列的组织情况时仍能捕获序列中隐藏的恶意行为,从而提高其面对恶意软件变种时的检测性能。
步骤5、基于类分布感知策略的恶意软件家族无偏检测工作流程如下:
步骤5.1、恶意软件家族检测模型设计
考虑到输入数据形式,构造LSTM(长短期记忆)结构检测模型用于处理输入API调用序列的初步特征,并输出分类结果。该检测模型主要由TextVectorization层(文本向量化层)、Embedding层(嵌入层)、LSTM层(长短期记忆层)、Dropout层(神经元随机失活层)与全连接层顺序连接构成,其中TextVectorization层引入自然语言处理策略,将字符串输入进行标准化处理并转换为一系列token索引(词索引),其中每个token来源于根据训练数据词频建立的词汇表;Embedding层将输入数据转换为检测模型可以处理的向量形式,并进行维度调整以适应后续模型计算的需要;LSTM层通过循环迭代过程,捕捉序列输入上下文中的隐藏信息;Dropout层通过在模型训练中随机丢弃一部分神经元,防止模型过拟合;全连接层的输出通过Softmax激活函数映射为样本的分类概率。Softmax函数表达式如下。
其中zi为全连接层中第i个节点的输出值,N为全连接层的节点总数,即需要分类的类别数。
步骤5.2、类分布感知损失函数设计
由于基于Softmax的交叉熵损失函数无法胜任类标签分布P(y)高度倾斜时的分类任务,本发明将BER(Balanced Error,平衡分类误差)与类先验知识结合,结合样本边际理论设计类分布感知损失函数。该损失函数能在训练过程中根据类标签分布情况分配模型在各类的特征学习注意力,优化决策边界设置,在提高模型在尾部类上泛化能力的同时降低对头部类分类性能的牺牲。
BER结合类标签分布先验知识P(y),对类别平衡后的概率分布 进行建模,其表达式如下:
其中x为样本,f(x)代表检测模型,y为真实标签,y′为检测模型预测标签。是对每类分类错误率的隐式平均,L为类别总数。
样本边际理论指的是,在特征空间中,同类样本间的距离一般小于不同类样本间的距离,因此分类问题的本质是找到泛化误差小的决策边界,使得所有样本可以被分到正确的类别。在二分类任务中,决策边界泛化误差的上界与样本特征点到类决策边界最小距离的倒数成比例。该式中n1与n2分别代表两个类的样本数,γ1与γ2分别代表两个类的样本到决策边界的最小值,且/>
将该理论推广到多分类任务中,若定义样本到决策边界的距离γ(x,y)为:
γ(x,y)=fy(x)-maxy′≠yfy′(x)
其中x代表输入样本,y为该样本的真实类标签,y′为分类器预测标签,则类到决策边界的距离为该类所有样本到决策边界距离的最小值,即:
其最优值满足其中C为常数,Sj为第j类中样本索引的集合。
γ间接反映了每个类中距离决策边界最近的样本到决策边界的距离,因此鼓励更大的γ便能在一定程度上降低因样本距离决策边界过近而被误分为其他类的风险。
将BER与样本边际理论结合,构造类分布感知损失函数如下:
其中πy与πy′分别代表实际类标签分布P(y)与模型预测标签的类分布P(y′),fy′(x)为检测模型预测输出的类标签,fy(x)为检测模型使用的实际类标签。 C为超参数。温度系数τ>0。
该损失函数在模型训练期间对分类器输出进行逻辑值校准,使其与倾向于平衡预测的类标签分布相匹配;增大样本与决策边界之间的距离,提高对尾部类的正则化程度,在不牺牲模型整体分类能力的情况下降低其在少数类上的泛化误差,同时避免模型误认为尾部类别样本是头部类别样本的反例,从而将尾部类别样本错分为头部类别。
步骤5.3、恶意软件家族无偏检测
使用步骤2中设计的损失函数训练步骤1中设计的检测模型。训练好的模型可以对待检测恶意软件进行家族无偏检测。
下面将结合具体实施例对本发明的实施效果作进一步说明。
对本发明效果的评估采用三个数据集进行,这三个数据集的类恶意软件别分布情况如表1所示。
表1数据集恶意软件类别分布情况
对本发明效果的评估实验在服务器上开展,服务器软硬件配置如表2所示。
表2服务器软硬件配置说明
对本发明效果的评估使用F1、MCC(Matthew’s Correlation Coefficient,马修斯统计系数)和Cohen’s Kappa(Kappa系数)作为指标。这些指标的计算公式及参数含义如表3所示。表中TP表示实际标签与模型预测标签相同且分类正确的样本数,TN表示实际标签与模型标签相同但分类错误的样本数,FP表示实际标签与模型预测标签不同但分类正确的样本数,FN表示实际标签与模型标签不同且分类错误的样本数。
表3效果评估指标说明
本发明在三个数据集上的实施效果如表4、5、6所示。从表中可以看出,本发明在包括F1、MCC等在内的多个评价指标上取得了显著提升,且提升幅度至少为3%。
表4本发明在数据集1上的实施效果
表5本发明在数据集2上的实施效果
表6本发明在数据集3上的实施效果
参考文献:
[1]B.,Kahya,C.N.,Demirkiran,F.,Düzgün,B.,/>A.,&Dag,H.(2021).Benchmark Static API Call Datasets for Malware FamilyClassification.20227th International Conference on Computer Science andEngineering(UBMK),1-5.
[2]Catak,F.O.,&Yazi,A.F.(2019).A Benchmark API Call Dataset forWindows PE Malware Classification.ArXiv,abs/1905.01999.
[3]Chen,Li,Junjun,Zheng,2021.API Call-based Malware Classificationusing Recurrent Neural Networks.J.Cyber Secur.Mob.10,617–640N。
Claims (6)
1.一种基于API语义的恶意软件家族无偏检测方法,其特征在于,包括如下步骤:
S1、对微软官网提供的Windows最新版本对应的API文档,进行文档对象模型DOM树解析,将以HTML形式存储的API文档转存为JSON文件;
S2、通过对JSON文件形式的API文档层次结构的解析,根据API文档中的关键字,提取JSON文件中涉及的所有API,并提取各个API之间的关系;
所有API与API之间的关系提取完毕后,通过三元组<API_h,relationship,API_t>记录,其中API_h与API_t代表两个不相同的API,relationship表示这两个API之间的关系;记录完毕后,以API为图节点,API之间的关系为边,构造API关系图;
S3、通过TransH知识推理,对API关系图进行API内隐语义挖掘,得到全体API的语义:
S4、将全体API语义信息作为背景知识,加入到公开的API调用序列中,然后进行向量化处理,得到API调用序列的初步特征;
S5、基于类分布感知策略,构建恶意软件家族无偏检测模型,输入API调用序列的初步特征,得到恶意软件的家族无偏检测结果。
2.根据权利要求1所述的一种基于API语义的恶意软件家族无偏检测方法,其特征在于,在S2中,所述API之间的关系包括:结构化关系与参照关系。
3.根据权利要求2所述的一种基于API语义的恶意软件家族无偏检测方法,其特征在于,所述结构化关系的提取过程:在解析API文档层次结构的过程中,根据API之间关系相关的关键字,提取API文档中涉及的所有结构化关系;
所述参照关系的提取过程:通过多个预定义语义模板与非结构化的自然语言描述语句之间的模式匹配,从API文档中提取涉及的所有参照关系。
4.根据权利要求3所述的一种基于API语义的恶意软件家族无偏检测方法,其特征在于,S3具体过程如下:
S3.1、使用TransH算法对API关系图进行知识推理,输出经语义增强的API嵌入;
S3.2、对得到的API嵌入利用K-均值算法进行语义聚类,语义聚类后,每个聚类中心API嵌入对应的语义代表该聚类中所有API的语义,将聚类中心语义的集合作为全体API的语义。
5.根据权利要求4所述的一种基于API语义的恶意软件家族无偏检测方法,其特征在于,S5具体过程如下:
5.1、构造具有长短期记忆LSTM结构的恶意软件家族无偏检测模型,并输入API调用序列的初步特征;
5.2、对Softmax交叉熵损失,引入平衡分类误差BER,设计类分布感知损失函数,表达式如下:
其中x为样本,f(x)代表检测模型,y为实际类标签,y′为检测模型预测的类标签,fy′(x)为检测模型预测输出的类标签,fy(x)为检测模型使用的实际类标签;γ为类分布感知项,且C为超参数;πy与πy′分别代表实际类标签分布P(y)与模型预测标签的类分布P(y′),τ为温度系数;
5.3、使用步骤5.2中设计的损失函数训练步骤5.1中构造的恶意软件家族无偏检测模型;训练好的恶意软件家族无偏检测模型,输出的是待检测恶意软件的家族无偏分类结果。
6.根据权利要求5所述的一种基于API语义的恶意软件家族无偏检测方法,其特征在于,在5.1中所述恶意软件家族无偏检测模型由文本向量化层、嵌入层、长短期记忆层、神经元随机失活层与全连接层顺序连接构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414805.XA CN116522337A (zh) | 2023-04-18 | 2023-04-18 | 一种基于api语义的恶意软件家族无偏检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414805.XA CN116522337A (zh) | 2023-04-18 | 2023-04-18 | 一种基于api语义的恶意软件家族无偏检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116522337A true CN116522337A (zh) | 2023-08-01 |
Family
ID=87396830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310414805.XA Pending CN116522337A (zh) | 2023-04-18 | 2023-04-18 | 一种基于api语义的恶意软件家族无偏检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116522337A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454380A (zh) * | 2023-12-22 | 2024-01-26 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
-
2023
- 2023-04-18 CN CN202310414805.XA patent/CN116522337A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454380A (zh) * | 2023-12-22 | 2024-01-26 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
CN117454380B (zh) * | 2023-12-22 | 2024-03-01 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Amer et al. | A dynamic Windows malware detection and prediction method based on contextual understanding of API call sequence | |
US11190562B2 (en) | Generic event stream processing for machine learning | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
US20190303796A1 (en) | Automatically Detecting Frivolous Content in Data | |
WO2018235252A1 (ja) | 分析装置、ログの分析方法及び記録媒体 | |
CN107844533A (zh) | 一种智能问答系统及分析方法 | |
US10282678B2 (en) | Automated similarity comparison of model answers versus question answering system output | |
Xiang et al. | Spam detection in reviews using LSTM-based multi-entity temporal features | |
Ring et al. | Malware detection on windows audit logs using LSTMs | |
CN111400713B (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
CN117461032A (zh) | 异常检测系统及方法 | |
Xue et al. | Homology analysis of malware based on ensemble learning and multifeatures | |
CN116522337A (zh) | 一种基于api语义的恶意软件家族无偏检测方法 | |
Yuste et al. | Optimization of code caves in malware binaries to evade machine learning detectors | |
US20150121508A1 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
Zhang et al. | ISVSF: Intelligent vulnerability detection against Java via sentence-level pattern exploring | |
Wen et al. | A Cross-Project Defect Prediction Model Based on Deep Learning With Self-Attention | |
Yang et al. | RecMaL: Rectify the malware family label via hybrid analysis | |
Ge et al. | Explainable cyber threat behavior identification based on self-adversarial topic generation | |
Graf et al. | Neural network-based technique for android smartphone applications classification | |
Wang et al. | AIHGAT: A novel method of malware detection and homology analysis using assembly instruction heterogeneous graph | |
Imgrund et al. | Broken Promises: Measuring Confounding Effects in Learning-based Vulnerability Discovery | |
Meng et al. | A survey on machine learning-based detection and classification technology of malware | |
Lu et al. | PhilaeX: explaining the failure and success of AI models in malware detection |
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 |