CN110046501B - 一种受生物基因启发的恶意代码检测方法 - Google Patents

一种受生物基因启发的恶意代码检测方法 Download PDF

Info

Publication number
CN110046501B
CN110046501B CN201910177388.5A CN201910177388A CN110046501B CN 110046501 B CN110046501 B CN 110046501B CN 201910177388 A CN201910177388 A CN 201910177388A CN 110046501 B CN110046501 B CN 110046501B
Authority
CN
China
Prior art keywords
malicious code
gene
genes
code software
software
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
CN201910177388.5A
Other languages
English (en)
Other versions
CN110046501A (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.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
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 Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN201910177388.5A priority Critical patent/CN110046501B/zh
Publication of CN110046501A publication Critical patent/CN110046501A/zh
Application granted granted Critical
Publication of CN110046501B publication Critical patent/CN110046501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • 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

Abstract

本发明涉及恶意代码检测技术领域,公开一种受生物基因启发的恶意代码检测方法,包括:定义恶意代码软件基因;基于定义的恶意代码软件基因对代码进行基因提取;通过Smith‑Waterman算法得出提取的恶意代码软件基因间的距离值;根据提取的恶意代码软件基因间的距离值对提取的恶意代码软件基因进行聚类;根据聚类结果将恶意代码软件基因映射到特征向量上,每类恶意代码软件基因对应特征向量的一维数据;根据所述特征向量,通过机器学习模型构建恶意代码检测器,通过所述恶意代码检测器对待测代码中的恶意代码进行检测。通过本发明生成的恶意代码检测器具有较高的恶意代码检测准确率。

Description

一种受生物基因启发的恶意代码检测方法
技术领域
本发明涉及恶意代码检测技术领域,特别涉及一种受生物基因启发的恶意代码检测方法。
背景技术
近年来,Mirai、WannaCry、BlackEnergy等恶意软件层出不穷,给全球带来了巨大的损失。据腾讯《2017年度互联网安全报告》显示,2017年检测到大约1.36亿个新的恶意软件样本(Tencent United Security Laboratory.https://slab.qq.com/news/authority/1708.html(2018))。每年在自动化工具的帮助下生产数以百万计的新恶意软件样本。传统方法,如签名匹配或基于规则的检测,缺乏能够检测未知的恶意软件及其变种。人工分析是精确的但却是低效率的。所以依赖机器学习算法对自动化分析工具,包括动态和静态分析工具,产生的海量数据进行学习,并构造恶意代码检测器,已经成为该领域的一种必然趋势。
基于基因分析的恶意代码检测是一种应对网络攻击威胁的新技术,主要以静态反编译工具对样本自动化分析得到的反汇编文件为数据基础,实现了一种基于基因分析的恶意代码检测器构造方法。在基于基因分析的恶意代码检测研究中,借鉴了信息生物学中成熟的研究思路和相关算法。因为生物基因的研究所面临的问题与软件分析存在许多共通之处,如它们都是以序列或图作为分析对象。生物基因分析的目标包括相似性和同源性分析、致病基因测定等,恶意代码分析的目标是样本家族归类、异常样本检测等,与之相似。恶意代码检测器就是检测软件中是否存在一个或若干个可疑的功能片段,进而对软件是否具备恶意性进行判定。
在恶意代码分析领域,也存在其他基于基因分析的研究。但Drew等人(J.Drew,T.Moore,M.Hahsler.Security&Privacy Workshops,00:81-87(2016);J.Drew,M.Hahsler,T.Moore.EURASIP Journal on Information Security.2017:2(2017))将样本文件的二进制形式直接对应成DNA分子,失去了基因与语义的关联性以及分析结果的可解释性;Kirat等人(Kirat,G.Vigna.ACM Sigsac Conference on Computer and CommunicationsSecurity.2015:769-780(2015))将样本的动态执行序列作为DNA分子,并用Smith-Waterman算法进行比对,执行序列的长度非常长,带来了较大的计算复杂度。
恶意代码检测器就是检测软件中是否存在一个或若干个可疑的功能片段,进而对软件是否具备恶意性进行判定。在恶意代码分析领域,已存在基于基因分析的研究,然而,目前存在的对基于基因启发的恶意软件分析方法大多数都有自己的限制,如失去了基因与语义的关联性以及分析结果的可解释性、计算复杂度大等。缺乏优化的检测方案而难以实施,进而难以从根本上保证对恶意代码进行有效地安全性检测。
发明内容
本发明针对恶意代码分析目前存在的对基于基因启发的恶意软件分析方法大多数都有自己的限制,从而难以保证对恶意代码进行有效地安全性检测的问题,提出了一种受生物基因启发的恶意代码检测方法。
为了实现上述目的,本发明采用以下技术方案:
一种受生物基因启发的恶意代码检测方法,包括以下步骤:
步骤1:定义恶意代码软件基因,所述恶意代码软件基因为指令序列,所述指令序列的结束指令为return、jump、switch或call中的一种;
步骤2:基于定义的恶意代码软件基因对代码进行恶意代码软件基因提取;
步骤3:通过Smith-Waterman算法得出提取的恶意代码软件基因间的距离值;
步骤4:根据提取的恶意代码软件基因间的距离值对提取的恶意代码软件基因进行聚类;
步骤5:根据聚类结果将恶意代码软件基因映射到特征向量上,每类恶意代码软件基因对应特征向量的一维数据;
步骤6:根据所述特征向量,通过机器学习模型构建恶意代码检测器,通过所述恶意代码检测器对待测代码中的恶意代码进行检测。
进一步地,所述步骤3包括:
对于提取的任意两个恶意代码软件基因A=a1,a2,...,an和B=b1,b2,...,bm,其中,a1,a2,...,an及b1,b2,...,bm分别为恶意代码软件基因A和恶意代码软件基因B的指令,n为恶意代码软件基因A的长度,m为恶意代码软件基因B的长度,通过Smith-Waterman算法得出恶意代码软件基因间的最长公共指令子序列;
通过公式(2)得出恶意代码软件基因A和恶意代码软件基因B的距离值:
dAB=max{n,m}-Hnm (2)
其中,Hnm为恶意代码软件基因A和恶意代码软件基因B的最长公共指令子序列的长度。
进一步地,所述步骤4包括:
根据提取的恶意代码软件基因间的距离值,通过公式(3)计算每个基因到其他所有基因的距离总和:
ri=d1i+d2i+…+dNi (3)
其中,ri为恶意代码软件基因i到其他所有基因的距离总和,N为提取的基因数量;
根据每个基因到其他所有基因的距离总和,通过公式(4)得出基因对的索引值:
Figure BDA0001990020080000031
其中,Mij为<恶意代码软件基因i,恶意代码软件基因j>基因对的索引值,dij为恶意代码软件基因i和恶意代码软件基因j的距离值,rj为恶意代码软件基因j到其他所有基因的距离总和,N′为目标聚类结果的簇数;
选取Mij值最小的基因对进行聚类,设定Mij的阈值,将基因逐一加入到已有聚簇中进行比较,若Mij不小于阈值,则将Mij对应的基因对加入对应聚簇,否则建立新的聚簇。
进一步地,所述特征向量的第i维的值为与第i类恶意代码软件基因最相似的恶意代码软件基因的相似度值,所述相似度值通过公式(5)计算得出:
Similairty=Hnm/max{n,m} (5)
其中,Hnm为恶意代码软件基因与第i类恶意代码软件基因的最长公共指令子序列的长度的最大值。
进一步地,所述机器学习模型包括决策树、支持向量机、朴素贝叶斯及随机森林。
与现有技术相比,本发明具有的有益效果:
(1)本发明通过恶意代码软件基因间的距离对恶意代码软件基因包含的功能的相似性进行度量,并对具有相似功能的基因进行聚类。在构造样本的特征向量时,每一类恶意代码软件基因映射到特征向量中的一维,因此,恶意代码软件基因的聚类可达到降维的效果,从而构造更高效的恶意代码检测器,保证对恶意代码进行有效地安全性检测。
(2)本发明通过设定索引值的阈值,将基因逐一加入到已有聚簇中进行比较,确保聚簇中每对基因的索引值不小于阈值,如果不符合条件,则建立新的聚簇。通过调整阈值,算法结果可以在既定聚簇数目附近结束。
(3)通过本发明定义的恶意代码软件基因,随着代码样本大小的增加,通过本发明提取的恶意代码软件基因片段的分析规模大大缩减,从而可以快速对恶意代码进行有效地安全性检测,在包含约30000样本的数据规模下,产生的基因数量为69000个,而用广泛运用的n-gram方法则产生了63万个。
附图说明
图1为本发明实施例的一种受生物基因启发的恶意代码检测方法的基本流程图。
图2为本发明实施例的另一种受生物基因启发的恶意代码检测方法的基本流程图。
图3为本发明实施例的一种受生物基因启发的恶意代码检测方法的恶意代码软件基因和n-gram片段增长曲线图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,一种受生物基因启发的恶意代码检测方法,包括以下步骤:
步骤S101:定义恶意代码软件基因,所述恶意代码软件基因为指令序列,所述指令序列的结束指令为return、jump、switch或call中的一种;
步骤S102:基于定义的恶意代码软件基因对代码进行恶意代码软件基因提取;
步骤S103:通过Smith-Waterman算法得出提取的恶意代码软件基因间的距离值;
步骤S104:根据提取的恶意代码软件基因间的距离值对提取的恶意代码软件基因进行聚类;
步骤S105:根据聚类结果将恶意代码软件基因映射到特征向量上,每类恶意代码软件基因对应特征向量的一维数据;
步骤S106:根据所述特征向量,通过机器学习模型构建恶意代码检测器,通过所述恶意代码检测器对待测代码中的恶意代码进行检测。
具体地,所述步骤S103包括:
对于提取的任意两个恶意代码软件基因A=a1,a2...,an和B=b1,b2,...,bm,其中,a1,a2,...,an及b1,b2,...,bm分别为恶意代码软件基因A和恶意代码软件基因B的指令,n为恶意代码软件基因A的长度,m为恶意代码软件基因B的长度,通过Smith-Waterman算法得出恶意代码软件基因间的最长公共指令子序列;
通过公式(2)得出恶意代码软件基因A和恶意代码软件基因B的距离值:
dAB=max{n,m}-Hnm (2)
其中,Hnm为恶意代码软件基因A和恶意代码软件基因B的最长公共指令子序列的长度。
具体地,所述步骤S104包括:
根据提取的恶意代码软件基因间的距离值,通过公式(3)计算每个基因到其他所有基因的距离总和:
ri=d1i+d2i+…+dNi (3)
其中,ri为恶意代码软件基因i到其他所有基因的距离总和,N为提取的基因数量;
根据每个基因到其他所有基因的距离总和,通过公式(4)得出基因对的索引值:
Figure BDA0001990020080000051
其中,Mij为<恶意代码软件基因i,恶意代码软件基因j>基因对的索引值,dij为恶意代码软件基因i和恶意代码软件基因j的距离值,rj为恶意代码软件基因j到其他所有基因的距离总和,N′为目标聚类结果的簇数;
选取Mij值最小的基因对进行聚类,设定Mij的阈值,将基因逐一加入到已有聚簇中进行比较,若Mij不小于阈值,则将Mij对应的基因对加入对应聚簇,否则建立新的聚簇。
具体地,所述特征向量的第i维的值为与第i类恶意代码软件基因最相似的恶意代码软件基因的相似度值,所述相似度值通过公式(5)计算得出:
Similairty=Hnm/max{n,m} (5)
其中,Hnm为恶意代码软件基因与第i类恶意代码软件基因的最长公共指令子序列的长度的最大值。
具体地,所述机器学习模型包括决策树、支持向量机、朴素贝叶斯及随机森林。
实施例二:
如图2所示,另一种受生物基因启发的恶意代码检测方法,包括:
步骤S201:定义恶意代码软件基因;
生物基因以一段连续的脱氧核糖核酸序列的形式存在。当该基因被表达时,整个序列都将被转录和翻译。当基因为内含子时,整个序列都不被表达。相应的,为了易于使用序列对软件的代码片段进行描述,本系统将一致执行的代码序列作为一个恶意代码软件基因。
恶意代码软件基因定义:恶意代码软件基因是一个指令序列,指令序列的结束指令为return、jump、switch或call中的一种。事实上,一个基因是由一个或多个基本块结合组成,基本块将所有的call跳转指令作为切分边界,该定义对于恶意代码分析来说过于琐碎。基因允许在内部出现系统API函数调用,一个API调用可以当做一个复杂的指令来看待,此定义下的基因,仍然可以用一个序列而不是复杂的图结构,来描述基因的内容。
恶意代码软件基因是一个比基本块稍大的代码块,它将一些系统函数API调用包含到块内,因为对恶意代码来说,一个API可以看成一个复杂的操作指令,而后继续顺序执行。而API组合分析,检测样本对主机和网络操作的可疑操作,是一个关键点,因此,在恶意性判定问题上,可以使用恶意代码软件基因内包含的API调用序列(指令序列),而非复杂的API调用关系图,来描述基因的功能,这样可以摒除其他非关键指令带来的噪声。
步骤S202:恶意代码软件基因提取;
基于定义的恶意代码软件基因对代码进行基因提取(切片),作为一种可实施方式,对静态反汇编样本进行基因提取,算法流程主要分为三步:第一步,遍历静态反汇编样本的ida函数(除了库函数);第二步,遍历每个ida函数的汇编指令;第三步,根据一致执行的特点,按照基本块的方式对每个函数(除了库函数)进行切分,基本块的结束指令为return、jmp、switch、call指令。基于恶意代码软件基因的切片方法更为灵活,在包含约30000样本的数据规模下,产生的基因数量为69000个,而用广泛运用的n-gram方法则产生了63万个。随着样本大小的增加,基因类型和n-gram片段的增加曲线如图3所示。从而,随着样本大小的增加,通过本发明提取的恶意代码软件基因片段的分析规模大大缩减。
步骤S203:基因间距离测量;
使用Smith-Waterman算法挖掘恶意代码软件基因间的公共指令子序列。Smith-Waterman是生物信息学广泛使用的一种序列相似度度量算法,属于一种动态规划算法。给定两个恶意代码软件基因A=a1,a2,...,an和B=b1,b2,...,bm,恶意代码软件基因A的子序列a1,a2,...,ai和恶意代码软件基因B的子序列b1,b2,...,bj匹配的最高分值为:
Hij=max{Hi-1,j-1+δ(i,j),maxk≥1{Hi-k,j-Wk},maxl≥1{Hi,j-l-Wl},0} (1)
其中1≤i≤n,1≤j≤m;Wk为长度k的子串不匹配扣除的分值权重,本实施例中将所有W值设为0;δ(i,j)是序列中ai和bj匹配成功时加上的分值,本实施例中设为1;此时,若Hij的最高分值为1,则表明恶意代码软件基因A的子序列a1,a2,...,ai和恶意代码软件基因B的子序列b1,b2,...,bj最多有1个公共指令相同,对应的最长公共子序列的长度为1,具体地,当i为n,j为m时,Hnm为恶意代码软件基因A和恶意代码软件基因B的最长公共指令子序列的长度。则恶意代码软件基因A和恶意代码软件基因B的距离值为:
dAB=max{n,m}-Hnm (2)
其中,max{n,m}为n和m中的较大值。
在恶意代码软件基因的分析中,两个恶意代码软件基因的功能差异性可以用两个恶意代码软件基因的距离来表示,恶意代码软件基因包含的API序列一般相对较短,94.8%的恶意代码软件基因长度不超过10,因此样本集中基因测距速度较快。
值得说明的是:
1)在分析恶意代码软件基因时,功能性恶意代码软件基因的差异可以描述为基因中API序列的距离。
2)基于恶意代码软件基因定义的代码片段包含一段简单的微小功能,由若干个API组成的序列描述。但基因种类较多,直接映射会产生过于高维的特征向量,不利于模型的训练。本发明对恶意代码软件基因包含的功能的相似性进行度量,并对具有相似功能的基因进行分类。在构造样本的特征向量时,每一类基因映射到特征向量中的一维。因此,恶意代码软件基因的归类可达到降维的效果,从而构造更高效的恶意代码检测器。
步骤S204:恶意代码软件基因聚类;
对邻接法进行改进,采用改进的邻接法对提取的恶意代码软件基因进行聚类:
首先计算每个恶意代码软件基因到其他所有恶意代码软件基因的距离总和r,对于恶意代码软件基因i,ri为:
ri=d1i+d2i+…+dNi (3)
其中,ri为恶意代码软件基因i到其他所有基因的距离总和,N为提取的基因数量;
为每一对恶意代码软件基因计算一个索引值(index)M,对于<恶意代码软件基因i,恶意代码软件基因j>基因对,Mij为:
Figure BDA0001990020080000081
其中,Mij为<恶意代码软件基因i,恶意代码软件基因j>基因对的索引值,dij为恶意代码软件基因i和恶意代码软件基因j的距离值,rj为恶意代码软件基因j到其他所有基因的距离总和,N′为目标聚类结果的簇数。
选取Mij值最小的基因对进行聚类,设定Mij的阈值,将基因逐一加入到已有聚簇中进行比较,若Mij不小于阈值,则将Mij对应的基因对加入对应聚簇,否则建立新的聚簇。
值得说明的是,改进前,邻接法中需选取Mij值最小的基因对进行聚类,使用公式(3)和(4)更新提取的恶意代码软件基因中剩余基因对的r值和M值,并进行新一轮的聚类,直到聚簇数量为N′时算法终止。因为r值和M值在每做一次更新后都需要重新计算,故邻接法的效率较低。而本实施例的恶意代码软件基因分类并不需要像构建进化树一样精确,因此降低了邻接法的精度,并且每次都不更新r值和M值,而是首先设定一个M的阈值,将基因逐一加入到已有聚簇中进行比较,确保聚簇中每对基因的M值不小于阈值,如果不符合条件,那么建立新的聚簇。通过调整阈值,算法结果可以在既定聚簇数目N′附近结束。
邻接法是生物信息学中构造基因的系统发育模型的常用算法,用于将基因及其变异体按距离值进行编排,构建基因演化树。同时,它又属于一种层次聚类算法,本发明中可以控制算法在聚类到特定聚簇时停止。在经典的做法中,研究者会使用数据科学中通用的一些降维方法。如Shabtai等人使用TFIDF(Term Frequency Inverse DocumentFrequency)来实现降维,该方法选择了TFIDF值较高的特征,而舍弃了其他特征,造成了信息的损失。其他基于维度压缩的方法,如PCA降维等,在软件分析领域可解释性不强。
步骤S205:根据聚类结果,将恶意代码软件基因映射到特征向量上,每类恶意代码软件基因对应特征向量的一维数据;
根据恶意代码软件基因的聚类结果,将恶意代码软件基因映射到特征向量上,特征向量的每一维对应一类基因。样本的特征向量的第i维的值为待测样本中与第i类恶意代码软件基因最相似的恶意代码软件基因的相似度值:
Similairty=Hnm/max{n,m} (5)
其中,Hnm为恶意代码软件基因与第i类恶意代码软件基因的所有最长公共指令子序列的长度的最大值。
步骤S206:根据所述特征向量,通过机器学习模型构建恶意代码检测器,通过所述恶意代码检测器对待测代码中的恶意代码进行检测。
构造了特征向量后,结合成熟的机器学习模型构建恶意代码检测器,所述机器学习模型包括决策树、支持向量机、朴素贝叶斯及随机森林。
为验证本发明的有效性,本实施例中从公开的网络中收集了约3万个样本,其中恶意代码15049个,正常软件14909个。基于收集的样本,一共进行三组实验:第一组实验中,对比了基于恶意代码软件基因和n-gram切片构造的恶意代码检测器性能;第二组实验中,采用了不同的基因降维方式,即改进的邻接法和TFIDF算法,构造恶意代码检测器进行比较;第三组实验中,比较了四种机器学习模型的检测器的性能差异。三组实验中均采用十则交叉检验的方式进行实验,实验结果如表1所示。由表1可知,采用本发明方法,当选择的机器学习模型为随机森林时,构建的恶意代码检测器,检测恶意代码的准确率可达到97.7%,同表1中的其他方法构造的恶意代码检测器相比,恶意代码的检测精确度、误报率、准确率及召回率均最高。
表1:基于相同样本集的不同恶意软件检测器的性能
Figure BDA0001990020080000101
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种受生物基因启发的恶意代码检测方法,其特征在于,包括以下步骤:
步骤1:定义恶意代码软件基因,所述恶意代码软件基因为指令序列,所述指令序列的结束指令为return、jump、switch或call中的一种;
步骤2:基于定义的恶意代码软件基因对代码进行恶意代码软件基因提取;
步骤3:通过Smith-Waterman算法得出提取的恶意代码软件基因间的距离值;
步骤4:根据提取的恶意代码软件基因间的距离值对提取的恶意代码软件基因进行聚类;
所述步骤4包括:
根据提取的恶意代码软件基因间的距离值,通过公式(3)计算每个基因到其他所有基因的距离总和:
ri=d1i+d2i+…+dNi (3)
其中,ri为恶意代码软件基因i到其他所有基因的距离总和,N为提取的基因数量;
根据每个基因到其他所有基因的距离总和,通过公式(4)得出基因对的索引值:
Figure FDA0002624730380000011
其中,Mij为<恶意代码软件基因i,恶意代码软件基因j>基因对的索引值,dij为恶意代码软件基因i和恶意代码软件基因j的距离值,rj为恶意代码软件基因j到其他所有基因的距离总和,N′为目标聚类结果的簇数;
选取Mij值最小的基因对进行聚类,设定Mij的阈值,将基因逐一加入到已有聚簇中进行比较,若Mij不小于阈值,则将Mij对应的基因对加入对应聚簇,否则建立新的聚簇;
步骤5:根据聚类结果将恶意代码软件基因映射到特征向量上,每类恶意代码软件基因对应特征向量的一维数据;
步骤6:根据所述特征向量,通过机器学习模型构建恶意代码检测器,通过所述恶意代码检测器对待测代码中的恶意代码进行检测。
2.根据权利要求1所述的一种受生物基因启发的恶意代码检测方法,其特征在于,所述步骤3包括:
对于提取的任意两个恶意代码软件基因A=a1,a2,...,an和B=b1,b2,...,bm,其中,a1,a2,...,an及b1,b2,...,bm分别为恶意代码软件基因A和恶意代码软件基因B的指令,n为恶意代码软件基因A的长度,m为恶意代码软件基因B的长度,通过Smith-Waterman算法得出恶意代码软件基因间的最长公共指令子序列;
通过公式(2)得出恶意代码软件基因A和恶意代码软件基因B的距离值:
dAB=max{n,m}-Hnm (2)
其中,Hnm为恶意代码软件基因A和恶意代码软件基因B的最长公共指令子序列的长度。
3.根据权利要求1所述的一种受生物基因启发的恶意代码检测方法,其特征在于,所述特征向量的第i维的值为与第i类恶意代码软件基因最相似的恶意代码软件基因的相似度值,所述相似度值通过公式(5)计算得出:
Figure FDA0002624730380000021
其中,Hmax为恶意代码软件基因与第i类恶意代码软件基因的最长公共指令子序列的长度的最大值。
4.根据权利要求1所述的一种受生物基因启发的恶意代码检测方法,其特征在于,所述机器学习模型为决策树、支持向量机、朴素贝叶斯及随机森林中任意一种。
CN201910177388.5A 2019-03-09 2019-03-09 一种受生物基因启发的恶意代码检测方法 Active CN110046501B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910177388.5A CN110046501B (zh) 2019-03-09 2019-03-09 一种受生物基因启发的恶意代码检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910177388.5A CN110046501B (zh) 2019-03-09 2019-03-09 一种受生物基因启发的恶意代码检测方法

