CN116361801B - 基于应用程序接口语义信息的恶意软件检测方法及系统 - Google Patents

基于应用程序接口语义信息的恶意软件检测方法及系统 Download PDF

Info

Publication number
CN116361801B
CN116361801B CN202310636026.4A CN202310636026A CN116361801B CN 116361801 B CN116361801 B CN 116361801B CN 202310636026 A CN202310636026 A CN 202310636026A CN 116361801 B CN116361801 B CN 116361801B
Authority
CN
China
Prior art keywords
api call
api
sequence
call sequence
feature vector
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.)
Active
Application number
CN202310636026.4A
Other languages
English (en)
Other versions
CN116361801A (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.)
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
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 Qilu University of Technology, Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Qilu University of Technology
Priority to CN202310636026.4A priority Critical patent/CN116361801B/zh
Publication of CN116361801A publication Critical patent/CN116361801A/zh
Application granted granted Critical
Publication of CN116361801B publication Critical patent/CN116361801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明属于网络安全领域,提供了一种基于应用程序接口语义信息的恶意软件检测方法及系统,包括获取软件API调用序列并进行预处理;基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。本发明通过词嵌入模型获得API调用序列的矢量表示,并描述API名称的语义结构信息和统计信息,解决了现有技术只分析单一特征或者对单一特征分析不充分导致信息丢失从而影响准确率的问题。

Description

