CN111460448B - 一种恶意软件家族检测方法及装置 - Google Patents

一种恶意软件家族检测方法及装置 Download PDF

Info

Publication number
CN111460448B
CN111460448B CN202010159104.2A CN202010159104A CN111460448B CN 111460448 B CN111460448 B CN 111460448B CN 202010159104 A CN202010159104 A CN 202010159104A CN 111460448 B CN111460448 B CN 111460448B
Authority
CN
China
Prior art keywords
software
detected
code
installation package
similarity
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
CN202010159104.2A
Other languages
English (en)
Other versions
CN111460448A (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 University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202010159104.2A priority Critical patent/CN111460448B/zh
Publication of CN111460448A publication Critical patent/CN111460448A/zh
Application granted granted Critical
Publication of CN111460448B publication Critical patent/CN111460448B/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书一个或多个实施例提供一种恶意软件家族检测方法及装置,包括:获取待检测软件,对待检测软件进行特征提取处理,得到待检测软件的软件特征,根据软件特征,判别待检测软件的类别,输出待检测软件的检测结果。本实施例的恶意软件家族检测方法及装置,能够实现恶意软件家族的准确检测。

Description

一种恶意软件家族检测方法及装置
技术领域
本说明书一个或多个实施例涉及软件技术领域,尤其涉及一种恶意软件家族检测方法及装置。
背景技术
随着智能终端等各类终端的普及应用,各类应用软件的需求也大幅增加,恶意软件的数量随之增加,且攻击手段也从单一攻击手段向多功能多用途攻击方式不断升级进化,对终端用户的重要信息造成了严重威胁。
利用人工检测能够准确识别恶意软件,但是耗时耗力,效率低下;利用目前已有的恶意软件检测工具也能够检测恶意软件,有些工具能够对检测出的恶意软件添加标签,并输出添加标签的恶意软件家族名称,然而,随着攻击手段的升级,恶意软件呈现复杂性、隐蔽性等特点,现有的工具要么无法准确识别恶意软件,要么无法准确识别恶意软件家族的恶意行为。
发明内容
有鉴于此,本说明书一个或多个实施例的目的在于提出一种恶意软件家族检测方法及装置,以解决恶意软件家族的检测准确性问题。
基于上述目的,本说明书一个或多个实施例提供了一种恶意软件家族检测方法,包括:
获取待检测软件;
对所述待检测软件进行特征提取处理,得到所述待检测软件的软件特征;
根据所述软件特征,判别所述待检测软件的类别;
输出所述待检测软件的检测结果。
可选的,对所述待检测软件进行特征提取处理,得到所述待检测软件的软件特征,包括:
对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征;
计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签。
可选的,对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征,包括:
对所述待检测软件的安装包文件进行动态分析,得到用于启动恶意软件的控制代码段,用于激活恶意软件的第三方库,以及用于反应软件实际功能的组件;
对所述待检测软件的安装包文件进行静态分析,得到所述待检测软件的元信息;
对所述待检测软件的安装包文件与任意一个恶意软件的安装包文件进行代码相似性分析处理,得到两个安装包文件的相似性配置文件。
可选的,计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签,包括:
计算所述安装包文件的特征值,根据计算得到的特征值,查询可疑文件分析库,获得对应的特征标签。
可选的,根据所述软件特征,判别所述待检测软件的类别,包括:
将所述软件特征输入用于对软件进行分类的软件分类模型中;所述软件分类模型根据所述软件特征训练得到;
所述软件分类模型根据所述软件特征进行分类预测,得到预测的软件类别。
可选的,所述软件分类模型根据恶意软件家族知识图谱构建,所述恶意软件家族知识图谱包括所述软件特征与恶意软件家族的关系。
可选的,输出所述待检测软件的检测结果,包括:
输出待检测软件可能所属的至少一个恶意软件家族所对应的类别标签。
本说明书一个或多个实施例还提供一种恶意软件家族检测装置,包括:
获取模块,用于获取待检测软件;
特征提取模块,用于对所述待检测软件进行特征提取处理,得到所述待检测软件的软件特征;
分类模块,用于根据所述软件特征,判别所述待检测软件的类别;
输出模块,用于输出所述待检测软件的检测结果。
可选的,所述特征提取模块包括:
代码分析子模块,用于对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征;
标签确定子模块,用于计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签。
可选的,所述代码分析子模块,用于对所述待检测软件的安装包文件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征。
从上面所述可以看出,本说明书一个或多个实施例提供的恶意软件家族检测方法及装置,包括:获取待检测软件,对待检测软件进行特征提取处理,得到待检测软件的软件特征,根据软件特征,判别待检测软件的类别,输出待检测软件的检测结果。本实施例的恶意软件家族检测方法,能够实现恶意软件家族的准确检测。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例的检测方法流程示意图;
图2为本说明书一个或多个实施例的特征提取方法流程示意图;
图3为本说明书一个或多个实施例的恶意软件家族知识图谱的示意图;
图4为本说明书一个或多个实施例的检测装置的结构框图;
图5为本说明书一个或多个实施例的电子设备的结构框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如图1所示,本说明书一个或多个实施例提供一种恶意软件家族检测方法,包括:
S101:获取待检测软件;
一些实施例中,待检测软件可以是能够安装于终端的各类应用软件,例如,能够安装于基于安卓操作***的智能手机上,实现特定功能的应用软件。本说明书不对软件的具体类别、功能及应用场景进行具体限定。
可选的,待检测软件包括但不限于软件的安装包文件、文件名称、文件属性等数据,其中,安装包文件包括安装软件所需的代码、文件等数据。
S102:对所述待检测软件进行特征提取处理,得到所述待检测软件的软件特征;
本实施例中,对于待检测软件首先进行特征提取处理,处理之后得到待检测软件的软件特征,以便于后续根据待检测软件的软件特征,对待检测软件进行检测与分类。
一些实施例中,待检测软件的软件特征包括代码特征、特征标签等。
S103:根据所述软件特征,判别所述待检测软件的类别;
S104:输出所述待检测软件的检测结果。
本实施例中,根据特征提取出的软件特征,对待检测软件进行分类,判别出待检测软件所属的类别,并将待检测软件的类别作为检测结果输出。这样,利用本说明书的恶意软件家族检测方法,先从待检测软件中识别出软件特征,根据软件特征判别待检测软件的类别,输出待检测软件所属类别的检测结果,能够实现待检测软件的检测。
一些实施例中,所述步骤S102中,对待检测软件进行特征提取处理,得到待检测软件的软件特征,包括:
S201:对待检测软件进行动态分析、静态分析、代码相似性分析处理,得到待检测软件的代码特征;
本实施例中,对待检测软件的安装包文件进行动态分析、静态分析以及代码相似性分析处理,得到待检测软件的代码特征。
一些实施例中,对安装包文件进行动态分析,提取用于启动恶意软件的控制代码段,用于激活恶意软件的第三方库,以及用于反应软件实际功能的组件。其中,用于启动恶意软件的控制代码段是指,执行代码调用关系时,能够启动恶意软件运行的控制代码段;用于激活恶意软件的第三方库是指,动态加载第三方库或读取文件时,能够激活恶意软件;用于反应软件实际功能的组件是指,执行组件调用关系时,能够反映软件的实际功能,组件例如是活动、服务、内容提供商和广播接收器中的一种或几种。
一些实施例中,对安装包文件进行静态分析,提取出安装包文件的元信息。
举例来说,对于安装于安卓***的安装包文件,从安装包文件的AndroidManifest.xml文件以及资源文件中提取元信息。AndroidManifest.xml文件向构建工具,安卓操作***和应用程序商店提供应用程序的所有基本信息,它提供了应用程序的特征和安全设置的关键信息。从AndroidManifest.xml文件中提取的元信息具体包括:(1)权限,用于保护应用程序免于访问任何受保护的部分;(2)instrumentation类信息,用于提供性能分析和其他动态监视信息;(3)应用程序将要使用的应用程序级Android API;(4)安卓组件,主要包括:活动提供商、服务提供商、内容提供商和广播接收器四种类型,组件的名称可能有助于识别已知的恶意软件;(5)硬件组件,有助于识别由访问特定设备组件(例如触摸屏,摄像头或传感器)的请求所反映的恶意行为;(6)意图和意图过滤器,用于触发恶意软件执行恶意行为;(7)安装包文件的名称、版本等属性信息以及第三方库等。
一些实施例中,对安装包文件进行代码相似性分析,具体为:
将待检测软件的安装包文件与任意一个恶意软件的安装包文件作为输入,进行代码相似性分析,得到两个安装包文件的相似性配置文件,相似性配置文件体现两个安装包文件的源代码的相似性程度。为降低代码相似性分析过程中的噪音,本实施例中,建立并维护通用库白名单,该通用库白名单包括了恶意软件代码中与库相关的代码段,在代码相似性分析过程中,利用通用库白名单过滤到库相关的代码段,以降低噪音。
举例来说,对于安装于安卓***的安装包文件,对该安装包文件与任意一个安装包文件进行代码相似性分析,包括以下步骤:
1)通过将dex2jar的原始DEX文件转换为Java文件进行源代码分析,使用dex2jar对其进行反编译;2)利用通用库白名单过滤掉标准的安卓库和安全的第三方库的代码段,以尽可能减少噪声;3)使用基于词袋的代码克隆方法代码的相似性分析以基于文件级相似性对应用程序进行分组,通过开源的安卓恶意有效负载库来执行细粒度的代码块级相似性分析,以细化两个应用之间的相似性程度;4)如果两个安装包文件相似性得分高于预设的阈值,则认为这两个安装包文件在代码层具有高度相似性。
一些实现方式中,代码相似性分析可采用基于词袋的代码克隆方法,包括:
1)对输入的代码进行标记化预处理,包括删除注释、空格和终止符等标记符号;
2)从每个源文件中提取出Java关键字,文档和标识符等特征(字符串文字在空白处分割,不包含运算符),所提取出的每个特征作为一个单独的令牌;
3)对每个令牌进行权重赋值,已知的恶意有效负载代码段中被赋予更高的权重,以进行代码相似性分析;
4)代码相似度计算,计算过程为:
将安卓应用n的源代码表示为一组代码块(程序的控制流图的基本块)Source(n)={B1,...,Bnum},每个块Bi表示一个包令牌Bi={T1...,Tk}。一个令牌可能在一个块中多次出现,每个令牌都具有在一个块内的出现频率Tj=(令牌,频率)以区分词袋模型中的单词频率。
给定两个安装包文件Ax和Ay,相似函数f和阈值θ,找到所有代码块对Ax.B和Ay.B,使得:
f(Ax.B,Ay.B)≥[θ·max(|Ax.B|,|Ay.B|)] (1)
S202:计算待检测软件的特征值,根据特征值,确定对应的特征标签。
本实施例中,计算待检测软件的安装包文件的特征值,根据计算得到的特征值,查询可疑文件分析库,获得对应的特征标签。
可选的,计算安装包文件的哈希值,根据哈希值查询可疑文件分析服务网站(例如,VirusTotal网站),以获得待检测文件的特征标签。
上述步骤S201、S202没有先后顺序的限定,可以同时执行,也可以任意一个步骤先执行,另一个后执行,本说明书不做限定。
本实施例中,考虑到恶意软件具有复杂性、隐蔽性等特点,例如,采用将恶意代码段隐藏在正常代码之中,或者对正常软件重新包装等手段,导致一般的检测工具难以准确检测出恶意软件,因此,本实施例通过对待检测软件进行代码层次的分析,获得待检测软件的代码特征,并根据待检测软件的特征值获得相应的特征标签,能够准确识别出恶意软件。
一些实施例中,所述步骤S103中,根据软件特征,判别待检测软件的类别,包括:
将软件特征输入用于对软件进行分类的软件分类模型中;其中,软件分类模型根据软件特征训练得到;
软件分类模型根据软件特征进行分类预测,得到预测的软件类别。
本实施例中,基于提取出的软件特征,将软件特征输入软件分类模型,由软件分类模型根据软件特征进行待检测软件的分类,并得到预测的软件类别。
一些实施例中,软件分类模型根据恶意软件家族知识图谱构建,恶意软件家族知识图谱包括软件特征与恶意软件家族的关系。具体的,通过对已有的若干恶意软件家族进行分析,确定每个恶意软件家族所对应的代码特征及特征标签,建立恶意软件家族及其对应的代码特征、特征标签的知识图谱。如图3所示,每个恶意软件家族可能对应至少一个特征标签和至少一个代码特征。即,若某个恶意软件家族对应有n个特征标签和m个代码特征,通过特征提取处理,待检测软件中具有n个特征标签中的一个或几个,并具有m个代码特征中的一个或几个,那么,待检测软件属于该恶意软件家族。
一些实施方式中,基于恶意软件家族知识图谱所示的恶意软件家族与其代码特征、特征标签的对应关系,构建软件分类模型,该软件分类模型以特征标签、代码特征与恶意软件家族的关系为分类条件;之后,对于构建的软件分类模型,以包括若干恶意软件的样本作为训练集,输入软件分类模型,对软件分类模型进行训练,得到训练后的软件分类模型;应用时,将待检测软件的特征标签、代码特征输入训练后的软件分类模型,软件分类模型根据输入的特征标签、代码特征对待检测软件进行分类,输出预测的待检测软件的类别,即待检测软件所属的恶意软件家族,一些方式中,利用软件分类模型输出待检测软件可能所属的至少一个恶意软件家族所分别对应的类别标签,若输出了多个类别标签,则可进一步人工判断待检测软件的准确归类,提高检测准确性。可选的,软件分类模型可以是卷积神经网络等神经网络分类模型。
本实施例的恶意软件家族检测方法,对于待检测软件,首先进行特征提取,得到代码特征和特征标签,然后将代码特征和特征标签输入基于恶意软件家族知识图谱所构建的软件分类模型中,软件分类模型根据代码特征和特征标签对待检测软件进行分类预测,输出待检测软件所属的至少一个恶意软件家族所对应的类别标签,能够提高恶意软件的检测准确性,为评估恶意软件可能造成的危害性提供可靠依据。
如图4所示,本说明书另一个方面,提供一种恶意软件家族检测装置,包括:
获取模块,用于获取待检测软件;
特征提取模块,用于对所述待检测软件进行特征提取处理,得到所述待检测软件的软件特征;
分类模块,用于根据所述软件特征,判别所述待检测软件的类别;
输出模块,用于输出所述待检测软件的检测结果。
一些实施例中,所述特征提取模块包括:
代码分析子模块,用于对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征;
标签确定子模块,用于计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签。
一些实施例中,所述代码分析子模块,用于对所述待检测软件的安装包文件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (8)

