一种利用Android设备管理器对抗卸载的软件的识别方法及装置制造方法

文档序号:6620729阅读:340来源:国知局
一种利用Android设备管理器对抗卸载的软件的识别方法及装置制造方法
【专利摘要】本发明实施例公开了一种利用Android设备管理器对抗卸载的软件的识别方法,应用于服务器,执行步骤:对目标软件的APK进行反编译操作,得到反编译结果;对所述反编译结果进行检测,所述检测包括:检测所述反编译结果是否具有利用设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征;根据检测结果是否具有第一特征或第二特征中任意一项,识别所述目标软件是否为利用Android设备管理器对抗卸载的软件。由于整个识别过程由服务器完成,与现有技术相比,不需要大量的分析人员,人力成本降低,识别效率也比较高。
【专利说明】-种利用Android设备管理器对抗卸载的软件的识别方法 及装置

【技术领域】
[0001] 本发明涉及移动安全领域,特别涉及一种利用Android设备管理器对抗卸载的软 件的识别方法及装置。

【背景技术】
[0002] Android系统提供了一个叫设备管理器的设备,其作用是当用户激活软件为设备 管理器后,用户将无法直接将其卸载,只有先将该软件取消激活设备管理器后,才能将其卸 载。
[0003] 一些软件正是利用该原理,通过阻止用户取消激活设备管理器来达到对抗卸载的 目的。这些软件中有很大一部分是恶意软件,这些恶意软件在自动或欺骗用户激活其为设 备管理器后,用户就无法对其取消激活设备管理器,从而无法被卸载,给用户造成危害。因 此,能识别出这些利用设备管理器对抗卸载的软件就显得极为重要。
[0004] 目前,对这些利用设备管理器对抗卸载的软件的识别还停留在人工分析提取特征 的阶段,这种识别方式需要大量的分析人员,人力成本很高,效率也比较低。


【发明内容】

