一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

恶意程序分类方法和装置与流程

2022-11-14 14:44:30 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,特别涉及一种恶意程序分类方法和装置。
背景技术
::2.目前大部分金融机构的个人计算机(personalcomputer,pc)设备使用微软旗下的windows系统,这一系列系统方便易用,安全机制较薄弱,版本多,使用范围广。3.而银行机构作为金融领域内的核心组织,常年面临严峻的网络攻击挑战,其中恶意软件攻击是最突出的一种攻击技术。恶意软件可以利用电子邮件,网页窗口,第三方软件等方式入侵设备,后续呈现典型功能行为,以达到不同的感染目的。而目前网络黑客论坛有大量的恶意软件制作工具和教程,学习制作恶意软件的门槛低、收益高。攻击者通过修改,混淆,加壳等手段就能批量生成大量相似功能的恶意代码,再运用各种策略使他们看起来像许多不同的文件。这使得研究者会陷入这种指数级别增长的无限分析之中,重复着大量而相似的冗余工作。但属于同一恶意“功能”的恶意文件,往往具有相同形式的恶意行为,近年来,机器学习与深度学习方法在恶意代码分析的领域内受到了一定的关注,这些方法能高效率分析大量相似样本。4.早在2016年,kolosnjaji将循环神经网络与动态应用程序接口(applicationprogramminginterface,api)融合应用于恶意软件分类,最终得到了精确度为85.6%的分类器模型;在2019年,zenkov研究包含九种类型的恶意软件,使用的方法是二进制文本和十六进制命令以及长短期记忆网络(longshort-termmemory,lstm)对软件本身文本进行分类研究;rafique使用基于深度学习的恶意软件检测方法,依赖于静态方法来预测可以使用系统调用序列执行的行为,结果表明,这种方法有效地检测多态和变形恶意软件,准确率为89%,检出率为96%,在提出的检测技术中,支持向量机(supportvectormachine,svm)被用作特征选择器,卷积神经网络(convolutionalneuralnetwork,cnn)自动编码器被用作特征提取器,多层感知器作为分类器;lu开发了一个18层的深度残差网络,将文件字节码转换为3通道rgb图像,然后应用深度学习对恶意软件进行分类。为了将恶意软件转换成图像,他首先将恶意软件二进制文件转换成8位向量的字节码,字节码再被转换成为0到255的灰度图像,随后将灰度通道复制三次,然后收集所有三个通道数值以创建三通道rgb图像。实验结果表明,网络残差模型的平均准确率达到86.54%;oliveira提出了一种基于深度图卷积神经网络的恶意软件检测方法,直接从api调用序列和相关行为图中学习,实验结果表明,该模型的roc曲线的f1评分达到了96%;2020年,zhang提出了一种基于敏感系统调用和深度信任网络的恶意软件变体检测方法。采用不同的实验组和不同的数据样本进行分析,实验结果表明,该方法能够检测到包装后的恶意软件,准确率达到92%;he认为基于循环神经网络的深度学习算法容易受到冗余api注入的影响,他继续研究了冗余api注入对卷积神经网络的有效性,最后将恶意软件文件转换成图像表示,并用cnn对图像表征进行分类;catak构建了八种类型的恶意软件api序列公开数据集,并使用lstm网络做分类实验;2021年schofield在公开数据集上使用传统文本处理方法与一维卷积网络的组合方案,进行分类研究,取得92%左右的平均准确率。5.应该注意,上面对技术背景的介绍只是为了方便对本技术的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本技术的
背景技术
:部分进行了阐述而认为上述技术方案为本领域技术人员所公知。技术实现要素:6.目前,综合上述的研究工作,当前恶意软件的分类问题主要体现在以下三个方面:7.(1)特征选择:主要是根据专家的经验,结合数据挖掘、机器学习等技术提取特征。这种方法不仅依赖于专家的经验,而且依赖于数据,这使得恶意软件代码分析过程变得复杂。8.(2)分析难度:目前许多静态分析研究并未洞察到软件操作的整体行为轨迹,且反编译后的二进制恶意程序,数据结构或变量大小等信息容易发生丢失或错误,从而使分类准确性受到影响。同时为了逃避检测,在反分析手段的包裹下新一代恶意软件的行为往往更加复杂,变种恶意软件往往将自己真正的恶意行为隐藏在中底层,同时呈现出多种功能行为特征。现有的静态研究很少针对新一代恶意软件的变种性和多态性提出有效的解决方案,这种多标签类型的变种恶意软件在分类上也更难被定义和分析。9.(3)特征维度:恶意代码多维度特征混合分析有很多指标可供选择,为了避免遗漏重要特征,尽可能多地选取特征进行分类模型构建,造成高维性和计算复杂度的增加。10.网络攻击者在入侵靶机后从服务器下载真正的二进制恶意代码,这是一张可执行程序文件,又称“恶意软件”,恶意软件一旦启动,会呈现典型恶意行为。为了抵抗逆向工程,恶意软件作者往往利用混淆打包技术将程序转换为某种形式的压缩版本,从而使静态分析变得不可靠且耗费资源。静态分析在二进制混淆技术的影响下不足以检测或分类恶意软件,动态分析能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率。11.恶意软件作者采用的现代模糊处理技术意味着恶意软件的一个变体可能有着多个实例,这些实例不具有相同的信息摘要算法(message-digestalgorithm,md5)或安全散列算法(securehashalgorithm,sha),但具有基本相同的功能。因此,需要自动确定新检测到的恶意软件是否属于先前已知的功能类型以便能够更加有效的确定软件类型归属,做好相关设备安全防护,减少分析人员的工作量。12.为了解决上述问题中的至少一个,本技术实施例提供一种恶意程序分类方法以及装置。通过将恶意程序样本转换为api函数调用序列文档以及将api函数调用序列文档转换成第一数量个空间稠密实量,作为恶意软件的功能基因序列,进而基于循环神经网络模型提取双向动态行为特征向量,再通过卷积神经网络模型对双向动态行为特征向量进行分类。由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。13.此外,经验证本技术技术上述方法在公开数据集上有良好分类表现,与其他组合方案相比,平均准确率提高了5.49%至7.03%,分类性能更出色。14.根据本技术实施例的一方面,提供了一种恶意程序分类方法,所述分类方法包括:15.将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档;16.并将所述api函数调用序列文档转换成第一数量个空间稠密实量;17.将所述第一数量个空间稠密实量输入至循环神经网络模型中提取双向动态行为特征向量;18.将所述双向动态行为特征输入至卷积神经网络模型中进行分类,得到所述恶意程序样本的分类结果。19.在一些实施方式中,其中,将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档的步骤包括:20.将所述各个恶意程序样本分别通过沙箱环境进行运行分析,针对所述各个恶意程序样本生成对应的样本报告,对样本报告分别解析,以得到所述api函数调用序列文档。21.在一些实施方式中,其中,所述样本报告包括:不同时刻调用的api函数类型和api函数名称。22.在一些实施方式中,其中,所述第一数量与所述恶意程序样本集对应的api函数调用序列文档中调用的api函数的数量相关。23.在一些实施方式中,其中,所述双向动态行为特征向量用于表征api调用时序特征和调用频率特征。24.在一些实施方式中,其中,所述循环神经网络模型为双向长短期记忆网络(lstm)模型。25.根据本技术实施例的一方面,提供了一种恶意程序分类装置,所述装置包括:26.第一转换单元,其将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档;27.第二转换单元,其将所述api函数调用序列文档转换成第一数量个空间稠密实量;28.提取单元,其将所述第一数量个空间稠密实量输入至循环神经网络模型中提取双向动态行为特征向量;29.分类单元,其将所述双向动态行为特征输入至卷积神经网络模型中进行分类,得到所述恶意程序样本的分类结果。30.根据本技术实施例的一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述恶意程序分类方法。31.根据本技术实施例的一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行前述恶意程序分类方法的计算机程序。32.根据本技术实施例的一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现前述恶意程序分类方法。33.本技术实施例的有益效果之一在于:通过将恶意程序样本转换为api函数调用序列文档以及将api函数调用序列文档转换成第一数量个空间稠密实量,作为恶意软件的功能基因序列,进而基于循环神经网络模型提取双向动态行为特征向量,再通过卷积神经网络模型对双向动态行为特征向量进行分类。不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。34.参照后文的说明和附图,详细公开了本技术的特定实施方式,指明了本技术的原理可以被采用的方式。应该理解,本技术的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本技术的实施方式包括许多改变、修改和等同。35.针对一种实施方式描述以及示出的特征信息可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征信息相组合,或替代其它实施方式中的特征信息。36.应该强调,术语“包括/包含”在本文使用时指特征信息、整件、步骤或组件的存在,但并不排除一个或更多个其它特征信息、整件、步骤或组件的存在或附加。附图说明37.参照以下的附图可以更好地理解本技术的很多方面。附图中的部件不是成比例绘制的,而只是为了示出本技术的原理。为了便于示出和描述本技术的一些部分,附图中对应部分可能被放大或缩小。在本技术的一个附图或一种实施方式中描述的元素和特征信息可以与一个或更多个其它附图或实施方式中示出的元素和特征信息相结合。此外,在附图中,类似的标号表示几个附图中对应的部件,并可用于指示多于一种实施方式中使用的对应部件。38.在附图中:39.图1是本技术实施例的恶意程序分类装置的一构成图;40.图2a为本技术实施例将api函数调用序列文档转换成第一数量个空间稠密实量的网络的一结构图;41.图2b为本技术实施例不同api函数之间的空间距离图;42.图3为本技术实施例的mb-textrcnn网络模型的一示例图;43.图4是本技术本技术恶意程序分类的方法的一流程图;44.图5是本技术实施例的恶意程序分类方法的一示意图;45.图6为本技术实施例中计算机设备的示意图。具体实施方式46.参照附图,通过下面的说明书,本技术的前述以及其它特征将变得明显。在说明书和附图中,具体公开了本技术的特定实施方式,其表明了其中可以采用本技术的原则的部分实施方式,应了解的是,本技术不限于所描述的实施方式,相反,本技术包括落入所附权利要求的范围内的全部修改、变型以及等同物。47.在本技术实施例中,术语“第一”、“第二”等用于对不同元素从称谓上进行区分,但并不表示这些元素的空间排列或时间顺序等,这些元素不应被这些术语所限制。术语“和/或”包括相关联列出的术语的一种或多个中的任何一个和所有组合。术语“包含”、“包括”、“具有”等是指所陈述的特征、元素、元件或组件的存在,但并不排除存在或添加一个或多个其他特征、元素、元件或组件。48.在本技术实施例中,单数形式“一”、“该”等包括复数形式,应广义地理解为“一种”或“一类”而并不是限定为“一个”的含义;此外术语“所述”应理解为既包括单数形式也包括复数形式,除非上下文另外明确指出。此外术语“根据”应理解为“至少部分根据……”,术语“基于”应理解为“至少部分基于……”,除非上下文另外明确指出。49.在本技术实施例中,术语“恶意程序”也可以替换为“恶意软件”,例如,恶意代码是指中断机器活动、捕获敏感信息或获取访问私有计算机系统带有恶意性的代码,而恶意软件则是指可执行的二进制恶意代码文件,又称为恶意程序,在微软(windows)系统下,此类文件扩展名为.exe(executablefile)。它的特点是违背计算机用户的使用意愿,未经系统所有者同意,访问计算机系统和网络资源,干扰计算机操作,收集个人信息,从而对互联网的可用性、主机的完整性及其用户的隐私造成威胁,但不包括由于缺陷而造成的意外伤害。恶意软件的传播影响了日常生活,从电子政务到社交网络,从数字自动化扩展到移动网络,造成严重的物质或信息损失。50.例如,恶意软件一词包括病毒、蠕虫、木马、后门、风险软件、广告软件、勒索软件等等。以下举例说明上述不同类别的恶意软件的定义与工作方式:51.(1)计算机病毒(computervirus)是一种在未经用户许可或在用户不知情的情况下改变计算机运行方式的二进制程序,通常具备自我复制并感染计算机的能力。此外“病毒”一词通常也被错误地用来指代其他类型的恶意软件。当病毒的主机被带到目标计算机时,病毒本体可以从一台计算机传播到另一台计算机。例如,用户可以通过网络或邮件发送病毒,或者通过可移动介质(如软盘、cd、dvd或usb驱动器)传播病毒。病毒可以通过感染网络文件系统或其他计算机访问的文件系统来增加向其他计算机传播的概率。52.(2)蠕虫(worm)通过网络在计算机上复制自身,从而在互联网上传播。包含蠕虫的整个文档从一台计算机传输到另一台计算机,整个文档就被视为蠕虫。蠕虫与病毒最大的不同在于不需要寄生在其他程序中,可以独立传播,危害性更大。为了方便自身传播,蠕虫通常有发现新目标的能力,通过电子邮件联系人或者局域网文件共享等方式,探索新目标是否有可以利用的漏洞。53.(3)恶意广告软件(adware)是最知名的恶意软件类型之一。它可以投放与用户无关的弹出广告和展示广告。一些用户会放弃某些类型的广告软件,以换取免费软件(例如游戏),但是会降低计算机的速度;恶意广告软件还收集用户私人数据,将用户重定向到广告站点,并更改internet浏览器设置,默认浏览器和搜索设置以及主页。广告软件往往利用浏览器漏洞向用户投放,此外它还会让用户无意链接下载到恶意软件。广告软件还可以搭载间谍软件,使得设备很容易被黑客入侵,从而使安装了该软件的设备成为黑客,转换为网络钓鱼者和诈骗者的软目标。54.(4)勒索软件(ransomware)往往通过加密文件或锁定系统来对用户提出金钱勒索的要求,是近年来非常流行的恶意软件。入侵靶机后,首先扫描设备内的所有文件,包括但不限于文档,图表,数据库,源代码、压缩包等,利用加密程序将之锁定并不允许用户访问。在设备窗口向用户提出勒索要求,用户只要支付赎金才能重新获取文件的访问权,赎金一般是虚拟货币、电子交易或比特币,否则所有文档均会被破坏或永久删除。55.术语“功能基因序列”是指:针对基于windows平台中没有源码支撑的二进制恶意程序,从程序执行与windows操作系统的底层交互着手,定义并研究具有特征性,核心性,遗传性的功能基因序列,能够有效提升对变种恶意软件的功能分类效率。56.术语“词嵌入”是指:在自然语言处理问题中,将非结构化数据表征为结构化数据是文本预处理的第一步。将一个词的上下文(前面k个词和后面k个词)词编码输入神经网络,输出这个词的编号,利用高效率深度学习方式进行词嵌套学习。预先的词嵌入技术可以取消后续神经网络的embedding层,分布式的词处理技术能保留更多单词含义,相当于预先保留一块语义空间,每篇文档在进行分类之前,使用的单词已经预先转换为分布式空间向量表达,固定维度的表达方式能加快后续分类任务的处理速度。57.术语“api函数”是指:是指电脑操作系统提供给应用程序调用系统服务的编程接口。从本质上讲,它与操作系统提供的服务相关,如网络、安全、文件管理等。由于程序不使用api函数就无法访问系统资源,因此调用特定api函数是表示恶意软件行为的关键信息。api函数本身的命名规范,很难被黑客修改,是应用软件与windows系统最直接的交互方式,因此在一定程度上能真实反映恶意软件行为。在恶意软件执行恶意操作之前,恶意软件需要使用目标的操作系统服务,对于执行的每个活动,例如打开文件、运行线程、向管理员写入命令或打开网络连接,都需要与操作系统进行交互。目前恶意软件的本质是多态性和变种性,虽然能通过混淆或包装手段掩饰静态结构,但不掩饰动态行为。因此,监控恶意软件执行过程中系统调用顺序对于分析恶意软件的行为非常重要,所有的恶意软件都必须运行才能成功执行其恶意操作。58.目前,网络攻击者在入侵靶机后从服务器下载真正的二进制恶意代码,这是一张可执行程序文件,又称“恶意软件”,恶意软件一旦启动,会呈现典型恶意行为。为了抵抗逆向工程,恶意软件作者往往利用混淆打包技术将程序转换为某种形式的压缩版本,从而使静态分析变得不可靠且耗费资源。静态分析在二进制混淆技术的影响下不足以检测或分类恶意软件,动态分析能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率。59.恶意软件作者采用的现代模糊处理技术意味着恶意软件的一个变体可能有着多个实例,这些实例不具有相同的信息摘要算法(message-digestalgorithm,md5)或安全散列算法(securehashalgorithm,sha),但具有基本相同的功能。因此,需要自动确定新检测到的恶意软件是否属于先前已知的功能类型以便能够更加有效的确定软件类型归属,做好相关设备安全防护,减少分析人员的工作量。60.针对上述问题,下面结合附图对本技术实施例的各种实施方式进行说明。这些实施方式只是示例性的,不是对本技术的限制。61.为使本技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本技术实施例做进一步详细说明。在此,本技术的示意性实施例及其说明用于解释本技术,但并不作为对本技术的限定。62.第一方面的实施例63.本技术实施例提供一种恶意程序分类装置。64.图1是本技术实施例的恶意程序分类装置的一构成图。如图1所示,恶意程序分类装置100包括:65.第一转换单元110,其将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档;66.第二转换单元120,其将该api函数调用序列文档转换成第一数量个空间稠密实量;67.提取单元130,其将该第一数量个空间稠密实量输入至循环神经网络模型中提取双向动态行为特征向量;68.分类单元140,将该双向动态行为特征输入至卷积神经网络模型中进行分类,得到所述恶意程序样本的分类结果。69.由此,通过将恶意程序样本转换为api函数调用序列文档以及将api函数调用序列文档转换成第一数量个空间稠密实量,作为恶意软件的功能基因序列,进而基于循环神经网络模型提取双向动态行为特征向量,再通过卷积神经网络模型对双向动态行为特征向量进行分类。由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。70.以下对于第一转换单元110将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档的具体过程进行说明。71.在一些实施方式中,第一转换单元110将各个恶意程序样本分别通过沙箱环境进行运行分析,针对该各个恶意程序样本生成对应的样本报告,并对样本报告分别解析,以得到所述api函数调用序列文档。72.以下对于通过沙箱环境进行运行分析、针对该各个恶意程序样本生成对应的样本报告、对样本报告分别解析的过程分别举例说明。73.在一些实施方式中,通过沙箱环境对恶意程序样本进行运行分析可以简称为沙箱检测法。74.例如,该沙箱检测法包括通过沙箱环境来监控恶意行为,在程序运行时执行分析,以判断其行为是否具备恶意性,该方法避免了打包恶意行为代码或混淆等技术的干扰。例如,沙箱包含一个中央管理软件,用来执行样本和分析处理,每次分析都在一个独立的虚拟机或物理机中启动;例如,沙箱还包含一些基础设置,其中,该基础设施的主要组成部分是一台管理软件的主机和一些用于分析的虚拟机或物理机的客户机,由于客户机是完全隔离的虚拟环境,恶意软件样本可以被安全地执行和分析。在一些实施方式中,沙箱平台能够对恶意程序执行过程进行监控和分析,比如文件和文件夹的变化、内存转储、网络流量、进程和api函数调用等,并能详细说明分析结果,生成可读的json文件和html格式文件。75.在一些实施方式中,恶意程序样本集中的各个恶意程序样本例如可以为二进制的恶意代码。例如,采用云端沙箱对收集到的二进制恶意代码,即,恶意程序样本集进行分析,在该云端沙箱内设置了与普通windows7/8/10平台相似的虚拟客户环境,以保证能获取到恶意代码在普通环境下执行的恶意操作。76.在一些实施方式中,在恶意程序样本经过沙箱后,需要将样本调用到的api的名称按顺序抽取出来,它能抽象性地表征恶意样本在执行过程的具体行为。77.在一些实施方式中,基于api抽取的结果,针对各个恶意程序样本生成对应的样本报告,该样本报告可以包括api函数的信息,例如,包括:不同时刻调用的api函数类型和api函数名称。78.例如,生成样本报告的格式为json的分析报告,其中,该样本报告包含一连串样本在特定的时刻调用的api函数的信息,例如,api函数类型可以为“连续地创建文档”,对应的api函数名称为“createfile”;api函数类型可以为“拷贝指定文件”,对应的api函数名称为“copyfile”;api函数类型可以为“勒索软件”,调用对应的api函数名称为“globalmemorystatus”;api函数类型可以为“广告软件”,调用对应的api函数名称为“getsystemmetrics”,等等,本技术对此不进行一一列举。79.在一些实施方式中,对样本报告分别解析,以得到api函数调用序列文档。80.例如,将每个样本文件中调用的api按时间顺序拼接在一起,将单独调用的的api函数视为文档的“单词”,将所有调用过的api函数形成一篇api调用序列文档。该文档有效保留了恶意代码执行过程中的功能信息和时间顺序。通过解析能够发现某些恶意代码会在一段时间连续执行同一个操作,例如,如果恶意代码连续地创建文档,api函数名称为“createfile”的api函数会被连续地调用,考虑到后续进行上下文特征提取的操作,对任意两个连续的相同操作进行去重,在保留原动态信息的同时去掉了一些冗余api。81.从表面含义上看,api函数序列确实能代表一个软件在执行过程中的行为含义,不同种类的恶意软件在执行过程中会重复执行某些api函数调用,而有些api则不会被调用。例如,对于api函数名称为“copyfile”的api函数,它的功能是拷贝指定文件,在蠕虫类型的恶意软件中被调用的次数远超于其他类型的恶意软件,这是因为蠕虫类型的典型特征就是拷贝复制自身再通过网络进行传播;在勒索软件中,调用api函数名称为“globalmemorystatus”的api函数的次数也非常突出,这是因为勒索软件常常需要对系统硬件进行指纹识别,通过获取当前系统的硬件信息和内存信息执行硬件绕过技术,以此逃避检测;广告软件则是频繁调用api函数名称为“getsystemmetrics”的api函数,只有获取到用户的窗口信息才能有针对性地投放恶意广告软件,比如侦测到用户需要点击窗口的位置,可以在其设置广告源的下载按钮,使用户在无意之中就下载了源恶意程序,相比于广告软件,风险软件,病毒代码等就很少使用这个api函数。82.由此,样本报告包括不同时刻调用的api函数类型和api函数名称,能够得到“api函数名称”、“api调用频率”和“api调用顺序”这三种特征,上述三种特征有强壮的恶意代码类型分类能力,且能在一定程度上真实还原恶意样本动态行为,不易受分析手段的限制,能够提高分类的准确性。83.在一些实施方式中,将api函数调用序列文档转换成第一数量个空间稠密实量。例如,该第一数量与该恶意程序样本集对应的api函数调用序列文档中调用的api函数的数量相关。84.例如,遍历所有样本文件转换而来的api函数调用序列文档,记录所有调用过的api函数,记总数目为n,恶意代码apis的词向量模型训练目标为将n个api函数名称表征为n个k维的空间稠密实量。85.图2a为本技术实施例将api函数调用序列文档转换成第一数量个空间稠密实量的网络的一结构图。86.如图2a所示,例如,设置模型输出词向量维度为128维,训练时采用层级结构的cbow模型,其中,cbow模型在输入时考虑了上下文(i-2,i-1,i 1,i 2);输出时为n*k大小的向量;对于输出词向量的具体内容,可以参见现有技术,本技术对此不进行限制。87.图2b为本技术实施例不同api函数之间的空间距离图。88.例如,图2b的xy轴表示特定的一种二维空间区域,在api函数词向量空间的建立在优化数据输入的同时保留了api的语义信息和各功能函数之间的推理关系,如图2b所示,尽管api函数“createfile”和api函数“createservice”在词表面上有相同的前缀,但api函数“createfile”和api函数“createservice”的空间距离并不相近,这是因为词向量通过上下文学习到的知识进行训练,表明二者的实际语义并不相近。89.由此,通过将api函数调用序列文档转换成第一数量个空间稠密实量能够区分不同api函数,进一步提高分类的准确性。90.在一些实施方式中,将第一数量个空间稠密实量输入至循环神经网络模型中提取双向动态行为特征向量以及将该双向动态行为特征输入至卷积神经网络模型中进行分类,得到恶意程序样本的分类结果。91.在一些实施方式中,循环神经网络模型为双向长短期记忆网络(lstm)模型;卷积神经网络模型例如为cnn模型。92.例如,基于本技术前述内容,能够获取按照时间顺序执行的恶意代码的动态api函数,每个api函数能代表一个功能层级的动作,一连串的api函数调用序列文档则能完整表达一个二进制恶意文件的具体功能。lstm正是适用于处理按时间顺序排列数据的网络结构,门结构能帮助网络学会拥有“记忆”功能,因此它能抓取信息间在时序上的依赖关系。通过研究某木马样本的动态api函数调用序列文档,观察发现其连续地调用了“regcreatekey”,“regsetvalue”,“regclosekey”这三种api函数,这代表该样本进行了创建注册表项,对其赋值,再关闭注册表项的行为,说明了经过前节前述处理过的apis序列保留了恶意代码在功能执行间前后的依赖关系。93.但是,单向的lstm只能记忆从前往后的信息,许多恶意代码在不同的设备上执行功能并不一定是按部就班的,比如恶意代码“wannacry”不一定是先加密本机文件再横向搜索其他目标设备,有可能会先搜索网域,再对本机文件进行攻击;或者是病毒破坏系统原文件时,对文件的操作和对注册表项的操作执行也并不严格按照顺序,但以上行为在双向顺序关系上仍有着明显的依赖关系。因此,单向lstm仅保留过去的信息。94.与单向lstm不同的是,双向lstm(bi-lstm)也称为循环神经网络,其可以捕获变长序列的双向动态行为特征向量。在一些实施方式中,双向动态行为特征向量用于表征api调用时序特征和调用频率特征。95.例如,以双向动态行为特征向量表征api调用时序特征为例,时间轴从左向右增加,单向lstm只能捕获向右侧的动态行为特征向量,而双向lstm能够捕获向左以及向右侧的动态行为特征向量。96.由此,通过采用双向lstm能够进一步提高分类的准确性。97.在一些实施方式中,例如,将双向lstm结构结合到cnn中,能够更好地表示标记恶意代码的api序列信息,例如可以命名为恶意二进制-textrcnn(maliciousbinarytextrcnn,mb-textrcnn)网络模型。98.图3为本技术实施例的mb-textrcnn网络模型的一示例图。99.如图3所示,该mb-textrcnn网络模型分为输入层,bilstm层,卷积层,池化层与输出层等。此外,将双向lstm结构结合到cnn中的模型也可以包含其他层,本技术对比不进行限制。100.以下以mb-textrcnn网络模型为例,对各个层进行详细说明:101.(1)输入层:记样本集大小为s,即有s个二进制恶意文件,均被第一转换单元110转换为api函数调用序列文档{s1,s2,s3,...,sn},经过第二转换单元120的向量化表示后,文档si将转n*128维矩阵:[a1,a2,a3,...,an],其中ai是api函数通过词向量模型训练后的实数向量,具体表示为[a1,a2,a3,...,a128]。[0102](2)bilstm层:门结构是lstm的核心部分,体现了网络单元在训练过程中状态的更新。记当前时刻为t,存储单元值为c′t,当前输入为at,输入权重为wat,上一时刻输出的权重为whc,则当前时刻存储单元值为:[0103]c′t=tanh(wac*at whc*at-1 bc)[0104]遗忘门根据当前输入决定忘记哪些信息,遗忘门ft表示为:[0105]ft=δ([waf,whf,wcf,1][at,ht-1,ct-1,bf])[0106]存储单元值c′t会被添加到新的网络单元状态中。输入门则根据当前输入决定加入哪些新的信息进入单元中,输入门it表示为:[0107]it=δ([wai,whi,wci,1][at,ht-1,c-1,bf])[0108]当前时刻的单元输出两个门与分别不同时刻的存储单元求点积,再相加,这说明了当前单元状态是由当前单元存储值,遗忘门,输入门和前一时刻的单元共同决定的,公式为:[0109][0110]输出门ot则表示为:[0111]ot=δ([wao,who,wco,1][at,ht-1,ct-1,bo])[0112]单元的输出表示为:[0113][0114]本层采用双向的lstm结构,由此从左方向和有方向都会产生输出,分别记为本层采用双向的lstm结构,由此从左方向和有方向都会产生输出,分别记为表示方式如公式所示:[0115][0116][0117]最后的层输出ht取二者的平均值:[0118][0119](3)卷积层。该层采用一维卷积模式,设置大小分别为2,3,4三种规格的卷积核,每种规格包含100个参数互不相同的过滤器。卷积核只会在高度方向移动,移动范围也就是卷积核的大小。每次卷积范围的位置都是完整的api,因为行不会被卷积分割,这样不会将几个api的一部分进行卷积。一次卷积操作相当于一次提取窗口的特征向量,卷积核内不同的参数定义了不同的窗口,保证提取出互不相同且高密度的特征向量ci。[0120](4)池化层:池化层提取出每张特征图最大的值作为保留,并保留特征值的原始顺序,主要目的是降低特征图的维度,提取到最重要的信息作为代表;例如,对于不同的api函数,最重要的信息可以是不同的,有些api函数最重要的信息可以是调用的次数,此处不再一一举例。[0121](5)输出层:该层有七个神经元,每个神经元中的每一个都有softmax函数,在每个分类中预测一个值。模型将输出预测可能性最高的类别作为最终的分类结果,即输出的标签为恶意软件的类型,例如病毒、蠕虫、木马、后门、风险软件、广告软件、勒索软件。[0122]由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。[0123]以下对于本技术恶意程序分类的方法的具体步骤进行介绍。[0124]图4是本技术本技术恶意程序分类的方法的一流程图。如图4所示,[0125]步骤401:获取恶意程序样本集中的各个恶意程序样本,例如为二进制恶意程序样本;[0126]步骤402:将该各个恶意程序样本分别通过沙箱环境进行运行分析;[0127]步骤403:将调用到的api的名称按顺序抽取出来;[0128]步骤404:基于api抽取的结果,针对各个恶意程序样本生成对应的样本报告,并对样本报告分别解析,得到所述api函数调用序列文档;[0129]步骤405:在mb-textrcnn网络模型的输入层将api函数调用序列文档转换成第一数量个空间稠密实量;[0130]步骤406:将该第一数量个空间稠密实量输入至mb-textrcnn网络模型中的bilstm层提取双向动态行为特征向量,进而,将该双向动态行为特征输入至卷积神经网络模型得到卷积结果;[0131]步骤407:将卷积结果通过池化层降低特征图的维度,提取到最重要的信息作为代表,进而输出层将输出预测可能性最高的类别作为最终的分类结果;[0132]步骤408:得到恶意程序样本的分类结果,生成分类标签。[0133]由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。[0134]需要说明的是,以上示例中的硬件结构还可以包括图中未示出的器件,具体可以参考现有技术,本技术实施例并不以此作为限制,或者,该硬件结构也不并不是必须要包括图中所示的所有部件,此处不再一一示例。[0135]为了简单起见,图中仅示例性示出了各个部件或模块之间的连接关系或信号走向,但是本领域技术人员应该清楚的是,该连接可以采用电连接等各种相关技术。本技术实施例并不对此进行限制。[0136]以上各个实施例仅对本技术实施例进行了示例性说明,但本技术不限于此,还可以在以上各个实施例的基础上进行适当的变型。例如,可以单独使用上述各个实施例,也可以将以上各个实施例中的一种或多种结合起来。[0137]本技术通过将恶意程序样本转换为api函数调用序列文档以及将api函数调用序列文档转换成第一数量个空间稠密实量,作为恶意软件的功能基因序列,进而基于循环神经网络模型提取双向动态行为特征向量,再通过卷积神经网络模型对双向动态行为特征向量进行分类。由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。[0138]第二方面的实施例[0139]本技术实施例提供一种恶意程序分类方法。[0140]该方法对应于前述实施例的恶意程序分类装置。该方法的实施例可以参照前述实施例中的记载,重复的内容不再具体说明。[0141]图5是本技术实施例的恶意程序分类方法的一示意图;如图5所示,该方法包括:[0142]步骤501:将恶意程序样本集中的各个恶意程序样本转换为api函数调用序列文档;[0143]步骤502:将该api函数调用序列文档转换成第一数量个空间稠密实量;[0144]步骤503:将该第一数量个空间稠密实量输入至循环神经网络模型中提取双向动态行为特征向量;[0145]步骤504:将该双向动态行为特征输入至卷积神经网络模型中进行分类,得到该恶意程序样本的分类结果。[0146]上述各个步骤的执行及其具体内容可以参考前述实施例中对于各个相关部件的功能及其结构的描述,此处不再重复说明。[0147]由此,不仅能够捕获系统调用的序列中n-gram词组间的联系,还能保留恶意程序动态行为在时序上的前后依赖关系,能够捕获恶意软件的动态行为信息,并且能够全面捕获到恶意软件在实际执行中的行为特征,较少地受到代码混淆转换的影响,从而提高分析准确度与检测覆盖率;并且,能够建立具备更强分类能力的恶意程序功能分类模型,更有效的获取功能级别的本质恶意行为。[0148]本技术的实施例还提供一种计算机设备,图6为本技术实施例中计算机设备600的示意图,计算机设备600能够实现上述实施例中的程序扩展方法中全部步骤,计算机设备600具体包括如下内容:[0149]处理器(processor)601、存储器(memory)602、通信接口(communicationsinterface)603和通信总线604;[0150]其中,所述处理器601、存储器602、通信接口603通过所述通信总线604完成相互间的通信;所述通信接口603用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;[0151]所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的恶意程序分类方法中的全部步骤。[0152]本技术的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的恶意程序分类中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的恶意程序分类方法的全部步骤。[0153]本技术的实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述实施例中的恶意程序分类方法。[0154]虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。[0155]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0156]本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0157]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0158]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0159]以上结合具体的实施方式对本技术进行了描述,但本领域技术人员应该清楚,这些描述都是示例性的,并不是对本技术保护范围的限制。本领域技术人员可以根据本技术的精神和原理对本技术做出各种变型和修改,这些变型和修改也在本技术的范围内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献