CN106503559B - 特征的提取方法和装置 - Google Patents

特征的提取方法和装置 Download PDF

Info

Publication number
CN106503559B
CN106503559B CN201611041703.4A CN201611041703A CN106503559B CN 106503559 B CN106503559 B CN 106503559B CN 201611041703 A CN201611041703 A CN 201611041703A CN 106503559 B CN106503559 B CN 106503559B
Authority
CN
China
Prior art keywords
target
keyword
malware
phrase
initial key
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
CN201611041703.4A
Other languages
English (en)
Other versions
CN106503559A (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.)
Hangzhou Normal University
Original Assignee
Hangzhou Normal University
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 Hangzhou Normal University filed Critical Hangzhou Normal University
Priority to CN201611041703.4A priority Critical patent/CN106503559B/zh
Publication of CN106503559A publication Critical patent/CN106503559A/zh
Application granted granted Critical
Publication of CN106503559B publication Critical patent/CN106503559B/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/561Virus type analysis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种特征的提取方法和装置,涉及特征提取的技术领域,包括:对至少一个恶意软件中的每个恶意软件的源文件和预设文件进行扫描,得到每个恶意软件的初始关键词组,以及初始关键词组中每个初始关键词在每个恶意软件中的出现频率;根据出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;根据目标距离矩阵中记录的相似距离对初始关键词组进行筛选,筛选得到目标关键词组,其中,目标关键词组中任意两个关键词之间的相似距离满足预设分类值;确定目标关键词组为每个恶意软件的特征信息,解决了现有技术中在对恶意软件进行查杀时,查杀不全面的技术问题。

Description

