CN108170467A - 约束限定聚类和信息度量软件胎记特征选择方法、计算机 - Google Patents

约束限定聚类和信息度量软件胎记特征选择方法、计算机 Download PDF

Info

Publication number
CN108170467A
CN108170467A CN201711253690.1A CN201711253690A CN108170467A CN 108170467 A CN108170467 A CN 108170467A CN 201711253690 A CN201711253690 A CN 201711253690A CN 108170467 A CN108170467 A CN 108170467A
Authority
CN
China
Prior art keywords
feature
software
class
birthmark
cluster
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.)
Granted
Application number
CN201711253690.1A
Other languages
English (en)
Other versions
CN108170467B (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.)
XI'AN UNIVERSITY OF FINANCE AND ECONOMICS
Original Assignee
XI'AN UNIVERSITY OF FINANCE AND ECONOMICS
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 XI'AN UNIVERSITY OF FINANCE AND ECONOMICS filed Critical XI'AN UNIVERSITY OF FINANCE AND ECONOMICS
Priority to CN201711253690.1A priority Critical patent/CN108170467B/zh
Publication of CN108170467A publication Critical patent/CN108170467A/zh
Application granted granted Critical
Publication of CN108170467B publication Critical patent/CN108170467B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于基于胎记的软件识别技术领域,公开了一种基于约束聚类和信息度量的软件胎记特征提取方法,采用约束限定聚类分析,基于互信息来度量特征同类和类间距离。在软件特征选择时,先对软件进行等价语义变换,再进行特征分割,结合程序切片技术对特征进行限定群的分类,对分割的特征碎片集构造增益函数和惩罚函数评价,基于不同构造群的层次聚类选择,筛选出同类中的不变特征并剔除不同类中的普遍特征。本发明考虑特征间的相关性,筛选出的胎记特征组成的集合类区分信息量最大且冗余度最小;既保证胎记特征的抗攻击性,又保证唯一性。本发明提高了软件胎记特征的鲁棒性和可信性,大大提高了软件基于特征的识别率。

Description

