一种WindowsPE病毒样本API标注方法及系统技术方案

技术编号:32189723 阅读:14 留言:0更新日期:2022-02-08 15:54
本发明专利技术涉及一种Windows PE病毒样本API标注方法及系统,属于网络空间安全领域,解决了现有技术中Windows PE病毒样本API标注精度低、效率低的问题。该方法包括:对获取的病毒样本集中的每一病毒样本进行动态分析获得对应的病毒样本API,所述病毒样本API包括动态API调用序列;根据Windows操作系统定义的API信息及所述动态API调用序列对该病毒样本API进行初始标注获得初始标注结果;利用训练好的隐马尔可夫模型根据所述病毒样本API的初始标注结果及动态API调用序列对该病毒样本API进行自动感知标注,该方法能够实现病毒样本API的快速、高效、准确标注。准确标注。准确标注。

【技术实现步骤摘要】
一种Windows PE病毒样本API标注方法及系统


[0001]本专利技术涉及网络空间安全
,尤其涉及一种Windows PE病毒样本API标注方法及系统。

技术介绍

[0002]Windows PE(Portable Executable)病毒样本一直是目前网络空间最严重的安全威胁之一。它在不被用户察觉的情况下启动,破坏软件与数据的安全性和隐私性。病毒数量的增多,推动了机器学习在病毒检测领域的应用。基于机器学习的病毒检测方法的有效实施所面临的关键问题是样本标签的获取;因为病毒的特殊性,其标签的确定是十分困难的,需要多方面专业知识。人工标记会耗费人力物力,特别是随着各种新新型病毒程序和变种剧增,手工分析的滞后问题,严重阻碍了应急响应的实施,使得难以对病毒程序进行快速、有效的控制,完全人工分析将失去效率和可行性。因此,实现分析过程的自动化是势在必得。采用自动化分析技术来深入研究病毒样本行为具有重要的现实意义。
[0003]现有的绝大多数研究对于病毒样本的分析粒度也停留在病毒整个样本。这对于早期的病毒、木马等病毒样本结构和功能相对简单的病毒来说,还比较有效;而新型病毒样本的代码量明显增加,代码结构和所实现的功能也越来越复杂;对复杂病毒样本的完整功能进行分析几乎不可能。因此,也需要对病毒样本进行更细粒度的分析。API即应用编程接口(Application Programming Interface),Windows操作系统中基本上所有的功能都是通过调用API来实现的,通过分析系统调用API,可分析病毒程序的功能。攻击人员制作病毒样本时都会通过调用API来达到其某一项或多项攻击目的,因此在二进制病毒样本分析的过程中需要对更细粒度的API进行研究。
[0004]此外,PE病毒样本的有效标注是防御PE病毒样本威胁的基础,现有技术中,病毒样本API的标注方法多停留在简单的语义特征分析阶段,一是,单API的TF

IDF(Term Frequency

Inverse Document Frequency)特征提取方法,其利用单API的一些词频等特征进行特征功能分类,主要用于信息检索和数据挖掘中;二是基于N

gram的API特征提取,该方法出自NLP(Netural Language Process)领域,对文本的语义信息提取具有较好的效果;三是,基于GloVe(Global Vectors for Word Representation)的API序列特征向量方法,可解决关联词汇方面具有强大的性能;
[0005]现有技术至少存在以下缺陷,一是单API的TF

IDF(Term Frequency

Inverse Document Frequency)特征提取方法,在病毒样本API种类比较少的时候标注效果并不好;二是基于N

gram的API特征提取方法,由于不同N值的变化,导致API序列的状态空间十分巨大,标注效率较低;三是基于GloVe的API序列特征向量方法,在病毒样本领域,由于API调用序列更长,变化更多,以及GloVe方法只能静态依据语料训练结果来生成词向量,从而GloVe方法并不能很好的分析病毒样本API;四是,现有的这些方法对复杂的PE病毒样本API无法进行有效分析,因此无法成功检测更复杂的PE病毒样本。

技术实现思路

