CN112733144B - 一种基于深度学习技术的恶意程序智能检测方法 - Google Patents

一种基于深度学习技术的恶意程序智能检测方法 Download PDF

Info

Publication number
CN112733144B
CN112733144B CN202110061484.0A CN202110061484A CN112733144B CN 112733144 B CN112733144 B CN 112733144B CN 202110061484 A CN202110061484 A CN 202110061484A CN 112733144 B CN112733144 B CN 112733144B
Authority
CN
China
Prior art keywords
features
malicious
feature
operation code
file
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
CN202110061484.0A
Other languages
English (en)
Other versions
CN112733144A (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.)
Beijing Zhongdun Security Technology Development Co ltd
First Research Institute of Ministry of Public Security
Original Assignee
Beijing Zhongdun Security Technology Development Co ltd
First Research Institute of Ministry of Public Security
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 Beijing Zhongdun Security Technology Development Co ltd, First Research Institute of Ministry of Public Security filed Critical Beijing Zhongdun Security Technology Development Co ltd
Priority to CN202110061484.0A priority Critical patent/CN112733144B/zh
Publication of CN112733144A publication Critical patent/CN112733144A/zh
Application granted granted Critical
Publication of CN112733144B publication Critical patent/CN112733144B/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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/635Overlay text, e.g. embedded captions in a TV program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种基于深度学习技术的恶意程序智能检测方法,将二进制可执行文件得到的具有全局信息的纹理特征和反汇编得到的汇编文件的具有行为信息特征和局部特征的汇编文件特征结合作为最终特征训练后续的分类器,能够进一步提高恶意软件检测的准确率。

Description