基于应用程序接口语义信息的恶意软件检测方法及系统
技术领域
本发明属于网络安全技术领域,具体涉及一种基于应用程序接口语义信息的恶意软件检测方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
计算机和互联网技术的繁荣催生了越来越多的恶意软件被开发出来。根据AV-TEST统计的数据显示,2021年新的恶意软件数量一亿五千万,比上一年度增加了36.5%。截止到2022年,恶意软件的总数达到了十亿之多,新的恶意软件数量逐年增长, 这使得网络安全形势越发的严峻。因此,快速有效地检测恶意软件对于系统和网络安全至关重要,可以防止用户进一步受到威胁。
恶意软件检测方法主要分为两大类,直接对程序代码执行分析的静态分析,以及分析程序运行时行为的动态分析。静态分析方法通常是指在不执行恶意样本的情况下检查程序的代码或结构而识别恶意样本的方法。通常,静态分析需借助于IDA Pro、Stud_PE等工具来提取静态特性,如字节序列、字符串信息和操作码序列等。静态分析获得的特征可以通过机器学习模型进行检测或通过基于签名的检测将提取的信息与存储在数据库中的已知恶意签名进行比较。然而,它可以很容易地绕过模糊技术,而且容易受到加壳、变形等方式的干扰导致准确率下降。此外,模式匹配方法需要大量人工经验进行样本分析并提取规则,需要持续更新签名数据库,在检测零日或多态恶意软件时是无效的,只能用于检测已知的恶意软件。
相比于静态分析,动态分析可以更好地理解恶意软件是如何产生和实施的,并在一定程度上能够提供更可靠的检测性能且更具弹性。行为特征,特别是API调用序列,能够保存关于程序及其行为的相关信息,因为它提供了对内核系统可用的基本资源的访问。大量的研究人员在API调用序列中提取模式,以进行恶意软件检测和分类。一些研究工作通过关联规则挖掘来识别恶意软件。然而,近年来恶意软件数量日益增多,新型恶意软件层出不穷,在恶意软件数量暴涨的背景下,传统的方法在进行大批量恶意软件检测时会消耗大量人力资源和计算资源,检测效率受限。此外,深度学习算法在自动提取恶意软件特征进行检测上有比传统方法速度更快、更准确的优势,在提高检测准确率的同时,也极大地提高了检测的效率,促进了恶意软件检测技术的发展。
目前,对于API调用序列的学习大多数的研究都是基于频率或序列编码进行,然而上述方法存在很多不足。基于频率的方法将每个API认为是独立的存在,忽略了API调用之间的关系;基于序列编码的方法只学习了API名称,没有更深的挖掘其语义特征。现有的动态分析方法大多都只分析单一特征或对特征分析不充分,造成信息丢失从而影响准确率。
发明内容
为了解决上述问题,本发明提出了一种基于应用程序接口语义信息的恶意软件检测方法及系统,本发明首先使用沙箱将PE文件进行动态分析得到的API调用进行预处理。之后从两个方面分析API调用序列特征:一是基于API序列学习其语义信息,二是基于API调用名称学习其名称的结构语义信息和该调用的统计信息。最后使用基于CNNs-BiGRU的恶意软件检测器进行训练检测。
根据一些实施例,本发明的第一方案提供了一种基于应用程序接口语义信息的恶意软件检测方法,采用如下技术方案:
一种基于应用程序接口语义信息的恶意软件检测方法,包括:
获取软件API调用序列并进行预处理;
基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;
基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;
根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。
进一步地,所述获取软件API调用序列并进行预处理,具体为:
获取软件API调用序列;
基于软件API调用序列,删除连续重复的API调用,去除冗余特征;
对去除冗余特征的API调用序列进行统一的固定长度,得到预处理后的API调用序列。
进一步地,所述基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量,具体为:
获取预处理后的API调用序列;
利用预先训练好的API调用序列词向量模型调用预处理后的API调用序列对应的低维词向量表示;
得到API调用序列特征向量。
进一步地,所述API调用序列词向量模型的训练过程,具体为:
获取API调用序列并进行预处理,得到API调用样本序列;
根据API调用样本序列中每个API的索引位置得到的API One-Hot向量,进而得到API调用样本序列API One-Hot向量;
利用API调用样本序列API One-Hot向量训练跳字模型中的初始权重矩阵,将API调用样本序列中每个API单词映射到N维空间,得到API调用序列的嵌入矩阵,其中嵌入矩阵的每一行对应一个中心词向量;
通过将每个中心词向量与隐藏层矩阵相乘,使用softmax函数将输出层神经元的激活值转换为概率,既每个单词的上下文在词汇表上的概率分布,得到训练好的API调用序列词向量模型。
进一步地,所述基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量,具体为:
基于预处理后的API调用序列,提取API调用的操作以及对象,得出的操作字典;
根据API分类标准获取预处理后的软件API调用序列中API的类别;
根据API调用的操作、对象以及类别,得到调整后的API序列表示;
基于调整后的API序列表示,利用预先训练好的API调用名称词向量模型调用调整后的API序列表示中调用名称对应的词向量表示;
将调整后的API序列表示中调用名称对应的词向量表示与预处理后的API调用序列中每个API的TF-IDF值组合,得到API调用名称特征向量。
进一步地,所述根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果,具体为:
将API调用序列特征向量输入到三个并行的第一卷积层进行卷积操作;
将API调用名称特征向量输入到第二卷积层进行卷积操作;
将三个并行的第一卷积层的输出特征和第二卷积层的输出特征进行特征拼接,得到拼接特征;
基于拼接特征,利用双向门控循环单元层进行降维;
根据降维后的特征进行输出分类,得到检测结果。
进一步地,所述恶意软件检测模型的结构,具体为:
三个并行的第一卷积层、第二卷积层、双向门控循环单元层以及输出分类层;
所述双向门控循环单元层包括前向学习和后向学习的两个门控循环单元模块,将四个卷积层的输出合并;
所述输出分类层包括依次连接两组全连接层和Dropout层以及全连接层。
根据一些实施例,本发明的第二方案提供了一种基于应用程序接口语义信息的恶意软件检测系统,采用如下技术方案:
一种基于应用程序接口语义信息的恶意软件检测系统,包括:
序列获取模块,被配置为获取软件API调用序列并进行预处理;
词嵌入模块,被配置为基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;
名称嵌入模块,被配置为基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;
恶意软件检测模块,被配置为根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。
根据一些实施例,本发明的第三方案提供了一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一个方面所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
根据一些实施例,本发明的第四方案提供了一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一个方面所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
与现有技术相比,本发明的有益效果为:
本发明设计了一种API调用的语义信息和统计特征相结合的方法,去除冗余特征后,使用Word2Vec中的Skip-Gram算法将API序列向量化表示,相比于One-Hot算法能够更高效地学习API调用序列的语义信息,更好地理解恶意行为。此外,本发明分析API调用名称的操作、对象与类别,进一步学习每个API名称的结构语义信息,并结合其TF-IDF统计特征。对API调用进行充分学习,解决了分析过程中信息丢失从而影响准确率的问题。
本发明提出一种基于CNNs-BiGRU的深度学习方法实现恶意软件检测,多个CNN模块可以提取不同尺度下的局部特征,更好地捕获调用的局部特征与高阶特征,BiGRU模型可以更有效地使用上下文信息,提高模型的分类性能。该检测模型有效缓解了梯度消失问题,减少了训练模型所需的参数数量训练时间明显减少,检测速度得到提升。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例中一种基于应用程序接口语义信息的恶意软件检测方法流程示意图;
图2为本发明实施例中API嵌入模块的结构示意图;
图3为本发明实施例中CNNs-BiGRU模型架构图;
图4是本发明实施例中在不同处理方式下的准确率对比示意图;
图5是本发明实施例中在不同处理方式下的精确率对比示意图;
图6是本发明实施例中在不同处理方式下的召回率对比示意图;
图7是本发明实施例中在不同处理方式下的F1-Score对比示意图;
图8是本发明实施例中使用不同卷积层数量的准确率对比示意图;
图9是本发明实施例中使用不同卷积层数量的精确率对比示意图;
图10是本发明实施例中使用不同卷积层数量的召回率对比示意图;
图11是本发明实施例中使用不同卷积层数量的F1-Score对比示意图;
图12是本发明实施例中使用不同数量GRU模型的准确率对比示意图;
图13是本发明实施例中使用不同数量GRU模型的精确率对比示意图;
图14是本发明实施例中使用不同数量GRU模型的召回率对比示意图;
图15是本发明实施例中使用不同数量GRU模型的F1-Score对比示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
如图1所示,本实施例提供了一种基于应用程序接口语义信息的恶意软件检测方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器和系统,并通过终端和服务器的交互实现。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务器、云通信、中间件服务、域名服务、安全服务CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。本实施例中,该方法包括以下步骤:
获取软件API调用序列并进行预处理;
基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;
基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;
根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。
具体地,本实施所述的方法,具体为:
步骤1:从PE文件的执行痕迹中提取出API调用序列,并对该序列进行预处理。
具体的,包括:首先从数据集中提取出API调用序列。在获得API序列后删除连续重复的API调用,通过对其进行预处理以去除冗余的特征,只保留这些最有区别性的特征。由于卷积神经网络需要保证输入矩阵具有相同的维度,但是每个样本中的API序列长度不同,所以这里对所有样本的API序列长度进行统一处理。由于约60%文件API序列长度小于1000,这里设定API序列长度为1000,对超过这个长度的API进行截断,长度不足的进行补0。
如图2所示,步骤2:将预处理后的API调用序列嵌入为词向量。
具体的,包括步骤如下:
步骤2.1:使用Skip-Gram模型训练基于API调用序列词向量模型,完成训练后,将API调用序列输入到训练好的API调用序列词向量模型中,使每个API调用获得其低维词向量表示,得到API调用序列特征向量。
具体地,API调用序列词向量模型的训练过程,具体为:
获取API调用序列并进行预处理,得到API调用样本序列;
首先,根据API调用样本序列中每个API的索引位置得到的API One-Hot向量,进而得到API调用样本序列API One-Hot向量;
其中,每个API都由一个长度为V的One-Hot向量表示,V为所提取的API调用序列中观察到的唯一API的总数。一个单词(API)在词汇表中的索引位置是多少,那么相对应的那一行元素就是1,其他元素都是0,从而构成每个API对应的API One-Hot向量。
然后进行词嵌入。利用API调用样本序列API One-Hot向量训练跳字(Skip-Gram)模型中的初始权重矩阵W,根据索引映射,将每个单词都映射到N维空间,这样就可以将所有单词都映射到初始权重矩阵W上(W形状为V×N),其中矩阵中每一行都对应一个中心词向量,得到嵌入矩阵
最后,通过将中心词向量与隐藏层矩阵W’(W’形状为N×V,其中每列为背景词向量)相乘,使用softmax函数将输出层神经元的激活值转换为概率,既每个单词的上下文在词汇表上的概率分布。
Skip-Gram模型训练完成后,得到嵌入矩阵,其中每一行指的是不同API的低维向量,进而获得了API调用样本序列中每个不同API的词向量表示;这样,出现在API调用序列中的每个/>的One-Hot向量都被由嵌入矩阵得到的低维向量/>所取代。
利用训练好的API调用序列词向量模型,使每个API调用获得其低维词向量表示,进而得到API调用序列特征向量。
步骤2.2:使用Skip-Gram模型训练基于API调用名称词向量模型,完成训练后,分析API调用名称信息得到调整后的API序列表示,将其输入到模型中,获得基于调用名称的词向量表示;计算每个API的TF-IDF值,并与基于调用名称的词向量表示进行拼接,得到API调用名称特征向量;
具体包括步骤如下:
步骤a:提取API调用的操作以及对象,根据分析得出的操作字典,从API名称中提取能够体现出API操作的字符串,提取后的剩余部分用来作为其操作的对象;
步骤b:获取API类别,依据cuckoo沙箱提供的API分类标准获取其类别,将API调用分成18类,如公式(1)所示;
(1)
步骤c:将重新表示为/>,即调整后的API序列表示,对API序列重新表示后的序列使用Skip-gram模型进行训练,完成训练后,得到训练好的API调用名称词向量模型;将调整后的API序列表示输入到模型中,获取基于调用名称的词向量表示;
步骤d:计算每个API的TF-IDF值,如公式(2)所示;
(2)
其中,表示/>在样本/>中出现的次数,/>为所有API总数,/>表示样本/>中所有调用出现的次数总和,/>为语料库中样本的总数,/>为包含/>的样本数,/>表示/>存在于样本/>中。
步骤e:将由训练好的API调用名称词向量模型获取的基于调用名称的词向量表示与统计特征(每个API的TF-IDF值)相组合,共同对API名称进行向量化表示,得到API调用名称特征向量。
步骤3:训练恶意软件检测模型即CNNs-BiGRU网络模型:将特征向量输入神经网络中进行训练,得到训练好的恶意软件检测模型。
如图3所示,恶意软件检测模型的工作流程,包括:
将基于API调用序列获取的API调用序列特征向量输入到三个并行的卷积核大小不同的卷积层1,卷积层2,卷积层3,将基于API调用名称获取的API调用名称特征向量输入到一个卷积核大小为4的卷积层4;
将4个卷积层的输出结果进行特征拼接后输入到双向GRU层后,再经过三层全连接层得到最终输出的概率。
具体的,包括:卷积核大小分别为3、4、5的三个并行的第一卷积层和卷积核大小为4的一个第二卷积层、双向GRU(门控循环单元)层、输出分类层;
卷积层1:输入通道数为1,输出通道数为128,卷积核大小为3×128,步长为1,填充为1,激活函数为ReLU激活函数;
卷积层2:输入通道数为1,输出通道数为128,卷积核大小为4×128,步长为1,激活函数为ReLU激活函数;
卷积层3:输入通道数为1,输出通道数为128,卷积核大小为5×128,步长为1,填充为2,激活函数为ReLU激活函数;
卷积层4:输入通道数为1,输出通道数为128,卷积核大小为3×10,步长为1,激活函数为ReLU激活函数;
双向GRU层:包括前向学习和后向学习的两个GRU模块。GRU通过一个当前输入和上一个节点传递下来的隐状态/>来获取两个门控的信息。在 GRU模型获取门控信息之后,需要拼接完成重置的数据和目前所输入的/>,接着利用tanh函数完成激活任务,由此我们即可获得隐藏节点的输出/>,最后进入“更新”阶段。
将四个卷积层的输出特征拼接合并后,输入到两个GRU模块中进行数据降维,将拼接后的生成的512维的序列向量输入GRU,输出维度为100的序列向量。
其中,图1中的G表示GRU,Bi的意思是双向,所以就画了两层GRU。
本实施例利用双向GRU层可以更有效地使用上下文信息,提高模型的分类性能。
输出分类层:依次包括全连接层1,输出维度为64,激活函数为ReLU激活函数;Dropout层;全连接层2,输出维度为32,激活函数为ReLU激活函数;Dropout层;全连接层3,输出维度为1,激活函数为Sigmoid激活函数。
Sigmoid激活函数将最终的输出转化为0到1的值,以此作为判定良性或恶意的结果,阈值为0.5,当大于0.5为恶意结果。
步骤4:将待检测的软件通过所述数据预处理后输入训练好的恶意软件检测模型得到最终的检测结果。
根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果,具体为:
将API调用序列特征向量输入到三个并行的第一卷积层进行卷积操作;
将API调用名称特征向量输入到第二卷积层进行卷积操作;
将三个并行的第一卷积层的输出特征和第二卷积层的输出特征进行特征拼接,得到拼接特征;
基于拼接特征,利用双向门控循环单元层进行降维;
根据降维后的特征进行输出分类,得到检测结果。
表1为本实施例方法与其他机器学习和深度学习模型的对比情况,结果充分体现了本实施例方法拥有优越的检测性能。
表1 本实施例方法与其他机器学习和深度学习模型的对比情况
本实施例数据集是由沙盒生成的windows PE文件的执行痕迹,该数据集为在第三方提供的Github中公开的数据集。使用其中两万个数据,其中一万个是良性的,其余的是恶意的。
本实施例选择数据集的80%作为训练集,同时保留剩余的20%用于测试。依靠准确率、精确率、召回率和F1-Score等评估指标来评估模型的性能。评估指标具体定义如下:
表示恶意样本被正确识别的数量,/>表示良性样本被分类器预测为恶意的数量,/>表示良性样本被正确识别的数量,/>表示恶意样本被识别为良性样本的数量。
对数据集进行预处理删除冗余序列后,将序列规范化为固定长度。
如图4,图5,图6以及图7所示,是本实施例在不同处理方式下的准确率、召回率、精确率以及F1-Score对比示意图。通过三组实验验证不同模块的检测效果,仅具有API调用序列的上下文语义信息特征的网络、仅具有API调用名称的语义结构特征和统计特征的网络,以及二者兼具的网络。可以看出,模型缺少任何一部分都会导致性能下降,说明处理的每个特征都对本发明的检验模型有积极的影响。如图8,图9,图10以及图11所示,是本实施例在不同卷积层数量下的准确率、召回率、精确率以及F1-Score对比示意图,如图12,图13,图14以及图15所示,是本实施例使用不同数量GRU模型的准确率、召回率、精确率以及F1-Score对比示意图。
实施例二
本实施例提供了一种基于应用程序接口语义信息的恶意软件检测系统,包括:
序列获取模块,被配置为获取软件API调用序列并进行预处理;
词嵌入模块,被配置为基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;
名称嵌入模块,被配置为基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;
恶意软件检测模块,被配置为根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。
上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
所提出的系统,可以通过其他的方式实现。例如以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (5)

