对被可疑应用感染的设备进行恢复的方法及相关设备转让专利
申请号 : CN202011556461.9
文献号 : CN112286736B
文献日 : 2021-06-22
发明人 : 张华 , 王森淼 , 秦素娟 , 秦佳伟 , 李文敏 , 高飞 , 涂腾飞 , 温巧燕 , 王华伟 , 崔栋 , 时忆杰 , 陈淼 , 金正平
申请人 : 北京邮电大学
摘要 :
权利要求 :
1.一种对被可疑应用感染的设备进行恢复的方法,其特征在于,该方法由所述设备上的恢复应用执行,包括:
响应于监听到在所述设备上安装新应用的事件,对该新应用进行静态检测,得到静态检测结果;
响应于确定所述静态检测结果指示所述新应用为可疑应用,将所述新应用的信息加至监控名单中;
响应于确定所述监控名单不为空,通过定期查询来获取所述设备上正在运行的进程的信息;
响应于确定所述进程与所述监控名单中的监控应用相关,检查所述设备是否被设置了恶意锁机密码;
响应于确定所述设备被设置了恶意锁机密码,终止所述进程的运行,并删除所述设备上在第一预定目录下的锁机密码文件,以恢复所述设备;
在终止所述进程的运行后,响应于确定所述设备上在第二预定目录下存在与白名单中的所有应用都无关的日志文件,从一个所述日志文件获取密钥和被恶意加密的文件的列表,并利用所述密钥对所述被恶意加密的文件进行解密,其中,在所述设备上首次运行所述恢复应用时,将所述监控名单初始化为空,而将所述白名单初始化为包含所述设备上已安装的所有应用的信息。
2.根据权利要求1所述的方法,其特征在于,所述设备运行于Android操作系统下,所述进程包括Activity组件和/或Service组件。
3.根据权利要求2所述的方法,其特征在于,所述第一预定目录为/data/system/,所述锁机密码文件包括/data/system/目录下的password.key文件或gesture.key文件。
4.根据权利要求2所述的方法,其特征在于,所述第二预定目录为/sdcard/,所述日志文件为/sdcard/目录下扩展名为log的文件。
5.根据权利要求4所述的方法,其特征在于,所述日志文件是通过Xposed框架下的APIHook工具获取的。
6.一种对被可疑应用感染的设备进行恢复的装置,其特征在于,该装置安装在所述设备上,包括:
检测模块,被配置为:响应于监听到在所述设备上安装新应用的事件,对该新应用进行静态检测,得到静态检测结果;
名单更新模块,被配置为:响应于确定所述静态检测结果指示所述新应用为可疑应用,将所述新应用的信息加至监控名单中;
获取模块,被配置为:响应于确定所述监控名单不为空,通过定期查询来获取所述设备上正在运行的进程的信息;
检查模块,被配置为:响应于确定所述进程与所述监控名单中的监控应用相关,检查所述设备是否被设置了恶意锁机密码;
设备恢复模块,被配置为:响应于所述检查模块确定所述设备被设置了恶意锁机密码,终止所述进程的运行,并删除所述设备上在第一预定目录下的锁机密码文件,以恢复所述设备;
文件解密模块,被配置为:在所述设备恢复模块终止所述进程的运行后,响应于确定所述设备上在第二预定目录下存在与白名单中的所有应用都无关的日志文件,从一个所述日志文件获取密钥和被恶意加密的文件的列表,并利用所述密钥对所述被恶意加密的文件进行解密,
其中,在所述设备上首次启动所述装置时,将所述监控名单初始化为空,而将所述白名单初始化为包含所述设备上已安装的所有应用的信息。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任意一项所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令在被计算机执行时,用于使所述计算机实现根据权利要求1至5中任一所述的方法。
说明书 :
对被可疑应用感染的设备进行恢复的方法及相关设备
技术领域
背景技术
样,目前很难在程序开发上通过系统层面用一种统一的方式来避免用户感染勒索病毒,并
且劫持软件可以将设备的USB接口屏蔽,而设备在感染劫持病毒后的恢复时,往往利用USB
接口进行调试,这使得设备及其文件的恢复出现困难。
发明内容
困难的问题。
卓系统中的根权限,安装后的恢复应用将在设备系统中建立白名单与监控名单,并进行白
名单与监控名单的初始化操作;初始化操作后的监控名单为空,当其不为空时,即触发恢复
应用中的恢复程序,具体的触发操作,由所述恢复应用的触发通过对其他应用程序状态变
化的监听实现;当所述恢复程序被触发后,将依据实时查询安卓四大组件中的Activity与
Service组件,来实现对设备是否被劫持进行判断;当恢复程序判断设备被劫持时,立即终
止Activity与Service组件的运行,并利用根权限强行删除被恶意篡改的锁机密码,实现自
动恢复设备;以及,通过调用程序的日志文件,获取加密文件的密钥,对被恶意加密的文件
自动进行解密恢复。
是否被设置了恶意锁机密码;
程序时实现如上任意一项所述的对被可疑应用感染的设备进行恢复的方法。
所述计算机执行如上述对被可疑应用感染的设备进行恢复的方法。
Sandbox模组,综合考虑了设备权限,恢复方式来进行的设备与文件的恢复,具备用户操作
简单,快速的特点,有效提高了劫持设备的恢复效率,实现了设备在USB接口等多种劫持方
式下的高效恢复操作,避免了用户的财产损失。
附图说明
附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性
劳动的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件
或者物件及其等同,而不排除其他元件或者物件。
的设备进行恢复的方法存在的主要问题在于:面对多种多样的劫持类应用,其劫持手段层
出穷,很难在在程序开发上通过系统层面用一种统一的方式来避免用户感染勒索病毒,并
且劫持软件可以将设备的USB接口屏蔽,而设备在感染劫持病毒后的恢复时,往往利用USB
接口进行调试,这使得设备及其文件的恢复出现极大困难,甚至无法恢复。针对复杂的劫持
手段,很多现有的恢复方案,往往需要专业的技术人员进行恢复操作,对于普通用户来说,
在技术的实现上,也存在极大难度。
用默认设置为具有安卓系统中的根权限,安装后的恢复应用将在设备系统中建立白名单与
监控名单,并进行白名单与监控名单的初始化操作;初始化操作后的监控名单为空,当其不
为空时,即触发恢复应用中的恢复程序,具体的触发操作,由所述恢复应用的触发通过对其
他应用程序状态变化的监听实现;当所述恢复程序被触发后,将依据实时查询安卓四大组
件中的Activity与Service组件,来实现对设备是否被劫持进行判断;当恢复程序判断设备
被劫持时,立即终止Activity与Service组件的运行,并利用根权限强行删除被恶意篡改的
锁机密码,实现自动恢复设备;以及,通过调用程序的日志文件,获取加密文件的密钥,对被
恶意加密的文件自动进行解密恢复。
特征。
并且,所述恢复应用在安装时,默认具备安卓系统的最高权限,且期限为永久,也即永久根
权限。
化。其中,所述白名单的初始化操作为,将此时设备中所有已安装的其他应用加入白名单
中,由于所述恢复应用在本实施例中默认为设备出厂时的预装应用,则可以默认此时设备
中所有其他已安装应用均为非劫持类应用;基于上述安装环境的设定,则所述监控名单的
初始化操作为保持名其名单空白即可。
BroadcastReceiver的Java类监听程序:AppListener,并依据监听需求,重新编写
onReceice()方法,实现所述状态变化的监听。所述状态变化包括:其他应用的安装操作和
卸载操作;其中,所述程序AppListener预先在AndroidManifest(安卓开发文件)中,声明注
册了要监听的事件,在本实施例中分别为:代表安装的ADDED,与代表卸载的REMOVED操作,
因此可以实现每当有应用进行上述安装与卸载操作时,均会触发恢复应用中程序
AppListerner的onReceive()方法,进而使所述恢复应用获知,实现对所有所述其他应用
监听的目的。
检测结果,判断出新安装的该应用是否为恶意绑架勒索类软件。
单为空的初始化状态。
的所有其他应用进行监控,所述的监控操作,通过对所述其他应用进行定时查询实现。具体
的,所述恢复应将通过定时查询安卓系统中当前运行的两大组件:Activity和Service中至
少一项的当前是否出于活跃状态,之后,再判断所述两大组件的活跃状态是否与监控名单
内的其他应用程序相关,具体通过对当前运行的Activity或Service所属应用的包名与监
控名单中其他应用的包名是否一致来实现;在本公开的实施例中,可以将所述定时查询的
具体周期在后台服务器中设置为1分钟间隔,也可以根据具体需求和情况,改变所述定时查
询的时间间隔,在本实施例中,对定时查询的时间间隔不做具体限定。
复应用监控到的Activity或Service活跃状态与监控名单内的其他应用相关时,则将设备
判断为遭遇其他应用的劫持行为,且终止相关的Activity或Service的运行,并检查本公开
中的设备是否被设置了恶意密码。
复程序具备根权限的特点,因此将执行删除/data/system/目录下的password.key文件或
gesture.key文件的操作。其中,所述/data/system/目录为系统配置数据,其下包含的
password.key文件为锁机密码文件,gesture.key文件为锁机图形手势文件,前述/data/
system/目录下的两项文件均为锁机解锁相关的文件。
解锁文件可以是前述的password.key文件或gesture.key文件,也可以是与锁机方式相对
应的其他锁机解锁文件。
无关的日志文件,从一个所述日志文件获取密钥和被恶意加密的文件的列表,并利用所述
密钥对所述被恶意加密的文件进行解密。
后缀的文件,也即代表了日志信息具体变化内容的文件;其中,所述.log为后缀文件包含了
文件加密的密钥,以及被加密文件的路径等与解密操作相关的信息。其中,每1个该类.log
后缀文件,由Xposed框架中相关的API(应用程序编程接口)对每个其他应用进行调用后形
成,并代表了相应应用的日志信息;自主编写的基于Xposed框架下的Sandbox(沙箱)模组可
以实现对相关API的勾取功能,也就是说,恢复程序可以通过Sandbox勾取相应的.log为后
缀文件来获得与加密相关的各项API参数。若所述/sdcard/目录下不存在.log后缀文件,则
结束文件恢复操作。
过滤操作后,若仍有.log后缀文件保留存在,且所述.log后缀文件多于一个时,所述恢复应
用则提示用户从其中选取进行下一步处理的文件,直至所有.log后缀文件均经历过滤或选
取操作,其中,由用户对.log后缀文件进行选取的目的为,避免非劫持行为的良性应用程序
被误操作,在本实施例中,对所述的选取操作方式不做具体限定,可以由用户进行选取,也
可以通过例如:程序的设定,自动部分或全部选取。进一步的,从所有选取出的.log后缀文
件中获取密钥与被加密的文件,并使用密钥针对每个对应的文件进行解密操作。
自动恢复,再对设备执行自动恢复。
设备权限的设置,恢复方式的操作等,来进行的设备与文件的恢复,具备用户操作简单,快
速的特点,有效提高了劫持设备的恢复效率,实现了设备在USB接口等多种劫持方式下的高
效恢复操作,避免了用户的财产损失。
来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个
或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述
的方法。
执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺
序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可
以的或者可能是有利的。
恢复所述设备;
具备并安装了所述恢复应用,并且,所述恢复应用在安装时,默认具备安卓系统的最高权
限,且期限为永久,也即永久根权限。
化。其中,所述白名单的初始化操作为,将此时设备中所有已安装的其他应用加入白名单
中,由于所述恢复应用在本实施例中默认为设备出厂时的预装应用,则可以默认此时设备
中所有其他已安装应用均为非劫持类应用;基于上述安装环境的设定,则所述监控名单的
初始化操作为保持名其名单空白即可。
BroadcastReceiver的Java类监听程序:AppListener,并依据监听需求,重新编写
onReceice()方法,实现所述状态变化的监听。所述状态变化包括:其他应用的安装操作和
卸载操作;其中,所述程序AppListener预先在AndroidManifest(安卓开发文件)中,声明注
册了要监听的事件,在本实施例中分别为:代表安装的ADDED,与代表卸载的REMOVED操作,
因此可以实现每当有应用进行上述安装与卸载操作时,均会触发恢复应用中程序
AppListerner的onReceive()方法,进而使所述恢复应用获知,实现对所有所述其他应用
监听的目的。
检测结果,判断出新安装的该应用是否为恶意绑架勒索类软件。
所述监控名单为空的初始化状态。
将对监控名单内的所有其他应用进行监控,所述的监控操作,通过对所述其他应用进行定
时查询实现。具体的,所述恢复应将通过定时查询安卓系统中当前运行的两大组件:
Activity和Service中至少一项的当前是否出于活跃状态,之后,再判断所述两大组件的活
跃状态是否与监控名单内的其他应用程序相关,具体通过对当前运行的Activity或
Service所属应用的包名与监控名单中其他应用的包名是否一致来实现;在本公开的实施
例中,可以将所述定时查询的具体周期在后台服务器中设置为1分钟间隔,也可以根据具体
需求和情况,改变所述定时查询的时间间隔,在本实施例中,对定时查询的时间间隔不做具
体限定。
所述恢复应用监控到的Activity或Service活跃状态与监控名单内的其他应用相关时,则
将设备判断为遭遇其他应用的劫持行为,且终止相关的Activity或Service的运行,并检查
本公开中的设备是否被设置了恶意密码。
作,具体的,基于所述恢复程序具备根权限的特点,因此将执行删除/data/system/目录下
的password.key文件或gesture.key文件的操作。其中,所述/data/system/目录为系统配
置数据,其下包含的password.key文件为锁机密码文件,gesture.key文件为锁机图形手势
文件,前述/data/system/目录下的两项文件均为锁机解锁相关的文件。
解锁文件可以是前述的password.key文件或gesture.key文件,也可以是与锁机方式相对
应的其他锁机解锁文件。
志文件获取密钥和被恶意加密的文件的列表,并利用所述密钥对所述被恶意加密的文件进
行解密。
后缀的文件,也即代表了日志信息具体变化内容的文件;其中,所述.log为后缀文件包含了
文件加密的密钥,以及被加密文件的路径等与解密操作相关的信息。其中,每1个该类.log
后缀文件,由Xposed框架中相关的API(应用程序编程接口)对每个其他应用进行调用后形
成,并代表了相应应用的日志信息;自主编写的基于Xposed框架下的Sandbox(沙箱)模组可
以实现对相关API的勾取功能,也就是说,恢复程序可以通过Sandbox勾取相应的.log为后
缀文件来获得与加密相关的各项API参数。若所述/sdcard/目录下不存在.log后缀文件,则
结束文件恢复操作。
过滤操作后,若仍有.log后缀文件保留存在,且所述.log后缀文件多于一个时,所述恢复应
用则提示用户从其中选取进行下一步处理的文件,直至所有.log后缀文件均经历过滤或选
取操作,其中,由用户对.log后缀文件进行选取的目的为,避免非劫持行为的良性应用程序
被误操作,在本实施例中,对所述的选取操作方式不做具体限定,可以由用户进行选取,也
可以通过例如:程序的设定,自动部分或全部选取。进一步的,从所有选取出的.log后缀文
件中获取密钥与被加密的文件,并使用密钥针对每个对应的文件进行解密操作。
自动恢复,再对设备执行自动恢复。
计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的对被可疑应用感染
的设备进行恢复的方法。
处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间
在设备内部的通信连接。
或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方
案。
操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案
时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、
扬声器、振动器、指示灯等。
(例如移动网络、WIFI、蓝牙等)实现通信。
行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实
现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的对被可疑应用感染的
设备进行恢复的方法。
其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器
(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器
(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读
存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或
其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
果,在此不再赘述。
或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如
上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细
节中提供。
接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以
理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将
要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员
的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,
对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细
节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的
而不是限制性的。
如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。