CN112380535B - 一种基于cbow的恶意代码三通道可视化识别方法 - Google Patents

一种基于cbow的恶意代码三通道可视化识别方法 Download PDF

Info

Publication number
CN112380535B
CN112380535B CN202011269170.1A CN202011269170A CN112380535B CN 112380535 B CN112380535 B CN 112380535B CN 202011269170 A CN202011269170 A CN 202011269170A CN 112380535 B CN112380535 B CN 112380535B
Authority
CN
China
Prior art keywords
file
malicious code
model
malicious
channel
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
CN202011269170.1A
Other languages
English (en)
Other versions
CN112380535A (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.)
Haohan Data Technology Co ltd
Original Assignee
Chongqing University of Science and Technology
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 Chongqing University of Science and Technology filed Critical Chongqing University of Science and Technology
Priority to CN202011269170.1A priority Critical patent/CN112380535B/zh
Publication of CN112380535A publication Critical patent/CN112380535A/zh
Application granted granted Critical
Publication of CN112380535B publication Critical patent/CN112380535B/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/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/045Combinations of networks

Landscapes

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

Abstract

本发明提供一种基于CBOW的恶意代码三通道可视化识别方法,该方法从二进制文件、十六进制.Bytes文件和反汇编的.Asm文件三种不同的视角使用CBOW模型向量化信息特征,最后将向量特征图像化并在Resnet残差网络模型进行训练识别,而在卷积神经网络即Resnet残差网络识别恶意代码模型构建中,恶意代码数据集显得尤为重要,为了使恶意代码可视化图像包含更多的、更有效的恶意代码信息特征,本发明提出了基于三通道可视化的改进方法,能够将恶意代码的特征信息在保留原有关系的基础上,以不同字符词典为核心生成不同的矩阵,由此提高了可视化图像的信息利用率和恶意代码可视化图像识别准确率,避免了可视化图像信息特征重复率,增强了优化效果。

Description