1.基于应用程序接口语义信息的恶意软件检测方法,其特征在于,包括:
获取软件API调用序列并进行预处理;
基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量,具体为:获取预处理后的API调用序列,利用预先训练好的API调用序列词向量模型调用预处理后的API调用序列对应的低维词向量表示,得到API调用序列特征向量;
所述API调用序列词向量模型的训练过程,具体为:获取API调用序列并进行预处理,得到API调用样本序列,根据API调用样本序列中每个API的索引位置得到的API One-Hot向量,进而得到API调用样本序列API One-Hot向量,利用API调用样本序列API One-Hot向量训练跳字模型中的初始权重矩阵,将API调用样本序列中每个API单词映射到N维空间,得到API调用序列的嵌入矩阵,其中嵌入矩阵的每一行对应一个中心词向量,通过将每个中心词向量与隐藏层矩阵相乘,使用softmax函数将输出层神经元的激活值转换为概率,即每个单词的上下文在词汇表上的概率分布,得到训练好的API调用序列词向量模型;
基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量,具体为:基于预处理后的API调用序列,提取API调用的操作以及对象,得出的操作字典,根据API分类标准获取预处理后的API调用序列中API的类别,根据API调用的操作、对象以及类别,得到调整后的API序列表示,基于调整后的API序列表示,利用预先训练好的API调用名称词向量模型调用调整后的API序列表示中调用名称对应的词向量表示,将调整后的API序列表示中调用名称对应的词向量表示与预处理后的API调用序列中每个API的TF-IDF值组合,得到API调用名称特征向量;
根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果,具体为:将API调用序列特征向量输入到三个并行的第一卷积层进行卷积操作;将API调用名称特征向量输入到第二卷积层进行卷积操作;将三个并行的第一卷积层的输出特征和第二卷积层的输出特征进行特征拼接,得到拼接特征;基于拼接特征,利用双向门控循环单元层进行降维;根据降维后的特征进行输出分类,得到检测结果;
所述恶意软件检测模型的结构,具体为:三个并行的第一卷积层、第二卷积层、双向门控循环单元层以及输出分类层;所述双向门控循环单元层包括前向学习和后向学习的两个门控循环单元模块;所述输出分类层包括依次连接的两组全连接层和Dropout层以及全连接层。
2.如权利要求1所述的基于应用程序接口语义信息的恶意软件检测方法,其特征在于,所述获取软件API调用序列并进行预处理,具体为:
获取软件API调用序列;
基于软件API调用序列,删除连续重复的API调用,去除冗余特征;
对去除冗余特征的API调用序列进行统一的固定长度,得到预处理后的API调用序列。
3.基于应用程序接口语义信息的恶意软件检测系统,用于实现如权利要求1-2任一项权利要求所述的方法,其特征在于,包括:
序列获取模块,被配置为获取软件API调用序列并进行预处理;
词嵌入模块,被配置为基于预处理后的API调用序列将每个API进行向量化表示,得到API调用序列特征向量;
名称嵌入模块,被配置为基于预处理后的API调用序列中的API调用名称将每个API进行向量化表示,得到API调用名称特征向量;
恶意软件检测模块,被配置为根据API调用序列特征向量和API调用名称特征向量,利用预先训练好的恶意软件检测模型进行软件检测,得到检测结果。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-2中任一项所述的基于应用程序接口语义信息的恶意软件检测方法中的步骤。
CN202310636026.4A 2023-06-01 2023-06-01 基于应用程序接口语义信息的恶意软件检测方法及系统 Active CN116361801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310636026.4A CN116361801B (zh) 2023-06-01 2023-06-01 基于应用程序接口语义信息的恶意软件检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310636026.4A CN116361801B (zh) 2023-06-01 2023-06-01 基于应用程序接口语义信息的恶意软件检测方法及系统

