一种安卓重打包应用的检测方法及装置的制造方法

文档序号:9631736阅读:558来源:国知局
一种安卓重打包应用的检测方法及装置的制造方法
【技术领域】
[0001] 本发明涉及安卓系统技术领域,尤其涉及一种安卓重打包应用的检测方法及装 置。
【背景技术】
[0002] 当前,随着安卓(Android)移动智能终端的迅速普及,安卓应用(APP)的种类、数 量也越来越多。然而,安卓移动智能终端的安全问题也随之愈发严重。因为当前在移动互联 网中存在大量被重打包的恶意应用。安卓重打包应用的主要传播途径是第三方应用市场, 主要传播技术是重打包嵌入恶意代码。恶意代码开发者对正版安卓应用进行反编译后,嵌 入恶意代码或者修改部分代码后,重新打包发布到第三方市场进行传播扩散。嵌入恶意代 码的重打包应用会进行恶意扣费、窃取信息等恶意行为;修改代码的重打包应用会截取开 发商的广告收益,为自己谋利。重打包应用已经形成了完整的黑色产业链条,给智能终端用 户和开发者带来了严重的经济损失。
[0003] 由于重打包的应用与正版安卓应用具有较高的相似度,一般可以应用相似性计算 方法来区分。而当前基于相似性计算的方法主要分为基于可执行代码的相似性检测方法和 基于文件的相似性方法两种。
[0004] 基于可执行代码的相似性检测方法,是从安卓应用的可执行字节码中进行反编 译,提取特征,包括应用程序编程接口(ApplicationProgrammingInterface,API)、组件、 意图、广播、接收器等,以此生成应用特征,如API频率、API序列、组件频率、意图频率、广 播频率、接收器频率等,或者在可执行代码基础上分析得到应用的数据流图、调用流图等特 征,根据特征计算应用的相似性。然而,随着代码混淆技术的普及,导致反编译得到的信息 越来越不准确,进而严重影响相似性检测的准确性。
[0005] 基于文件的相似性检测方法,是从安卓应用的文件中提取特征,包括文件目录结 构、图形文件、声音文件、布局文件、其他文件等,以此生成应用特征,如目录结构树、图形哈 希、其他文件散列值等,根据特征计算应用的相似性。然而,当前基于文件目录的检测方法, 由于采用树相似性比较方法计算应用相似性,而树相似性计算是NP(未解难题)问题,计算 消耗大,该方法的检测速度慢,不适合用来进行大规模检测;基于其他文件的相似性检测, 是计算可执行代码以外所以文件的散列值,以此计算应用相似性,由于散列值的特性,文件 即使修改了 1比特,计算得到的散列值就不一样,所以该方法很容易被绕过。而基于图片文 件、声音文件等文件的检测,是对应用内所有的图片和声音文件提取特征计算相似性,而由 于安卓应用开发设计的原因,导致不是所有应用包内的图片、声音等文件都是真的被调用 的文件,而攻击者也可以通过插入大量无用图片、无用声音等手段来绕过检测。可见,当前 基于文件的相似性检测方法较为繁琐复杂,且很容易被恶意应用绕过,造成检测结果不准 确。

【发明内容】

[0006] 本发明的实施例提供一种安卓重打包应用的检测方法及装置,以解决当前对安卓 重打包应用的检测速度较慢,且检测不准确的问题。
[0007] 为达到上述目的,本发明采用如下技术方案:
[0008] -种安卓重打包应用的检测方法,包括:
[0009] 分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的 反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用的文 件特征和正版应用的文件特征;
[0010] 对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待 检测的安卓应用的静态特征和所述正版应用的静态特征;
[0011] 对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行 融合,形成待检测的安卓应用的融合特征;
[0012] 对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用 的融合特征;
[0013] 根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融 合特征的相似度;
[0014] 确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
[0015] 若所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签 名信息和所述正版应用的签名信息不同,确定所述待检测的安卓应用为所述正版应用的重 打包应用。
[0016] 具体的,对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形 成所述待检测的安卓应用的静态特征和所述正版应用的静态特征,包括:
[0017] 获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申 请的安卓系统权限和调用API情况的统计数据;
[0018] 将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权 限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
[0019] 将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用 API情况的统计数据,作为所述正版应用的静态特征。
[0020] 具体的,所述待检测的安卓应用的融合特征与正版应用的融合特征中分别包括多 个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合A;所述 正版应用的融合特征中的多个特征元素构成集合B。
[0021] 具体的,所述根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与 正版应用的融合特征的相似度,包括:
[0022] 根据公式
[0023] 确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。
[0024] 具体的,确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否 不同,包括:
[0025] 从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;
[0026] 计算所述待检测的安卓应用的作者签名信息的第一MD5值;
[0027] 计算所述正版应用的作者签名信息的第二MD5值;
[0028] 确定所述第一MD5值和第二MD5值是否不同。
[0029] -种安卓重打包应用的检测装置,包括:
[0030] 文件特征获取单元,用于分别获取待检测的安卓应用和正版应用的反编译代码和 布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形 成待检测的安卓应用的文件特征和正版应用的文件特征;
[0031] 静态特征获取单元,用于对所述待检测的安卓应用和正版应用进行基于静态分析 的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
[0032] 第一融合单元,用于对所述待检测的安卓应用的文件特征和所述待检测的安卓应 用的静态特征进行融合,形成待检测的安卓应用的融合特征;
[0033] 第二融合单元,用于对所述正版应用的文件特征和所述正版应用的静态特征进行 融合,形成正版应用的融合特征;
[0034] 相似度计算单元,用于根据杰卡德相似性算法,确定所述待检测的安卓应用的融 合特征与正版应用的融合特征的相似度;
[0035] 签名信息确定单元,用于确定所述待检测的安卓应用的签名信息和所述正版应用 的签名信息是否不同;
[0036] 重打包应用判断单元,用于在所述相似度大于等于一预先设置的相似度阈值,且 所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同时,确定所述待检测的 安卓应用为所述正版应用的重打包应用。
[0037] 具体的,所述静态特征获取单元,包括:
[0038] 获取模块,用于获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的 情况数据,所申请的安卓系统权限和调用API情况的统计数据;
[0039] 静态特征确定模块,用于将所述待检测的安卓应用调用安卓系统组件的情况数据 和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的静态 特征;
[0040] 所述静态特征确定模块,还用于将所述正版应用调用安卓系统组件的情况数据和 所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
[0041] 此外,所述第一融合单元中的待检测的安卓应用的融合特征与第二融合单元中的 正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征 中的多个特征元素构成集合A;所述正版应用的融合特征中的多个特征元素构成集
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1