一种基于CBOW的恶意代码三通道可视化识别方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于CBOW(Continuous Bag OfWords,连续词袋模型)的恶意代码三通道可视化方法。
背景技术
伴随着5G时代的到来,互联网带给人们生活更多便利的同时,也带来诸多的信息安全问题。其中恶意代码攻击成为了当前信息安全领域隐患的标志之一,而恶意代码是运行在目标计算机上使系统按照攻击者意愿执行任务的一组指令,具备种类多、危害大、复杂程度高、隐蔽性好等特点,能起到侵犯用户信息财产的安全、破坏计算机系统完整性的作用。常规的恶意代码检测方法在5G时代的潮流中已被逐渐淘汰。目前应用深度学习检测恶意代码已成为当今信息安全领域研究的主流,但如何运用深度学习进一步提升恶意代码识别准确率成为了目前信息安全领域的研究热点。
要达到进一步提高深度学习识别恶意代码准确率的目的,难点在于如何精确提取恶意代码有效的信息特征。恶意代码可视化是指将恶意代码从二进制的角度进行转换处理,完整保留所有信息特征并采用可视化处理生成图像。将恶意代码可视化技术应用于深度学习正好能解决上述难点。而本发明的发明人经过研究发现,现有的研究多是对恶意代码采用了恶意代码灰度化处理,从灰度图像的角度结合神经网络进行训练并得到实验结果,但灰度图像是单通道数据图像,其包含的恶意代码信息特征量少而且单一,造成在神经网络中难以与三通道数据图像相媲美的结果,所以在面对识别变种恶意代码时,存在着无法准确、高效、稳定的识别出变种恶意代码的问题,还需要进一步深入的研究。
发明内容
针对现有技术中对于恶意代码采用灰度化处理,从灰度图像的角度结合神经网络进行训练并得到实验结果,但由于灰度图像是单通道数据图像,其包含的恶意代码信息特征量少而且单一,造成在神经网络中难以与三通道数据图像相媲美的结果,所以在面对识别变种恶意代码时,存在着无法准确、高效、稳定识别出变种恶意代码的技术问题,本发明提供一种基于CBOW的恶意代码三通道可视化识别方法。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种基于CBOW的恶意代码三通道可视化识别方法,包括以下步骤:
S1、恶意软件信息提取:对待判定的恶意软件通过脚本进行运行系统判断,通过反汇编脚本去除无用信息并生成所需的二进制文件、十六进制.Bytes文件和反汇编的.Asm文件;
S2、CBOW模型利用:对步骤S1提取出来的恶意代码文件,除二进制文件以外,将Bytes文件和Asm文件先进行过滤处理,然后再使用CBOW模型将Bytes文件和Asm文件中的信息由字节形式处理为十进制形式;
S3、恶意代码可视化处理:对步骤S1生成的二进制文件和步骤S2中利用CBOW模型处理过的Bytes文件和Asm文件运用可视化方法,将三种文件数据分别对应图像三种通道生成RGB型的恶意代码图像;
S4、基于Resnet残差网络模型的训练:利用步骤S3中得到的恶意代码图像以及对应的恶意软件数据集中的标签值组成新的数据集,输入到Resnet残差网络模型进行训练,得到成熟的恶意代码识别Resnet模型;
S5、识别模型分类系统构建:基于步骤S4训练得出的成熟恶意代码识别Resnet模型,搭建一个完整的恶意代码识别模型分类系统,完成输入待定恶意代码的正确分类识别。
进一步,所述步骤S1恶意软件信息提取具体包括:首先判断恶意软件是否为有效PE文件,对为有效PE文件的恶意软件通过IDAPro进行反汇编分析;分析完成后自动执行IDA自带的IDAPython脚本,一方面直接生成二进制文件,另一方面通过直接调用IDA自带的staticmain脚本函数生成反汇编的.Asm文件,再一方面通过调用Segment获取PE文件的所有段生成器,验证手段为Header后调整首地址到第二段去,以达到去掉头部的效果,循环到最后一段得到尾地址,调用savefile函数将首尾地址为参数得到十六进制.Bytes文件。
进一步,所述步骤S2中对Bytes文件的过滤处理具体包括:首先利用split函数过滤掉每一行磁盘地址;其次将过滤后的每一行字符以两个字节为单元进行判断,如果有连续并重复5个及以上的CC、FF或00字符,则进行舍弃;最后将处理后的字符单元写入数组以便CBOW模型调用;
所述步骤S2中对Asm文件的过滤处理具体包括:首先以bit的形式读取文件,定位到‘SUBROUTINE’和‘;Section2.’所在文件位置;其次利用循环取出两个位置之间的字符;之后利用split函数截取第6个字符之后的字符串同时采用match函数分别获取’(\s*)’、’loc_’、’sub_’以及’\\t*’所匹配到的字符,也就是汇编指令;最后将获取的汇编指令构成新的字符数组。
进一步,所述步骤S2中将Bytes文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的Bytes字符单元数组作为CBOW模型输入;然后以[00,01,…,FF]构成的256个字符组成字典放入Word2Vec进行训练,最后将模型返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间;
所述步骤S2中将Asm文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的汇编指令字符数组作为CBOW模型输入,其次以[AAA,ADD,AAM,…,XOR]常用的234个汇编指令集构成字典放入Word2Vec进行训练,之后将返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间,最后将返回值构成234×256的矩阵填充22×256个0,以构成256×256的矩阵。
进一步,所述步骤S3中二进制文件运用可视化方法生成第一通道的原理为:先将8位二进制数据转成16进制字符数据,接着将16进制字符数据转成10进制整数形式,之后根据指定宽度形成向量,取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第一通道;
Bytes文件运用可视化方法生成第二通道的原理为:先去除恶意代码16进制文件中的模糊数据,接着用CBOW模型将去除模糊数据后更具有象征恶意代码的16进制文件中的字符向量化,之后取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第二通道;
Asm文件运用可视化方法生成第三通道的原理为:先提取出Asm文件中的所有汇编指令,接着采用第二通道中的CBOW模型将汇编指令向量化,之后取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第三通道。
进一步,所述第一通、第二通道和道第三通道中的数据通过Python中Image库中的fromarray函数生成256*256*3的RGB型恶意代码图像。
进一步,所述步骤S4中Resnet残差网络模型选用Resnet34网络模型结构。
进一步,所述步骤S5中恶意代码识别模型分类系统具体是将恶意软件信息提取、恶意代码可视化处理以及训练成熟的恶意代码识别Resnet模型进行集成,并对恶意代码识别Resnet模型识别的恶意代码家族号和各家族特征点进行说明并输出。
与现有技术相比,本发明提供的基于CBOW的恶意代码三通道可视化识别方法具有以下有益效果或优点:
1、提高恶意代码信息利用率:本发明在从恶意软件提取出恶意代码的过程中,使用了IDAPython处理脚本,一键提取二进制文件、Bytes文件以及Asm文件三种文件,因而提高了恶意代码信息特征利用率,从根本上降低了恶意代码识别的误差率;
2、避免可视化图像信息特征重复率:从恶意软件提取出的三种文件,从二进制角度来看具备着大规模信息特征重复问题;本发明在对三种文件处理过程中使用了自然语言处理模型中的连续词袋模型CBOW,该模型可以根据不同的词典将相同的字符转换成不同的向量,但向量之间依旧存在一定联系,因而提高了恶意代码特征信息的多样性,避免了可视化图像信息特征的重复率;
3、提高恶意代码可视化图像识别准确率:合理的图像生成方法是基于Resnet残差网络的恶意代码识别模型识别准确率高低的关键,以往处理方式为单通道灰度化处理以及三通道均值化处理,存在着特征信息有效性差、特征信息包含量少等问题;而本发明将提取出的三种恶意代码文件以三种不同的方法进行处理并生成可视化图像,能够将每一种文件生成的数据作为一种通道的需求,结合三种通道不一样的数据生成RGB图像放入Resnet网络进行训练,提高了恶意代码信息特征的利用率和恶意代码可视化图像识别准确率;
4、总之,本发明提供的方法充分利用RGB图像为三通道的优点,对每一个通道的数据进行不一样的定义,使得RGB图像具备更多的特征信息,提高了恶意代码识别模型的准确率,降低了恶意代码模型对变种恶意代码识别的误差率,保证了该恶意代码识别模型在不同系统的通用性。
附图说明
图1是本发明提供的基于CBOW的恶意代码三通道可视化识别方法流程示意图。
图2是本发明提供的恶意软件信息提取过程示意图。
图3是本发明提供的CBOW模型结构示意图。
图4是本发明提供的恶意代码可视化方法处理过程示意图。
图5是本发明提供的Resnet残差网络模型结构示意图。
图6是本发明提供的Resnet残差网络模型中残差单元结构示意图。
图7是本发明提供的恶意代码识别模型分类系统结构示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
请参考图1所示,本发明提供一种基于CBOW的恶意代码三通道可视化识别方法,包括以下步骤:
S1、恶意软件信息提取:对待判定的恶意软件通过脚本进行运行系统判断,通过反汇编脚本去除无用信息并生成所需的二进制文件、十六进制.Bytes文件和反汇编的.Asm文件;其中,所述通过脚本进行运行系统判断具体为:首先通过脚本判断恶意软件是否为PE文件,脚本原理在于利用GetModuleHandle函数获取软件DOS头的首地址;其次判断DOS头部中的E_lfanew字段值,根据字段值找到软件真正的PE头(Image_NT_Headers);最后判断该Headers中的Signature字符按值,如果为’5045’则是PE文件,反之则舍弃恶意软件;
S2、CBOW模型利用:对步骤S1提取出来的恶意代码文件,除二进制文件以外,将Bytes文件和Asm文件先进行过滤处理,然后再使用CBOW模型将Bytes文件和Asm文件中的信息由字节形式处理为十进制形式;
S3、恶意代码可视化处理:对步骤S1生成的二进制文件和步骤S2中利用CBOW模型处理过的Bytes文件和Asm文件运用可视化方法,将三种文件数据分别对应图像三种通道生成RGB型的恶意代码图像;
S4、基于Resnet残差网络模型的训练:利用步骤S3中得到的恶意代码图像以及对应的恶意软件数据集中的标签值组成新的数据集,输入到Resnet残差网络模型进行训练,得到成熟的恶意代码识别Resnet模型;
S5、识别模型分类系统构建:基于步骤S4训练得出的成熟恶意代码识别Resnet模型,搭建一个完整的恶意代码识别模型分类系统,完成输入待定恶意代码的正确分类识别。
作为具体实施例,请参考图2所示,本申请的PE文件逆向工作的目的是通过IDAPro生成出正常软件样本的Bytes文件和Asm文件。具体所述步骤S1恶意软件信息提取包括:首先判断恶意软件是否为有效PE文件,即判断(具体判断方法请参考前述步骤S1)PE文件是否符合要求,若不符合则舍去(数据收集的工作),对为有效PE文件的恶意软件(符合要求的PE样本)通过IDAPro进行反汇编分析;分析完成后自动执行IDA自带的IDAPython脚本(反汇编脚本),一方面直接生成二进制文件,另一方面通过直接调用IDA自带的staticmain脚本函数生成反汇编的.Asm文件,再一方面通过调用Segment获取PE文件的所有段生成器,验证手段为Header后调整首地址到第二段去,以达到去掉头部的效果,循环到最后一段得到尾地址,调用savefile函数将首尾地址为参数得到十六进制.Bytes文件。其中,Asm文件的生成是IDA自带的功能,可直接调用脚本函数生成,而Bytes文件的生成则需要自行编写脚本函数。具体处理过程可分为以下三部分:
第一、IDA分析:PE文件分可为32位和64位,而IDAPro的分析器也可分为32位和64位,即可与PE文件相对应。由于64位的IDA可以兼容32位PE文件,而32位的IDA无法兼容64位PE文件,因此,本申请统一使用64位的IDA。具体调用IDA的方式为使用Python代码在命令行执行相关命令。IDAPro自带文本模式的启动程序,占用的系统资源更少,并且无界面,较于图形模式的IDA更适合本申请,因此本申请通过IDA命令行方式来启动IDA对相关PE文件进行分析,分析完成后,则轮到IDAPython发挥作用。IDAPython是常用于IDA上的脚本文件类型,本质是Python,只是和IDA相结合,能够调用IDA的相关功能接口。IDA命令行模式的“-S”指令后跟脚本文件名即可在分析完PE文件后执行脚本代码,如下:
ida64wFilePath+"-A-S"+idcScriptFileName+""+EXEname
上面是在命令行执行的指令,通过Python的subprocess.Popen方法使其执行,这里的IDAPython脚本就是用于生成Asm文件和bytes文件。
第二、生成Asm文件:Asm文件的生成是IDA自带的一项功能,因此生成起来较为方便,IDAPython封装了调用IDA生成Asm文件的方法,脚本成功执行后,即可自动生成Asm文件。Asm文件本质上就是PE文件经过反汇编后得到的汇编代码,也就是所谓的汇编语言源程序。
第三、生成bytes文件:bytes文件的生成则无法直接调用IDA相关功能接口得到,需要通过idc脚本执行以下步骤操作:①、首先是去掉PE文件的头部(Header段),通过IDAPython的Segments方法可以获取PE文件所有段的生成器,而每个段又有相关函数可以获取其首尾地址,验证首段为Header后,将起始地址调整为第二个段的首地址,如果首段不为Header,则不用调整,从而得到了需要的首地址;②、接下来是得到尾地址,第一步已经得到了所有段的生成器,因此通过for循环得到最后一个段的尾地址,即是所需要的尾地址;③、最后是获取bytes文件,通过首尾地址作为相关参数,调用savefile函数,从而将PE文件的字节的十六形式保存到bytes文件中。
作为具体实施例,所述步骤S2中对Bytes文件的过滤处理具体包括:首先利用split函数过滤掉每一行磁盘地址;其次将过滤后的每一行字符以两个字节为单元进行判断,如果有连续并重复5个及以上的CC、FF或00字符,则进行舍弃;最后将处理后的字符单元写入数组以便CBOW模型调用;
所述步骤S2中对Asm文件的过滤处理具体包括:首先以bit的形式读取文件,定位到‘SUBROUTINE’和‘;Section2.’所在文件位置;其次利用循环取出两个位置之间的字符;之后利用split函数截取第6个字符之后的字符串同时采用match函数分别获取’(\s*)’、’loc_’、’sub_’以及’\\t*’所匹配到的字符,也就是汇编指令;最后将获取的汇编指令构成新的字符数组。
作为具体实施例,所述步骤S2中将Bytes文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的Bytes字符单元数组作为CBOW模型输入;然后以[00,01,…,FF]构成的256个字符组成字典放入Word2Vec进行训练,最后将模型返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间;
所述步骤S2中将Asm文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的汇编指令字符数组作为CBOW模型输入,其次以[AAA,ADD,AAM,…,XOR]常用的234个汇编指令集构成字典放入Word2Vec进行训练,之后将返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间,最后将返回值构成234×256的矩阵填充22×256个0,以构成256×256的矩阵。
作为具体实施例,所述CBOW模型结构如图3所示,连续词袋模型CBOW的作用是假设基于某中心词在文本序列前后的背景词来生成该中心词,例如在文本序列“the”“man”“loves”“his”“son”里,以“loves”作为中心词,且背景窗口大小为2时,连续词袋模型关心的是,给定背景词“the”“man”“his”“son”生成中心词“loves”的条件概率,也就是
P("loves"|"the","man","his","son").
因为连续词袋模型的背景词有多个,将这些背景词向量取平均,然后使用和跳字模型一样的方法来计算条件概率。设vi∈Rd和ui∈Rd分别表示词典中索引为i的词作为背景词和中心词的向量(注意符号的含义与跳字模型中的相反)。设中心词wc在词典中索引为c,背景词wo1,…,wo2m在词典中索引为o1,…o2m,那么给定背景词生成中心词的条件概率为:
Figure BDA0002777096330000091
为了让符号更加简单,记Wo={wo1,…,wo2m},且
Figure BDA0002777096330000092
那么上式(1)可简写成:
Figure BDA0002777096330000093
给定一个长度为T的文本序列,设时间步t的词为w(t),背景窗口大小为m。则连续词袋模型似然函数的背景词生成任一中心词概率为:
Figure BDA0002777096330000101
作为具体实施例,请参考图4所示,所述步骤S3中二进制文件运用可视化方法生成第一通道的原理为:先将8位二进制数据转成16进制字符数据,接着将16进制字符数据转成10进制整数形式,其值域为[0,255],对每一个文件进行文件大小的判断,之后根据指定宽度形成向量,取出文件前64KB用于生成图像,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第一通道;
Bytes文件运用可视化方法生成第二通道的原理为:先去除恶意代码16进制文件中的模糊数据,接着用CBOW模型将去除模糊数据后更具有象征恶意代码的16进制文件中的字符向量化,之后取出文件前64KB用于生成图像,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第二通道。其中,所谓的模糊信息就是包含了大量连续的相同字节0xCC,0xCC通常表示可执行文件中的一个中断,而连续的0xCC通常用于填充或对齐,这样的连续字节对于语义的理解是毫无意义的;除了0xCC之外,在软件样本中还经常看到连续的0x00,它们通常用于填充或分隔不同的内容(资源、片段等),这对于语义的理解同样是没有实际意义的。采用了自然语言处理方法word2vec中的CBOW,采用该模型将字符向量化的目的是为了在相同数据输入情况下得出同等重要但与第一通道不一样的特征信息,并进行文件大小处理判断取文件前64KB,最后就能得出256*256的二维矩阵;
Asm文件运用可视化方法生成第三通道的原理为:先提取出Asm文件中的所有汇编指令如pop、call、push等,接着采用第二通道中的CBOW模型将汇编指令向量化,其目的在于从最底层进行恶意代码特征分析,之后取出文件前64KB用于生成图像,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第三通道。
作为具体实施例,所述第一通、第二通道和道第三通道中的数据通过Python中Image库中的fromarray函数生成256*256*3的RGB型恶意代码图像。
作为具体实施例,请参考图5所示,所述步骤S4中Resnet残差网络模型选用现有的Resnet34网络模型结构来实现,该网络模型结构的参数包括:第1层卷积为7×7×64个神经单元,第2到7层卷积为3×3×64个神经单元,第8到15层卷积为3×3×128个神经单元,第16到27层卷积为3×3×256个神经单元,第28到33层卷积为3×3×512个神经单元,第34层平均池化为3×3×64个神经单元。其中,该网络模型中残差单元的结构如图6所示,则残差单元结构表示为:
yl=h(xl)+F(xl,Wl) 式(4)
xl+1=f(yl) 式(5)
其中,xl和xl+1分别表示残差网络中的第I层残差单元的输入与输出,yl表示第I层残差单元总输出的值。简化上述公式,令所有分支中h(xl)=xl以及xl+1=yl,那么就会得到:
xl+1=xl+F(xl,Wl) 式(6)
则从浅层I到深层L的学习特征就可以表示为:
Figure BDA0002777096330000111
F(xi,Wi)表示第i层神经元输入xi与权重Wi的函数关系,结合链式法则可知,假设损失函数为loss,则反向传播的梯度公式可表示为:
Figure BDA0002777096330000112
其中,公式(7)中最右侧括号中的‘1’表示为当有短路机制时无损传播的梯度值,而
Figure BDA0002777096330000113
表示为经过带有权重的卷积层后残差梯度为多少。值不为-1,也就是能解决网络层数过深引发梯度消失的根本原因。
作为具体实施例,请参考图7所示,所述步骤S5中恶意代码识别模型分类系统主要实现上述步骤的集成使用,具体是将恶意软件信息提取、恶意代码可视化处理以及训练成熟的恶意代码识别Resnet模型进行集成,并对恶意代码识别Resnet模型识别的恶意代码家族号和各家族特征点进行说明并输出。本系统有识别单个软件和多个软件的选择功能,能对9种恶意代码家族进行准确分类的能力。
与现有技术相比,本发明提供的基于CBOW的恶意代码三通道可视化识别方法具有以下有益效果或优点:
1、提高恶意代码信息利用率:本发明在从恶意软件提取出恶意代码的过程中,使用了IDAPython处理脚本,一键提取二进制文件、Bytes文件以及Asm文件三种文件,因而提高了恶意代码信息特征利用率,从根本上降低了恶意代码识别的误差率;
2、避免可视化图像信息特征重复率:从恶意软件提取出的三种文件,从二进制角度来看具备着大规模信息特征重复问题;本发明在对三种文件处理过程中使用了自然语言处理模型中的连续词袋模型CBOW,该模型可以根据不同的词典将相同的字符转换成不同的向量,但向量之间依旧存在一定联系,因而提高了恶意代码特征信息的多样性,避免了可视化图像信息特征的重复率;
3、提高恶意代码可视化图像识别准确率:合理的图像生成方法是基于Resnet残差网络的恶意代码识别模型识别准确率高低的关键,以往处理方式为单通道灰度化处理以及三通道均值化处理,存在着特征信息有效性差、特征信息包含量少等问题;而本发明将提取出的三种恶意代码文件以三种不同的方法进行处理并生成可视化图像,能够将每一种文件生成的数据作为一种通道的需求,结合三种通道不一样的数据生成RGB图像放入Resnet网络进行训练,提高了恶意代码信息特征的利用率和恶意代码可视化图像识别准确率;
4、总之,本发明提供的方法充分利用RGB图像为三通道的优点,对每一个通道的数据进行不一样的定义,使得RGB图像具备更多的特征信息,提高了恶意代码识别模型的准确率,降低了恶意代码模型对变种恶意代码识别的误差率,保证了该恶意代码识别模型在不同系统的通用性。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种基于CBOW的恶意代码三通道可视化识别方法,其特征在于,包括以下步骤:
S1、恶意软件信息提取:对待判定的恶意软件通过脚本进行运行系统判断,通过反汇编脚本去除无用信息并生成所需的二进制文件、十六进制.Bytes文件和反汇编的.Asm文件;
S2、CBOW模型利用:对步骤S1提取出来的恶意代码文件,除二进制文件以外,将Bytes文件和Asm文件先进行过滤处理,然后再使用CBOW模型将Bytes文件和Asm文件中的信息由字节形式处理为十进制形式;
S3、恶意代码可视化处理:对步骤S1生成的二进制文件和步骤S2中利用CBOW模型处理过的Bytes文件和Asm文件运用可视化方法,将三种文件数据分别对应图像三种通道生成RGB型的恶意代码图像;
S4、基于Resnet残差网络模型的训练:利用步骤S3中得到的恶意代码图像以及对应的恶意软件数据集中的标签值组成新的数据集,输入到Resnet残差网络模型进行训练,得到成熟的恶意代码识别Resnet模型;
S5、识别模型分类系统构建:基于步骤S4训练得出的成熟恶意代码识别Resnet模型,搭建一个完整的恶意代码识别模型分类系统,完成输入待定恶意代码的正确分类识别;其中,
所述步骤S3中二进制文件运用可视化方法生成第一通道的原理为:先将8位二进制数据转成16进制字符数据,接着将16进制字符数据转成10进制整数形式,之后根据指定宽度形成向量,取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第一通道;
Bytes文件运用可视化方法生成第二通道的原理为:先去除恶意代码16进制文件中的模糊数据,接着用CBOW模型将去除模糊数据后更具有象征恶意代码的16进制文件中的字符向量化,之后取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第二通道;
Asm文件运用可视化方法生成第三通道的原理为:先提取出Asm文件中的所有汇编指令,接着采用第二通道中的CBOW模型将汇编指令向量化,之后取出文件前64KB,若文件小于64KB则在不足之处填充0,以此得出256*256的二维矩阵形成第三通道;
所述第一通、第二通道和道第三通道中的数据通过Python中Image库中的fromarray函数生成256*256*3的RGB型恶意代码图像。
2.根据权利要求1所述的基于CBOW的恶意代码三通道可视化识别方法,其特征在于,所述步骤S1恶意软件信息提取具体包括:首先判断恶意软件是否为有效PE文件,对为有效PE文件的恶意软件通过IDAPro进行反汇编分析;分析完成后自动执行IDA自带的IDAPython脚本,一方面直接生成二进制文件,另一方面通过直接调用IDA自带的staticmain脚本函数生成反汇编的.Asm文件,再一方面通过调用Segment获取PE文件的所有段生成器,验证手段为Header后调整首地址到第二段去,以达到去掉头部的效果,循环到最后一段得到尾地址,调用savefile函数将首尾地址为参数得到十六进制.Bytes文件。
3.根据权利要求1所述的基于CBOW的恶意代码三通道可视化识别方法,其特征在于,所述步骤S2中对Bytes文件的过滤处理具体包括:首先利用split函数过滤掉每一行磁盘地址;其次将过滤后的每一行字符以两个字节为单元进行判断,如果有连续并重复5个及以上的CC、FF或00字符,则进行舍弃;最后将处理后的字符单元写入数组形成Bytes字符单元数组以便CBOW模型调用;
所述步骤S2中对Asm文件的过滤处理具体包括:首先以bit的形式读取文件,定位到‘SUBROUTINE’和‘;Section2.’所在文件位置;其次利用循环取出两个位置之间的字符;之后利用split函数截取第6个字符之后的字符串同时采用match函数分别获取’(\s*)’、’loc_’、’sub_’以及’\\t*’所匹配到的字符,也就是汇编指令;最后将获取的汇编指令构成新的字符数组。
4.根据权利要求3所述的基于CBOW的恶意代码三通道可视化识别方法,其特征在于,所述步骤S2中将Bytes文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的Bytes字符单元数组作为CBOW模型输入;然后以[00,01,…,FF]构成的256个字符组成字典放入Word2Vec进行训练,最后将模型返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间;
所述步骤S2中将Asm文件中的信息由字节形式处理为十进制形式具体包括:首先使用前述的汇编指令字符数组作为CBOW模型输入,其次以[AAA,ADD,AAM,…,XOR]常用的234个汇编指令集构成字典放入Word2Vec进行训练,之后将返回值进行矩阵数据正则化(((数据-矩阵最小值)/(矩阵最大值-矩阵最小值))*255)使得返回值在0-255之间,最后将返回值构成234×256的矩阵填充22×256个0,以构成256×256的矩阵。
5.根据权利要求1所述的基于CBOW的恶意代码三通道可视化识别方法,其特征在于,所述步骤S4中Resnet残差网络模型选用Resnet34网络模型结构。
6.根据权利要求1所述的基于CBOW的恶意代码三通道可视化识别方法,其特征在于,所述步骤S5中恶意代码识别模型分类系统具体是将恶意软件信息提取、恶意代码可视化处理以及训练成熟的恶意代码识别Resnet模型进行集成,并对恶意代码识别Resnet模型识别的恶意代码家族号和各家族特征点进行说明并输出。
CN202011269170.1A 2020-11-13 2020-11-13 一种基于cbow的恶意代码三通道可视化识别方法 Active CN112380535B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011269170.1A CN112380535B (zh) 2020-11-13 2020-11-13 一种基于cbow的恶意代码三通道可视化识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011269170.1A CN112380535B (zh) 2020-11-13 2020-11-13 一种基于cbow的恶意代码三通道可视化识别方法