一种基于深度学习技术的恶意程序智能检测方法
技术领域
本发明涉及数据安全技术领域,具体涉及一种基于深度学习技术的恶意程序智能检测方法。
背景技术
近年来,随着互联网新应用、技术的成熟,人民群众日常工作生活对互联网的依赖程度越来高。由中国互联网络信息心(CNNIC)发布的第39次《中国互联网络发展状况统计报告》的2016年的数据可以得出:截至2016年12月,中国网民规模已经相当于欧洲人口总量,达到了7.31亿,互联网普及率达到53.2%,超过亚洲平均水平,超过亚洲平均水平3.1个百分点。域名总数为4228万个,而且增长速度非常快,年增长36.3%。但是,与此同时,计算机系统和互联网的安全问题也是层出不穷,据统计,2016年遭遇过网络安全事件的用户占比达到整体网民70.5%,在这些攻击当中,网上诈骗和设备中病毒或木马这两类情况最为普遍,各占了39.1%和36.2%的比例,这些信息安全问题给个人生活带来了许多不便,也给公司,乃至国家造成了巨大的经济损失。
恶意软件自动生成工具的广泛使用使得大量新的恶意软件变体迅速出现。《2018年中国互联网安全报告》显示,360互联网安全中心累计截获PC端新增恶意程序样本2.7亿个,平均每天截获PC端新增恶意程序样本75.2万个。大量新的恶意软件变种对恶意软件分析师来说是一个巨大的挑战。尽管网络安全机制有了显著的改进,并且不断进化,但恶意软件仍然是网络空间中最具威胁的攻击手段之一。有效的恶意软件分类方法有助于提升恶意软件检测效率、提升发现新型恶意软件家族的能力。因而,恶意软件的检测已经成为全社会关注的网络安全焦点。
恶意软件的发展史可以追溯到1981年,在APPLE-II的计算机游戏中发现了Elkcloner,这是世界上已知的第一个计算机病毒,病毒是恶意软件早期的主要表现形式。按照不同的恶意软件分析工具技术模块,恶意软件检测方法一般分为静态检测方法和动态检测方法。
在静态检测方法领域,现在绝大多数安全公司仍然在很大程度上依赖于特征码扫描检测法,该方法是使用静态方法提取恶意软件特征以此对恶意软件进行检测和分类。这种方法对已知恶意软件的检测准确率比较高,但是对混淆技术或者新出现的恶意软件效果不是很理想。用静态方法检测的恶意软件特征主要分为操作码、n-gram的字节序列以及PE头文件等。恶意软件的编写者为了隐藏他们的真实意图会使用恶意软件加壳、代码混淆等技术来增加检测难度,但是现在也有相应的查壳脱壳技术来应对。J.ZicoKolter等人使用不同的分类技术并将字节码作为恶意软体的特征来检测和分类未知样本,通过从训练样本集中提取出N-gram的字节码作为恶意软件的特征,然后选出其中最为相关的一些字节码,从而达到降低特征维度的目的。Kong等人采用结构化信息来分类恶意软件实例,他们提出一种对恶意软件自动化分类和检测的方法,从恶意软件中将由函数调用的序列提取出来并构成图像,然后通过恶意软件之间的距离来判断未知样本是否是恶意软件。Cesare等采用控制流图来表示两个恶意软件样本之间的相似性以此来检测恶意软件,通过由字符串组成的可以转换为对应向量的控制流图的集合体现恶意软件特征,这种方法是通过计算恶意软件样本之间的距离来度量它们之间的差异性,或者说恶意软件之间的相似性,从而达到对恶意软件进行检测的目的,但是该方法通过恶意软件涵盖的控制流图集合来对恶意软件特征进行描述,计算复杂度比较高。在国内,黄全伟等人对恶意程序进行静态反汇编,然后对反汇编后的恶意文件中所有系统调用序列进行遍历,然后通过使用n-gram模型提取和选择特征,最后采用支持向量机和决策树等方法检测恶意软件。
此外,目前很多研究者利用恶意软件静态分析中一个比较重要的特征也就是操作码作为其特征来对恶意软件进行检测。Santos等人提出了一种基于操作码的检测未知病毒的方法,把长度为N的操作码作为恶意软体的特征并使用几种不同的分类器来检测和分类恶意软体,而特征模型是基于操作码出现的次数和每一个操作码之间的相关性,并评估每一个操作码序列出现的频率来建立的。Zolotukhin等人也提出在训练集(包括良性软体和恶意软体)中提取出基于操作码的特征,并且运用支持向量机去检测和分类未知实例,但是从良性软体中提取出来的特征往往恶意实例中也存在,这就说明该特征不够具有代表性,不能很好的展现良性软体和恶意实例之间的区别,使得检测的准确率还有待提高。
在动态检测方法领域,通过恶意软件的行为进行自动化分析有两个关键问题,恶意软件行为分析技术和行为特征描述。Anderson等人提出了一种恶意软件检测算法,该算法是由指令构成图,这个指令轨迹是在虚拟环境中由可执行的目标程序执行生成的,这个构造图表述成一个顶点即为指令的马尔科夫链,通过所表述的马尔科夫链来建立相似矩阵,然后通过指令轨迹中的数据来计算每个顶点之间转换的可能性,最后通过支持向量机来执行分类,这个方法可以很好地优化检测准确率,但是这个方法复杂度比较高,将其应用到实际情况中不太现实。Rieck等人提出了一个通过使用机器学习算法来自动化分析恶意软件行为的框架,该框架可以自动化地识别由于具有相似行为而聚类到一起的恶意软件,并且可以识别未知恶意软件并将其分类到已知的恶意软件家族中。Lardizabal等研究了一种利用层次聚类来检测恶意软件的方法,这个方法利用一组在实际环境中生成的事件序列,但层次聚类做不到很好地对抗噪点,并且这个方法忽略了在真实的环境中收集事件序列的风险。
自动化分析系统会让恶意样本文件运行在沙箱,也就是一个虚拟环境中,然后通过事先编写的脚本自动调用并运行恶意样本文件,在设定的运行时间段,监控恶意程序的行为并生成行为分析报告。还有学者提出一些利用K近邻、决策树、贝叶斯、支持向量机等机器学习方法以及人工神经网络等来提高恶意软件分类和检测的准确率。其中,Santos等人提出一种混合恶意软件检测方法,这个叫做OPEM的混合方法首先利用动态检测方法和静态检测方法来提取恶意软件特征集,然后采用K近邻、决策树、贝叶斯、支持向量机以及随机森林等机器学习方法来检测恶意软件和对病毒进行分类,该方法可以提高一定的恶意软件检测准确度。
陈志峰等人提出一种基于数据特征的内核检测方法,该方法是通过对内核数据对象在内核运行过程里面访问过程的分析,建立了内核数据对象的访问模型,之后,在该模型基础上研究了构建数据特征的过程并且通过静态分析和动态监控结合的方式分析内核数据对象,该方法可以实现对内核恶意软件的检测。白金荣等人提出一种基于敏感NativeAPI的恶意软件检测方法,该方法是以敏感NativeAPI调用频率为基础的,通过Xen进行二次开发,提供了对恶意软件相对透明的检测分析环境,该方法可以实现有效的对多种未知恶意软件的检测。
目前的反病毒和恶意软件检测产品,一般采用的是基于特征的方法,它们借助人工设定的规则集来判断某软件是否属于某种已知的恶意软件类型集合。通常来说,这些规则是具有针对性的,即使新出现的恶意代码使用了跟原来的恶意代码相同的功能,检测软件通常也检测不出来。另一方面来说,随着恶意程序数量呈现大幅度增长,建立在专家人工分析的基础上的恶意程序行为分析系统需要耗费大量时间,已经完全不能满足实际分析的需求。因而,恶意软件检测技术将会更加向智能化和分布式的方向发展,主要是结合数据挖掘技术、神经网络和遗传算法等对恶意软件进行检测,这是当前恶意软件检测方法研究的重点。
发明内容
针对现有技术的不足,本发明旨在提供一种基于深度学习技术的恶意程序智能检测方法。
为了实现上述目的,本发明采用如下技术方案:
一种基于深度学习技术的恶意程序智能检测方法,具体过程如下:
S1、对于恶意程序的二进制可执行文件,每8位数据作为一个像素点构成灰度图片,利用GIST算法对所构成的灰度图片进行特征提取;
S2、将恶意程序的二进制可执行文件进行反汇编生成汇编文件,并进行如下特征提取:
1)利用汇编文件提取出操作码序列,然后利用n-gram算法对所提取的操作码序列进行特征提取,获得操作码特征;
2)直接将汇编文件转换成16进制编码,然后将每两位组成一个[0,256)的数值作为生成图片的一个像素点,形成图像特征;
最终将1)中提取得到的操作码特征和2)中得到的图像特征进行自然拼接,作为最终的操作码特征;
S3、将步骤S1提取得到的特征和步骤S2中得到的最终的操作码特征进行连接并降维得到最终特征,然后将最终特征输入训练分类器,训练分类器采用Adaboost算法;训练好的分类模型用于判断待检测程序的二进制可执行文件是否为恶意程序。
进一步地,步骤S3中,J48作为基分类器。
进一步地,步骤S2的1)中,先从汇编文件中提取出操作码序列,然后使用n-gram对连续n个操作码组成的集合统计出现次数,选取出现次数大于N的连续n个操作码组成的集合作为恶意特征集合MSet,恶意特征集合的长度为k,恶意特征集合为MSet={m1,m2,…,mk},随后以此向量化每一个恶意程序样本;向量化的过程为首先为恶意程序样本构造一个k维的特征向量app_feature,对于该样本的n-gram集合,如果其中包含恶意特征集合中的元素mi,那么将向量中下标为i的元素置1,否则置0,从而得到一个维数为k的特征向量,即为操作码特征。
进一步地,步骤S3中,采用best subset selection进行降维得到最终特征。
本发明的有益效果在于:本发明一方面对二进制可执行文件直接转化的灰度图像提取特征,另一方面将可执行文件进行反汇编得到汇编文件,对汇编文件采用了n-gram特征提取,又将汇编文件转换成16进制图像,结合两个方面的特征作为最后特征。两种特征的结合学到了更有区分性的特征,使得下一步训练神经网络识别工作中取得较好结果,能够提取更多的图像特征,避免复杂的特征工程,从而使得最终的恶意程序检测达到了更加稳定的性能和更加精准的分类效果。
附图说明
图1为本发明实施例1的方法流程示意图;
图2为本发明实施例2的方法流程示意图;
图3为本发明实施例2中将二进制可执行文件转化为灰度图片的流程示意图;
图4为Adaboost算法结构示意图;
图5为简单的决策树过程示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
实施例1
本实施例提供一种基于深度学习技术的恶意程序智能检测方法,如图1所示,具体过程如下:
S1、对于恶意程序的二进制可执行文件,每8位数据作为一个像素点构成灰度图片,利用GIST算法对所构成的灰度图片进行特征提取;
S2、将恶意程序的二进制可执行文件进行反汇编生成汇编文件,并进行如下特征提取:
1)利用汇编文件提取出操作码序列,然后利用n-gram算法对所提取的操作码序列进行特征提取,获得操作码特征;
2)直接将汇编文件转换成16进制编码,然后将每两位组成一个[0,256)的数值作为生成图片的一个像素点,形成图像特征;
最终将1)中提取得到的操作码特征和2)中得到的图像特征进行自然拼接,作为最终的操作码特征。
S3、将步骤S1提取得到的特征和步骤S2中得到的最终的操作码特征进行连接并降维得到最终特征,然后将最终特征输入训练分类器,训练分类器采用Adaboost算法,J48(改进ID3算法得到)作为基分类器;训练好的分类模型用于判断待检测程序的二进制可执行文件是否为恶意程序。
具体地,步骤S2的1)中,先从汇编文件中提取出操作码序列,然后使用n-gram(比如3-gram)对连续n个操作码组成的集合统计出现次数,选取出现次数大于N(一个经验值比如500)的连续n个操作码组成的集合作为恶意特征集合MSet,恶意特征集合的长度为k,恶意特征集合为MSet={m1,m2,…,mk},随后以此向量化每一个恶意程序样本。向量化的过程为首先为恶意程序样本构造一个k维的特征向量app_feature,对于该样本的n-gram集合,如果其中包含恶意特征集合中的元素mi,那么将向量中下标为i的元素置1,否则置0,从而得到一个维数为k的特征向量,即为操作码特征。
具体地,步骤S3中,采用best subset selection进行降维得到最终特征。
需要说明的是,对二进制可执行文件转换得到的图片,采用GIST算法进行特征提取,只能较好学习到二进制可执行文件的全局特征,缺乏局部特征的捕捉,并且直接利用二进制可执行文件不能很好地捕捉程序的行为特征。
因此,本实施例方法为了更好地捕捉恶意程序的特征,进一步从二进制可执行文件特征和二进制可执行文件反汇编得到汇编文件的特征两个角度进行特征提取。对于二进制可执行文件的特征,采用GIST算法直接得到二进制的特征。对于二进制可执行文件进行反汇编得到汇编文件,一方面将提取出汇编文件的操作码序列,利用n-gram进行特征提取,可以较好的去掉一些作用不大的冗余特征,并且可以较好的获得操作码的局部信息;另一方面直接将汇编文件转化成灰度图片,更好的捕捉汇编文件的全局信息。将汇编文件提取的两个特征进行自然连接作为反编译得到的汇编文件的特征。
本实施例方法将二进制可执行文件得到的具有全局信息的纹理特征和反汇编得到的汇编文件的具有行为信息特征和局部特征的汇编文件特征结合作为最终特征训练后续的分类器,能够进一步提高恶意软件检测的准确率。
实施例2
本实施例提供一种将实施例1所述方法运用于PC端恶意程序检测的执行过程,如图2所示。
将待检测程序的二进制可执行文件生成灰度图片后(如图3所示),采用GIST算法对灰度图片进行特征提取。GIST特征最初起源于1979年Friedman A的论文,后于2001年被Oliva等人指代空间包络概念和场景结构表达。图像的空间包络特征指的是描述图像的五种描述维度,分别是自然度、开放度、粗糙度、膨胀度和险峻度。GIST特征建立在Gabor滤波器的基础上,主要是通过多尺度、多方向的Gabor滤波器对图像变换,再对各区域的计算结果求平均,来提取图像在空间尺度、空间结构和方向选择的纹理信息以及图像的基本轮廓信息,从而能够较好的表达图像。Gabor滤波器在边缘检测、特征提取等图像处理领域有着广泛用途。最早的Gabor变换能够追溯到20世纪40年代,起初一维Gabor函数的重要应用主要在信号处理领域,然后在1985年Daugman将其扩展为二维函数形式,使用二维Gabor函数就可生成Gabor滤波器。由于Gabor滤波器具有自相似性,故给定滤波器的母小波,然后通过数学变换即可生成不同尺度不同方向的Gabor滤波器,即使用者可根据具体情况自定义尺度和方向来选择合适的Gabor滤波器组。Gabor滤波器的母小波表达式如下:
其中,x,y分别是图像像素的位置信息;σx,σy分别是x轴、y轴上的高斯公式的标准差;f0是滤波器的中心频率;参数φ是该谐波因子的相位偏移。
Gabor滤波器可通过对母小波进行数学变换,即旋转变化和尺度变换,扩展成多尺度、多方向的Gabor滤波器组,生成一种多通道的滤波方案,计算公式如下:
gmn(x,y)=a-mg(x′,y′),a>1
x′=a-m(xcosθ+ycosθ)
y′=a-m(-xsinθ+ycosθ)
其中,a-m是母小波膨胀的尺度因子;θ是滤波器的旋转角度,即滤波方向;m是滤波器的尺度数目:n是滤波器的方向数目。
然后对每个小区域子块从6个方位和4个尺度采用小波滤波来提取图像的纹理特征信息。每幅图片的“Gist″信息为对各个小区域模块中滤波后的平均输出。Gabor在不同方向、不同尺度的卷积操作得到不同维度的Feature Map,Feature Map即是图像的GIST特征。
因为滤波器能够准确的捕获图像的边缘特征,故灰度图像的GIST信息准确性和鲁棒性较强。随后分别对Feature Map采用4*4的规则网格,计算网格区域内的平均值,然后就得到了图像的384维GIST特征,然后采用PCA算法降维至80维。
对于待检测程序的二进制可执行文件反汇编得到的汇编文件后,对于操作码序列的特征提取采用了n-gram算法。N-Gram模型是一种常用的概率语言模型,N-Gram模型是基于第n个词的出现与前n-1个词相关,而与其他任何词不相关的假设。因此,整个句子的出现概率等于各个词出现的概率乘积。各个词的概率可通过在语料中统计计算获得。
N-Gram模型公式如下所示:
P(T)=P(w1)*P(w2)*P(w3)*...*P(wn)
=P(w1)*P(w2|w1)*P(w3|w1w2)*...*P(wn|w1w2...wn-1)
其中,T表示句子,W2,W2,W3,...,Wn是组成句子的词序列。
由于P(wn|ww...w-1)难以计算,因此隐马尔科夫假设下一个词的出现仅仅依赖于前一个词或前几个词的出现。
一般常用的N-Gram模型是Bi-Gram和Tri-Gram,其公式如下所示。
Bi-Gram:P(T)=P(w1|begin)*P(w2|w1)*P(w3|w2)*...*P(wn|wn-1)
Tri-Gram:P(T)=P(w1|begin1,begin2)*P(w2|w1,begin1)*P(w3|w2w1)*...*P(wn|wn-1wn-2)
由此,可以求得一段文本(句子)T的概率。
以Bi-Gram为例,首先,在句子的首尾增加两个特殊标记<s>,</s>,然后通过链式法则进行计算,其计算公式如下所示。
这里,忽略P(<s>),其结果始终等于1。
1995年,M.Damashek等人将N-gram应用于文本相似度检测中,并取得了良好的效果。
训练分类器的方法有很多,其中集成学习中的Adaboost在分类正确率中脱颖而出。在实际应用中,或者说在打比赛时,成绩较好的队伍几乎都用了集成学习(ensemblelearning)的方法。故而该系统采用集成学习中的Adaboost训练分类器。集成学习的思想,简单来讲,就是“三个臭皮匠顶个诸葛亮”。集成学习通过结合多个学习器(例如同种算法但是参数不同,或者不同算法),一般会获得比任意单个学习器都要好的性能,尤其是在这些学习器都是″弱学习器″的时候提升效果会很明显。
弱学习器指的是性能不太好的学习器,比如一个准确率略微超过50%的二分类器。
考虑一个二分类问题y∈{-1,+1},真实函数f以及奇数M个犯错概率相互独立且均为e的个体学习器(或者称基学习器)hi。我们用简单的投票进行集成学习,即分类结果取半数以上的基学习器的结果:
由Hoeffding不等式知,集成学习后的犯错(即过半数基学习器犯错)概率满足
上述式子指出,当犯错概率独立的基学习器个数M很大时,集成后的犯错概率接近0,这也很符合直观想法:大多数人同时犯错的概率是比较低的。
就如上面所述,以上建立在基学习器犯错相互独立的情况下,但实际中这些学习器不可能相互独立,而如何让基学习器变得“相对独立一些”,也即增加这些基学习器的多样性,正是集成学习需要考虑的主要问题。
Boosting指的是一类集成方法,其主要思想就是将弱的基学习器提升(boost)为强学习器。具体步骤为:1、先用每个样本权重相等的训练集训练一个初始的基学习器;2、根据上轮得到的学习器对训练集的预测表现情况调整训练集中的样本权重(例如提高被错分类的样本的权重使之在下轮训练中得到更多的关注),然后据此训练一个新的基学习器;3、重复2这个过程直到得到M个基学习器,最终的集成结果是M个基学习器的组合。
由此看出,Boosting算法是一个串行的过程。Boosting算法簇中最著名的就是AdaBoost,AdaBoost(Adaptive Boosting,自适应增强)算法采取的方法是:提高上一轮被错误分类的样本的权值,降低被正确分类的样本的权值;线性加权求和。误差率小的基学习器拥有较大的权值,误差率大的基学习器拥有较小的权值。Adaboost算法结构如图4所示。
考虑如下形式的二分类(标准AdaBoost算法只适用于二分类任务)训练数据集:
{(x1,y1),(x2,y2),...,(xN,yN)}其中xi是一个含有d个元素的列向量,即yi是标量y∈{+1,-1}。
Adaboost算法具体步骤如下:
1、初始化样本的权重
2、对m=1,2,...M,重复以下操作得到M个基学习器:
(1)按照样本权重分布Dm训练数据
得到第m个基学习器Gm(x):Gm(x):X→{-1,+1}:
(2)计算Gm(x)在加权训练数据集上的分类误差率:
I(·)是指示函数,考虑更加周全的AdaBoost算法在这一步还应该判断是否满足基本条件(例如生成的基学习器是否比随机猜测好),如果不满足,则当前基学习器被抛弃,学习过程提前终止。
(3)计算Gm(x)的系数(即最终集成使用的的基学习器的权重):
新训练样本的权重为:
Zm是规范化因子,目的是为了使Dm+1的所有元素和为1。
3、构建最终的分类器线性组合
最终分类器为:
由式可知,当基学习器Gm(x)的误差率em≤0.5时,αm≥0,并且αm随着em的减小而增大,即分类误差率越小的基学习器在最终集成时占比也越大。即AdaBoost能够适应各个弱分类器的训练误差率,这也是它的名称中″适应性(Adaptive)″的由来。
由式可知,被基学习器Gm(x)误分类的样本权值得以扩大,而被正确分类的样本的权值被得以缩小。
中所有的αm的和并不为1(因为没有做一个softmax操作),f(x)的符号决定了所预测的类,其绝对值代表了分类的确信度。
Adaboost作为强分类器,性能的优劣与其基分类器的选择有着直接的关系,传统的Adaboost采用的是决策树作为基分类器,决策树分类法根据属性的重要程度建树,产生的分类规则易于理解,准确率较高,有较快的分类速度和较高的交叉验证率。简单的决策树过程如图5所示。
决策树是通过一个自顶向下、分而治之的过程来对一个分类问题或规则进行学习归纳的,其本质是贪心算法。从根节点开始,对每个非叶节点,找出其对应样本集中的一个测试属性对训练集进行测试,根据测试结果选出在该节点上的决策属性(也称为分裂属性),并将训练集划分成若干个子训练集,每个子训练集构成一个新非叶节点,对其再重复上述划分过程,这样不断循环,直至达到特定的终止条件而形成叶节点。在决策树生成的过程中,测试属性的选择和如何划分样本集是构建决策树的关键环节,决策属性选取标准的不同是决策树算法之间的根本差异。ID3作为决策树算法中较为出名的算法,但把信息增益(信息熵)作为选择测试属性的标准,即树结点的选择策略,在计算基于属性的信息熵时,公式比较复杂、计算量较大,相应的复杂度也高,当数据量很大的时候很耗费硬件资源,计算花费的时间较长。由于ID3算法在实际应用中存在上述这些问题,因此采用了J48算法,严格上说J48只能是ID3的一个改进算法。J48算法继承了ID3算法的优点,并在以下4个方面对ID3算法进行了改进:(1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足。(2)在树构造过程中进行剪枝。(3)能够完成对连续属性的离散化处理。(4)能够对不完整数据进行处理。
J48算法有如下优点:产生的分类规则易于理解,准确率较高。因此本实施例采用J48作为Adaboost的基分类器,利用Adaboost算法训练最终的分类器。
当一个新的二进制可执行文件在PC端下载后,可以利用上述过程训练好的分类模型进行判断该可执行文件是否为恶意程序,以保证用户的安全。
实施例3
本实施例提供一种将实施例1所述方法运用于手机端恶意程序检测的执行过程。
本实施例中对手机端的恶意程序检测,采用了客户端/服务器的实现方式,即由手机客户端和服务器端共同完成恶意程序的检测,既采用了手机端的MD5检测,又采用了服务器端的检测。双重的检测虽然增加了检测的速度以及内存的占用,但是目前许多研究表明,恶意程序的检测仍然需要改进,安卓的碎片问题和需要root权限,阻碍了这些方法的广泛使用。现有的杀毒程序依赖于需要实时更新的签名数据库,这无法检测出零日恶意程序。因此,手机客户端和服务器端的双重检测能够更好的保证用户远离恶意软件的骚扰以及恶意软件造成的损失。
本实施例中,手机端的恶意程序检测功能包括apk文件检测、已安装文件检测、病毒查杀等;服务器段则执行实施例1所述的恶意程序智能检测方法。
手机客户端的MD5验证是通过对接收的传输数据执行散列运算来检查数据的正确性。计算出的散列值拿来和随数据传输过来的散列值进行比较。如果两个值相同,说明传输的数据完整无误、没有被窜改过(前提是散列值没有被窜改),从而可以放心使用。MD5校验可以应用在多个领域,比如说机密资料的检验,下载文件的检验,明文密码的加密等。如客户往数据中心同步一个文件,该文件使用MD5校验,那么客户在发送文件的同时会再发一个存有校验码的文件,数据中心拿到该文件后做MD5运算,得到的计算结果与客户发送的校验码相比较,如果一致则认为客户发送的文件没有出错,否则认为文件出错需要重新发送。因此,MD5检测只能大致检测程序是否被篡改,更加精确的程序的安全性检测依赖于服务器端的恶意程序检测。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。

Claims (3)

1.一种基于深度学习技术的恶意程序智能检测方法,特征在于,具体过程如下:
S1、对于恶意程序的二进制可执行文件,每8位数据作为一个像素点构成灰度图片,利用GIST算法对所构成的灰度图片进行特征提取;
S2、将恶意程序的二进制可执行文件进行反汇编生成汇编文件,并进行如下特征提取:
1)利用汇编文件提取出操作码序列,然后利用n-gram算法对所提取的操作码序列进行特征提取,获得操作码特征:
先从汇编文件中提取出操作码序列,然后使用n-gram对连续n个操作码组成的集合统计出现次数,选取出现次数大于N的连续n个操作码组成的集合作为恶意特征集合MSet,恶意特征集合的长度为k,恶意特征集合为MSet={m1,m2,…,mk},随后以此向量化每一个恶意程序样本;向量化的过程为首先为恶意程序样本构造一个k维的特征向量app_feature,对于该样本的n-gram集合,如果其中包含恶意特征集合中的元素mi,那么将向量中下标为i的元素置1,否则置0,从而得到一个维数为k的特征向量,即为操作码特征;
2)直接将汇编文件转换成16进制编码,然后将每两位组成一个[0,256)的数值作为生成图片的一个像素点,形成图像特征;
最终将1)中提取得到的操作码特征和2)中得到的图像特征进行自然拼接,作为最终的操作码特征;
S3、将步骤S1提取得到的特征和步骤S2中得到的最终的操作码特征进行连接并降维得到最终特征,然后将最终特征输入训练分类器,训练分类器采用Adaboost算法;训练好的分类模型用于判断待检测程序的二进制可执行文件是否为恶意程序。
2.根据权利要求1所述的方法,其特征在于,步骤S3中,J48作为基分类器。
3.根据权利要求1所述的方法,其特征在于,步骤S3中,采用best subset selection进行降维得到最终特征。
CN202110061484.0A 2021-01-18 2021-01-18 一种基于深度学习技术的恶意程序智能检测方法 Active CN112733144B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110061484.0A CN112733144B (zh) 2021-01-18 2021-01-18 一种基于深度学习技术的恶意程序智能检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110061484.0A CN112733144B (zh) 2021-01-18 2021-01-18 一种基于深度学习技术的恶意程序智能检测方法