1.一种恶意软件家族检测方法,其特征在于,包括:
获取待检测软件;
对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征,包括:
对所述待检测软件的安装包文件进行动态分析,得到用于启动恶意软件的控制代码段,用于激活恶意软件的第三方库,以及用于反应软件实际功能的组件;
对所述待检测软件的安装包文件进行静态分析,得到所述待检测软件的元信息;其中,所述元信息包括权限、instrumentation类信息、应用程序级安卓应用、安卓组件、硬件组件、意图和意图过滤器、安卓包属性及第三方库;
对所述待检测软件的安装包文件与任意一个恶意软件的安装包文件进行代码相似性分析处理,得到两个安装包文件的相似性配置文件;包括:分别对所述待检测软件的安装包文件和恶意软件的安装包文件中的可执行文件进行反编译,得到对应的源代码;利用预设的通用库白名过滤掉源代码中标准的安卓库和安全的第三方库的代码段;使用基于词袋的代码克隆方法对两个安装包文件分别对应的源代码进行相似性分析,得到代码相似度;
计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签;
根据所述代码特征和特征标签,判别所述待检测软件的类别;
输出所述待检测软件的检测结果。
2.根据权利要求1所述的方法,其特征在于,所述使用基于词袋的代码克隆方法对两个安装包文件分别对应的源代码进行相似性分析,得到代码相似度,包括:
对两组源代码进行标记化预处理,得到两组预处理后的源代码;
分别从两组预处理后的源代码中提取Java关键字,文档和标识符特征,将每个特征作为令牌;
对每个令牌进行权重赋值;
将两组源代码分别表示为对应的多个代码块,利用预设的相似函数和阈值计算两组源代码所对应的代码块之间的代码相似度;其中,每个令牌在一个代码块中以预定的频率出现。
3.根据权利要求2所述的方法,其特征在于,计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签,包括:
计算所述安装包文件的特征值,根据计算得到的特征值,查询可疑文件分析库,获得对应的特征标签。
4.根据权利要求1所述的方法,其特征在于,根据所述软件特征,判别所述待检测软件的类别,包括:
将所述软件特征输入用于对软件进行分类的软件分类模型中;所述软件分类模型根据所述软件特征训练得到;
所述软件分类模型根据所述软件特征进行分类预测,得到预测的软件类别。
5.根据权利要求4所述的方法,其特征在于,所述软件分类模型根据恶意软件家族知识图谱构建,所述恶意软件家族知识图谱包括所述软件特征与恶意软件家族的关系。
6.根据权利要求1所述的方法,其特征在于,输出所述待检测软件的检测结果,包括:
输出待检测软件可能所属的至少一个恶意软件家族所对应的类别标签。
7.一种恶意软件家族检测装置,其特征在于,包括:
获取模块,用于获取待检测软件;
代码分析子模块,用于对所述待检测软件进行动态分析、静态分析、代码相似性分析处理,得到所述待检测软件的代码特征,包括:对所述待检测软件的安装包文件进行动态分析,得到用于启动恶意软件的控制代码段,用于激活恶意软件的第三方库,以及用于反应软件实际功能的组件;对所述待检测软件的安装包文件进行静态分析,得到所述待检测软件的元信息;其中,所述元信息包括权限、instrumentation类信息、应用程序级安卓应用、安卓组件、硬件组件、意图和意图过滤器、安卓包属性及第三方库;对所述待检测软件的安装包文件与任意一个恶意软件的安装包文件进行代码相似性分析处理,得到两个安装包文件的相似性配置文件;包括:分别对所述待检测软件的安装包文件和恶意软件的安装包文件中的可执行文件进行反编译,得到对应的源代码;利用预设的通用库白名过滤掉源代码中标准的安卓库和安全的第三方库的代码段;使用基于词袋的代码克隆方法对两个安装包文件分别对应的源代码进行相似性分析,得到代码相似度;
标签确定子模块,用于计算所述待检测软件的特征值,根据所述特征值,确定对应的特征标签;
分类模块,用于根据所述代码特征和特征标签,判别所述待检测软件的类别;
输出模块,用于输出所述待检测软件的检测结果。
8.根据权利要求7所述的装置,其特征在于,
所述代码分析子模块,用于对两组源代码进行标记化预处理,得到两组预处理后的源代码;分别从两组预处理后的源代码中提取Java关键字,文档和标识符特征,将每个特征作为令牌;对每个令牌进行权重赋值;将两组源代码分别表示为对应的多个代码块,利用预设的相似函数和阈值计算两组源代码所对应的代码块之间的代码相似度;其中,每个令牌在一个代码块中以预定的频率出现。
CN202010159104.2A 2020-03-09 2020-03-09 一种恶意软件家族检测方法及装置 Active CN111460448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010159104.2A CN111460448B (zh) 2020-03-09 2020-03-09 一种恶意软件家族检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010159104.2A CN111460448B (zh) 2020-03-09 2020-03-09 一种恶意软件家族检测方法及装置

