一种Android恶意软件的溯源方法技术

技术编号:19178143 阅读:12 留言:0更新日期:2018-10-17 00:31
本发明专利技术公开了一种Android恶意软件的溯源方法,包括:从对APK数据中的APK安装包进行解压,并对解压结果进行解析,从而提取出程序特征,最终由一系列APK安装包的程序特征形成程序特征库;利用机器学习算法结合程序特征库建立分类模型;将待溯源分析的恶意软件的程序特征作为输入样本输入至分类模型,得到输入样本与分类模型中样本的相似度以及每个程序特征所占的权重;在此基础上,分析提取恶意软件的开发者或者开发组织的关键判定因素,利用人机结合对恶意软件的开发者或者开发组织进行分析。该方法可以提取开发者或者开发组织的特征,并通过分类模型快速判断出恶意软件的开发者或者开发组织,从而从源头遏制恶意软件的泛滥。

A traceability method for Android malware

The invention discloses a method for tracing the source of Android malware, which includes: decompressing the APK installation package from the APK data, parsing the decompression result, extracting the program features, and finally forming a program feature library from the program features of a series of APK installation packages; constructing the program feature library by machine learning algorithm combined with the program feature library. Classification model is established; the program features of malware to be traced are input into classification model as input samples, and the similarity between input samples and samples in classification model and the weight of each program feature are obtained; on this basis, the key determinants of extracting malware developers or development organizations are analyzed. Use human machine to analyze malware developers or development organizations. This method can extract the characteristics of the developer or development organization, and quickly judge the developer or development organization of malicious software by classification model, so as to curb the spread of malicious software from the source.