Publications (2)

Publication Number Publication Date
CN116361801A CN116361801A (zh) 2023-06-30
CN116361801B true CN116361801B (zh) 2023-09-01

Family

ID=86905318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310636026.4A Active CN116361801B (zh) 2023-06-01 2023-06-01 基于应用程序接口语义信息的恶意软件检测方法及系统

Country Status (1)

Country Link
CN (1) CN116361801B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116578969B (zh) * 2023-07-12 2023-09-05 中国科学院合肥物质科学研究院 基于感知归类的软件检测模型训练方法、检测方法和系统
US11900179B1 (en) 2023-07-13 2024-02-13 Intuit, Inc. Detection of abnormal application programming interface (API) sessions including a sequence of API requests
US11921847B1 (en) * 2023-07-13 2024-03-05 Intuit, Inc. Detection of abnormal application programming interface (API) sessions including a sequence of API requests using space partitioning data structures

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019197022A1 (en) * 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Device and method for classifying program behaviour
CN111259388A (zh) * 2020-01-09 2020-06-09 中山大学 一种基于图卷积的恶意软件api调用序列检测方法
CN111382438A (zh) * 2020-03-27 2020-07-07 玉溪师范学院 基于多尺度卷积神经网络的恶意软件检测方法
CN112464234A (zh) * 2020-11-21 2021-03-09 西北工业大学 一种云平台上基于svm的恶意软件检测方法
CN114861194A (zh) * 2022-05-13 2022-08-05 兰州交通大学 一种基于bgru与cnn融合模型的多类型漏洞检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922409B2 (en) * 2018-04-10 2021-02-16 Microsoft Technology Licensing, Llc Deep reinforcement learning technologies for detecting malware
JP2024517412A (ja) * 2021-04-16 2024-04-22 ストロング フォース ヴィーシーエヌ ポートフォリオ 2019,エルエルシー デジタル製品ネットワークシステム及び生物学ベースのバリューチェーンネットワークのための、システム、方法、キット、並びに装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019197022A1 (en) * 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Device and method for classifying program behaviour
CN111259388A (zh) * 2020-01-09 2020-06-09 中山大学 一种基于图卷积的恶意软件api调用序列检测方法
CN111382438A (zh) * 2020-03-27 2020-07-07 玉溪师范学院 基于多尺度卷积神经网络的恶意软件检测方法
CN112464234A (zh) * 2020-11-21 2021-03-09 西北工业大学 一种云平台上基于svm的恶意软件检测方法
CN114861194A (zh) * 2022-05-13 2022-08-05 兰州交通大学 一种基于bgru与cnn融合模型的多类型漏洞检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于卷积神经网络和最小门控单元的情感分析研究;李治;《 基于深度学习的方面级用户评论情感分析研究》(第2期);第I138-4467页 *