Publications (2)

Publication Number Publication Date
CN112380535A CN112380535A (zh) 2021-02-19
CN112380535B true CN112380535B (zh) 2022-04-19

Family

ID=74582256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011269170.1A Active CN112380535B (zh) 2020-11-13 2020-11-13 一种基于cbow的恶意代码三通道可视化识别方法

Country Status (1)

Country Link
CN (1) CN112380535B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282926B (zh) * 2021-05-25 2021-11-09 贵州师范大学 一种基于三通道图像的恶意软件分类方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123538A (zh) * 2014-07-04 2014-10-29 西安理工大学 一种基于视觉词袋的网络不良图像检测方法
CN108399335A (zh) * 2018-01-30 2018-08-14 东华大学 一种基于局部熵的恶意代码可视化分析方法
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及系统
CN108985361A (zh) * 2018-07-02 2018-12-11 北京金睛云华科技有限公司 一种基于深度学习的恶意流量检测实现方法和装置
CN110427756A (zh) * 2019-06-20 2019-11-08 中国人民解放军战略支援部队信息工程大学 基于胶囊网络的安卓恶意软件检测方法及装置
CN110826060A (zh) * 2019-09-19 2020-02-21 中国科学院信息工程研究所 物联网恶意软件的可视化分类方法、装置与电子设备
CN111143842A (zh) * 2019-12-12 2020-05-12 广州大学 一种恶意代码检测方法及系统
CN111475820A (zh) * 2020-04-28 2020-07-31 张皓天 基于可执行程序的二进制漏洞检测方法、系统及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3058010A1 (en) * 2017-04-03 2018-10-11 Royal Bank Of Canada Systems and methods for malicious code detection
CA3000166A1 (en) * 2017-04-03 2018-10-03 Royal Bank Of Canada Systems and methods for cyberbot network detection
CN107180191A (zh) * 2017-05-03 2017-09-19 北京理工大学 一种基于半监督学习的恶意代码分析方法和系统
CN110704842A (zh) * 2019-09-27 2020-01-17 山东理工大学 一种恶意代码家族分类检测方法
CN110971603B (zh) * 2019-12-04 2022-03-08 四川虹微技术有限公司 一种基于深度学习的异常流量检测方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123538A (zh) * 2014-07-04 2014-10-29 西安理工大学 一种基于视觉词袋的网络不良图像检测方法
CN108399335A (zh) * 2018-01-30 2018-08-14 东华大学 一种基于局部熵的恶意代码可视化分析方法
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及系统
CN108985361A (zh) * 2018-07-02 2018-12-11 北京金睛云华科技有限公司 一种基于深度学习的恶意流量检测实现方法和装置
CN110427756A (zh) * 2019-06-20 2019-11-08 中国人民解放军战略支援部队信息工程大学 基于胶囊网络的安卓恶意软件检测方法及装置
CN110826060A (zh) * 2019-09-19 2020-02-21 中国科学院信息工程研究所 物联网恶意软件的可视化分类方法、装置与电子设备
CN111143842A (zh) * 2019-12-12 2020-05-12 广州大学 一种恶意代码检测方法及系统
CN111475820A (zh) * 2020-04-28 2020-07-31 张皓天 基于可执行程序的二进制漏洞检测方法、系统及存储介质

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
A Multi-Channel Visualization Method for Malware Classification Based on Deep Learning;Yanchen Qiao;《2019 18th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/13th IEEE International Conference On Big Data Science And Engineering》;20190801;全文 *
AN XCEPTION CONVOLUTIONAL NEURAL NETWORK FOR MALWARE CLASSIFICATION WITH TRANSFER LEARNING;Wai Weng Lo;《2019 10th IFIP International Conference on New Technologies,Mobility and security(NTMS)》;20190715;全文 *
Malware Analysis Using Visualized Image Matrices;KyoungSoo Han;《http://dx.doi.org/10.1155/2014/132713》;20140716;第1-16页 *
Malware classification algorithm using advanced Word2vec-based Bi-LSTM for ground control stations;Yunsick Sung;《Computer Communications》;20200204;全文 *
Malware Identification Using Visualization Images and Deep Learning;Sang Ni;《Computers & Security (2018), doi: 10.1016/j.cose.2018.04.005》;20180407;全文 *
Siamese CBOW: Optimizing Word Embeddings for Sentence Representations;Tom Kenter;《computer science》;20160615;全文 *
word2vec Gensim NLTK 关系、用法;唐国梁T…;《https://zhuanlan.zhihu.com/p/97769185》;20191217;全文 *
word2vec中的CBOW模型代码实现;caesar-LW;《https://blog.csdn.net/weixin_44137371/article/details/109205064》;20201021;全文 *
基于代码图像增强的恶意代码检测方法;孙博文;《清华大学学报(自然科学版)》;20191218;第386-392页 *
基于行为分析的恶意代码分类与可视化;王博;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20150615;全文 *