Publications (2)

Publication Number Publication Date
CN110046501A CN110046501A (zh) 2019-07-23
CN110046501B true CN110046501B (zh) 2020-09-29

Family

ID=67274594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910177388.5A Active CN110046501B (zh) 2019-03-09 2019-03-09 一种受生物基因启发的恶意代码检测方法

Country Status (1)

Country Link
CN (1) CN110046501B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704103B (zh) * 2019-09-04 2020-09-29 中国人民解放军战略支援部队信息工程大学 基于软件基因的二进制文件语义相似性比较方法及装置
CN111857660B (zh) * 2020-07-06 2021-10-08 南京航空航天大学 一种基于查询语句的情境感知api推荐方法及终端
CN113536308B (zh) * 2021-06-11 2023-01-06 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236584A (zh) * 2007-01-31 2008-08-06 三星电子株式会社 检测入侵代码的设备及其方法
CN104331436A (zh) * 2014-10-23 2015-02-04 西安交通大学 基于家族基因码的恶意代码快速归类方法
CN107679403A (zh) * 2017-10-11 2018-02-09 北京理工大学 一种基于序列比对算法的勒索软件变种检测方法
CN108171059A (zh) * 2017-12-26 2018-06-15 中国人民解放军战略支援部队信息工程大学 基于软件基因的恶意代码检测与识别方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101236584A (zh) * 2007-01-31 2008-08-06 三星电子株式会社 检测入侵代码的设备及其方法
CN104331436A (zh) * 2014-10-23 2015-02-04 西安交通大学 基于家族基因码的恶意代码快速归类方法
CN107679403A (zh) * 2017-10-11 2018-02-09 北京理工大学 一种基于序列比对算法的勒索软件变种检测方法
CN108171059A (zh) * 2017-12-26 2018-06-15 中国人民解放军战略支援部队信息工程大学 基于软件基因的恶意代码检测与识别方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于软件基因的Android平台恶意软件检测与分类研究;韩金;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20190115(第01期);正文第三章-第五章 *