Publications (2)

Publication Number Publication Date
CN112733144A CN112733144A (zh) 2021-04-30
CN112733144B true CN112733144B (zh) 2024-05-24

Family

ID=75591946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110061484.0A Active CN112733144B (zh) 2021-01-18 2021-01-18 一种基于深度学习技术的恶意程序智能检测方法

Country Status (1)

Country Link
CN (1) CN112733144B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434858B (zh) * 2021-05-25 2022-11-01 天津大学 基于反汇编代码结构和语义特征的恶意软件家族分类方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
CN107908963A (zh) * 2018-01-08 2018-04-13 北京工业大学 一种自动化检测恶意代码核心特征方法
CN110704842A (zh) * 2019-09-27 2020-01-17 山东理工大学 一种恶意代码家族分类检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
CN107908963A (zh) * 2018-01-08 2018-04-13 北京工业大学 一种自动化检测恶意代码核心特征方法
CN110704842A (zh) * 2019-09-27 2020-01-17 山东理工大学 一种恶意代码家族分类检测方法

Also Published As

Publication number Publication date
CN112733144A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
Sun et al. Deep learning and visualization for identifying malware families
CN109753801B (zh) 基于系统调用的智能终端恶意软件动态检测方法
CN109005145B (zh) 一种基于自动特征抽取的恶意url检测系统及其方法
EP3582150A1 (en) Method of knowledge transferring, information processing apparatus and storage medium
CN111259219B (zh) 恶意网页识别模型建立方法、识别方法及系统
CN111382438B (zh) 基于多尺度卷积神经网络的恶意软件检测方法
CN111259397B (zh) 一种基于马尔科夫图和深度学习的恶意软件分类方法
CN113434858B (zh) 基于反汇编代码结构和语义特征的恶意软件家族分类方法
CN113448843A (zh) 基于缺陷分析的图像识别软件测试数据增强方法及装置
CN113783852B (zh) 一种基于神经网络的智能合约庞氏骗局检测算法
CN112733144B (zh) 一种基于深度学习技术的恶意程序智能检测方法
CN115361176A (zh) 一种基于FlexUDA模型的SQL注入攻击检测方法
CN115630304A (zh) 一种文本抽取任务中的事件分割抽取方法及系统
CN111079143B (zh) 一种基于多维特征图的木马检测方法
Juvonen et al. Anomaly detection framework using rule extraction for efficient intrusion detection
CN111581640A (zh) 一种恶意软件检测方法、装置及设备、存储介质
KR20220009098A (ko) 정적분석과 스태킹 기법을 활용한 악성코드 탐지 시스템에 관한 연구
CN110909777A (zh) 一种多维特征图嵌入方法、装置、设备及介质
Jian et al. Research on Network Intrusion Detection Based on Improved Machine Learning Method
CN111860662B (zh) 一种相似性检测模型的训练方法及装置、应用方法及装置
CN111125699B (zh) 基于深度学习的恶意程序可视化检测方法
Juan Recognition Algorithm of Popular Elements of Ethnic Minority Traditional Clothing Based on PCA
CN114936615B (zh) 一种基于表征一致性校对的小样本日志信息异常检测方法
Someya et al. Graph neural network based function call graph em-bedding for malware classification
Luo et al. Sequence-based malware detection using a single-bidirectional graph embedding and multi-task learning framework

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