约束限定聚类和信息度量软件胎记特征选择方法、计算机
技术领域
本发明属于软件胎记技术领域,尤其涉及一种约束限定聚类和信息度量软件胎记特征选择方法、计算机。
背景技术
传统的软件特征提取技术总结归纳为两类:一类是分段式提取,是一种结合语法的定长或变长分割模式,特征提取后,可用静态分词方法切割成片段,通过n-gram分段式特征选择,或基于变长P-gram分割选择;没有结合语义分析,没有分析特征之间的相关性,得到的胎记特征对于软件的加密、变形、多态攻击等鲁棒性较差;另一类是切片式提取,结合软件语义结构的选择方式,对程序切片有基于程序依赖图关系的,也有基于信息流关系。但切片产生的特征集含有较大的特征冗余,检测效率低,有的甚至需要代码在虚拟机中虚拟执行,获得相应的执行行为和路径,检测开销较大,构建的特征库庞大。目前,虽然特征选择方法有很多,但是软件胎记特征选择这一特定问题,程序有动、静态之分;软件在不同输入时,具有多态性;所得到的碎片具有多属性,有子符串、向量、集合、树型、图型等;面向对象设计中存在类,软件函数,基本块的层次关系;胎记特征的选择既要考虑程序的语法结构,又要结合程序的语义结构;如何通过等价语义变换,参考对照特征的不变性,如何从定性到定量,度量这种不变性;如何保证所选择的胎记总体信息最优,又要减少特征冗余。软件盗版、恶意软件攻击等问题,严重阻碍了软件产业健康发展,是软件业面临的最大威胁,软件胎记技术是提取软件中的不变特征(或关键特征),以达到对该软件或该软件家族的识别,检测软件盗版或阻止恶意软件的破坏。若两个软件的胎记特征之间具有较大的相似度,则其中一个软件很可能是另外一个软件的盗版,或者与另外一个软件属于同一家族。不管用于识别软件盗版,或识别恶意代码家族,软件特征的分析和选择关系着识别的鲁棒性和可信性。传统的软件特征获取技术有:(1)基于静态的提取算法,对于软件的加密、变形、多态的攻击已不能满足,为了改进静态特征为动态特征,通常结合动态程序切片分析对特征进行过滤,但这种选择方式仍含有较大的特征冗余,检测效率低。(2)有些软件胎记特征描述缺乏语义分析,如基于序列或单个频率的n-gram特征选择,只考虑了程序的语法结构,而没有结合软件的语义分析,仅仅在结构上判断软件特征,没有结合上下文含义去考虑;(3)结合语义分析的动态依赖图方法,需要对代码在虚拟机中虚拟执行,获得代码相应的执行行为和路径,这种方法检测过程较慢,构建的特征库庞大,使检测过程开销较大。而且,基于以上方法获得的特征类型不管是单字节序列还是多字节序列,都没有进行聚类筛选,所得的特征集中不是所有特征都适合用作为胎记特征。
综上所述,现有技术存在的问题是:一是没有经过聚类筛选的传统的软件特征获取方法,其特点是特征库较大,含有较大的特征冗余信息,基于特征的软件识别率较低;或没有结合软件的上下文语义分析特征群,缺少动态特征选择。二是经过聚类筛选的特征识别方法,在评价特征时,多是基于欧氏、马氏、Cosine系数、统计相关系数等评价度量方法,如何构造特征群以及如何评价特征,决定着特征评价的有效性,决定着软件胎记特征的鲁棒性。基于信息度量标准能有效地表达特征间的非线性相关性,再结合程序切片和过滤(filter)技术的,能更好地达到胎记特征选择效果。
发明内容
针对现有技术存在的问题,本发明提供了一种约束限定聚类和信息度量软件胎记特征选择方法、计算机。
本发明是这样实现的,一种约束限定聚类和信息度量软件胎记特征选择方法,
所述约束限定聚类和信息度量软件胎记特征选择方法采用约束限定聚类分析,基于互信息来度量特征同类和类间距离;在软件特征选择时,先对软件进行等价语义变换,再进行特征分割,结合程序切片技术对特征进行限定群的分类,对分割的特征碎片集构造增益函数和惩罚函数评价,基于不同构造群的层次聚类选择,筛选出同类中的不变特征并剔除不同类中的普遍特征。
进一步,所述约束限定聚类和信息度量软件胎记特征选择方法采用约束聚类分析软件特征,通过互信息度量特征的类内和类间距离,以同类和异类软件特征构建信息增益函数和惩罚函数,确定胎记特征模式,选择出具有较高类区分信息和最小冗余的软件胎记特征。
进一步,所述约束限定聚类和信息度量软件胎记特征选择方法具体包括:
步骤一,对样本数据集T预处理,并初始化相关参数;
步骤二,根据互信息计算每个候选特征f与分类类别之间的相关程度MI(f;C),评估候选类f的类间距离Lb;候选类f的MI(f|P)值最大,加入到选择类B中;计算每个候选类f的类间距离Db(f|P0;Pi,Qj)和类内距离Da(f;B),选择具有最大度量标准值J(f)的候选类f,与选择类B进行合并,组合成新的选择类;
步骤三,更新候选类F的类间距离Db(f)和类内距离Da(f),合并聚类一直循环迭代,直到已选类B中的特征个数超过预先设定的阈值时结束。
进一步,所述约束限定聚类和信息度量软件胎记特征选择方法的特征集确定方法包括:
(1)利用变换工具进行实验对同一软件P0进行不同等价语义变换,Pi=SPT(P0),得到P0的多样性表现形式Pi={p1,p2…,pi};定义Pi是原软件P0的等价软件;
(2)应用动态程序切片理论来划分程序片段,对静态特征提取理论的扩展和改进;基于数据流切片和依赖图切片,分析软件运行时特征碎片的动态描述,结合程序语义对程序切片;
(3)结合变长P-gram和模糊规则,对切片而成的特征集分割成特征单元。
进一步,所述约束限定聚类和信息度量软件胎记特征选择方法的信息度量用于度量特征单元之间的关系,包括胎记特征与等价类之间的距离和参照类间的距离;
原软件P0中提取的特征f,测量与类别之间的相关程度,算与等价类Pi和参考类Qj的之间的互信息MI(f,C)被用来表示类间距离Lb
其中为f与同类软件距离或相似度均值作为增益函数,为f与不同类软件距离或相似度均值作为惩罚函数;
给定两个特征f和b;
候选特征f与选择类B之间的距离通过对所有已选特征b的距离求和得到:
Da(f)=Σb∈BCF(f;b);
选择类B的类内距离Da(B)拟通过类似方式获得;候选类f不断地与选择类B进行合并,类内距离Da(B)按以下形式累加计算:
Da(f;B)=Da(B)+Da(f);
特征聚类分析过程的每个候选类,使用的评价函数:
进一步,所述约束限定聚类和信息度量软件胎记特征选择方法在软件识别判断时基于相似度拟合的技术推广与识别;
软件特征类型可分为子符串(String),向量(Vector),集合(Set),向量集合(SetofVectors),树型(Tree)和图型(Graph);软件特征因类型不同,选择和提取的方法不同,定义的胎记形式也不同,由于这些不同的特征类型有不同的相似度或拟合度度量方法,对于不同的特征类型,通过相似度度量的定量结果,对不同类型特征进行算法泛化。目的是对软件胎记特征提取、选择和识别过程的泛化和抗议,以增强识别技术的实用性,步骤包括:
(1)通过衡量与胎记特征的拟合度来判别软件;
(2)在当未知软件进行检测时,通过阈值确定和拟合度检验,计算特征轮廓与已知软件胎记特征频谱的拟合度。
本发明的另一目的在于提供一种应用所述约束限定聚类和信息度量软件胎记特征选择方法的计算机。
本发明的另一目的在于提供一种应用所述约束限定聚类和信息度量软件胎记特征选择方法的计算机程序。
本发明借助聚类学习和统计方法,确定特征属性类型和特征分割粒度对聚类精度的影响,约束规则的控制和限定,划分特征隶属关系,约束聚类模型合并方式,构建最优聚类分析和约束模型;构建特征间的信息度量函数,确定合适的信息度量方法,平衡特征选择数据,去除噪声数据,解决数据不平衡引起的偏差问题,解决冗余增长与信息增长的矛盾,目的是使胎记总体信息最优,又要减少特征冗余。
本发明拟合度度量和推广,使聚类选择结果不受特征类型的影响,解决由数值结果统一的归一化,提高识别技术的实用性和广泛性。将数据挖掘和模式识别中的聚类分析思想应用于软件胎记特征的识别和选择中,既是对聚类方法应用的新扩展,又是对解决软件保护实际问题提供一种新方法。
本发明应用约束聚类分析特征,动态选择和过滤软件特征,不但考虑的程序的语法和语义,也考虑的特征之间的相关性。克服了传统的分段或切片式选择胎记特征选择,构建一种适合软件胎记特征模式识别的分析模型。按照“类间相似度最大,类内相似度最小”的原则,选择胎记特征子集,对软件胎记特征的的认识、选择和定位提供了一种新方法。
本发明构建适用于胎记特征选择的增益函数和惩罚函数,构建度量函数,用其来度量聚类中的“类内”和“类间”距离,有利于选择同类中抗等价语义变化攻击的不变特征,有利于剔除不同类中的普遍特征;既保证胎记特征的抗攻击性,又保证其唯一性。
本发明基于聚类分析筛选软件特征,改进以分段或切片的传统特征选择方式,按类间相似度最小,类内相似度最大的原则,选择出分类信息较高的特征集合为胎记(或不变)特征,提高软件胎记特征的鲁棒性和可信性,进而提高软件的识别率。考虑了特征间的相关性,力求组成的特征集合分类信息量最大且冗余度最小;以互信息度量距离,构建增益函数和惩罚函数,选择同类中抗等价语义变化攻击的不变特征,剔除不同类中的普遍特征,既保证胎记特征的抗攻击性,又保证其唯一性。通过算法分析和实验比较,表明本发明在软件胎记特征选择和过滤方面具有较好的效果,实用性更强。
附图说明
图1是本发明实施例提供的约束限定聚类和信息度量软件胎记特征选择方法流程图。
图2是本发明实施例提供的约束限定聚类和信息度量软件胎记特征选择方法实现流程图。
图3是本发明实施例提供的基于约束的软件特征聚类模型示意图。
图4是本发明实施例提供的胎记特征提取和检测过程示意图。
图5是本发明实施例提供的不同胎记特征的可信性(a)与鲁棒性(b)比较示意图。
图6是本发明实施例提供的FSCA与其它特征选择算法的性能绝对差示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
随着网络服务的普及和IT业的不断发展,软件的种类越来越多,对软件保护的需求也越来越迫切。软件胎记(birthmark)是从软件中提取出不易被攻击,不易发生变化、鲁棒性强、识别率高的特征,即软件的胎记信息,通过识别软件胎记,达到对软件盗版、恶意软件、病毒、混淆强度等方面的识别、维护和度量。
本发明提供了一种基于约束聚类和信息度量的软件胎记特征提取方法、计算机,本发明是一种过滤式(Filter)选择技术,采用约束限定聚类分析,基于互信息来度量特征同类和类间距离。在软件特征选择时,先对软件进行等价语义变换,再进行特征分割,结合程序切片技术对特征进行限定群的分类,对分割的特征碎片集构造增益函数和惩罚函数评价,基于不同构造群的层次聚类选择,筛选出同类中的不变特征并剔除不同类中的普遍特征。该方法考虑了特征间的相关性,筛选出的胎记特征组成的集合类区分信息量最大且冗余度最小;既保证胎记特征的抗攻击性,又保证其唯一性。本发明提高了软件胎记特征的鲁棒性和可信性,大大提高了软件基于特征的识别率。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的约束限定聚类和信息度量软件胎记特征选择方法包括以下步骤:
S101:对样本数据集预处理,并初始化相关参数;
S102:根据互信息计算每个候选特征:与分类类别之间的相关程度,选择其中具有最大度量标准值的候选类,与选择类进行合并,组合成新的选择类;
S103:更新候选类的类间距离和类内距离,加快聚类过程的速度。
下面结合附图对本发明的应用原理作进一步的描述。
如图2所示,本发明实施例提供的约束限定聚类和信息度量软件胎记特征选择方法具体包括以下步骤:
(1)特征集确定
特征集确定可分为两个步骤,软件集合的确定,特征集合的确定。
(a)等价软件变换,通过等价变换来构建软件特征研究集合。等价语义变换会引起软件特征的变化,不易发生变化的特征称为软件的胎记特征。利用变换工具进行实验(如sandmark、Themida、JdataTrans等,sandmark提供34种混淆和优化工具,Themida提供高、中、低不同的变化强度)对同一软件P0进行不同等价语义变换,即Pi=SPT(P0),充分得到P0的多样性表现形式Pi={p1,p2,…,pi}。定义Pi是原软件P0的等价软件。参照程序为Qi={q1,q2,…,qi},是与P0不同类软件。
(b)动态切片,对软件的不同类型的特征结合语义进行分析。应用动态程序切片理论来划分程序片段,对静态特征提取理论的扩展和改进。主要是基于数据流切片和依赖图切片,分析软件运行时特征碎片的动态描述,结合程序语义对程序切片,为识别软件动态行为提供客观科学的依据。
(c)模糊分割,结合传统变长P-gram和模糊规则,对切片而成的特征集进一步分割成特征单元。P-gram是在定长分割方式n-gram基础之上的改进,而模糊规则,主要是利用模糊隶属关系调整来改善特征单元划分质量。
(2)基于信息的特征评价
如图3所示,信息度量用于聚类时的特征评价标准,将需要提取胎记特征的软件记为P0,将该软件的等价语义变换的软件群记为同类的等价软件Pi,功能不同的参照软件群记为不同类软件Qj,待提取的特征记为f。应用信息度量所选的特征在不同群之间的信息量,包括所选特征与等价类之间的距离和参照类之间的距离。假定原软件P0中提取的特征f,测量其与类别之间的相关程度,即计算与等价类Pi和参考类Qj的之间的互信息MI(f),若待选特征f与同类软件距离越近越好,与不同类软件特征距离越远越好。信息量Db被用来表示类间
“距离”:
在公式中表示待选特征f与同类软件距离均值作为增益函数,表示待选特征f与不同类软件距离均值作为惩罚函数。
在特征群中由于特征之间具有相关性,但信息度量方式并不能体现当特征量增大时,因此在信息度量时,引入特征之间的关联系数CF(f;b),f和b分别表示待选两个特征。CF(f;b)取值范围在0与1之间,当CF(f;b)值为0时,表示两特征无关联,当CF(f;b)值为1时,表示两特征完全依赖。CF(f;b)关联系数表示如下:
在应用中,类与类之间的距离计算方式同其它特征选择方法类似,通过信息度量值之和来表示候选类f与选择类B之间的距离,通过对所有已选特征b的信息度量值求和得到,即表示为:
Da(f)=Σb∈BCF(f;b) (3)
当候选类中的特征f不断与选择类B进行合并,组成类内的信息和,当特征集为空时,类内信息量值为0,类内信息度量公式表示为:
Da(f;B)=Da(B)+Da(f) (4)
在信息选择过程中,除了通过度量类内和类间信息评价特征外,还要考虑特征的集的大小,特征集不能太庞大,一是胎记对比较费时;二是影响胎记识别的准确率。因此,根据以上原因,对信息度量的候选特征的评价函数表示如下:
(3)基于约束聚类分析,其过程是将软件分成等价类和参考类后,对软件进行程序切片和特征碎片提取,并按信息度量每个特征的类内和类间距离,以层次聚类方法进行聚类分析,比较聚类算法对结果的影响,研究实验自底向上的合并,在选择类中,每次所选特征为当前度量性能表现最好的那个特征。分析并获得软件特征群中的固有结构认识,区别出软件的关键特征(不变特征/胎记)和非关键特征。
首先,对样本数据集T实施必要的预处理步骤,并初始化相关参数。
然后,根据互信息计算每个候选特征f与分类类别之间的相关程度MI(f;C),即评估候选类f的类间“距离”Db
依据公式(1)和(4)计算每个候选特征f的类间距离Db(f|P0;Pi;Qj)和类内距离Da(f;B),信息量EF(f),选择最大信息度量值的特征为候选类f,则将其加入到选择类B中。
不断合并被选特征成为选择类B,以组合成新的选择类。
随后,更新候选类F的类间距离Db(f)和类内距离Da(f),以加快聚类过程的速度。
合并聚类过程一直循环迭代,直到已选类B中的特征个数超过预先设定的阈值时结束。
聚类分析的胎记特征选择程序源码算法描述如下:
(4)基于相似度拟合的算法推广与识别
(a)存在的问题及技术意义
基于特征的软件识别,传统的研究只是针对某一种特征类型去分析,并用这种特征类型去进行软件的识别,这在多种类型存在的软件特征分析中具有明显的局限性,约束聚类和信息度量的软件胎记特征识别方法是基于相似度拟合来对比软件,基于信息量来衡量特征,将非线性特征进行定量分析,去除了特征类型的影响。
(b)技术原理
软件特征从类型上可分为子符串(String),向量(Vector),集合(Set),向量集合(Set ofVectors),树型(Tree)和图型(Graph)。由于软件特征选择方法和提取的对象不同,定义的胎记形式也不同,通过提取和检测特征,并与胎记特征进行比较,通过衡量与胎记特征的拟合度来判别软件。为了能使该算法能被普遍应用,对于不同的特征类型,拟通过相似度计算对结果进行统一,实现对软件胎记特征推广过程。
不同特征类型的相似度计算方法如下:
子符串度量相似度有Levenshtein Distance方法、Smith-Waterman算法和求最长公共子序列(LCS)法;
向量度量方法有:欧氏距离(Euclidean Distance)、曼哈顿距离(ManhattanDistance)、余弦相似法(Cosine Similarity);
集合相似度方法有:Dice Coefficien、JaccardIndex、JaccardDistance和SetContainment等;
向量集合的可使用最小匹配距离来比较,通过在每个集合中构造一个最小的权重来比较,这种距离度量可以在多项式时间内度量和评价;
树型特征间的比较是通过有序树中的最大公共子树来比较;
图的比较可通过GraphIsomorphism、GraphEditDistance或最大公共子图来比较。
(c)检验技术过程
在当未知软件进行检测时,拟通过阈值确定和拟合度检验,计算其特征轮廓与已知软件胎记特征频谱的拟合度。
分两步检测:1)计算阈值;2)卡方检验。
计算阈值,计算同类等价样本Pi得到的特征与原样本P0的特征之间的卡方值的均值,拟作为该软件检测阈值:
卡方检验:计算测试软件特征轮廓与已有的软件胎记特征频谱的卡方检验,卡方检试值xtest
当观察频数与期望频数越接近,两者之间的差异越小,卡方值越小,当完全一致时,卡方值为0;当观察值与期望频数差异越大时,卡方值也越大。
比较其与检测阈值δ的大小,大于检测阈值,表示测试程序属于同类样本,否则属于不同类样本。
在研究中,需要进一步实验阈值的合理性和受制因素;拟合度与识别可信性和鲁棒性的内在关系;以及在效率、准确率和实用性之间的权衡。
(d)实施方案
在特征提取之前,先对原软件进行等价语义变换,再分析原软件,同类软件(等价语义变换后的软件)和异类软件(参考软件)的子行为特征。分析和识别过程分为两部分,如图4,一是胎记特征的构建,二是未知软件的检测,具体实施过程如下:
“胎记特征软件识别方案构建”过程包括:
a)提取每一类软件的子行为特征集,统计子行为特征频率。
b)对原软件的每个子行特征集进行度量,比较其与同类软件和异类软件中相同子行为特征的相似度。
c)对同类和异类间的特征进行相似度计算,计算类内距离Da(B)和类间距离Db(f;B),分别与同类特征与异类特征度量作为互信息的增益函数和惩罚函数,也就是说某个子行为特征在类内频率越高越好,再在类间频率越小越好。
d)按类内距离和类间距离层次聚类分析子行为特征集合,取前m个子行为信息熵最高的特征单元构成的子行特征频普,该特征频普(或特征轮廓)就定义为原软件的特征胎记,记为:B={(b1,n1),(b2,n2),......,(bm,nm)},用于检测和比较未知软件。
“未知软件检测识别方案”过程包括:
a)提取未知软件相同的子行为特征并统计其频率。
b)基于卡方检验理论设定阈值,统计训练样本与特征样本之间的卡方值的均值,作为该软件的检测阈值;
c)卡方检验两个子行为特征频普,并与阈值比较,判断是否为同类软件(同一版权或同一家族)。
由于软件特征选择方法和提取的对象不同,定义的胎记形式也不同,软件特征之间的距离度量方法也不同软件特征类型上,可分为子符串(String),向量(Vector),集合(Set),向量集合(Set ofVectors),树型(Tree)和图型(Graph)。为了使该算法能被普遍接受和应用,对于不同的特征类型,基于相似度度量类内和类间的信息量。给出一种软件胎记特征提取和检测的推广表示形式,如算法2。
算法2胎记特征的提取和检测过程算法源码过程表示如下:
Birthmark extraction process://胎记提取过程
Input:software families S//输入软件集
Output:A selected birthmark B//输出已选出的胎记集合
1)Disassemble and analysis S for candidate feature set F of eachsoftware;
//对每个软件的候选特征集F中的特征进行分析
2)Calculate the information criterion Da and Db based on similaritiesfor each candidate feature f;//对每个候选特征f度量类内Da和类间距离Db信息量
3)Cluster analysis:Select the feature f with the largest EF(f)from F,and add it into B;//聚类分析:从候选特征集合F中选择最大互信息量的特征f,并增加到特征集合B中;
4)If the terminated conditions have not been satisfied,then go to2);//如果未达到结束条件,则跳到步2);
5)Return the feature subset B as the best one,that is birthmarkconsisted of the selected features;//否则,返回特征集合B做为胎记特征;
Birthmark detection process://特征检测过程;
Input:the defined birthmark B of the software and the testingsoftware//输入软件的胎记特征和被测软件
Output:type result of the testing software//输出被测软件识别类型标识
1)Disassemble and analysis the testing software with the same way for{f};//用同样的特征提取方法,提取被测软件的胎记特征;
2)Calculate and compare between the B and the{f}based onsimilarity;//基于相似度拟合比较原软件的胎记特征集B和被测软件提取的特征集合{f}
3)Output the type result.//输出检测识别的类型标记
(e)技术方案效果分析
1、算法效率分析
假如特征数据集T=(F,Pi,Qj)中包含n个样本数据和m个特征,那么候选类f与参考类之间的距离计算的时间复杂度为O(n)。信息评价度量标准J(f)的计算时间复杂度为O(nm)。因此,每选择或组合一个候选类f,算法所需要花费的时间是O(nm2)。算法总共需要循环δ次才终止,因而算法总的时间计算复杂度为O(δnm2)。在算法1中的While循环语句将重复计算类间距离或类内距离,因此可以通过保留已经计算过的距离值以避免重复计算,从而达到提高算法效率的目的。
2、等价语义变换对聚类选择的影响
假定攻击者已知特征选择和提取流程,那么攻击者产生的一系列混淆代码使特征发生较大的改变,产生大量的噪声数据干扰特征提取。设提取的特征是一个n维向量D(x),该向量是由D(x1),D(x2)…D(xk)共k个代码的特征分析得来的。由为表征向量D(xi)映射后的特征值,取那么聚类半径则在攻击时,产生不同的版本,要使每次的等价语义变换(仿真攻击)起到作用,在训练时使聚类半径发生偏移,使聚类中心不断发生改变。用t记录版本变化次数,此过程可迭代T次(1≤t≤T),每次产生的变换位置个数为nt,那么第t次迭代前,特征记为产生nt个攻击点后分别记为有效攻击点n′t,分别记为 那么t次后特征改变为:
存在两种情况,有效语义变换和无效语义变换:
(1)对有效变换满足每次攻击变化对特征产生改变;
(2)对无效变换满足条件:
由此可见,当nt=n′t时,等价语义变换(仿真攻击)效果最好,可记为以下取R为初始半径,值为0。
定理1在等价语义变换(仿真攻击)中,记 若满足则有即攻击后半径不断增大。
证明:攻击后半径不断增大,即存在D(xt)-D(xt-1)>0成立,由于代入上式可得:则存在Nt-1(Mt-1+mt)-Mt-1(Nt-1+nt)>0,同除以Nt-1Mt-1所以可得满足。
3、实验比较
3.1参数设置比较
在该聚类选择算法中有两个参数,分别是聚类的调节系数β和已选类B中的特征个数阈值δ。通过实验确定参数设置对聚类结果的影响。对自定义程序n!和window自带的计事本程序notepad.exe,进行攻击和变换(工具仿真和手动模拟),得到45个等价程序,取5个参考程序,进行聚类分析。改变聚类调节系数,按Δ=0.2递增;特征选择个数的阈值以占原特征总数的百分比递增,取δ={0.3,0.5,0.7,0.9}。则在不同的参数(β,δ)设置下,这两个软件特征10次聚类精度的平均值,统计结果见表1。两个程序的特征集合的聚类精度分别是先变大,再变小,虽然趋势不是直观地按比较变化,但当参数设置接近(0.6,0.7)时,聚类性能最好。
表1不同参数下聚类结果比较
3.2可信性和鲁棒性比较
可信性和鲁棒性是软件胎记的两个主要的评价指标。可信性反映了软件胎记区分两种独立开发的程序的能力;鲁棒性反映了软件胎记在一个程序受到语义保持变换等攻击后,将其正确识别的能力。实验比较特征I(分析n-gram分割的API序列),特征II(单个API频普特征),项目中实例特征III(筛选前的API子行为特征)和特征IV(聚类筛选后的API子行为特征),通过相似度计算比较四类特征集合的可信性和鲁棒性。
取50组不同的PE程序(最大为12MB,最小为25KB,包括桌面应用程序,网络程序,游戏程序,密码算法,用户定义程序等),提取特征I到特征IV,聚类参数设为(β=0.6,δ=0.7),进行相似度计算,如图5(a),横坐标为数据组,纵坐标为不同组特征间的相似度计算值。可以看出不同软件特征,聚类后的特征比聚类前的特征的相似度小,而基于序列的n-gram API特征相似度最大,单个API频率特征次之,说明特征IV的可信性更高;对程序n!进行攻击和变换(工具加上手动模拟),得到45个等价程序,与原程序组成45组对比数据,提取特征I到特征IV,聚类参数设为(0.6,0.7),进行相似度计算,如图5(b)。则对于同类软件,特征IV的相似度最大,序列的n-gram API特征的相似度最小,基于单个API频率和子行为频率结果相近。从实验中可分析聚类后的子行为特征的可信性和鲁棒性总体效果最好。
3.3与同类选择算法比较
为了验证项目提出的基于聚类分析的特征选择算法(feature selection basedon clustering analysis,FSCA)的性能,将FSCA与其它四种典型的选择算法进行比较,它们分别是基于特征间的关联性评估特征的算法CBFS、基于欧氏距离的选择算法Relief、利用对称不确定性的一种典型的启发式序列后向消除方法FSRR和使用信息度量选择重要特征算法CMI_FS。
测试集数据来自于公用的UCI机器学习存储库中的七组数据,这些数据被经常用来比较机器学习和数据挖掘等领域中的学习算法或特征选择算法,选择时兼顾数据不同精度和不同特征类别,和三组软件的API子行为特征,这三组特征数据集分别是同类恶意软件家族样本,Backdoor.Win32.Iroffer.1303(样本来自http:vx.netluxl.org,选择9类,每类60个),Notebook和n!可执行代码样本,等价语义变换样本45个,参照软件样本5个,如表2。
表2特征选择测试数据描述
为了进行公平的实验比较,每种特征选择算法在实验之前对数据进行预处理,模拟实验也都采用10次交叉验证方式验证分类性能,求五种选择算法的平均分类精确度,并进行比较。具体操作是将三种分类器(朴素贝叶斯NBC,最近邻分类1NN,和决策树分类器C4.5),在WeKa平台中测试各数据集上的分类性能进行求和汇总,并取其平均值,不同选择算法分别在数据集上的平均性能,然后再将FSCA的平均性能与其它四种选择算法的平均性能相减,从而得到平均性能的绝对差。最终结果描绘成如图6所示的条状图,其中位于水平线(值为0)上面或下面的条形图分别表示对应的选择算法的平均分类性能与FSCA(项目中算法)相比,要差于或好于FSCA。由图6可看出,FSCA的平均性能在大多数情况下都要优于CBFS、Relief、FSRR和CMI_FS。尽管FSCA在性能方面占有优势,但其效率并非最好。在五种特征选择算法中,FSRR效率最高,FSCA、CBFS和CMI_FS次之,Relief的效率和性能都最低。此外,当原始特征空间维数较高时,CMI_FS的性能比FSCA好;反之,当维数较低时,如二分类特征空间,FSCA的性能要高于其它算法,较适合于胎记特征的选择。
本发明通过软件特征聚类模型构建,发现软件多态时胎记特征模式,确定特征分割粒度对胎记特征选择和聚类精度的影响,约束规则的控制和限定,划分特征隶属关系,约束聚类合并方式,构建最优胎记分析模型。有效度量动态特征间的关系,构造软件特征信息度量函数,构建特征间的信息度量函数,平衡特征选择数据,去除噪声数据,解决数据不平衡引起的偏差问题,解决冗余增长与信息增长的矛盾,目的使胎记总体信息最优,又要减少特征冗余。解决特征拟合度比较中阈值限定问题,研究不同特征类型:子符串、向量、集合、树型和图型等拟合度度量和推广,使聚类选择结果不受特征类型的影响,解决由数值结果统一的归一化方案,提高识别技术的实用性和广泛性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法采用约束限定聚类分析,基于互信息来度量特征同类和类间距离;在软件特征选择时,先对软件进行等价语义变换,再进行特征分割,结合程序切片技术对特征进行限定群的分类,对分割的特征碎片集构造增益函数和惩罚函数评价,基于不同构造群的层次聚类选择,筛选出同类中的不变特征并剔除不同类中的普遍特征。
2.如权利要求1所述的约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法采用特征群约束限定的层次聚类分析软件特征,通过信息度量特征的类内和类间距离,以同类和异类软件特征构建信息增益函数和惩罚函数,确定胎记特征模式,选择出具有较高类区分信息和最小冗余的软件胎记特征。
3.如权利要求2所述的约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法具体包括:
步骤一,对样本数据集T预处理,并初始化相关参数;
步骤二,根据互信息计算每个候选特征f与分类类别之间的相关程度I(f;C),评估候选类f的类间距离Lb;候选类f的I(f|P)值最大,加入到选择类B中;计算每个候选类f的类间距离Lb(f|P0;Pi,Qj)和类内距离La(f;B),选择具有最大度量标准值J(f)的候选类f,与选择类B进行合并,组合成新的选择类;
步骤三,更新候选类F的类间距离Lb(f)和类内距离La(f),合并聚类一直循环迭代,直到已选类B中的特征个数超过预先设定的阈值时结束。
4.如权利要求2所述的约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法的特征集确定方法包括:
(1)利用变换工具进行实验对同一软件P0进行不同等价语义变换,Pi=SPT(P0),得到P0的多样性表现形式Pi={p1,p2,…,pi};定义Pi是原软件P0的等价软件;
(2)应用动态程序切片理论来划分程序片段,对静态特征提取理论的扩展和改进;基于数据流切片和依赖图切片,分析软件运行时特征碎片的动态描述,结合程序语义对程序切片;
(3)结合变长P-gram和模糊规则,对切片而成的特征集分割成特征单元。
5.如权利要求2所述的约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法的信息度量用于度量特征单元之间的关系,包括胎记特征与等价类之间的距离和参照类间的距离;
原软件P0中提取的特征f,测量与类别之间的相关程度,算与等价类Pi和参考类Qj的之间的互信息MI(f,C)被用来表示类间距离Db
其中为f与同类软件距离或相似度均值作为增益函数,为f与不同类软件距离或相似度均值作为惩罚函数;
给定两个特征f和b;
候选特征f与选择类B之间的距离通过对所有已选特征b的距离求和得到:
Da(f)=∑b∈B CF(f;b);
选择类B的类内距离Da(B)拟通过类似方式获得;候选类f不断地与选择类B进行合并,类内距离Da(B)按以下形式累加计算:
Da(f;B)=Da(B)+Da(f);
特征聚类分析过程的每个候选类,使用的评价函数:
6.如权利要求2所述的约束限定聚类和信息度量软件胎记特征选择方法,其特征在于,所述约束限定聚类和信息度量软件胎记特征选择方法在软件识别判断时基于相似度拟合的技术推广与识别;
软件特征类型可分为子符串,向量,集合,向量集合,树型和图型;软件特征因类型不同,选择和提取的方法不同,定义的胎记形式也不同;对于不同的特征类型,通过相似度度量的定量结果,对不同类型特征进行算法泛化;目的是对软件胎记特征提取、选择和识别过程的泛化和抗议,步骤包括:
(1)通过衡量与胎记特征的拟合度来判别软件;
(2)在当未知软件进行检测时,通过阈值确定和拟合度检验,计算特征轮廓与已知软件胎记特征频谱的拟合度。
7.一种应用权利要求1~6任意一项所述约束限定聚类和信息度量软件胎记特征选择方法的计算机。
8.一种应用权利要求1~6任意一项所述约束限定聚类和信息度量软件胎记特征选择方法的计算机程序。
CN201711253690.1A 2017-12-02 2017-12-02 约束限定聚类和信息度量软件胎记特征选择方法、计算机 Expired - Fee Related CN108170467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711253690.1A CN108170467B (zh) 2017-12-02 2017-12-02 约束限定聚类和信息度量软件胎记特征选择方法、计算机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711253690.1A CN108170467B (zh) 2017-12-02 2017-12-02 约束限定聚类和信息度量软件胎记特征选择方法、计算机