Also Published As

Publication number Publication date
CN112380535A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
CN108667816B (zh) 一种网络异常的检测定位方法及系统
CN110765458B (zh) 一种基于深度学习的恶意软件图像格式检测方法及其装置
Ito et al. Web application firewall using character-level convolutional neural network
CN109005145B (zh) 一种基于自动特征抽取的恶意url检测系统及其方法
CN109033833B (zh) 一种基于多特征与特征选择的恶意代码分类方法
CN109559363B (zh) 图像的风格化处理方法、装置、介质和电子设备
CN111651762A (zh) 一种基于卷积神经网络的pe恶意软件检测方法
Qiao et al. A multi-channel visualization method for malware classification based on deep learning
CN110175248B (zh) 一种基于深度学习和哈希编码的人脸图像检索方法和装置
CN116361801B (zh) 基于应用程序接口语义信息的恶意软件检测方法及系统
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN114297079B (zh) 基于时间卷积网络的xss模糊测试用例生成方法
CN111506709A (zh) 实体链接方法、装置、电子设备和存储介质
CN112380535B (zh) 一种基于cbow的恶意代码三通道可视化识别方法
CN112231645A (zh) 一种基于主动学习的恶意pdf文档检测方法
CN112104602A (zh) 一种基于cnn迁移学习的网络入侵检测方法
CN113783852B (zh) 一种基于神经网络的智能合约庞氏骗局检测算法
CN111241550B (zh) 基于二进制映射和深度学习的漏洞检测方法
Lu et al. A GAN-based method for generating SQL injection attack samples
CN115935360A (zh) 一种基于信息增益和共现矩阵的恶意代码可视化方法
CN115759081A (zh) 一种基于短语相似度的攻击模式抽取方法
CN112733144B (zh) 一种基于深度学习技术的恶意程序智能检测方法
CN111079143B (zh) 一种基于多维特征图的木马检测方法
CN115098857A (zh) 一种可视化恶意软件的分类方法及装置
CN114169540A (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
TR01 Transfer of patent right

Effective date of registration: 20230524

Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Yami Technology (Guangzhou) Co.,Ltd.

Address before: No. 20, East Road, University City, Chongqing, Shapingba District, Chongqing

Patentee before: Chongqing University of Science & Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230704

Address after: No. 119 West Fourth Ring North Road, Haidian District, Beijing, 100039

Patentee after: HAOHAN DATA TECHNOLOGY CO.,LTD.

Address before: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: Yami Technology (Guangzhou) Co.,Ltd.

TR01 Transfer of patent right