[0006]鉴于上述的分析,本专利技术实施例旨在提供一种种Windows PE病毒样本API标注方法及系统,用以解决现有技术中Windows PE病毒样本API标注精度低、效率低的问题。
[0007]一方面,本专利技术提供了一种Windows PE病毒样本API标注方法,包括:
[0008]对获取的病毒样本集中的每一病毒样本进行动态分析获得对应的病毒样本API,所述病毒样本API包括动态API调用序列;
[0009]根据Windows操作系统定义的API信息及所述动态API调用序列对该病毒样本API进行初始标注获得初始标注结果;
[0010]利用训练好的隐马尔可夫模型根据所述病毒样本API的初始标注结果及动态API调用序列对该病毒样本API进行自动感知标注。
[0011]进一步的,所述API信息包括API功能特征描述;具体通过下述方式对所述病毒样本API进行初始标注获得初始标注结果:
[0012]针对所述动态API调用序列中的其中一个API,基于Windows操作系统定义的API功能特征描述,确定该API所属的功能组件类别以及属于所述功能组件类别的概率,从而获得该API的第一功能组件概率分布;
[0013]将所述动态API调用序列中的其中一个API与Windows操作系统中设置好的API类别匹配集进行匹配确定该API的类别,进而确定该API所属的功能组件类别以及属于所述功能组件类别的概率,从而获得该API的第二功能组件概率分布;
[0014]若所述第一功能组件概率分布中的最大概率大于所述第二功能组件概率分布中的最大概率,则将所述第一功能组件概率分布中最大概率对应的功能组件类别作为所述其中一个API的初始标注结果,若小于,则将所述第二功能组件概率分布中最大概率对应的功能组件类别作为所述其中一个API的初始标注结果,若相等,则选择所述第一功能组件概率分布中最大概率对应的功能组件类别和第二功能组件概率分布中中最大概率对应的功能组件类别的任意一个作为所述其中一个API的初始标注结果;
[0015]遍历所述动态API调用序列中的每一API,获得每一API的初始标注结果,进而获得所述病毒样本API的初始标注结果。
[0016]进一步的,具体通过下述方式训练获得隐马尔可夫模型:
[0017]对每一病毒样本API对应的动态API调用序列的长度进行归一化,对于每一病毒样本API,选取预设长度的动态API调用序列作为隐马尔可夫模型的输入;所述预设长度表示所述动态API调用序列包括的API的个数;
[0018]基于选取的所述输入获取所述隐马尔可夫模型中的状态转移概率矩阵、观测概率矩阵以及初始状态分布向量,进而获得训练好的隐马尔可夫模型。
[0019]进一步的,所述隐马尔可夫模型中的隐状态种类对应所述病毒样本API的功能组件类别,所述隐状态种类包括管控功能组件、检测功能组件、感染功能组件和破坏功能组件;所述隐马尔可夫模型中的观测状态种类对应病毒样本API的实际名称。
[0020]进一步的,具体通过下述方式获得隐马尔可夫模型中的状态转移概率矩阵:
[0021]对每一隐状态种类进行编号;
[0022]定义病毒样本API对应的第一二维矩阵,所述第一二维矩阵的第一维度和第二维度均对应隐状态种类编号,所述第一二维矩阵中的元素表示第一维度对应的隐状态转移为
第二维度对应的隐状态的概率;
[0023]根据病毒样本API的初始标注结果对该病毒样本API对应的预设长度的动态API调用序列中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Windows PE病毒样本API标注方法,其特征在于,包括:对获取的病毒样本集中的每一病毒样本进行动态分析获得对应的病毒样本API,所述病毒样本API包括动态API调用序列;根据Windows操作系统定义的API信息及所述动态API调用序列对该病毒样本API进行初始标注获得初始标注结果;利用训练好的隐马尔可夫模型根据所述病毒样本API的初始标注结果及动态API调用序列对该病毒样本API进行自动感知标注。2.根据权利要求1所述的Windows PE病毒样本API标注方法,其特征在于,所述API信息包括API功能特征描述;具体通过下述方式对所述病毒样本API进行初始标注获得初始标注结果:针对所述动态API调用序列中的其中一个API,基于Windows操作系统定义的API功能特征描述,确定该API所属的功能组件类别以及属于所述功能组件类别的概率,从而获得该API的第一功能组件概率分布;将所述动态API调用序列中的其中一个API与Windows操作系统中设置好的API类别匹配集进行匹配确定该API的类别,进而确定该API所属的功能组件类别以及属于所述功能组件类别的概率,从而获得该API的第二功能组件概率分布;若所述第一功能组件概率分布中的最大概率大于所述第二功能组件概率分布中的最大概率,则将所述第一功能组件概率分布中最大概率对应的功能组件类别作为所述其中一个API的初始标注结果,若小于,则将所述第二功能组件概率分布中最大概率对应的功能组件类别作为所述其中一个API的初始标注结果,若相等,则选择所述第一功能组件概率分布中最大概率对应的功能组件类别和第二功能组件概率分布中中最大概率对应的功能组件类别的任意一个作为所述其中一个API的初始标注结果;遍历所述动态API调用序列中的每一API,获得每一API的初始标注结果,进而获得所述病毒样本API的初始标注结果。3.根据权利要求2所述的Windows PE病毒样本API标注方法,其特征在于,具体通过下述方式训练获得隐马尔可夫模型:对每一病毒样本API对应的动态API调用序列的长度进行归一化,对于每一病毒样本API,选取预设长度的动态API调用序列作为隐马尔可夫模型的输入;所述预设长度表示所述动态API调用序列包括的API的个数;基于选取的所述输入获取所述隐马尔可夫模型中的状态转移概率矩阵、观测概率矩阵以及初始状态分布向量,进而获得训练好的隐马尔可夫模型。4.根据权利要求3所述的Windows PE病毒样本API标注方法,其特征在于,所述隐马尔可夫模型中的隐状态种类对应所述病毒样本API的功能组件类别,所述隐状态种类包括管控功能组件、检测功能组件、感染功能组件和破坏功能组件;所述隐马尔可夫模型中的观测状态种类对应病毒样本API的实际名称。5.根据权利要求4所述的Windows PE病毒样本API标注方法,其特征在于,具体通过下述方式获得隐马尔可夫模型中的状态转移概率矩阵:对每一隐状态种类进行编号;定义病毒样本API对应的第一二维矩阵,所述第一二维矩阵的第一维度和第二维度均
对应隐状态种类编号,所述第一二维矩阵中的元素表示第一维度对应的隐状态转移为第二维度对应的隐状态的概率;根据病毒样本API的初始标注结果对该病毒样本API对应的预设长度的动态API调用序列中的每一API进行标注,根据API标注结果确定所述病毒样本API所属的功能组件类别集合;设置病毒样本API对应的第二二维矩阵,所述第二二维矩阵的第一维度和第二维度均对应隐状态种类编号,...

【专利技术属性】
技术研发人员:李伟张永静邢建华石春刚李景田巩艳伟常晓林
申请(专利权)人:北京京航计算通讯研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1