Publications (2)

Publication Number Publication Date
CN108170467A true CN108170467A (zh) 2018-06-15
CN108170467B CN108170467B (zh) 2021-04-13

Family

ID=62524285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711253690.1A Expired - Fee Related CN108170467B (zh) 2017-12-02 2017-12-02 约束限定聚类和信息度量软件胎记特征选择方法、计算机

Country Status (1)

Country Link
CN (1) CN108170467B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618809A (zh) * 2019-08-08 2019-12-27 北京大学 一种前端网页输入约束提取方法和装置
CN110826062A (zh) * 2019-10-18 2020-02-21 北京天融信网络安全技术有限公司 恶意软件的检测方法及装置
CN110990058A (zh) * 2019-11-28 2020-04-10 中国人民解放军战略支援部队信息工程大学 软件相似性度量方法及装置
CN111079145A (zh) * 2019-12-04 2020-04-28 中南大学 基于图处理的恶意程序检测方法
CN116126680A (zh) * 2022-11-23 2023-05-16 北京交通大学 一种软件系统配置错误诊断方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150051508A (ko) * 2013-11-04 2015-05-13 단국대학교 산학협력단 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법 및 그 장치
CN106991446A (zh) * 2017-04-06 2017-07-28 哈尔滨理工大学 一种互信息的组策略嵌入式动态特征选择方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150051508A (ko) * 2013-11-04 2015-05-13 단국대학교 산학협력단 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법 및 그 장치
CN106991446A (zh) * 2017-04-06 2017-07-28 哈尔滨理工大学 一种互信息的组策略嵌入式动态特征选择方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
罗养霞等: "基于数据依赖特征的软件识别", 《吉林大学学报》 *
罗养霞等: "基于聚类分析的软件胎记特征选择", 《电子学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618809A (zh) * 2019-08-08 2019-12-27 北京大学 一种前端网页输入约束提取方法和装置
CN110826062A (zh) * 2019-10-18 2020-02-21 北京天融信网络安全技术有限公司 恶意软件的检测方法及装置
CN110990058A (zh) * 2019-11-28 2020-04-10 中国人民解放军战略支援部队信息工程大学 软件相似性度量方法及装置
CN110990058B (zh) * 2019-11-28 2020-08-21 中国人民解放军战略支援部队信息工程大学 软件相似性度量方法及装置
CN111079145A (zh) * 2019-12-04 2020-04-28 中南大学 基于图处理的恶意程序检测方法
CN111079145B (zh) * 2019-12-04 2023-04-07 中南大学 基于图处理的恶意程序检测方法
CN116126680A (zh) * 2022-11-23 2023-05-16 北京交通大学 一种软件系统配置错误诊断方法和系统
CN116126680B (zh) * 2022-11-23 2023-07-21 北京交通大学 一种软件系统配置错误诊断方法和系统