Also Published As

Publication number Publication date
CN110046501A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
Ren et al. Alignment-free sequence analysis and applications
Fan et al. Malicious sequential pattern mining for automatic malware detection
Cai et al. JOWMDroid: Android malware detection based on feature weighting with joint optimization of weight-mapping and classifier parameters
CN110046501B (zh) 一种受生物基因启发的恶意代码检测方法
Crussell et al. Andarwin: Scalable detection of semantically similar android applications
Karim et al. Malware phylogeny generation using permutations of code
US9454658B2 (en) Malware detection using feature analysis
EP2472425B1 (en) System and method for detecting unknown malware
Amer et al. A multi-perspective malware detection approach through behavioral fusion of api call sequence
Zhiwu et al. Android malware family classification and characterization using CFG and DFG
EP2915084A1 (en) Database-driven primary analysis of raw sequencing data
Choo et al. Recent applications of hidden Markov models in computational biology
EP2517138A1 (en) Malware identification and scanning
Sun et al. Fast anomaly detection in multiple multi-dimensional data streams
Pektaş et al. Proposal of n-gram based algorithm for malware classification
Chen et al. Multiple sequence alignment and artificial neural networks for malicious software detection
CN111382438A (zh) 基于多尺度卷积神经网络的恶意软件检测方法
CN108170467A (zh) 约束限定聚类和信息度量软件胎记特征选择方法、计算机
CN112257068A (zh) 一种程序相似性检测方法、装置、电子设备和存储介质
Manavi et al. A new approach for malware detection based on evolutionary algorithm
Zhang et al. A new measure for similarity searching in DNA sequences
Stiawan et al. Ransomware detection based on opcode behavior using k-nearest neighbors algorithm
CN112257062B (zh) 一种基于频繁项集挖掘的沙箱知识库生成方法和装置
Liang et al. Automatic benchmark generation framework for malware detection
Buchfink et al. MetaScope-Fast and accurate identification of microbes in metagenomic sequencing data

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