特征的提取方法和装置
技术领域
本发明计算机的技术领域,尤其是涉及一种特征的提取方法和装置。
背景技术
随着互联网时代的到来,智能手机在世界上的普及率也越来越高,智能手机的系统主要包括Android和IOS系统,其中,Android智能手机操作系统则凭借其优良的性能,获得了巨大的市场份额。可随着智能手机的发展,越来越多的手机恶意软件也出现在了市场当中,危害用户的信息安全。各大安全实验室也渐渐把手机安全保护作为重点研究,但如何有效的查杀新型恶意软件及恶意软件的变种一直是个难题。
现有技术中,在查杀传统恶意软件时,主要通过特征码提取方法确定恶意软件,进而,对该恶意软件进行查杀,其中,上述特征码提取方法主要是基于程序二进制文本。基于程序二进制文本的特征提取方法,只能对传统的恶意软件进行查杀,无法侦测新型恶意软件和变异恶意软件。
发明内容
本发明的目的在于提供一种特征的提取方法和装置,以缓解现有技术中在对恶意软件进行查杀时,查杀不全面的技术问题。
根据本发明实施例的一个方面,提供了一种特征的提取方法,包括:对至少一个恶意软件中的每个恶意软件的源文件和预设文件进行扫描,得到每个所述恶意软件的初始关键词组,以及所述初始关键词组中每个初始关键词在所述每个恶意软件中的出现频率;根据所述出现频率计算所述初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组,其中,所述目标关键词组中任意两个关键词之间的相似距离满足预设分类值;确定所述目标关键词组为所述每个恶意软件的特征信息。
进一步地,根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组包括:以所述初始关键词组中的每个关键词为根节点,对所述根节点进行优先搜索操作,得到目标搜索结果,其中,所述目标搜索结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标搜索结果中任意两个关键词之间相互关联;在所述目标搜索结果查找目标关键词,组成所述目标关键词组,其中,所述目标搜索结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标搜索结果中的关键词属于相同的类别。
进一步地,根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组还包括:通过支持向量机算法对所述初始关键词组进行学习处理,得到目标学习结果,其中,所述目标学习结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标学习结果中任意两个关键词之间相互关联;在所述目标学习结果查找目标关键词,组成所述目标关键词组,其中,所述目标学习结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标学习结果中的关键词属于相同的类别。
进一步地,根据所述出现频率计算初始关键词组中任意两个关键词之间的相似距离包括:通过Google距离计算公式计算所述初始关键词组中任意两个关键词之间的相似距离,得到所述目标距离矩阵,其中,fC1表示初始关键词C1在所述每个恶意软件中的出现频率,fC2表示初始关键词C2在所述每个恶意软件中的出现频率,f(C1,C2)表示在所述每个恶意软件中同时出现所述初始关键词C1和所述初始关键词C2的频率。
进一步地,所述预设文件包括功能配置文件,在对至少一个恶意软件的源文件和预设文件进行扫描之前,所述方法还包括:通过开源软件对每个所述恶意软件进行反编译,得到所述每个恶意软件的功能配置文件和所述每个恶意软件的源文件。
进一步地,在确定所述目标关键词组为所述每个恶意软件的特征信息之后,所述方法还包括:获取非恶意软件的多组关键词分类结果;将每个所述目标关键词与所述多组关键词分类结果中相同类型的分类结果进行对比,得到对比结果;根据所述对比结果确定每个所述目标关键词组的真实性。
进一步地,在确定所述目标关键词组为所述每个恶意软件的特征信息之后,所述方法还包括:获取至少一个待检测的软件;通过提取到的所述特征信息对所述至少一个待检测软件进行分析,以确定所述至少一个待检测软件是否为恶意软件。
根据本发明实施例的一个方面,提供了一种一种特征的提取装置,包括:扫描单元,用于对至少一个恶意软件中每个恶意软件的源文件和预设文件进行扫描,得到所述每个恶意软件的初始关键词组,以及所述初始关键词组中每个初始关键词在所述每个恶意软件中的出现频率;计算单元,用于根据所述出现频率计算所述初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;筛选单元,用于根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组,其中,所述目标关键词组中任意两个关键词之间的相似距离满足预设分类值;第一确定单元,用于确定所述目标关键词组为所述每个恶意软件的特征信息。
进一步地,所述筛选单元包括:第一处理模块,用于以所述初始关键词组中的每个关键词为根节点,对所述根节点进行优先搜索操作,得到目标搜索结果,其中,所述目标搜索结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标搜索结果中任意两个关键词之间相互关联;第一查找模块,用于在所述目标搜索结果查找目标关键词,组成所述目标关键词组,其中,所述目标搜索结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标搜索结果中的关键词属于相同的类别。
进一步地,所述筛选单元还包括:第二处理模块,用于通过支持向量机算法对所述初始关键词组进行学习处理,得到目标学习结果,其中,所述目标学习结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标学习结果中任意两个关键词之间相互关联;第二查找模块,用于在所述目标学习结果查找目标关键词,组成所述目标关键词组,其中,所述目标学习结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标学习结果中的关键词属于相同的类别。
在本发明实施例中,首先对恶意软件的源文件和功能配置文件进行扫描,以得到每个恶意软件的初始关键词组及其中每个初始关键词在预设文件中的出现频率;然后,根据出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;接下来,根据相似距离对初始关键词组进行筛选,筛选得到满足要求的关键词,得到目标关键词组;最后,确定目标关键词组即为该类恶意软件的特征信息。在本发明实施例中,通过计算恶意软件中关键词的相似距离,不仅能够确定传统的恶意软件,还能够识别变异的恶意软件和新型恶意软件,相对于现有技术中的特征提取方法,达到了全面检测恶意软件的目的,进而缓解了现有技术中在对恶意软件进行查杀时,查杀不全面的技术问题,从而实现了提高了对恶意软件检测的全面性的技术效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种特征的提取方法的流程图;
图2是根据本发明实施例的一种关键词类型调用概率对比图;
图3是根据本发明实施例的一种特征距离图;
图4是根据本发明实施例的一种可选地特征的提取方法的流程图;
图5是根据本发明实施例的一种特征的提取装置的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
根据本发明实施例,提供了一种特征的提取方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种特征的提取方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,对至少一个恶意软件中的每个恶意软件的源文件和预设文件进行扫描,得到每个恶意软件的初始关键词组,以及初始关键词组中每个初始关键词在每个恶意软件中的出现频率。
在本发明实施例中,首先,获取恶意软件APK(AndroidPackage)的java源代码(即上述源文件)和预设文件,其中,预设文件包括java自身携带的类库文件和AndroidManifest.xml文件(即功能配置文件);源文件可以包括技术人员手动编写的类文件。然后,通过改进的字符串匹配算法对java源代码和预设文件(例如,类库文件和AndroidManifest.xml文件)进行扫描。具体地,可以通过KMP算法对java源代码、类库文件和AndroidManifest.xml文件进行扫描,得到恶意软件的初始关键词组,以及在该恶意软件中的出现频率。其中,恶意软件的初始关键词组表示该恶意软件在执行相应地的程序时所执行的功能。
需要说明的是,在本发明实施例中,在对多个不同类型的恶意软件进行扫描时,每个恶意软件均得到一组初始关键词组。
步骤S104,根据出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵。
在本发明实施例中,在扫描得到每个初始关键词所处的位置和在该位置的出现频率之后,就可以计算初始关键词组中任意两个关键词之间的相似距离,在计算该初始关键词组中任意两个关键词的相似距离之后,将得到一个n×n的矩阵,即目标距离矩阵。具体地,如果两个关键词之间的相似距离越小,则表示该两个关键词之间的相似度越高。
步骤S106,根据目标距离矩阵中记录的相似距离对初始关键词组进行筛选,筛选得到目标关键词组,其中,目标关键词组中任意两个关键词之间的相似距离满足预设分类值。
在本发明实施例中,在得到目标距离矩阵之后,可以根据目标距离矩阵中的相似距离对初始关键词组进行筛选,得到目标关键词组。其中,筛选之后,目标关键词组中任意两个关键词之间的相似距离满足预设分类值,例如,满足0.28。也就是说,目标关键词组中任意两个关键词之间的相似距离小于或者等于0.28。
具体地,由于在对恶意软件的java源代码、类库文件和AndroidManifest.xml文件进行扫描之后,得到的初始关键词组中包括用于执行恶意操作的关键词和不执行恶意操作的关键词。由于在特征提取的过程中,需要将初始关键词中执行恶意操作的关键词筛选出来,组成目标关键词组。在筛选的过程中,筛选的基准为上述预设分类值,优选地,该预设分类值选取为0.28。
步骤S108,确定目标关键词组为每个恶意软件的特征信息。
在本发明实施例中,在筛选得到上述目标关键词组之后,就可以确定该目标关键词组即为该恶意软件的特征信息。
对于多个类型的恶意软件,在进行特征提取的过程中,均采用上述步骤S102至步骤S108中的描述进行提取。
通过上述方法进行特征提取之后,就可以根据提取到的特征信息对检测的疑似恶意软件进行判断,以判断该疑似恶意软件是否为恶意软件。通过该方法不仅能够检测传统的恶意软件,对于新型恶意软件和变异恶意软件均能够准确进行检测。
在本发明实施例中,首先对恶意软件的源文件和功能配置文件进行扫描,以得到每个类型的恶意软件的初始关键词组及其中每个初始关键词在预设文件中所处的位置和在位置的出现频率;然后,根据出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;接下来,根据相似距离对初始关键词组进行筛选,筛选得到满足要求的关键词,得到目标关键词组;最后,确定目标关键词组即为该类恶意软件的特征信息。在本发明实施例中,通过计算恶意软件中关键词的相似距离,不仅能够确定传统的恶意软件,还能够识别变异的恶意软件和新型恶意软件,相对于现有技术中的特征提取方法,达到了全面检测恶意软件的目的,进而缓解了现有技术中在对恶意软件进行查杀时,查杀不全面的技术问题,从而实现了提高了对恶意软件检测的全面性的技术效果。
在本发明的一个可选实施方式中,根据目标距离矩阵中记录的相似距离对关键词组进行筛选,筛选得到目标关键词组包括如下步骤:
步骤S1061,以初始关键词组中的每个关键词为根节点,对根节点进行优先搜索操作,得到目标搜索结果,其中,目标搜索结果中任意两个关键词之间的相似距离小于或者等于预设分类值,并且目标搜索结果中任意两个关键词之间相互关联;
步骤S1062,在目标搜索结果查找目标关键词,组成目标关键词组,其中,目标搜索结果中包含至少一个与目标关键词的相似距离小于预设分类值的关键词,并且,目标关键词和目标搜索结果中的关键词属于相同的类别。
在对初始关键词组进行筛选时,筛选的方法有很多种,在本发明实施例中,优选使用优先搜索算法和支持向量机算法对初始关键词组进行筛选,得到目标关键词组,其中,优选搜索算法包括深度优先算法,广度优先算法等多种优先算法,在本发明实施例中,并不限定采用的优先算法的类型。
具体地,上述步骤S1061和步骤S1062中描述的方案即为通过深度优先算法对初始关键词组进行筛选。下述步骤S1063和步骤S1064即为通过支持向量机对初始关键词组进行筛选。
在通过深度优先算法对初始关键词组进行筛选时,使用步骤S104中得到的目标距离矩阵中的相似距离对初始关键词进行分类筛选。具体地,使用优先搜索算法对步骤S104中所得到的目标距离矩阵中的每个关键词都作为根节点进行深度优先搜索,把和各个节点之间相似度高的关键词记录在一起,得到目标搜索结果。即,将任意两个关键词中相似距离满足预设分类值(例如,0.28)的关键词记录在一起,得到目标搜索结果。在得到目标搜索结果之后,还可以将目标搜索结果中查找目标关键词,保证查找到的所有目标关键词在目标搜索结果中均有其他关键词与其相似距离等于或小于预设分类值(例如,0.28),其中,目标关键词和目标搜索结果中的关键词是一个类别。在查找到目标关键词之后,就可以将查找到的目标关键词组成目标关键词组。这样就将相似距离小的,即相似度高的关键词归为一类,作为一个特征信息进行存储。
在本发明另一个可选实施方式中,根据目标距离矩阵对关键词组进行筛选,筛选得到目标关键词组还包括如下步骤:
步骤S1063,通过支持向量机算法对初始关键词组进行学习处理,得到目标学习结果,其中,目标学习结果中任意两个关键词之间的相似距离小于或者等于预设分类值,并且目标学习结果中任意两个关键词之间相互关联;
步骤S1064,在目标学习结果查找目标关键词,组成目标关键词组,其中,目标学习结果中包含至少一个与目标关键词的相似距离小于预设分类值的关键词,并且,目标关键词和目标学习结果中的关键词属于相同的类别。
在本发明实施例中,除了上述步骤S1061和步骤S1062中描述的深度优先算法之外,还可以通过支持向量机对初始关键词组进行学习。初始关键词组通过支持向量机学习之后,将分类两类,一类是相似距离大于预设分类值,另一类是相似距离小于或者等于预设分类值。也就是说,通过支持向量机对初始关键词组进行学习之后,就可以将相似距离小于或者等于预设分类值的关键词筛选出来,构成目标学习结果。
在得到目标学习结果之后,还可以将目标学习结果中查找目标关键词,保证查找到的所有目标关键词在目标学习结果中均有其他关键词与其相似距离等于或小于预设分类值(例如,0.28),其中,目标关键词和目标学习结果中的关键词是一个类别。在查找到目标关键词之后,就可以将查找到的目标关键词组成目标关键词组。这样就将相似距离小的,即相似度高的关键词归为一类,作为一个特征信息进行存储。
在本发明的另一个可选实施方式中,根据出现频率计算初始关键词组中任意两个关键词之间的相似距离包括步骤S1041:
步骤S1041,通过Google距离计算公式计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵,其中,fC1表示初始关键词C1在每个恶意软件中的出现频率,fC2表示初始关键词C2在每个恶意软件中的出现频率,f(C1,C2)表示在每个恶意软件中同时出现初始关键词C1和初始关键词C2的频率。
具体地,计算任意两个关键词之间的相似距离的方式有很多种,在本发明实施例中,优选通过Google距离算法计算出两两关键词之间的相似距离。
通过Google距离算法计算出两两关键词之间的相似距离描述如下:通过公式计算初始关键词组中任意两个关键词之间的相似距离,其中,在公式之中,fC1表示初始关键词C1在每个恶意软件中出现的数量,fC2表示初始关键词C2在每个恶意软件中出现的数量,f(C1,C2)表示在搜索中得到的同时有初始关键词C1和初始关键词C2返回的共同结果数量,N代表了总的搜索数目,lg为10为底的自然对数函数,NGD(C1,C2)即为初始关键词C1和初始关键词C2之间的相似距离。
由于本发明实施例中采用的Google距离是基于Web文本的词汇的共同出现频率来计算的,这同在APK中寻找关联信息较高的恶意软件关键词的工作作用相似。因此,可以将每个单独的APK文件看作一个文本的集合,利用谷歌距离将某一类具有破坏作用的关键词集合从文本之中提取出来。Android程序设计语言在一开始设计的时候,单独的程序语句,如API调用,设置工作权限等操作必然是没有危害的。而一个恶意软件对用户造成危害,其必然是数个正常的语句组合起来才造成了对用户权益的破坏。本发明实施例提供的特征提取方法正是在定性的恶意软件中抽取这样的关键词的集合,构成一个恶意软件的特征样本,用来对于其他的APK进行检测。
在本发明的另一个可选实施方式中,预设文件包括功能配置文件,在对至少一个恶意软件的源文件和预设文件进行扫描之前,方法还包括如下步骤:
步骤S1,通过开源软件对每个恶意软件进行反编译,得到每个恶意软件的功能配置文件和每个恶意软件的源文件。
在本发明实施例中,首先将获取到的恶意软件的APK文件重命名为.RAR;然后对该APK文件进行解压,得到android功能配置文件AndroidManifest.xml。具体地,对该APK文件使用开源软件AXMLPrinter2.jar,进行以下批处理操作即可得到上述功能配置文件:"java-jar"+properties.getProperty("user.dir")+"\\AXMLPrinter2.jar"+path+"AndroidManifest.xml>"+path+"AndroidManifest.txt",其中,按照上述操作得到的功能配置文件为可操作文本格式。
接下来,在解压的APK文件夹包含源码二进制文件classes.dex,对源码二进制文件使用开源软件dex2jar进行反编译,以得到JAR文件。具体地,可以通过调用以下语句"cmd/c start"+properties.getProperty("user.dir")+"\\dex2jar-0.0.9.15\\"+"dex2jar"+".bat"+""+path+"classes.dex"进行反编译。通过上述方法得到的JAR文件并不是源码,因此还需要使用开源软件jadnt158对JAR文件进行还原,最后,即可获得该APK文件的java源码。
在本发明的另一个可选实施方式中,在确定目标关键词组为每个恶意软件的特征信息之后,方法还包括如下步骤:
步骤S2,获取非恶意软件的多组关键词分类结果;
步骤S3,将每个目标关键词与多组关键词分类结果中相同类型的分类结果进行对比,得到对比结果;
步骤S4,根据对比结果确定每个目标关键词的真实性。
具体地,在本发明实施例中,除了对恶意软件执行上述步骤S102至步骤S108中描述的方案之外,还可以对非恶意软件(即,正常软件)执行上述步骤,得到非恶意软件的关键词分类结果。在得到多组关键词分类结果之后,可以将目标关键组与多组关键词分类结果中相同类型的分类结果进行对比,以确定该目标关键词组的正确性。一般情况下,非恶意软件中任意两个关键词之间的相似距离会大于一定值,例如,大于0.28。
例如,非恶意软件中包括关键词1、关键词2和关键词3,恶意软件中同样包含关键词1、关键词2和关键词3。正常情况下,非恶意软件中,关键词和关键词2之间的相似距离应该大于恶意软件中关键词和关键词2之间的相似距离。因此,在本发明实施例中,通过将目标关键词组与多组关键词分类结果进行对比,能够确定目标关键词的真实性。
在本发明的另一个可选实施方式中,在确定目标关键词组为每个恶意软件的特征信息之后,方法还包括如下步骤:
步骤S5,获取至少一个待检测的软件;
步骤S6,通过提取到的特征信息对至少一个待检测软件进行分析,以确定至少一个待检测软件是否为恶意软件。
在本发明实施例中,在提取多类型的恶意软件的特征信息之后,就可以通过该特征信息对待检测的软件进行检测,以确定待检测的软件是否为恶意软件。
需要说明的是,在本发明实施例中,在通过特征信息对至少一个待检测软件进行检测之后,检测结果包括检测成功和检测失败,其中,检测成功指能够确定出该待检测软件是非恶意软件,或者,是恶意软件;检测失败指不能够确定出该软件是否为恶意软件或非恶意软件。一般情况下,如果检测失败,则表明该待检测软件为新型恶意软件,或者,该待检测软件发生了变异。在此情况下,为了丰富特征信息的样本库,在本发明实施例中,可以按照上述步骤S102至步骤S108中的描述对检测失败的待检测软件进行处理,以得到该新型恶意软件或者变异恶意软件的特征信息。
进一步需要说明的是,上述至少一个待检测的软件可以同时为多个不同类型的疑似软件,还可以同时为多个相同类型的疑似恶意软件。
在丰富上述特征信息的样本库之后,在后续的检测中,就能够准确地检测出新型恶意软件或者变异恶意软件。
图2所示的为一种关键词类型调用概率对比图。从图2中我们可以发现,对于窃取用户隐私信息的API,例如,连通网络的INTERNET类API,读取手机联系人的READ_CONTACTS类API和读取手机状态的READ_PHONE_STATE类API在恶意软件的调用概率都比正常APK高出1倍。然而,有一些API调用在正常软件中几乎没有,但是,在恶意软件中使用频率很高,例如,安装新软件的INSTALL_PACKAGES类,以及发送短信的SEND_SMS类。其中,INSTALL_PACKAGES可以通过后台在用户的手机上安装其他恶意流氓软件,而SEND_SMS则可以通过发送信息耗费用户话费甚至在无网情况下远程发送用户信息。WRITE_EXTERNAL_STORAGE读写手机存储也是恶意软件最常用的攻击手段之一,可以用来任意更改用户数据以及窃取信息。
需要说明的是,由于在通用的android.view和android.graphics这两个类别中,恶意软件和正常软件的区别并不大,因此,在对比分类时,可以把它们在自己的特征集合中去除。另外,线程Handler类API在恶意软件中的调用概率也远远大于正常软件,一般恶意软件都同时开启多个线程,侵犯用户权益。
图3为本发明实施例中一种特征距离图,其中,特征距离即为上述相似距离。在该特征距离图中,选取了具有攻击手机用户网络流量恶意软件的关键词特征集合。图3中,数字越小代表相似度越高,相似距离越接近。
通过图3中所示的特征距离可以分析出该类型的恶意软件攻击用户的大致过程。具体地,首先通过WRITE_SETTINGS和WRITE_APN_SETTINGS读取用户手机系统信息和网络GPRS接入点设置;然后,通过MODIFY_PHONE_STATE修改手机状态;接下来,通过CHANGE_NETWORK_STATE修改手机网络状态,并通过CHANGE_WIFI_STATE修改手机WIFI状态,来达到连接网络的目的;进一步地,通过BROADCAST_WAP_PUSH给用户推送垃圾广告,甚至通过PROCESS_OUTGOING_CALLS远程拨打电话。同样地,在本发明实施例中,通过上述步骤提取恶意软件的特征信息就可以知道在Android手机恶意软件的主要攻击手段和攻击渠道,这对恶意软件的预防和预测有较好的帮助。
图4是根据本发明实施例的一种可选地特征的提取方法的流程图,如图4所示,该方法包括如下步骤:
步骤S4011,获取正常软件样本;步骤S4012,获取恶意软件样本;具体地,在本发明实施例中,获取到的正常软件的样本数量至少为一个,获取到的恶意软件的样本数量同样至少为一个。
步骤S4021,对正常软件样本的APK进行反编译;步骤S4022,对恶意软件样本的APK进行反编译;具体地,可以通过上述步骤S1中描述的方法对正常软件样本的APK和恶意软件样本的APK进行反编译,得到正常软件样本的源码和功能配置文件,以及恶意软件样本的源码和功能配置文件。
步骤S4031,统计正常软件的初始关键词组1;步骤S4032,统计恶意软件的初始关键词组2;具体地,在本发明实施例中,可以通过KMP匹配算法分别对每个正常软件样本的源码和功能配置文件进行扫描,得到初始关键词组1,以及可以通过KMP匹配算法分别对每个恶意软件样本的源码和功能配置文件进行扫描,得到初始关键词组2。
步骤S4041,计算初始关键词组1中任意两个关键词之间的相似距离1;步骤S4042,计算关初始键词组2中任意两个关键词之间的相似距离2;具体地,在本发明实施例中,可以通过Google距离算法计算初始关键词组1中任意两个关键词之间的相似距离1,得到目标距离矩阵1;以及通过Google距离算法计算初始关键词组2中任意两个关键词之间的相似距离2,得到目标距离矩阵2。
步骤S4051,根据相似距离1对初始关键词组1进行分类,得到特征信息1;步骤S4052,根据相似距离2对初始关键词组2进行分类,得到特征信息2;具体地,在本发明实施例中,可以通过上述步骤S1061和步骤S1062,或者,通过上述步骤S1064和步骤S1064中描述的方案对初始关键词组1和初始关键词组2进行分类,得到目标关键词组1和目标关键词组2,其中,目标关键词组1即为特征信息1,目标关键词组2即为特征信息2。
步骤S406,将特征信息1和特征信息2进行对比;具体地,可以将特征信息1和特征信息2进行对比,以确定特征信息2的真实性。
步骤S407,去除特征信息2中的无效关键词;具体地,在本发明实施例中,在将特征信息1和特征信息2进行对比之后,可以根据对比结果将特征信息2中无效的关键词删除。需要说明的是,在将特征信息1和特征信息2进行对比时,一般是将同类型的正常软件和恶意软件进行对比。
步骤S408,投入待检测的软件;具体地,在执行上述步骤S407之后,就可以通过得到的特征信息2对待检测的软件进行检测,以检测该待检测的软件是否为恶意软件。
步骤S409,判断对待检测的软件的检测是否成功,其中,如果判断出成功,则返回执行步骤步骤S408,如果判断出不成功,则返回执行步骤S4032。具体地,如果在对待检测的软件检测之后,检测结果为简称成功,即可以确定出该待检测的软件是正常软件,还是恶意软件,此时,可以返回执行步骤S408,即检测下一个待检测的软件。如果在对待检测的软件之后,检测结果为检测失败,即不能确定出该待检测的软件是正常软件,还是恶意软件,此时,可以初步确定该待检测的软件为新型恶意软件,或者为变异的恶意软件,此时,可以返回执行步骤S4021,即重新对该待检测的软件进行特征提取。并通过目标学习算法,例如支持向量机,对该特征信息进行学习,以使支持向量机记录下该变异恶意软件或者新型恶意软件的特征信息。进而,在后续的检测中,就能够准确地检测出新型恶意软件或者变异恶意软件。
本发明实施例,提出了一种特征的提取方法,具体为一种基于相似度的安卓恶意软件特征提取方法。该方法通过使用谷歌距离计算源码中特有的信息,例如,API调用,安卓权限和常用参数之间的相似度;然后将其按照相似度进行分类;接下来,还可以同正常软件中的关键词作对比实验,得到安卓恶意软件的特征。进一步地,在本发明实施例中,还可以通过SVM向量机对特征信息的集合进行机器学习,使该方法获得可以不断容纳新型软件病毒样本的功能。
本发明实施例还提供了一种特征的提取装置,该特征的提取装置主要用于执行本发明实施例上述内容所提供的特征的提取方法,以下对本发明实施例提供的特征的提取装置做具体介绍。
图5是根据本发明实施例的一种特征的提取装置的示意图,如图5所示,该特征的提取装置主要包括扫描单元51、计算单元52、筛选单元53和第一确定单元54,其中:
扫描单元,用于扫描单元,用于对至少一个恶意软件中每个恶意软件的源文件和预设文件进行扫描,得到每个恶意软件的初始关键词组,以及初始关键词组中每个初始关键词在每个恶意软件中的出现频率。
计算单元,用于根据所述出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵。
筛选单元,用于根据目标距离矩阵中记录的相似距离对初始关键词组进行筛选,筛选得到目标关键词组,其中,目标关键词组中任意两个关键词之间的相似距离满足预设分类值。
第一确定单元,用于确定目标关键词组为每个恶意软件的特征信息。
在本发明实施例中,在筛选得到上述目标关键词组之后,就可以确定该目标关键词组即为该类恶意软件的特征信息。
在本发明实施例中,首先对恶意软件的源文件和功能配置文件进行扫描,以得到每个类型的恶意软件的初始关键词组及其中每个初始关键词在预设文件和源文件中的出现频率;然后,根据出现频率计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;接下来,根据相似距离对初始关键词组进行筛选,筛选得到满足要求的关键词,得到目标关键词组;最后,确定目标关键词组即为该类恶意软件的特征信息。在本发明实施例中,通过计算恶意软件中关键词的相似距离,不仅能够确定传统的恶意软件,还能够识别变异的恶意软件和新型恶意软件,相对于现有技术中的特征提取方法,达到了全面检测恶意软件的目的,进而缓解了现有技术中在对恶意软件进行查杀时,查杀不全面的技术问题,从而实现了提高了对恶意软件检测的全面性的技术效果。
可选地,筛选单元包括:第一处理模块,用于以初始关键词组中的每个关键词为根节点,对根节点进行优先搜索操作,得到目标搜索结果,其中,目标搜索结果中任意两个关键词之间的相似距离小于或者等于预设分类值,并且目标搜索结果中任意两个关键词之间相互关联;第一查找模块,用于在目标搜索结果查找目标关键词,组成目标关键词组,其中,目标搜索结果中包含至少一个与目标关键词的相似距离小于预设分类值的关键词,并且,目标关键词和目标搜索结果中的关键词属于相同的类别。
可选地,筛选单元还包括:第二处理模块,用于通过支持向量机算法对初始关键词组进行学习处理,得到目标学习结果,其中,目标学习结果中任意两个关键词之间的相似距离小于或者等于预设分类值,并且目标学习结果中任意两个关键词之间相互关联;第二查找模块,用于在目标学习结果查找目标关键词,组成目标关键词组,其中,目标学习结果中包含至少一个与目标关键词的相似距离小于预设分类值的关键词,并且,目标关键词和目标学习结果中的关键词属于相同的类别。
可选地,计算单元包括:计算模块,用于通过Google距离计算公式计算初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵,其中,fC1表示初始关键词C1在每个恶意软件中的出现频率,fC2表示初始关键词C2在每个恶意软件中的出现频率,f(C1,C2)表示在每个恶意软件中同时出现初始关键词C1和初始关键词C2的频率。
可选地,预设文件包括功能配置文件,装置还包括:反编译单元,用于在对至少一类恶意软件的源文件和预设文件进行扫描之前,通过开源软件对每个恶意软件进行反编译,得到每个恶意软件的功能配置文件和每个恶意软件的源文件。
可选地,装置还包括:第一获取单元,用于在确定目标关键词组为每个恶意软件的特征信息之后,获取非恶意软件的多组关键词分类结果;对比单元,用于将每个目标关键词与多组关键词分类结果中相同类型的分类结果进行对比,得到对比结果;第二确定单元,用于根据对比结果确定每个目标关键词组的真实性。
可选地,装置还包括:第二获取单元,用于在确定目标关键词组为每个恶意软件的特征信息之后,获取至少一个待检测的软件;分析单元,用于通过提取到的特征信息对至少一个待检测软件进行分析,以确定至少一个待检测软件是否为恶意软件。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种特征的提取方法,其特征在于,包括:
对至少一个恶意软件中的每个恶意软件的源文件和预设文件进行扫描,得到所述每个恶意软件的初始关键词组,以及所述初始关键词组中每个初始关键词在所述每个恶意软件中的出现频率,其中,通过KMP算法对java源代码、类库文件和AndroidManifest.xml文件进行扫描,得到恶意软件的初始关键词组,以及在该恶意软件中的出现频率,恶意软件的初始关键词组表示恶意软件在执行相应地的程序时所执行的功能;
根据所述出现频率计算所述初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;
根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组,其中,所述目标关键词组中任意两个关键词之间的相似距离小于或等于预设分类值;
确定所述目标关键词组为所述每个恶意软件的特征信息。
2.根据权利要求1所述的提取方法,其特征在于,根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组包括:
以所述初始关键词组中的每个关键词为根节点,对所述根节点进行优先搜索操作,得到目标搜索结果,其中,所述目标搜索结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标搜索结果中任意两个关键词之间相互关联;
在所述目标搜索结果查找目标关键词,组成所述目标关键词组,其中,所述目标搜索结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且所述目标关键词和所述目标搜索结果中的关键词属于相同的类别。
3.根据权利要求1所述的提取方法,其特征在于,根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组还包括:
通过支持向量机算法对所述初始关键词组进行学习处理,得到目标学习结果,其中,所述目标学习结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标学习结果中任意两个关键词之间相互关联;
在所述目标学习结果查找目标关键词,组成所述目标关键词组,其中,所述目标学习结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标学习结果中的关键词属于相同的类别。
4.根据权利要求1至3中任一项所述的提取方法,其特征在于,根据所述出现频率计算初始关键词组中任意两个关键词之间的相似距离包括:
通过Google距离计算公式计算所述初始关键词组中任意两个关键词之间的相似距离,得到所述目标距离矩阵,其中,fC1表示初始关键词C1在所述每个恶意软件中的出现频率,fC2表示初始关键词C2在所述每个恶意软件中的出现频率,f(C1,C2)表示在所述每个恶意软件中同时出现所述初始关键词C1和所述初始关键词C2的频率。
5.根据权利要求1所述的提取方法,其特征在于,所述预设文件包括功能配置文件,在对至少一个恶意软件的源文件和预设文件进行扫描之前,所述方法还包括:
通过开源软件对每个所述恶意软件进行反编译,得到所述每个恶意软件的功能配置文件和所述每个恶意软件的源文件。
6.根据权利要求1所述的提取方法,其特征在于,在确定所述目标关键词组为所述每个恶意软件的特征信息之后,所述方法还包括:
获取非恶意软件的多组关键词分类结果;
将每个所述目标关键词与所述多组关键词分类结果中相同类型的分类结果进行对比,得到对比结果;
根据所述对比结果确定每个所述目标关键词组的真实性。
7.根据权利要求1所述的提取方法,其特征在于,在确定所述目标关键词组为所述每个恶意软件的特征信息之后,所述方法还包括:
获取至少一个待检测的软件;
通过提取到的所述特征信息对所述至少一个待检测软件进行分析,以确定所述至少一个待检测软件是否为恶意软件。
8.一种特征的提取装置,其特征在于,包括:
扫描单元,用于对至少一个恶意软件中每个恶意软件的源文件和预设文件进行扫描,得到所述每个恶意软件的初始关键词组,以及所述初始关键词组中每个初始关键词在所述每个恶意软件中的出现频率,其中,通过KMP算法对java源代码、类库文件和AndroidManifest.xml文件进行扫描,得到恶意软件的初始关键词组,以及在该恶意软件中的出现频率,恶意软件的初始关键词组表示恶意软件在执行相应地的程序时所执行的功能;
计算单元,用于根据所述出现频率计算所述初始关键词组中任意两个关键词之间的相似距离,得到目标距离矩阵;
筛选单元,用于根据所述目标距离矩阵中记录的所述相似距离对所述初始关键词组进行筛选,筛选得到目标关键词组,其中,所述目标关键词组中任意两个关键词之间的相似距离小于或等于预设分类值;
第一确定单元,用于确定所述目标关键词组为所述每个恶意软件的特征信息。
9.根据权利要求8所述的提取装置,其特征在于,所述筛选单元包括:
第一处理模块,用于以所述初始关键词组中的每个关键词为根节点,对所述根节点进行优先搜索操作,得到目标搜索结果,其中,所述目标搜索结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标搜索结果中任意两个关键词之间相互关联;
第一查找模块,用于在所述目标搜索结果查找目标关键词,组成所述目标关键词组,其中,所述目标搜索结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标搜索结果中的关键词属于相同的类别。
10.根据权利要求8所述的提取装置,其特征在于,所述筛选单元还包括:
第二处理模块,用于通过支持向量机算法对所述初始关键词组进行学习处理,得到目标学习结果,其中,所述目标学习结果中任意两个关键词之间的相似距离小于或者等于所述预设分类值,并且所述目标学习结果中任意两个关键词之间相互关联;
第二查找模块,用于在所述目标学习结果查找目标关键词,组成所述目标关键词组,其中,所述目标学习结果中包含至少一个与所述目标关键词的相似距离小于所述预设分类值的关键词,并且,所述目标关键词和所述目标学习结果中的关键词属于相同的类别。
CN201611041703.4A 2016-11-23 2016-11-23 特征的提取方法和装置 Active CN106503559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611041703.4A CN106503559B (zh) 2016-11-23 2016-11-23 特征的提取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611041703.4A CN106503559B (zh) 2016-11-23 2016-11-23 特征的提取方法和装置