Also Published As

Publication number Publication date
CN108170467B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN108170467A (zh) 约束限定聚类和信息度量软件胎记特征选择方法、计算机
Hashemi et al. Graph embedding as a new approach for unknown malware detection
Cesare et al. Malwise—an effective and efficient classification system for packed and polymorphic malware
Tian et al. BVDetector: A program slice-based binary code vulnerability intelligent detection system
Chen et al. Achieving accuracy and scalability simultaneously in detecting application clones on android markets
Deshotels et al. Droidlegacy: Automated familial classification of android malware
Hu et al. Large-scale malware indexing using function-call graphs
Shang et al. Android malware detection method based on naive Bayes and permission correlation algorithm
US7873947B1 (en) Phylogeny generation
CN108268777A (zh) 一种利用补丁信息进行未知漏洞发现的相似性检测方法
Ghiasi et al. Dynamic VSA: a framework for malware detection based on register contents
Zhiwu et al. Android malware family classification and characterization using CFG and DFG
Kakisim et al. Metamorphic malware identification using engine-specific patterns based on co-opcode graphs
CN111382438B (zh) 基于多尺度卷积神经网络的恶意软件检测方法
WO2021167483A1 (ru) Способ и система выявления вредоносных файлов в неизолированной среде
CN108959930A (zh) 恶意pdf检测方法、系统、数据存储设备和检测程序
CN116975881A (zh) 一种基于llvm的漏洞细粒度定位方法
Fazlali et al. Metamorphic malware detection using opcode frequency rate and decision tree
Zhang et al. Slowing down the aging of learning-based malware detectors with api knowledge
Kaur et al. Unmasking Android obfuscation tools using spatial analysis
Pimenta et al. Androidgyny: Reviewing clustering techniques for Android malware family classification
Lee et al. Android malware dataset construction methodology to minimize bias–variance​ tradeoff
CN101604365B (zh) 确定计算机恶意程序样本家族数的系统和方法
Yuan et al. Enhancing deep learning-based vulnerability detection by building behavior graph model
Haojie et al. Vulmg: A static detection solution for source code vulnerabilities based on code property graph and graph attention network

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210413