用于防止篡改数据的方法和设备的制作方法
【专利摘要】本发明提供了一种用于防止篡改数据的方法和设备。该方法包括:(a)拦截所述设备上的写操作;(b)根据第一应用信息和第二应用信息来确定是否允许继续执行拦截到的写操作,其中,所述第一应用信息是与发起所述写操作的第一应用相关的信息,以及所述第二应用信息是与所述写操作的目标数据所属的第二应用相关的信息;以及(c)如果确定允许继续执行所述写操作,则继续执行所述写操作,否则终止所述写操作。
【专利说明】用于防止篡改数据的方法和设备
【技术领域】
[0001]本发明涉及数据安全领域,更具体地涉及用于防止篡改数据的方法和设备。
【背景技术】
[0002]移动终端已经逐渐成为人们在工作、学习和生活中必不可少的一部分。针对这种现状,通过非法、隐秘或强制等手段对移动终端上存储的数据进行盗取或破坏的安全事件也频繁发生。例如,手机病毒可以通过在正常数据文件中添加自身代码以达到繁殖、传播的目的。又或者恶意第三方使用加密密钥对用户移动终端中的重要数据(例如,个人信息、重要文档、相片、视频等)进行恶意加密,并以解密密钥对用户进行讹诈、勒索等。这些对设备中的数据进行的篡改直接导致了即使是合法用户也无法对存储在自己设备上的数据进行合理访问,且有可能导致了设备的软硬件损坏,甚至面临被敲诈的风险。
[0003]目前针对这种恶意篡改设备上个人数据、系统数据和/或隐藏数据的非法犯罪手段,还没有提供较好的防护措施。现有技术中往往只是通过检查访问权限等方式,对访问目标数据的访问对象进行安全性鉴别。
【发明内容】
[0004]为了解决上述问题,提供了根据本发明的用于防止篡改数据的方法和设备。
[0005]根据本发明的第一方面,提供了一种用于防止篡改设备上的数据的方法。该方法包括:(a)拦截所述设备上的写操作;(b)根据第一应用信息和第二应用信息来确定是否允许继续执行拦截到的写操作,其中,所述第一应用信息是与发起所述写操作的第一应用相关的信息,以及所述第二应用信息是与所述写操作的目标数据所属的第二应用相关的信息;以及(C)如果确定允许继续执行所述写操作,则继续执行所述写操作,否则终止所述写操作。
[0006]在一些实施例中,所述第一应用信息是通过如下方式获得的:确定调用了所述写操作的进程;确定与所述进程相对应的所述第一应用;以及获取所述第一应用的第一应用信息。
[0007]在一些实施例中,所述第二应用信息是通过如下方式获得的:从拦截到的所述写操作中提取目标数据的数据位置信息;根据所述数据位置信息,从预先生成的应用原始信息列表中检索对应的记录;以及从检索到的记录中提取所述第二应用的第二应用信息。
[0008]在一些实施例中,所述应用原始信息列表中的每条记录包括以下至少一项:应用名称、应用所属的用户ID、应用所属的用户组ID、应用路径、所述应用路径下的文件总数、以及文件加密属性。
[0009]在一些实施例中,所述第一应用信息是所述第一应用的用户ID和/或用户组ID,以及所述第二应用信息是所述第二应用的用户ID和/或用户组ID。
[0010]在一些实施例中,步骤(b)还包括:比较所述第一应用信息和所述第二应用信息以确定它们是否一致,如果一致则确定允许继续执行所述写操作,否则确定终止所述写操作。
[0011]在一些实施例中,步骤(b)还包括:(bl)比较所述第一应用信息和所述第二应用信息以确定它们是否一致;(b2)如果一致,则判断所述目标数据的原始数据与所述写操作要写入的更新数据之间的差异是否小于等于阈值;(b3)如果小于等于所述阈值,则确定允许所述写操作。
[0012]在一些实施例中,步骤(b3)还包括:如果大于所述阈值,则向所述设备的用户询问是否允许继续执行所述写操作;根据所述用户的答复来确定是否允许继续执行所述写操作。
[0013]在一些实施例中,步骤(b2)还包括:(b21)如果不一致,则根据所述第二应用的应用名称在预先生成的防篡改策略定义列表中查找对应的防篡改策略定义;(b22)根据查找到的防篡改策略定义,来确定是否允许继续执行所述写操作。
[0014]在一些实施例中,所述防篡改策略定义包括以下至少一项:索引、应用名称、允许进行写操作的用户ID、允许进行写操作的用户组ID、是否允许加密行为、信息差异度阈值、以及是否询问用户操作。
[0015]在一些实施例中,步骤(b22)还包括:对所述第一应用信息中的用户ID和/或用户组ID以及所述防篡改策略定义中的用户ID和/或用户组ID进行比较,以确定它们是否一致;根据比较的结果来确定是否允许继续执行所述写操作。
[0016]在一些实施例中,步骤(b22)还包括:判断所述写操作是否调用了用于在执行所述写操作时对所述目标数据进行加密的加密库;确定所述判断的结果与所述防篡改策略定义中的“是否允许加密行为”字段的值是否一致;以及如果一致,则确定允许继续执行所述写操作,否则确定终止所述写操作。
[0017]在一些实施例中,所述方法在步骤(a)之前还包括:⑷读取所述设备上所有已安装的应用的应用信息;以及(e)基于各个应用的应用信息形成所述应用原始信息列表。
[0018]在一些实施例中,所述防篡改策略定义列表是在所述设备的本地设置的或从远程服务器获取的。
[0019]在一些实施例中,所述差异的计算是通过对所述原始数据和所述更新数据中的一处或多处对应数据片段之间的一个或多个差异的加权和的计算来实现的。
[0020]在一些实施例中,将与任一步骤相关的操作信息记录到所述设备的日志文件中。
[0021]根据本发明的第二方面,提供了一种用于防止篡改本地数据的设备,包括:写操作拦截单元,用于拦截所述设备上的写操作;写操作确定单元,用于根据第一应用信息和第二应用信息来确定是否允许继续执行拦截到的写操作,其中,所述第一应用信息是与发起所述写操作的第一应用相关的信息,以及所述第二应用信息是与所述写操作的目标数据所属的第二应用相关的信息;以及确定结果执行单元,用于如果确定允许继续执行所述写操作,则继续执行所述写操作,否则终止所述写操作。
[0022]在一些实施例中,所述第一应用信息是通过如下方式获得的:确定调用了所述写操作的进程;确定与所述进程相对应的所述第一应用;以及获取所述第一应用的第一应用信息。
[0023]在一些实施例中,所述第二应用信息是通过如下方式获得的:从拦截到的所述写操作中提取目标数据的数据位置信息;根据所述数据位置信息,从预先生成的应用原始信息列表中检索对应的记录;以及从检索到的记录中提取所述第二应用的第二应用信息。
[0024]在一些实施例中,所述应用原始信息列表中的每条记录包括以下至少一项:应用名称、应用所属的用户ID、应用所属的用户组ID、应用路径、所述应用路径下的文件总数、以及文件加密属性。
[0025]在一些实施例中,所述第一应用信息是所述第一应用的用户ID和/或用户组ID,以及所述第二应用信息是所述第二应用的用户ID和/或用户组ID。
[0026]在一些实施例中,所述写操作确定单元还用于:比较所述第一应用信息和所述第二应用信息以确定它们是否一致,如果一致则确定允许继续执行所述写操作,否则确定终止所述写操作。
[0027]在一些实施例中,所述写操作确定单元还用于:比较所述第一应用信息和所述第二应用信息以确定它们是否一致;如果一致,则判断所述目标数据的原始数据与所述写操作要写入的更新数据之间的差异是否小于等于阈值;如果小于等于所述阈值,则确定允许所述写操作。
[0028]在一些实施例中,所述写操作确定单元还用于:如果大于所述阈值,则向所述设备的用户询问是否允许继续执行所述写操作;根据所述用户的答复来确定是否允许继续执行所述写操作。
[0029]在一些实施例中,所述写操作确定单元还用于:如果不一致,则根据所述第二应用的应用名称在预先生成的防篡改策略定义列表中查找对应的防篡改策略定义;根据查找到的防篡改策略定义,来确定是否允许继续执行所述写操作。
[0030]在一些实施例中,所述防篡改策略定义包括以下至少一项:索引、应用名称、允许进行写操作的用户ID、允许进行写操作的用户组ID、是否允许加密行为、信息差异度阈值、以及是否询问用户操作。
[0031]在一些实施例中,所述写操作确定单元还用于:对所述第一应用信息中的用户ID和/或用户组ID以及所述防篡改策略定义中的用户ID和/或用户组ID进行比较,以确定它们是否一致;根据比较的结果来确定是否允许继续执行所述写操作。
[0032]在一些实施例中,所述写操作确定单元还用于:判断所述写操作是否调用了用于在执行所述写操作时对所述目标数据进行加密的加密库;确定所述判断的结果与所述防篡改策略定义中的“是否允许加密行为”字段的值是否一致;以及如果一致,则确定允许继续执行所述写操作,否则确定终止所述写操作。
[0033]在一些实施例中,所述设备还包括:应用信息读取单元,用于读取所述设备上所有已安装的应用的应用信息;以及列表形成单元,用于基于各个应用的应用信息形成所述应用原始信息列表。
[0034]在一些实施例中,所述防篡改策略定义列表是在所述设备的本地设置的或从远程服务器获取的。
[0035]在一些实施例中,所述差异的计算是通过对所述原始数据和所述更新数据中的一处或多处对应数据片段之间的一个或多个差异的加权和的计算来实现的。
[0036]在一些实施例中,所述设备还包括:日志记录单元,用于将与任一单元相关的操作信息记录到所述设备的日志文件中。
[0037]通过使用本发明的方法和设备,可以将不经过用户授权而对设备数据进行非法篡改的行为实时检测并判断出来,进而采取相应的安全防范措施,这极大地提高了设备数据的安全性。
【专利附图】
【附图说明】
[0038]通过下面结合【专利附图】
【附图说明】本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
[0039]图1是示出了根据本发明实施例的用于防止篡改数据的系统的示例应用场景的示意图。
[0040]图2是示出了根据本发明实施例的用于防止篡改数据的示例流程图。
[0041]图3是示出了根据本发明实施例的在设备处执行的用于防止篡改数据的示例方法的流程图。
[0042]图4是示出了根据本发明实施例的用于执行图3所示方法的示例设备的框图。【具体实施方式】
[0043]下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA,CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。此外,本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)iOS、Windows Phone、Symbian (塞班)、Android(安卓)等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
[0044]图1是示出了根据本发明的数据防篡改系统1000的应用场景的示意图。如图1所示,系统1000可以包括设备100和服务器200。为了清楚起见,图中仅示出了一个设备100以及一个可选服务器200,但本发明并不局限于此,可以包括两个或更多数目的设备和/或服务器等等,也可以不包括可选的服务器200。设备100可以属于用户或者可以由用户操作。设备100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。
[0045]在图1所示实施例中,为了在设备100上防止篡改本地数据,将根据本发明的实施例的数据防篡改客户端150 (以下简称为客户端150)安装在设备100上。客户端150可以由用户以软件的形式自行安装在设备100中,或者可以由生产厂商以硬件或固件的形式安装在设备100中。在一些实施例中,客户端150可以是例如在用户购买了设备100之后从网络中下载的专门用于本发明的应用软件。在另一些实施例中,客户端150可以是例如由生产厂商以固件或硬件形式预先安装在设备100中的应用程序。在又一些实施例中,客户端150可以是由生产厂商生产的硬件模块或设备100本身。
[0046]接下来将参考图1和图2来详细描述根据本发明的一个实施例的在设备100上用于防止篡改数据的流程。[0047]首先,客户端150可以包括两个模块和一个数据库。两个模块分别可以为防恶意篡改配置模块(以下简称为AMEC,即Anti Mal-Exploit Configuration)和防恶意篡改检测模块(以下简称为AMED JPAnti Mal-Exploit Detection),而一个数据库可以为数据档案数据库(DFDB, Data File DataBase)。
[0048]在一个实施例中,AMEC可以通过Android SDK和Java来实现,其包括存储应用管理子模块(以下简称为SAM,即Stored App Management)和防篡改策略定义子模块(以下简称为 AMEPD,即 Anti Mal-Exploit Policy Definition)。在一个实施例中,AMED 可以通过Android NDK和C++来实现,其可以包括数据写监控子模块(以下简称为DWM,S卩Data WriteMonitor)和防篡改安全检测子模块(以下简称为AMESD,即Anti Mal-Exploit SecurityDetection)。
[0049]在一个实施例中,DFDB可以通过设备100上的简易数据库Sqlite来实现。在一个实施例中,在DFDB中,可以对设备100上已安装应用的原始相关信息进行整理和存储,以形成应用原始信息列表(以下简称为A0FL,Application Original File List)。该列表的每条记录(以下简称为A0FLR,即AOFL Record)可以包括以下至少一项:应用名(以下简称为 AN,即 Application Name)、应用所属 UID (以下简称为 AUID,即 Application UID)、应用所属用户组ID(以下简称为AGID, Application Group ID)、应用路径(以下简称为AL,即Application Location)、所在路径下文件总数(以下简称为FC,即File Count)、以及文件加密属性(以下简称为FEA,即File Encryption Attribute)等。在一个实施例中,AOFLR可以包括上述所有项。
[0050]参见图2,在设备100的操作系统启动后,加载客户端150中的AMEC模块和AMED模块,并对DFDB进行初始化和完整性检查。在一个实施例中,这些模块的加载以及DFDB的初始化和/或检查可以在系统启动后尽快进行,以尽早拦截可能出现的写操作。
[0051]在一个实施例中,在加载了 AMEC模块后,AMEC模块可以读取设备100的系统中当前所有已安装应用(包括系统应用和/或用户自行安装的应用)的应用信息,以形成设备应用列表(以下简称为DAL,即Device Application List)。DAL的每条记录可以由应用名组成。同时,AMEC模块还读取设备100的操作系统中所有的WD,以形成UIDL(即UID列表),和/或读取设备100的操作系统中所有的GID,以形成GIDL (即GID列表)。在一个实施例中,DAL、UIDL和/或GIDL构成了 SAM管理的主要部分。
[0052]在一个实施例中,AMEC模块可以启用AMEH)子模块。AMEH)子模块可以读取DAL信息,并选择需要进行防篡改的应用,依据WDL和GIDL来设定相应的防篡改策略AMEP (即Anti Ma1-Exploit Policy)。每条AMEP可以包括以下至少一项:应用名称(即AN)、允许对该应用的数据进行写操作的WD (以下简称为AWUID JPAllowed Written WD,其可以包括一个或多个WD)、GID (以下简称为AWGID JPAllowed Written GID,其可以包括一个或多个GID)、是否允许加密行为(以下简称为IEA,即IfEncryption Allowed)、信息差异度阀值(以下简称为IDV,即Information Difference Vault)、以及是否询问用户操作(以下简称为IQUjP If Query User)。在一个实施例中,每个应用可以对应一条AMEP。以下表I给出了 AMEP的一些示例:
[0053]
【权利要求】
1.一种用于防止篡改设备上的数据的方法,包括: (a)拦截所述设备上的写操作; (b)根据第一应用信息和第二应用信息来确定是否允许继续执行拦截到的写操作,其中,所述第一应用信息是与发起所述写操作的第一应用相关的信息,以及所述第二应用信息是与所述写操作的目标数据所属的第二应用相关的信息;以及 (C)如果确定允许继续执行所述写操作,则继续执行所述写操作,否则终止所述写操作。
2.根据权利要求1所述的方法,其中,所述第一应用信息是通过如下方式获得的: 确定调用了所述写操作的进程; 确定与所述进程相对应的所述第一应用;以及 获取所述第一应用的第一应用信息。
3.根据权利要求1所述的方法,其中,所述第二应用信息是通过如下方式获得的: 从拦截到的所述写操作中提取目标数据的数据位置信息; 根据所述数据位置信息,从预先生成的应用原始信息列表中检索对应的记录;以及 从检索到的记录中提取所述第二应用的第二应用信息。
4.根据权利要求3所述的方法,其中,所述应用原始信息列表中的每条记录包括以下至少一项:应用名称、应用所属的用户ID、应用所属的用户组ID、应用路径、所述应用路径下的文件总数、以及文件加密属性。
5.根据权利要求1所述的方法,其中,所述第一应用信息是所述第一应用的用户ID和/或用户组ID,以及所述第二应用信息是所述第二应用的用户ID和/或用户组ID。
6.根据权利要求5所述的方法,其中,步骤(b)还包括: 比较所述第一应用信息和所述第二应用信息以确定它们是否一致,如果一致则确定允许继续执行所述写操作,否则确定终止所述写操作。
7.根据权利要求5所述的方法,其中,步骤(b)还包括: (bl)比较所述第一应用信息和所述第二应用信息以确定它们是否一致; (b2)如果一致,则判断所述目标数据的原始数据与所述写操作要写入的更新数据之间的差异是否小于等于阈值; (b3)如果小于等于所述阈值,则确定允许所述写操作。
8.根据权利要求7所述的方法,其中,步骤(b3)还包括: 如果大于所述阈值,则向所述设备的用户询问是否允许继续执行所述写操作; 根据所述用户的答复来确定是否允许继续执行所述写操作。
9.根据权利要求7所述的方法,其中,步骤(b2)还包括: (b21)如果不一致,则根据所述第二应用的应用名称在预先生成的防篡改策略定义列表中查找对应的防篡改策略定义; (b22)根据查找到的防篡改策略定义,来确定是否允许继续执行所述写操作。
10.根据权利要求9所述的方法,其中,所述防篡改策略定义包括以下至少一项:索引、应用名称、允许进行写操作的用户ID、允许进行写操作的用户组ID、是否允许加密行为、信息差异度阈值、以及是否询问用户操作。
11.根据权利要求10所述的方法,其中,步骤(b22)还包括:对所述第一应用信息中的用户ID和/或用户组ID以及所述防篡改策略定义中的用户ID和/或用户组ID进行比较,以确定它们是否一致; 根据比较的结果来确定是否允许继续执行所述写操作。
12.根据权利要求11所述的方法,其中,步骤(b22)还包括: 判断所述写操作是否调用了用于在执行所述写操作时对所述目标数据进行加密的加密库; 确定所述判断的结果与所述防篡改策略定义中的“是否允许加密行为”字段的值是否一致;以及 如果一致,则确定允许继续执行所述写操作,否则确定终止所述写操作。
13.根据权利要求4所述的方法,所述方法在步骤(a)之前还包括: (d)读取所述设备上所有已安装的应用的应用信息;以及 (e)基于各个应用的应用信息形成所述应用原始信息列表。
14.根据权利要求9所述的方法,其中,所述防篡改策略定义列表是在所述设备的本地设置的或从远程服务器获取的。
15.根据权利要求7所述的方法,其中,所述差异的计算是通过对所述原始数据和所述更新数据中的一处或多处对应数据片段之间的一个或多个差异的加权和的计算来实现的。
16.根据权利要求1~15所述的方法,其中,将与任一步骤相关的操作信息记录到所述设备的日志文件中。
17.一种用于防止篡改本地数据的设备,包括: 写操作拦截单元,用于拦截所述设备上的写操作; 写操作确定单元,用于根据第一应用信息和第二应用信息来确定是否允许继续执行拦截到的写操作,其中,所述第一应用信息是与发起所述写操作的第一应用相关的信息,以及所述第二应用信息是与所述写操作的目标数据所属的第二应用相关的信息;以及 确定结果执行单元,用于如果确定允许继续执行所述写操作,则继续执行所述写操作,否则终止所述写操作。
【文档编号】G06F21/62GK103971065SQ201410208629
【公开日】2014年8月6日 申请日期:2014年5月16日 优先权日:2014年5月16日
【发明者】陈继 申请人:北京网秦天下科技有限公司