Also Published As

Publication number Publication date
CN116361801A (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN116361801B (zh) 基于应用程序接口语义信息的恶意软件检测方法及系统
CN108021806B (zh) 一种恶意安装包的识别方法和装置
CN110232280B (zh) 一种基于树结构卷积神经网络的软件安全漏洞检测方法
CN110135157B (zh) 恶意软件同源性分析方法、系统、电子设备及存储介质
CN109101817B (zh) 一种识别恶意文件类别的方法及计算设备
CN110704840A (zh) 一种基于卷积神经网络cnn的恶意软件检测方法
CN112464233B (zh) 一种云平台上基于rnn的恶意软件检测方法
CN114047929B (zh) 基于知识增强的用户定义函数识别方法、装置及介质
CN109063478A (zh) 可移植的可执行文件的病毒检测方法、装置、设备及介质
CN111428236A (zh) 一种恶意软件的检测方法、装置、设备及可读介质
CN113609488B (zh) 基于自监督学习及多通道超图神经网络的漏洞检测方法与系统
CN110990563A (zh) 一种基于人工智能的传统文化素材库构建方法及系统
CN112418320A (zh) 一种企业关联关系识别方法、装置及存储介质
CN111400713B (zh) 基于操作码邻接图特征的恶意软件族群分类方法
Choe et al. The real-time mobile application for classifying of endangered parrot species using the CNN models based on transfer learning
Hota et al. Deep Neural Networks for Android Malware Detection.
Mu et al. An android malware detection method using deep learning based on api calls
Nicheporuk et al. An Android Malware Detection Method Based on CNN Mixed-Data Model.
CN108229170A (zh) 利用大数据和神经网络的软件分析方法和装置
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法
Lee et al. Trend of malware detection using deep learning
CN113762294B (zh) 一种特征向量维度压缩方法、装置、设备、介质
CN113987496A (zh) 恶意攻击检测的方法、装置、电子设备及可读存储介质
CN112860573A (zh) 一种智能手机恶意软件检测方法
CN113297376A (zh) 基于元学习的法律案件风险点识别方法及系统

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Yang Shumian

Inventor after: Zhang Yuxin

Inventor after: Zhao Dawei

Inventor after: Xu Lijuan

Inventor after: Li Xin

Inventor after: Sun Chenyu

Inventor after: Xu Qingling

Inventor after: Yang Yongqi

Inventor before: Yang Shumian

Inventor before: Zhang Yuxin

Inventor before: Zhao Dawei

Inventor before: Xu Lijuan

Inventor before: Li Xin

Inventor before: Sun Chenyu

Inventor before: Xu Qingling

Inventor before: Yang Yongqi