Publications (2)

Publication Number Publication Date
CN106503559A CN106503559A (zh) 2017-03-15
CN106503559B true CN106503559B (zh) 2019-03-19

Family

ID=58327928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611041703.4A Active CN106503559B (zh) 2016-11-23 2016-11-23 特征的提取方法和装置

Country Status (1)

Country Link
CN (1) CN106503559B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110414232B (zh) * 2019-06-26 2023-07-25 腾讯科技(深圳)有限公司 恶意程序预警方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473346A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于应用程序编程接口的安卓重打包应用检测方法
CN105893485A (zh) * 2016-03-29 2016-08-24 浙江大学 一种基于图书目录的专题自动生成方法
CN106096405A (zh) * 2016-04-26 2016-11-09 浙江工业大学 一种基于Dalvik指令抽象的Android恶意代码检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783254B2 (en) * 2014-10-02 2020-09-22 Massachusetts Institute Of Technology Systems and methods for risk rating framework for mobile applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473346A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于应用程序编程接口的安卓重打包应用检测方法
CN105893485A (zh) * 2016-03-29 2016-08-24 浙江大学 一种基于图书目录的专题自动生成方法
CN106096405A (zh) * 2016-04-26 2016-11-09 浙江工业大学 一种基于Dalvik指令抽象的Android恶意代码检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Android : Static Analysis Using Similarity Distance";Anthony Desnos;《2012 45th Hawaii International Conference on System Sciences》;20121231;第5394-5403页
"Android平台恶意软件检测系统设计与实现";杜洪波等;《软件导刊》;20151231;第14卷(第21期);第104-106页
"Exploring Permission-Induced Risk in Android Applications for Malicious Application Detection";Wei Wang et al.;《IEEE Transaction on Information Forensics and Security》;20141130;第9卷(第11期);第1869-1882页
"Sensitivity Analysis of Static Features for Android Malware Detection";Samaneh Hosseini Moghaddam et al.;《The 22nd Iranian Conference on Electrical Engineering》;20140522;第920-924页