【技术实现步骤摘要】
一种Android恶意软件的溯源方法
本专利技术涉及互联网
,尤其涉及一种Android恶意软件的溯源方法。
技术介绍
自2014年以来Android手机的市场占有率一直是80%以上,2017年第一季度更是达到了85%。在可预期的将来,Android系统将继续保持手机市场的统治地位。但是由于Android系统的巨大市场份额和开源性,它也成为恶意软件开发者的主要攻击目标,Android平台成为移动端恶意软件的“重灾区”。恶意软件(俗称“流氓软件”)是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵犯用户合法权益的软件。它具备以下某些特征:1)强制安装:指未明确提示用户或未经用户许可,在用户计算机或其他终端上安装软件的行为。2)难以卸载:指未提供通用的卸载方式,或在不受其他软件影响、人为破坏的情况下,卸载后仍然有活动程序的行为。3)浏览器劫持:指未经用户许可,修改用户浏览器或其他相关设置,迫使用户访问特定网站或导致用户无法正常上网的行为。4)广告弹出:指未明确提示用户或未经用户许可,利用安装在用户计算机或其他终端上的软件弹出广告的行为。5)恶意收集用户信息:指未明确提示用户或未经用户许可,恶意收集用户信息的行为。6)恶意卸载:指未明确提示用户、未经用户许可,或误导或欺骗用户卸载其他软件的行为。7)恶意捆绑:指在软件中捆绑已被认定为恶意软件的行为。目前对Android恶意软件同源分析,大多只是聚焦于Android恶意软件的家族同源性分析。通过网络流量特征、软件行为特征、申请权限等属性特征建立模型来对恶意软件进行同源性判定,大多只能判定软件之间变种的关系。针对Android恶意软件开发者或者开发组织的溯源追踪技术目前还没有成熟的方法和应用。
技术实现思路
本专利技术的目的是提供一种Android恶意软件的溯源方法,可以通过分类模型快速判断出恶意软件的开发者或者开发组织,从而从源头遏制恶意软件的泛滥。本专利技术的目的是通过以下技术方案实现的:一种Android恶意软件的溯源方法,包括:从对APK数据中的APK安装包进行解压,并对解压结果进行解析,从而提取出程序特征,最终由一系列APK安装包的程序特征形成程序特征库;利用机器学习算法结合程序特征库建立分类模型;将待溯源分析的恶意软件的程序特征作为输入样本输入至分类模型,得到输入样本与分类模型中样本的相似度以及每个程序特征所占的权重。由上述本专利技术提供的技术方案可以看出,可以提取开发者或者开发组织的特征,并且建立相应的数据库和数据模型。在遇到新的Android恶意软件时,可以通过模型快速判断出恶意软件的开发者或者开发组织,从而从源头遏制恶意软件的泛滥。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本专利技术实施例提供的一种Android恶意软件的溯源方法的流程图。具体实施方式下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。本专利技术实施例提供一种Android恶意软件的溯源方法,该方法提出一系列有关于恶意软件开发者或者组织的特征,并采用机器学习的方法结合所提取的特征建立模型,并提取恶意软件开发者或者开发组织的关键判定因素,利用人机结合对Android恶意软件的开发者或者开发组织进行分析。下面结合附图1对Android恶意软件的溯源方法进行说明。如图1所述,该方法主要包括:步骤1、从对APK数据中的APK安装包进行解压,并对解压结果进行解析,从而提取出程序特征,最终由一系列APK安装包的程序特征形成程序特征库。1、对APK安装包进行解压,并对解压结果进行解析本专利技术实施例中,对APK安装包进行解压,获得DEX文件、xml文件及图片文件;对DEX文件进行解析获得源代码;对xml文件进行解析获得可读的文件;对图片文件进行解析获得图片字符串。具体如下:a、解析DEX文件。解压APK安装包获得DEX文件,DEX文件是java源码编译后生成的字节码文件,可以直接在Dalvik或ART等虚拟机中加载运行。利用反编译工具可以将DEX文件转换成普通的jar包。然后利用工具,例如JD-GUI等得到源代码。b、解析XML文件。解压APK安装包获得xml文件,xml文件是APK中的资源文件和布局文件,利用工具将它解码成可读的文件。c、解析图片文件。解压APK安装包获得所有的图片文件,然后利用工具提取图片文件中的所有字符串。2、提取出程序特征。本专利技术实施例中,提取出的程序特征包括:程序布局特征、程序结构特征、程序风格特征以及字符串特征。其中,程序布局特征、程序结构特征与程序风格特征从源代码中提取得到,字符串特征则从源代码、可读的文件与字符串中提取的数据汇总得到。具体如下:a、程序布局特征,所述程序布局特征是程序开发者在编写代码时的一些布局习惯;比如空格的使用、注释符号的使用、各种括号的使用等等。这些是开发者或者开发组织内部在编写代码时形成的习惯。程序布局特征包括但不限于包括如下内容:1)代码中‘{’是单独一行占所有‘{’的百分比;2)代码中‘{’是行代码中第一个字符占所有‘{’的百分比;3)代码中‘{’是行代码中最后一个字符占所有‘{’的百分比;4)代码中‘}’是单独一行占所有‘}’的百分比;5)代码中‘}’是行代码中第一个字符占所有‘}’的百分比;6)代码中‘}’是行代码中最后一个字符占所有‘}’的百分比;7)‘{’前的平均空格数;8)‘{’后的平均空格数;9)‘}’前的平均空格数;10)‘}’后的平均空格数;11)注释行中用‘//’表示的注释行占所有注释行的比例;12)注释行中有‘/**/’表示的注释行占所有注释行的比例;13)for循环中‘(’前的平均空格数;14)for循环中‘(’后的平均空格数;15)for循环中‘)’前的平均空格数;16)for循环中‘)’后的平均空格数;17)while循环中‘(’前的平均空格数;18)while循环中‘(’后的平均空格数;19)while循环中‘)’前的平均空格数;20)while循环中‘)’后的平均空格数;21)do循环中‘(’前的平均空格数;22)do循环中‘(’后的平均空格数;23)do循环中‘)’前的平均空格数;24)do循环中‘)’后的平均空格数;25)if条件语句中‘(’前的平均空格数;26)if条件语句中‘(’后的平均空格数;27)if条件语句中‘)’前的平均空格数;28)if条件语句中‘)’后的平均空格数;29)代码中每一行的平均缩进长度;30)代码中每一行的平均字符数;31)代码中每一行的平均空格数;32)代码中操作符(包括但不限定于+,-,*,/,%,=,+=,-=,/=,%=,==,++,--,&&,||等)左边的平均空格数;33)代码中操作符(包括但不限定于+,-,*,/,%,=,本文档来自技高网
...

【技术保护点】
1.一种Android恶意软件的溯源方法,其特征在于,包括:从对APK数据中的APK安装包进行解压,并对解压结果进行解析,从而提取出程序特征,最终由一系列APK安装包的程序特征形成程序特征库;利用机器学习算法结合程序特征库建立分类模型;将待溯源分析的恶意软件的程序特征作为输入样本输入至分类模型,得到输入样本与分类模型中样本的相似度以及每个程序特征所占的权重。

【技术特征摘要】
1.一种Android恶意软件的溯源方法,其特征在于,包括:从对APK数据中的APK安装包进行解压,并对解压结果进行解析,从而提取出程序特征,最终由一系列APK安装包的程序特征形成程序特征库;利用机器学习算法结合程序特征库建立分类模型;将待溯源分析的恶意软件的程序特征作为输入样本输入至分类模型,得到输入样本与分类模型中样本的相似度以及每个程序特征所占的权重。2.根据权利要求1所述的一种Android恶意软件的溯源方法,其特征在于,对APK安装包进行解压,获得DEX文件、xml文件及图片文件。3.根据权利要求2所述的一种Android恶意软件的溯源方法,其特征在于,对DEX文件进行解析获得源代码;对xml文件进行解析获得可读的文件;对图片文件进行解析获得图片字符串。4.根据权利要求1或2或3所述的一种Android恶意软件的溯源方法,其特征在...

【专利技术属性】
技术研发人员:程绍银张鹏蒋凡
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1