Publications (2)

Publication Number Publication Date
CN111460448A CN111460448A (zh) 2020-07-28
CN111460448B true CN111460448B (zh) 2022-12-02

Family

ID=71682676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010159104.2A Active CN111460448B (zh) 2020-03-09 2020-03-09 一种恶意软件家族检测方法及装置

Country Status (1)

Country Link
CN (1) CN111460448B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131259B (zh) * 2020-09-28 2024-03-15 绿盟科技集团股份有限公司 一种相似恶意软件推荐方法、装置、介质和设备
CN113392399A (zh) * 2021-06-23 2021-09-14 绿盟科技集团股份有限公司 一种恶意软件分类方法、装置、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
CN103400076B (zh) * 2013-07-30 2016-01-06 腾讯科技(深圳)有限公司 一种移动终端上的恶意软件检测方法、装置和***
CN108280350B (zh) * 2018-02-05 2021-09-28 南京航空航天大学 一种面向Android的移动网络终端恶意软件多特征检测方法
CN109684837B (zh) * 2018-11-21 2024-03-19 全球能源互联网研究院有限公司 一种面向电力企业的移动应用恶意软件检测方法及***

Also Published As

Publication number Publication date
CN111460448A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
US9824212B2 (en) Method and system for recognizing advertisement plug-ins
US10481964B2 (en) Monitoring activity of software development kits using stack trace analysis
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN108667855B (zh) 网络流量异常监测方法、装置、电子设备及存储介质
US9336389B1 (en) Rapid malware inspection of mobile applications
CN109862003B (zh) 本地威胁情报库的生成方法、装置、***及存储介质
CN112800427B (zh) webshell检测方法、装置、电子设备和存储介质
CN103839005A (zh) 移动操作***的恶意软件检测方法和恶意软件检测***
CN103778373A (zh) 病毒检测方法及装置
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN109255241B (zh) 基于机器学习的Android权限提升漏洞检测方法及***
CN111460448B (zh) 一种恶意软件家族检测方法及装置
CN111190603B (zh) 一种隐私数据检测方法、装置和计算机可读存储介质
CN110855642B (zh) 应用漏洞检测方法、装置、电子设备及存储介质
CN114386032A (zh) 电力物联网设备的固件检测***及方法
CN105653949A (zh) 一种恶意程序检测方法及装置
CN113961919A (zh) 恶意软件检测方法和装置
CN110858247A (zh) 安卓恶意应用检测方法、***、设备及存储介质
CN109818972B (zh) 一种工业控制***信息安全管理方法、装置及电子设备
CN105278929A (zh) 应用程序审计的数据处理方法、装置和***
CN108268775B (zh) 一种Web漏洞检测方法、装置、电子设备及存储介质
CN114912112B (zh) 脚本检测方法及装置
CN112632551B (zh) 一种第三方库信息泄露检测方法及装置
CN114422175A (zh) 网络安全监督检查行为审计方法及装置
CN114936368A (zh) 一种Java内存木马检测方法、终端设备及存储介质

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