[0005] 为解决上述问题,本发明实施例公开了一种利用Android设备管理器对抗卸载的 软件的识别方法及装置;技术方案如下:
[0006] -种利用Android设备管理器对抗卸载的软件的识别方法,应用于服务器,执行 步骤:
[0007] 对目标软件的APK进行反编译操作,得到反编译结果;
[0008] 对所述反编译结果进行检测,所述检测包括:检测所述反编译结果是否具有利用 设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0009] 根据检测结果是否具有第一特征或第二特征中任意一项,识别所述目标软件是否 为利用Android设备管理器对抗卸载的软件。
[0010] 在本发明的一种优选实施方式中,在所述检测包括检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征的情况下,所述检测具体为:
[0011] 检测所述反编译结果是否具有利用设备管理器漏洞的第一特征;
[0012] 在所述反编译结果不具有所述第一特征的情况下,检测所述反编译结果是否具有 通过接收取消激活设备管理器广播对抗卸载的第二特征。
[0013] 在本发明的一种优选实施方式中,在所述检测包括检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征的情况下,所述检测具体为:
[0014] 检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第 二特征;
[0015] 在所述反编译结果不具有所述第二特征的情况下,检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征。
[0016] 在本发明的一种优选实施方式中,在所述识别所述目标软件是否为利用Android 设备管理器对抗卸载的软件之后,进一步包括:
[0017] 对所述利用Android设备管理器对抗卸载的软件,根据预设的白名单及预设的黑 名单进行分类:
[0018] 当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,将其划分 为安全软件;
[0019] 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,将其划分 为恶意软件;
[0020] 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符 合预设的黑名单时,将其划分为可疑软件。
[0021] 在本发明的一种优选实施方式中,所述检测所述反编译结果是否具有利用设备管 理器漏洞的第一特征,包括:
[0022] 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征;
[0023] 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下, 确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0024] 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进 一步检测所述目标软件是否添加
[0025] android, app. action. DEVICE_ADMIN_ENABLED 属性;
[0026] 在所述目标软件添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的情况 下,确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0027] 在所述目标软件没有添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的 情况下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
[0028] 在本发明的一种优选实施方式中,所述检测所述反编译结果是否具有通过接收取 消激活设备管理器广播对抗卸载的第二特征,包括:
[0029] 根据所述目标软件的AndroidManifest文件定位BroadcastReceiver类的位置;
[0030] 根据所述 BroadcastReceiver 类的位置,定位 BroadcastReceiver 代码;
[0031] 检测所述BroadcastReceiver代码中是否存在
[0032] onDisableRequested 函数和 onDisabled 函数;
[0033] 在onDisableRequested函数和onDisabled函数不都存在的情况下,
[0034] 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特 征;
[0035] 在仅存在onDisableRequested函数的情况下,
[0036] 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特 征;
[0037] 在仅存在onDisabled函数的情况下,
[0038] 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征;
[0039] 在onDisableRequested函数和onDisabled函数都存在的情况下,
[0040] 进一步检测
[0041] 所述onDisableRequested函数及其调用的子函数、所述onDisabled函数及其调 用的子函数中是否存在对抗特征;
[0042] 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0043] 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理 器广播对抗卸载的第二特征。
[0044] 在本发明的一种优选实施方式中,所述对抗特征包括:调用系统锁屏函数、返回桌 面、启动其他Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活设备管 理器界面中的至少一项。
[0045] 同时,本发明还提供了一种利用Android设备管理器对抗卸载的软件的识别装 置,应用于服务器,所述装置包括:
[0046] 反编译单元,用于对目标软件的APK进行反编译操作,得到反编译结果;
[0047] 反编译结果检测单元,用于对所述反编译结果进行检测,所述检测包括:检测所述 反编译结果是否具有利用设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具 有通过接收取消激活设备管理器广播对抗卸载的第二特征;
[0048] 对抗卸载软件识别单元,用于根据检测结果是否具有第一特征或第二特征中任意 一项,识别所述目标软件是否为利用Android设备管理器对抗卸载的软件。
[0049] 在本发明的一种优选实施方式中,在所述检测包括检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征的情况下,所述反编译结果检测单元包括第一特征检测子 单元,第二特征检测子单元;
[0050] 所述第一特征检测子单元用于检测所述反编译结果是否具有利用设备管理器漏 洞的第一特征;
[0051] 并在所述反编译结果不具有所述第一特征的情况下,触发所述第二特征检测子单 元检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征。
[0052] 在本发明的一种优选实施方式中,在所述检测包括检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征的情况下,所述反编译结果检测单元包括第一特征检测子 单元,第二特征检测子单元;
[0053] 所述第二特征检测子单元用于检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征;
[0054] 并在所述反编译结果不具有所述第二特征的情况下,触发所述第一特征检测子单 元检测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
[0055] 在本发明的一种优选实施方式中,还包括软件分类单元,用于在所述对抗卸载软 件识别单元识别所述目标软件是否为利用Android设备管理器对抗卸载的软件之后,对 所述利用Android设备管理器对抗卸载的软件,根据预设的白名单及预设的黑名单进行分 类:
[0056] 当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,将其划分 为安全软件;
[0057] 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,将其划分 为恶意软件;
[0058] 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符 合预设的黑名单时,将其划分为可疑软件。
[0059] 在本发明的一种优选实施方式中,所述反编译结果检测单元检测所述反编译结果 是否具有利用设备管理器漏洞的第一特征,包括:
[0060] 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征;
[0061] 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下, 确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0062] 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进 一步检测所述目标软件是否添加
[0063] android, app. action. DEVICE_ADMIN_ENABLED 属性;
[0064] 在所述目标软件添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的情况 下,确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0065] 在所述目标软件没有添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的 情况下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
[0066] 在本发明的一种优选实施方式中,所述反编译结果检测单元检测所述反编译结果 是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征,包括:
[0067] 根据所述目标软件的AndroidManifest文件定位BroadcastReceiver类的位置;
[0068] 根据所述 BroadcastReceiver 类的位置,定位 BroadcastReceiver 代码;
[0069] 检测所述BroadcastReceiver代码中是否存在
[0070] onDisableRequested 函数和 onDisabled 函数;
[0071] 在onDisableRequested函数和onDisabled函数不都存在的情况下,
[0072] 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特 征;
[0073] 在仅存在onDisableRequested函数的情况下,
[0074] 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特 征;
[0075] 在仅存在onDisabled函数的情况下,
[0076] 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征;
[0077] 在onDisableRequested函数和onDisabled函数都存在的情况下,
[0078] 进一步检测所述 onDisableRequested 函数、onDisabled 函数、 onDisableRequested函数调用的子函数或onDisabled函数调用的子函数中是否存在对抗 特征;
[0079] 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0080] 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理 器广播对抗卸载的第二特征。
[0081] 在本发明的一种优选实施方式中,所述对抗特征包括:调用系统锁屏函数、返回桌 面、启动其他Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活设备管 理器界面中的至少一项。
[0082] 本发明通过由服务器对目标软件的APK进行反编译后,检测其否具有利用设备管 理器漏洞和/或是否具有通过接收取消激活设备管理器广播对抗卸载,并根据检测结果识 别出利用Android设备管理器对抗卸载的软件。
[0083] 由于整个识别过程由服务器完成,与现有技术相比,不需要大量的分析人员,人力 成本降低,识别效率也比较高。

【专利附图】