Also Published As

Publication number Publication date
CN106503559A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
Han et al. MalDAE: Detecting and explaining malware based on correlation and fusion of static and dynamic characteristics
Ye et al. An intelligent PE-malware detection system based on association mining
Smutz et al. Malicious PDF detection using metadata and structural features
Ye et al. Hierarchical associative classifier (HAC) for malware detection from the large and imbalanced gray list
CN109684840A (zh) 基于敏感调用路径的Android恶意软件检测方法
CN102841999B (zh) 一种文件宏病毒的检测方法和装置
Dai et al. Efficient Virus Detection Using Dynamic Instruction Sequences.
Sun et al. Malware family classification method based on static feature extraction
CN101924761A (zh) 一种依据白名单进行恶意程序检测的方法
CN101751535A (zh) 通过应用程序数据访问分类进行的数据损失保护
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
CN102446255B (zh) 一种检测页面篡改的方法及装置
CN111382439A (zh) 基于多模态深度学习的恶意软件检测方法
Saccente et al. Project achilles: A prototype tool for static method-level vulnerability detection of Java source code using a recurrent neural network
CN109614795B (zh) 一种事件感知的安卓恶意软件检测方法
CN107239694A (zh) 一种基于用户评论的Android应用权限推理方法及装置
CN108090360A (zh) 一种基于行为特征的安卓恶意应用分类方法及系统
CN109800569A (zh) 程序鉴别方法及装置
CN113704759B (zh) 基于Adaboost的安卓恶意软件检测方法、系统及存储介质
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
Ye et al. Intelligent file scoring system for malware detection from the gray list
Ge et al. Impact of datasets on machine learning based methods in Android malware detection: an empirical study
CN106503559B (zh) 特征的提取方法和装置
CN104036189A (zh) 页面篡改检测方法及黑链数据库生成方法
CN103093147A (zh) 一种识别信息的方法和电子装置

Legal Events

Date Code Title Description
C06 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