【附图说明】
[0084] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0085] 图1为本发明提供的第一种利用Android设备管理器对抗卸载的软件的识别方法 流程图;
[0086] 图2为本发明提供的第二种利用Android设备管理器对抗卸载的软件的识别方法 流程图;
[0087] 图3为本发明提供的第三种利用Android设备管理器对抗卸载的软件的识别方法 流程图;
[0088] 图4为本发明提供的第一种利用Android设备管理器对抗卸载的软件的识别装置 示意图;
[0089] 图5为本发明提供的第二种利用Android设备管理器对抗卸载的软件的识别装置 结构示意图;
[0090] 图6为本发明提供的第三种利用Android设备管理器对抗卸载的软件的识别装置 结构示意图。

【具体实施方式】
[0091] 随着Android系统的不断普及,针对Android系统的恶意软件的数量成上升趋势。 在这些恶意软件中,有一部分是专门针对Android系统的设备管理器设计的。
[0092] Android系统设备管理器的作用是,当用户激活软件为设备管理器后,用户将无法 直接将其卸载,只有先将该软件取消激活设备管理器后,才能将其卸载。这些恶意软件正是 利用该原理,通过阻止用户取消激活设备管理器来对抗卸载,进而危害用户。
[0093] 本申请发明人通过研究发现,软件阻止用户取消激活设备管理器目前有两种方 法:
[0094] 第一种是软件利用设备管理器漏洞将其标识信息从设备管理器列表隐藏掉。
[0095] 在Android系统中,当一个软件激活为设备管理器后,它会注册
[0096] android, app. action. DEVICE_ADMIN_ENABLED 属性,
[0097] 这样该软件就会在设备管理器列表中显示其标识信息,这里所说标识信息是指能 将该软件与其它软件相区别的信息,例如该软件的名称等。当用户想卸载该软件时,就可以 在设备管理器列表中找到该软件的标识信息,并将其取消激活设备管理器,然后进行卸载。 [0098] 而设备管理器的漏洞就在于如果一个软件不注册
[0099] android, app· action. DEVICE_ADMIN_ENABLED 属性,
[0100] 它仍然可以激活为设备管理器,并且其标识信息可以不在设备管理器列表中显 示。在这种情况下,用户想卸载该软件,会由于在设备管理器列表中找不到该软件的标识信 息而无法对其取消激活设备管理器,也就无法对其进行卸载。
[0101] 第二种是软件注册BroadcastReceiver (广播接收者)接收取消激活设备管理器 广播,并调用锁屏、启动其他界面、返回桌面等相关代码,阻止用户进行一步的取消激活设 备管理器操作。
[0102] 针对上述的两种阻止用户取消激活设备管理器的方法,本发明提供了一种利用 Android设备管理器对抗卸载的软件的识别方法,应用于服务器,可以执行步骤:
[0103] 对目标软件的APK进行反编译操作,得到反编译结果;
[0104] 对所述反编译结果进行检测,所述检测包括:检测所述反编译结果是否具有利用 设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0105] 在所述反编译结果具有第一特征或第二特征中任意一项的情况下,识别所述目标 软件为利用Android设备管理器对抗卸载的软件。
[0106] 本发明通过由服务器对目标软件的APK进行反编译后,检测其否具有利用设备管 理器漏洞和/或是否具有通过接收取消激活设备管理器广播对抗卸载,并根据检测结果识 别出该目标软件是否为利用Android设备管理器对抗卸载的软件。
[0107] 由于整个识别过程由服务器完成,与现有技术相比,不需要大量的分析人员,人力 成本降低,识别效率也比较高。
[0108] 下面将结合本发明施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。
[0109] 如图1所示,一种利用Android设备管理器对抗卸载的软件的识别方法,应用于服 务器,可以执行步骤:
[0110] S101,对目标软件的APK进行反编译操作,得到反编译结果。
[0111] S102,对所述反编译结果进行检测,所述检测包括:检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征。
[0112] S103,根据检测结果是否具有第一特征或第二特征中任意一项,识别所述目标软 件是否为利用Android设备管理器对抗卸载的软件。
[0113] 根据前面对软件阻止用户取消激活设备管理器所采用的两种方法的分析,本发明 实施例具体实施过程中,可以包括四种方案。
[0114] 第一种方案是:当在服务器下载了一个未知的软件后,可以将其设定为目标软件, 并由服务器自动对其进行如下处理:
[0115] 对目标软件的APK进行反编译操作,得到反编译结果,然后检测所述反编译结果 是否具有利用设备管理器漏洞的第一特征,如果反编译结果具有第一特征,那么就可以识 别所述目标软件为利用Android设备管理器对抗卸载的软件。如果反编译结果不具有第一 特征,那么就可以识别所述目标软件为非利用Android设备管理器对抗卸载的软件。
[0116] 在实际检测过程中,检测所述反编译结果是否具有利用设备管理器漏洞的第一特 征的方法,可以包括:
[0117] 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征;
[0118] 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下, 确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0119] 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进 一步检测所述目标软件是否添加
[0120] android, app. action. DEVICE_ADMIN_ENABLED 属性;
[0121] 在所述目标软件添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的情况 下,确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0122] 在所述目标软件没有添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的 情况下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
[0123] 第二种方案是:当在服务器下载了 一个未知的软件后,可以将其设定为目标软件, 并由服务器自动对其进行如下处理:
[0124] 对目标软件的APK进行反编译操作,得到反编译结果,然后检测所述反编译结果 是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征;如果反编译结果具有第 二特征,那么就可以识别所述目标软件为利用Android设备管理器对抗卸载的软件。如果 反编译结果不具有第二特征,那么就可以识别所述目标软件为非利用Android设备管理器 对抗卸载的软件。
[0125] 由于软件在注册Android系统设备管理器时,会注册BroadcastReceiver来接收 系统发出的广播,通常该 BroadcastReceiver 会有 onDisableRequested 和 onDisabled 两 个函数处理系统发出的不同广播。
[0126] 当用户点击取消激活设备管理器,系统会发送一条广播,该软件的 onDisableRequested函数会处理该广播。当设备管理器取消激活成功后,该软件的 onDisabled函数会处理对应的广播。所以,恶意软件会在这两个函数添加对抗特征来阻止 用户取消激活设备管理器。
[0127] 因此,在实际检测过程中,检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征的方法,可以包括:
[0128] 根据所述目标软件的AndroidManifest文件定位BroadcastReceiver类的位置;
[0129] 根据所述 BroadcastReceiver 类的位置,定位 BroadcastReceiver 代码;
[0130] 检测所述BroadcastReceiver代码中是否存在
[0131] onDisableRequested 函数和 onDisabled 函数;
[0132] 在onDisableRequested函数和onDisabled函数不都存在的情况下,
[0133] 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特 征;
[0134] 在仅存在onDisableRequested函数的情况下,
[0135] 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特 征;
[0136] 在仅存在onDisabled函数的情况下,
[0137] 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征;
[0138] 在onDisableRequested函数和onDisabled函数都存在的情况下,
[0139] 进一步检测
[0140] 所述onDisableRequested函数及其调用的子函数、所述onDisabled函数及其调 用的子函数中是否存在对抗特征;
[0141] 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0142] 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理 器广播对抗卸载的第二特征。
[0143] 在此方案中的对抗特征优选为:调用系统锁屏函数、返回桌面、启动其他 Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活设备管理器界面中的 至少一项。
[0144] 可以理解的是,这些对抗特征表现在函数中就是与之相应的代码,本领域技术人 员可以根据本发明在此对对抗特征的描述而知晓与之相对应的代码。
[0145] 如图2所示,第三种方案是:在服务器下载了一个未知的软件后,可以将其设定为 目标软件,并由服务器自动对其进行如下处理:
[0146] 首先执行S101,对目标软件的APK进行反编译操作,得到反编译结果,然后执行 S102a,检测所述反编译结果是否具有利用设备管理器漏洞的第一特征,如果反编译结果具 有第一特征,那么就可以执行S103,识别所述目标软件为利用Android设备管理器对抗卸 载的软件。
[0147] 如果反编译结果不具有第一特征,则执行S102b,进一步检测所述反编译结果是否 具有通过接收取消激活设备管理器广播对抗卸载的第二特征;如果反编译结果具有第二特 征,那么就可以执行S103,识别所述目标软件为利用Android设备管理器对抗卸载的软件。
[0148] 如果反编译结果不具有第二特征,那么就可以执行S104,识别所述目标软件为非 利用Android设备管理器对抗卸载的软件。
[0149] 当然,可以理解的是,在上述的第三种方案中,也可以先检测所述反编译结果是否 具有通过接收取消激活设备管理器广播对抗卸载的第二特征;
[0150] 在所述反编译结果不具有所述第二特征的情况下,检测所述反编译结果是否具有 利用设备管理器漏洞的第一特征。
[0151] 第四种方案是:在服务器下载了一个未知的软件后,就可以将其设定为目标软件, 并由服务器自动对其进行如下处理:
[0152] 首先对目标软件的APK进行反编译操作,得到反编译结果;
[0153] 然后,检测所述反编译结果是否具有利用设备管理器漏洞的第一特征,得到第一 次检测结果;
[0154] 再检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的 第二特征,得到第二次检测结果;
[0155] 综合两次检测结果,如果在两次检测结果中,反编译结果具有第一特征或第二特 征中任意一项,就识别所述目标软件为利用Android设备管理器对抗卸载的软件。如果在 两次检测结果中,反编译结果既不具有第一特征,也不具有第二特征,就识别所述目标软件 为非利用Android设备管理器对抗卸载的软件。
[0156] 当然,可以理解的是,在上述的第四种方案中,也可以先检测所述反编译结果是否 具有通过接收取消激活设备管理器广播对抗卸载的第二特征;
[0157] 再检测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
[0158] 需要说明的是,在第三种方案及第四种方案中,对反编译结果是否具有利用设备 管理器漏洞的第一特征的检测,可以采用第一种方案中相应的检测方法。
[0159] 在第三种方案及第四种方案中,对反编译结果是否具有通过接收取消激活设备管 理器广播对抗卸载的第二特征的检测,可以采用第二种方案中相应的检测方法。
[0160] 在实际应用中,有些杀毒软件以及监控类软件,为了防止被恶意卸载,也会阻止取 消激活设备管理器。这些杀毒软件以及监控类软件是安全的,不会对用户造成危害,因此, 需要将其与恶意软件进行区分。
[0161] 为达到上述的目的,在本发明的一种优选实施方式,如图3所示,还可以增加一个 分类机制,即在执行S103,根据检测结果是否具有第一特征或第二特征中任意一项,识别所 述目标软件是否为利用Android设备管理器对抗卸载的软件之后,执行S105,对所述利用 Android设备管理器对抗卸载的软件,根据预设的白名单及预设的黑名单进行分类。分类目 的是要将对用户无害的安全软件与对用户用害的恶意软件进行区别,可以采用现有技术的 相关技术方案实现,本发明在此不作具体限定。
[0162] 例如,当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,可 以将其划分为安全软件;
[0163] 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,可以将其 划分为恶意软件;
[0164] 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符 合预设的黑名单时,将其划分为可疑软件。
[0165] 分类后,对于安全软件,可以不去处理,对于恶意软件,可以将其记录在恶意软件 的数据库中,以便进行进一步的处理,例如对该软件进行查杀等。对于可疑软件,需要对其 进一步的人工分析,以确定其是否为恶意软件。
[0166] 需要说明的是,本发明以上各实施方案,即可以单独实施,也可以结合在一起实 施,具体采用何种实施方式,本领域技术人员可以自行确定,本发明在此不作具体限定。
[0167] 相应于上面的方法实施例,本发明还提供了一种利用Android设备管理器对抗卸 载的软件的识别装置,应用于服务器,如图4所示,该装置与图1所示的方法流程对应,可以 包括:
[0168] 反编译单元101,用于对目标软件的APK进行反编译操作,得到反编译结果;
[0169] 反编译结果检测单元102,用于对所述反编译结果进行检测,所述检测包括:检测 所述反编译结果是否具有利用设备管理器漏洞的第一特征,和/或检测所述反编译结果是 否具有通过接收取消激活设备管理器广播对抗卸载的第二特征;
[0170] 对抗卸载软件识别单元103,用于根据检测结果是否具有第一特征或第二特征中 任意一项,识别所述目标软件是否为利用Android设备管理器对抗卸载的软件。
[0171] 本发明通过由服务器对目标软件的APK进行反编译后,检测其否具有利用设备管 理器漏洞和/或是否具有通过接收取消激活设备管理器广播对抗卸载,并根据检测结果识 别出目标软件是否为利用Android设备管理器对抗卸载的软件。
[0172] 由于整个识别过程由服务器完成,与现有技术相比,不需要大量的分析人员,人力 成本降低,识别效率也比较高。
[0173] 在本发明实施例的一种优选实施方案中,在所述检测包括检测所述反编译结果是 否具有利用设备管理器漏洞的第一特征的情况下,反编译结果检测单元102具体可以用于 检测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
[0174] 在所述反编译结果具有利用设备管理器漏洞的第一特征的情况下,触发对抗卸载 软件识别单元103识别所述目标软件为利用Android设备管理器对抗卸载的软件。在所述 反编译结果不具有利用设备管理器漏洞的第一特征的情况下,触发对抗卸载软件识别单元 103识别所述目标软件为非利用Android设备管理器对抗卸载的软件。
[0175] 在本发明实施例的一种优选实施方案中,在所述检测包括检测所述反编译结果是 否具有通过接收取消激活设备管理器广播对抗卸载的第二特征的情况下,反编译结果检测 单元102具体可以用于检测所述反编译结果是否具有通过接收取消激活设备管理器广播 对抗卸载的第二特征。
[0176] 在所述反编译结果具有通过接收取消激活设备管理器广播对抗卸载的第二特征 情况下,触发对抗卸载软件识别单元103识别所述目标软件为利用Android设备管理器对 抗卸载的软件。在所述反编译结果不具有通过接收取消激活设备管理器广播对抗卸载的第 二特征情况下,触发对抗卸载软件识别单元103识别所述目标软件为非利用Android设备 管理器对抗卸载的软件。
[0177] 在本发明实施例的一种优选实施方案中,如图5所示,可以跟图2所示的方法流程 对应,在所述检测包括检测所述反编译结果是否具有利用设备管理器漏洞的第一特征和检 测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征的情 况下,反编译结果检测单元102可以包括第一特征检测子单元102a,第二特征检测子单元 102b ;第一特征检测子单元102a用于检测所述反编译结果是否具有利用设备管理器漏洞 的第一特征;
[0178] 在所述反编译结果具有所述第一特征的情况下,触发对抗卸载软件识别单元103 识别所述目标软件为利用Android设备管理器对抗卸载的软件。
[0179] 在所述反编译结果不具有所述第一特征的情况下,触发所述第二特征检测子单元 102b检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特 征。
[0180] 在所述反编译结果具有通过接收取消激活设备管理器广播对抗卸载的第二特征 情况下,触发对抗卸载软件识别单元103识别所述目标软件为利用Android设备管理器对 抗卸载的软件。
[0181] 在所述反编译结果不具有通过接收取消激活设备管理器广播对抗卸载的第二特 征情况下,触发对抗卸载软件识别单元103识别所述目标软件为非利用Android设备管理 器对抗卸载的软件。
[0182] 当然,也可以由第二特征检测子单元102b先检测所述反编译结果是否具有通过 接收取消激活设备管理器广播对抗卸载的第二特征;
[0183] 并在所述反编译结果不具有所述第二特征的情况下,触发所述第一特征检测子单 元102a检测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
[0184] 或
[0185] 第一特征检测子单元102a检测所述反编译结果是否具有利用设备管理器漏洞的 第一特征,然后由第二特征检测子单元l〇2b检测所述反编译结果是否具有通过接收取消 激活设备管理器广播对抗卸载的第二特征。
[0186] 如果在两次检测结果中,反编译结果具有第一特征或第二特征中任意一项,则触 发对抗卸载软件识别单元103识别所述目标软件为利用Android设备管理器对抗卸载的软 件。如果在两次检测结果中,反编译结果既不具有第一特征,也不具有第二特征,则触发对 抗卸载软件识别单元103识别所述目标软件为非利用Android设备管理器对抗卸载的软 件。
[0187] 当然,也可以由第二特征检测子单元102b先检测所述反编译结果是否具有通过 接收取消激活设备管理器广播对抗卸载的第二特征;然后由第一特征检测子单元l〇2a检 测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
[0188] 在本发明上述的各实施方案中,反编译结果检测单元102检测所述反编译结果是 否具有利用设备管理器漏洞的第一特征,可以包括:
[0189] 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征;
[0190] 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下, 确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0191] 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进 一步检测所述目标软件是否添加
[0192] android, app. action. DEVICE_ADMIN_ENABLED 属性;
[0193] 在所述目标软件添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的情况 下,确定所述反编译结果不具有利用设备管理器漏洞的第一特征;
[0194] 在所述目标软件没有添加 android, app· action. DEVICE_ADMIN_ENABLED 属性的 情况下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
[0195] 可以理解的是,也可以采用其它方法来检测所述反编译结果是否具有利用设备管 理器漏洞的第一特征,本领域技术人员可以根据实际情况进行选择。
[0196] 在本发明上述的各实施方案中,反编译结果检测单元102检测所述反编译结果是 否具有通过接收取消激活设备管理器广播对抗卸载的第二特征,可以包括:根据所述目标 软件的AndroidManifest文件定位BroadcastReceiver类的位置;
[0197] 根据所述 BroadcastReceiver 类的位置,定位 BroadcastReceiver 代码;
[0198] 检测所述BroadcastReceiver代码中是否存在
[0199] onDisableRequested 函数和 onDisabled 函数;
[0200] 在onDisableRequested函数和onDisabled函数不都存在的情况下,
[0201] 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特 征;
[0202] 在仅存在onDisableRequested函数的情况下,
[0203] 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特 征;
[0204] 在仅存在onDisabled函数的情况下,
[0205] 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征;
[0206] 在onDisableRequested函数和onDisabled函数都存在的情况下,
[0207] 进一步检测所述 onDisableRequested 函数、onDisabled 函数、 onDisableRequested函数调用的子函数或onDisabled函数调用的子函数中是否存在对抗 特征;
[0208] 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备 管理器广播对抗卸载的第二特征;
[0209] 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理 器广播对抗卸载的第二特征。
[0210] 可以理解的是,也可以采用其它方法来检测所述反编译结果是否具有通过接收取 消激活设备管理器广播对抗卸载的第二特征,本领域技术人员可以根据实际情况进行选 择。
[0211] 在上述检测第二特征的过程中,对抗特征优选为:调用系统锁屏函数、返回桌面、 启动其他Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活设备管理 器界面中的至少一项。
[0212] 在本发明实施例的一种优选实施方案中,如图6所示,可以跟图3所示的方法流程 对应,还包括软件分类单元105,用于在对抗卸载软件识别单元103识别所述目标软件是否 为利用Android设备管理器对抗卸载的软件之后,对所述利用Android设备管理器对抗卸 载的软件,根据预设的白名单及预设的黑名单进行分类。
[0213] 分类目的是要将对用户无害的安全软件与对用户用害的恶意软件进行区别,可以 采用现有技术的相关技术方案实现,本发明在此不作具体限定,
[0214] 例如,当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,将 其划分为安全软件;
[0215] 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,将其划分 为恶意软件;
[0216] 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符 合预设的黑名单时,将其划分为可疑软件。
[0217] 分类后,对于安全软件,可以不去处理,对于恶意软件,可以将其记录在一个恶意 软件的数据库中,以便进行进一步的处理,例如对该软件进行查杀等。对于可疑软件,需要 对其进一步的人工分析,以确定其是否为恶意软件。
[0218] 需要说明的是,本发明以上各实施方案,即可以单独实施,也可以结合在一起实 施,具体采用何种实施方式,本领域技术人员可以自行确定,本发明在此不作具体限定。
[0219] 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另 一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际 的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包 含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括 没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。 在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素 的过程、方法、物品或者设备中还存在另外的相同要素。
[0220] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实 施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例 的部分说明即可。
[0221] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中, 这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0222] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
【权利要求】
1. 一种利用Android设备管理器对抗卸载的软件的识别方法,其特征在于,应用于服 务器,执行步骤: 对目标软件的APK进行反编译操作,得到反编译结果; 对所述反编译结果进行检测,所述检测包括:检测所述反编译结果是否具有利用设备 管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通过接收取消激活设备管理 器广播对抗卸载的第二特征; 根据检测结果是否具有第一特征或第二特征中任意一项,识别所述目标软件是否为利 用Android设备管理器对抗卸载的软件。
2. 如权利要求1所述的方法,其特征在于,在所述检测包括检测所述反编译结果是否 具有利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征的情况下,所述检测具体为: 检测所述反编译结果是否具有利用设备管理器漏洞的第一特征; 在所述反编译结果不具有所述第一特征的情况下,检测所述反编译结果是否具有通过 接收取消激活设备管理器广播对抗卸载的第二特征。
3. 如权利要求1所述的方法,其特征在于,在所述检测包括检测所述反编译结果是否 具有利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征的情况下,所述检测具体为: 检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特 征; 在所述反编译结果不具有所述第二特征的情况下,检测所述反编译结果是否具有利用 设备管理器漏洞的第一特征。
4. 如权利要求1所述的方法,其特征在于,在所述识别所述目标软件是否为利用 Android设备管理器对抗卸载的软件之后,进一步包括: 对所述利用Android设备管理器对抗卸载的软件,根据预设的白名单及预设的黑名单 进行分类: 当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,将其划分为安 全软件; 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,将其划分为恶 意软件; 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符合预 设的黑名单时,将其划分为可疑软件。
5. 如权利要求1-4中任意一项所述的方法,其特征在于,所述检测所述反编译结果是 否具有利用设备管理器漏洞的第一特征,包括: 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征; 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下,确定 所述反编译结果不具有利用设备管理器漏洞的第一特征; 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进一步 检测所述目标软件是否添加 android, app. action. DEVICE_ADMIN_ENABLED 属性; 在所述目标软件添加android, app. action. DEVICE_ADMIN_ENABLED属性的情况下,确 定所述反编译结果不具有利用设备管理器漏洞的第一特征; 在所述目标软件没有添加android, app· action. DEVICE_ADMIN_ENABLED属性的情况 下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
6. 如权利要求1-4中任意一项所述的方法,其特征在于,所述检测所述反编译结果是 否具有通过接收取消激活设备管理器广播对抗卸载的第二特征,包括: 根据所述目标软件的AndroidManifest文件定位BroadcastReceiver类的位置; 根据所述BroadcastReceiver类的位置,定位BroadcastReceiver代码; 检测所述BroadcastReceiver代码中是否存在 onDisableRequested 函数和 onDisabled 函数; 在onDisableRequested函数和onDisabled函数不都存在的情况下, 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特征; 在仅存在onDisableRequested函数的情况下, 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特征; 在仅存在onDisabled函数的情况下, 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征; 在onDisableRequested函数和onDisabled函数都存在的情况下, 进一步检测 所述onDisableRequested函数及其调用的子函数、所述onDisabled函数及其调用的 子函数中是否存在对抗特征; 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备管理 器广播对抗卸载的第二特征; 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理器广 播对抗卸载的第二特征。
7. 如权利要求6所述的方法,其特征在于,所述对抗特征包括:调用系统锁屏函数、返 回桌面、启动其他Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活设 备管理器界面中的至少一项。
8. -种利用Android设备管理器对抗卸载的软件的识别装置,其特征在于,应用于服 务器,所述装置包括: 反编译单元,用于对目标软件的APK进行反编译操作,得到反编译结果; 反编译结果检测单元,用于对所述反编译结果进行检测,所述检测包括:检测所述反编 译结果是否具有利用设备管理器漏洞的第一特征,和/或检测所述反编译结果是否具有通 过接收取消激活设备管理器广播对抗卸载的第二特征; 对抗卸载软件识别单元,用于根据检测结果是否具有第一特征或第二特征中任意一 项,识别所述目标软件是否为利用Android设备管理器对抗卸载的软件。
9. 如权利要求8所述的装置,其特征在于,在所述检测包括检测所述反编译结果是否 具有利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征的情况下,所述反编译结果检测单元包括第一特征检 测子单元,第二特征检测子单元; 所述第一特征检测子单元用于检测所述反编译结果是否具有利用设备管理器漏洞的 第一特征; 并在所述反编译结果不具有所述第一特征的情况下,触发所述第二特征检测子单元检 测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征。
10. 如权利要求8所述的装置,其特征在于,在所述检测包括检测所述反编译结果是否 具有利用设备管理器漏洞的第一特征和检测所述反编译结果是否具有通过接收取消激活 设备管理器广播对抗卸载的第二特征的情况下,所述反编译结果检测单元包括第一特征检 测子单元,第二特征检测子单元; 所述第二特征检测子单元用于检测所述反编译结果是否具有通过接收取消激活设备 管理器广播对抗卸载的第二特征; 并在所述反编译结果不具有所述第二特征的情况下,触发所述第一特征检测子单元检 测所述反编译结果是否具有利用设备管理器漏洞的第一特征。
11. 如权利要求8所述的装置,其特征在于,还包括软件分类单元,用于在所述对抗卸 载软件识别单元识别所述目标软件是否为利用Android设备管理器对抗卸载的软件之后, 对所述利用Android设备管理器对抗卸载的软件,根据预设的白名单及预设的黑名单进行 分类: 当所述利用Android设备管理器对抗卸载的软件符合预设的白名单时,将其划分为安 全软件; 当所述利用Android设备管理器对抗卸载的软件符合预设的黑名单时,将其划分为恶 意软件; 当所述利用Android设备管理器对抗卸载的软件既不符合预设的白名单,又不符合预 设的黑名单时,将其划分为可疑软件。
12. 如权利要求8-11中任意一项所述的装置,其特征在于,所述反编译结果检测单元 检测所述反编译结果是否具有利用设备管理器漏洞的第一特征,包括: 检测所述目标软件的AndroidManifest文件是否具有注册设备管理器特征; 在所述目标软件的AndroidManifest文件不具有注册设备管理器特征的情况下,确定 所述反编译结果不具有利用设备管理器漏洞的第一特征; 在所述目标软件的AndroidManifest文件具有注册设备管理器特征的情况下,进一步 检测所述目标软件是否添加 android, app. action. DEVICE_ADMIN_ENABLED 属性; 在所述目标软件添加 android, app. action. DEVICE_ADMIN_ENABLED属性的情况下,确 定所述反编译结果不具有利用设备管理器漏洞的第一特征; 在所述目标软件没有添加 android, app· action. DEVICE_ADMIN_ENABLED属性的情况 下,确定所述反编译结果具有利用设备管理器漏洞的第一特征。
13. 如权利要求8-11中任意一项所述的装置,其特征在于,所述反编译结果检测单元 检测所述反编译结果是否具有通过接收取消激活设备管理器广播对抗卸载的第二特征,包 括: 根据所述目标软件的AndroidManifest文件定位BroadcastReceiver类的位置; 根据所述BroadcastReceiver类的位置,定位BroadcastReceiver代码; 检测所述BroadcastReceiver代码中是否存在 onDisableRequested 函数和 onDisabled 函数; 在onDisableRequested函数和onDisabled函数不都存在的情况下, 确定所述反编译结果不具有接收取消激活设备管理器广播对抗卸载的第二特征; 在仅存在onDisableRequested函数的情况下, 进一步检测所述onDisableRequested函数及其调用的子函数中是否存在对抗特征; 在仅存在onDisabled函数的情况下, 进一步检测所述onDisabled函数及其调用的子函数中是否存在对抗特征; 在onDisableRequested函数和onDisabled函数都存在的情况下, 进一步检测所述 onDisableRequested 函数、onDisabled 函数、onDisableRequested 函 数调用的子函数或onDisabled函数调用的子函数中是否存在对抗特征; 在不存在对抗特征的情况下,确定所述反编译结果不具有通过接收取消激活设备管理 器广播对抗卸载的第二特征; 在存在对抗特征的情况下,确定所述反编译结果具有通过接收取消激活设备管理器广 播对抗卸载的第二特征。
14.如权利要求13所述的装置,其特征在于,所述对抗特征包括:调用系统锁屏函数、 返回桌面、启动其他Activity覆盖当前窗口、启动悬浮窗覆盖当期窗口以及调用系统激活 设备管理器界面中的至少一项。
【文档编号】G06F21/56GK104123499SQ201410345647
【公开日】2014年10月29日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】沈江波, 张楠, 陈勇 申请人:北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1