一种基于控制流的敏感数据使用权限管理方法及装置与流程

文档序号:18835570发布日期:2019-10-09 05:13阅读:319来源:国知局
一种基于控制流的敏感数据使用权限管理方法及装置与流程

本发明涉及计算机技术领域,更具体地,涉及一种基于控制流的敏感数据使用权限管理方法及装置。



背景技术:

由于android操作系统的开源特性,越来越多的厂商基于android操作系统生产各种移动终端,android操作系统的用户也随之增长。当前android操作系统主要以单个应用程序为粒度进行敏感数据使用权限的管理。当一个应用程序被授予一个敏感数据使用权限后,这个应用程序在任何时间点、任何场景下都可以使用此敏感数据。

现有的权限管理机制存在如下严重的问题:

1、应用程序在用户不期望的场景下使用敏感数据可能导致敏感数据泄露:由于android操作系统无法监控应用程序内部对敏感数据的使用行为,导致已授权的应用程序在用户不期望的场景下滥用敏感数据导致敏感数据的泄露;

2、进程间控制流导致的敏感数据泄露:当前android操作系统只有在应用程序使用敏感数据的情况下才进行权限判断,例如,假设应用程序a不具备敏感数据c的使用权限,应用程序b具备敏感数据c的使用权限,在这种情况下,应用程序a向应用程序b发送一个信号,这个信号不携带敏感数据,但应用程序b收到信号后会将敏感数据c发送到网络,尽管应用程序a发送的控制流导致应用程序b泄露了敏感数据,但是android操作系统不会阻止应用程序a的行为,因为应用程序a没有使用任何敏感数据;

3、由于android操作系统只对应用程序从系统中获取敏感数据时进行权限判断,导致如果上述敏感数据c被应用程序a获取并存储后,应用程序a或其它应用程序从存储的信息中读取敏感数据c时不需要进行权限判断,导致了敏感数据c的泄露。



技术实现要素:

本发明实施例为了克服现有技术中的敏感数据使用权限管理机制容易导致敏感数据泄露的问题,提供一种基于控制流的敏感数据使用权限管理方法及装置。

第一方面,本发明实施例提供一种基于控制流的敏感数据使用权限管理方法,包括:

将目标控制流中当前任意一个被调用函数作为目标函数,检测所述目标函数的参数中是否包含敏感数据;

若所述目标函数的参数中包含敏感数据,且所述目标函数为所述目标控制流中首次使用敏感数据的函数,则获取所述目标函数的参数中所包含的敏感数据类型、所述目标函数的前向函数调用序列、所述目标控制流的触发事件类型和所述目标控制流对应的应用程序标识;

根据所述敏感数据类型、所述前向函数调用序列、所述触发事件类型和所述应用程序标识确定所述预设权限管理库中是否存在匹配的权限信息;

若存在匹配的权限信息,则根据所述匹配的权限信息确定所述目标函数是否具备使用所述敏感数据类型的权限,若所述目标函数具备使用所述敏感数据类型的权限,则允许所述目标函数对所述敏感数据类型进行正常使用。

第二方面,本发明实施例提供一种基于控制流的敏感数据使用权限管理装置,包括:

敏感数据检测模块,用于将目标控制流中当前任意一个被调用函数作为目标函数,检测所述目标函数的参数中是否包含敏感数据;

关联信息获取模块,用于若所述目标函数的参数中包含敏感数据,且所述目标函数为所述目标控制流中首次使用敏感数据的函数,则获取所述目标函数的参数中所包含的敏感数据类型、所述目标函数的前向函数调用序列、所述目标控制流的触发事件类型和所述目标控制流对应的应用程序标识;

权限信息匹配模块,用于根据所述敏感数据类型、所述前向函数调用序列、所述触发事件类型和所述应用程序标识确定所述预设权限管理库中是否存在匹配的权限信息;

使用权限管理模块,用于若存在匹配的权限信息,则根据所述匹配的权限信息确定所述目标函数是否具备使用所述敏感数据类型的权限,若所述目标函数具备使用所述敏感数据类型的权限,则允许所述目标函数对所述敏感数据类型进行正常使用。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法及装置,在检测到目标控制流中当前被调用函数的参数中包含敏感数据之后,根据预设权限管理库确定当前被调用函数是否具备使用敏感数据的权限,当且仅当当前被调用函数具备使用敏感数据的权限时,才允许当前被调用函数对敏感数据进行正常使用。该方法及装置以控制流为粒度进行敏感数据使用权限的管理,由此可以对同一应用程序中的不同控制流分别进行权限管理,能够有效监控同一应用程序中的所有控制流的敏感数据使用情况,以有效避免由于现有技术中的粗粒度敏感数据使用权限管理机制所导致的敏感数据泄露,一定程度上提高了敏感数据的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于控制流的敏感数据使用权限的管理方法的流程示意图;

图2为本发明实施例提供的基于控制流的敏感数据使用权限的管理装置的结构示意图;

图3为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的基于控制流的敏感数据使用权限的管理方法的流程示意图,如图1所示,本发明实施例提供一种基于控制流的敏感数据使用权限管理方法,包括:

s1,将目标控制流中当前任意一个被调用函数作为目标函数,检测目标函数的参数中是否包含敏感数据;

具体地,现有技术中以单个应用程序为粒度进行敏感数据使用权限的管理,容易导致敏感数据发生泄露。有鉴于此,本发明实施例,以控制流为粒度进行敏感数据使用权限的管理。需要说明的是,控制流指的是应用程序在执行过程中所调用的函数序列。

本发明实施例中,对应用程序中的每个控制流进行监控,将任意一个被监控的控制流作为目标控制流。可以理解的是,目标控制流中的多个函数是按照顺序依次被调用的。在此基础上,将目标控制流中当前任意一个被调用函数作为目标函数,并检测目标函数的参数中是否包含敏感数据。其中,敏感数据指的是用户的隐私数据,比如,短信、通讯录、位置信息、摄像头数据等。

s2,若目标函数的参数中包含敏感数据,且目标函数为目标控制流中首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识;

具体地,若检测到目标函数的参数中包含敏感数据,则判断目标函数是否为目标控制流中首次使用敏感数据的函数。可以理解的是,若在目标函数之前被调用的所有函数的参数中均不包含敏感数据,则目标函数为目标控制流中首次使用敏感数据的函数。在此基础上,若确定目标函数为目标控制流中首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识。

需要说明的是,目标函数的参数中所包含的敏感数据类型可以为短信、通讯录、位置信息、摄像头数据等,也可以为其他与用户隐私相关的数据类型,可以根据实际需求进行设置,此处不做具体限定。目标函数的前向函数调用序列指的是在目标函数之前被调用的函数序列,举例而言,若目标控制流中被调用的函数序列为:函数1-函数2-函数3-函数4-函数5,若目标函数为函数4,且目标函数为目标控制流中首次使用敏感数据的函数,则目标函数的前向函数调用序列为:函数1-函数2-函数3。

此外,需要说明的是,目标控制流对应的应用程序标识指的是执行目标控制流的应用程序的uid。目标控制流的触发事件类型指的是触发目标控制流的事件类型,可以理解的是,目标控制流往往是通过某一事件被触发的,该事件即为目标控制流的触发事件。本发明实施例中,触发事件包括:网络交互事件、用户交互事件、系统广播、进程间组件调用、位置信息改变和传感器改变,在其他实施例中,触发事件还可以为其他类型的事件,可以根据实际需求进行设置,此处不做具体限定。其中,若触发事件为网络交互事件,则触发事件类型需要包含网络交互事件所使用的api的名称,函数的参数类型和参数内容;若触发事件为用户交互事件,则触发事件类型需要包含交互事件的类型和相应组件的唯一标识;若触发事件为系统广播,则触发事件类型需要包含具体广播的类型,比如,开机广播等;若触发事件为进程间组件调用,则触发事件类型需要包含发送方进程的uid;若触发事件为位置信息改变,则触发事件类型需要包含相应的api名称;若触发事件为传感器改变,则触发事件类型需要包含相应的api名称和传感器类型。对于其他触发事件,可以结合触发事件的具体类型对触发事件进行区分标识,可以根据实际需求进行设置,此处不做具体限定。

s3,根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息;

具体地,在获得目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识之后,根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息。需要说明的是,预设权限管理库中预先存储了多个控制流的权限信息,每个控制流的权限信息对应于预设权限数据库中的一条权限记录,其中,一条权限记录中包含了应用程序uid、触发事件类型、前向函数调用序列、后向函数调用序列、敏感数据类型和权限类型。在基础上,本发明实施例中,遍历预设权限库中的每条权限记录,将上述获得的敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识依次与每条权限记录中的敏感数据类型、前向函数调用序列、触发事件类型和应用程序uid进行匹配,若匹配成功,则可确定预设权限管理库中存在匹配的权限信息;若匹配不成功,则可确定预设权限管理库中不存在匹配的权限信息。

s4,若存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。

具体地,若预设权限管理库中存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限。可以理解的是,若预设权限管理库中存在匹配的权限信息,则表明预设权限管理库中存在某条权限记录中的敏感数据类型、前向函数调用序列、触发事件类型和应用程序uid与上述获得的敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识匹配,由此可以根据该条权限记录中记录的权限类型确定目标函数是否具备使用敏感数据类型的权限。具体地,若该条权限记录中记录的权限类型为发送权限,则可确定目标函数具备发送敏感数据类型的权限;若该条权限记录中记录的权限类型为访问权限,则可确定目标函数具备访问敏感数据类型的权限;若该条权限记录中记录的权限类型为拒绝,则可确定目标函数不具备使用敏感数据类型的权限。

进一步地,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。其中,使用敏感数据类型的权限包括发送权限和访问权限。也就是说,若目标函数具备发送敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常发送;若目标函数具备访问敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常访问。

需要说明的是,在上述方法步骤中,当前仅当控制流中当前被调用函数的参数中包含敏感数据时,才需要判断当前被调用函数是否具备使用敏感数据的权限。可以看出,本发明实施例提供的基于控制流的敏感数据使用权限管理方法是以敏感数据流为导向进行敏感数据使用权限管理的。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,在检测到目标控制流中当前被调用函数的参数中包含敏感数据之后,根据预设权限管理库确定当前被调用函数是否具备使用敏感数据的权限,当且仅当当前被调用函数具备使用敏感数据的权限时,才允许当前被调用函数对敏感数据进行正常使用。该方法以控制流为粒度进行敏感数据使用权限的管理,由此可以对同一应用程序中的不同控制流分别进行权限管理,能够有效监控同一应用程序中的所有控制流的敏感数据使用情况,以有效避免由于现有技术中的粗粒度敏感数据使用权限管理机制所导致的敏感数据泄露,一定程度上提高了敏感数据的安全性。

基于上述任一实施例,提供一种基于控制流的敏感数据使用权限管理方法,检测目标函数的参数中是否包含敏感数据,之后还包括:

若目标函数的参数中包含敏感数据,且目标函数为目标控制流中非首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标函数的后向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识;

具体地,若检测到目标函数的参数中包含敏感数据,则判断目标函数是否为目标控制流中首次使用敏感数据的函数。可以理解的是,若在目标函数之前被调用的所有函数中存在某个函数的参数中包含敏感数据,则目标函数为目标控制流中非首次使用敏感数据的函数。在此基础上,若确定目标函数为目标控制流中非首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标函数的后向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识。其中,目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识均已在上述方法实施例中进行了具体说明,具体可以参考上述方法实施例,此处不再赘述。

此外,需要说明的是,目标函数的后向函数调用序列指的是目标控制流中被调用的函数序列中位于首次使用敏感数据的函数和目标函数之间的函数(包含目标函数)组成的序列。举例而言,若目标控制流中被调用的函数序列为:函数1-函数2-函数3-函数4-函数5-函数6,若其中首次使用敏感数据的函数为函数2,而目标函数为函数5,则目标函数的后向函数调用序列为:函数3-函数4-函数5。

根据敏感数据类型、前向函数调用序列、后向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息;

具体地,在获得目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标函数的后向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识之后,根据敏感数据类型、前向函数调用序列、后向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息。需要说明的是,预设权限管理库中预先存储了多个控制流的权限信息,每个控制流的权限信息对应于预设权限数据库中的一条权限记录,其中,一条权限记录中包含了应用程序uid、触发事件类型、前向函数调用序列、后向函数调用序列、敏感数据类型和权限类型。在基础上,本发明实施例中,遍历预设权限库中的每条权限记录,将上述获得的敏感数据类型、前向函数调用序列、后向函数调用序列、触发事件类型和应用程序标识依次与每条权限记录中的敏感数据类型、前向函数调用序列、后向函数调用序列、触发事件类型和应用程序uid进行匹配,若匹配成功,则可确定预设权限管理库中存在匹配的权限信息;若匹配不成功,则可确定预设权限管理库中不存在匹配的权限信息。

需要说明的是,在将上述获得的后向函数调用序列与每条权限记录中的后向函数调用序列进行匹配时,若上述获得的后向函数调用序列与某条权限记录中的后向函数调用序列的起点一致,且从起点开始的每一个函数调用点均一致,直至达到其中某个后向函数调用序列的终点,则认为两者匹配成功。举例而言,若上述获得的后向函数调用序列为:函数3-函数4-函数5,某条权限记录中的后向函数调用序列为:函数3-函数4-函数5-函数6,由于函数3-函数4-函数5组成的序列包含在函数3-函数4-函数5-函数6组成的序列中,则认为两者匹配成功。

若存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。

具体地,若预设权限管理库中存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限。若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。其中,使用敏感数据类型的权限包括发送权限和访问权限。也就是说,若目标函数具备发送敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常发送;若目标函数具备访问敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常访问。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,以控制流为粒度进行敏感数据使用权限的管理,由此可以对同一应用程序中的不同控制流分别进行权限管理,能够有效监控同一应用程序中的所有控制流的敏感数据使用情况,以有效避免由于现有技术中的粗粒度敏感数据使用权限管理机制所导致的敏感数据泄露,一定程度上提高了敏感数据的安全性。

基于上述任一实施例,提供一种基于控制流的敏感数据使用权限管理方法,根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,之后还包括:若目标函数不具备使用敏感数据类型的权限,则拒绝目标函数对敏感数据类型进行使用。

具体地,若预设权限管理库中存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限。若匹配的权限信息中记录的权限类型为拒绝,则可确定目标函数不具备使用敏感数据类型的权限。若目标函数不具备使用敏感数据类型的权限,则说明倘若允许目标函数使用敏感数据类型,则将会导致敏感数据泄露。因此,本发明实施例中,若目标函数不具备使用敏感数据类型的权限,则拒绝目标函数对敏感数据类型进行使用。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,若目标函数不具备使用敏感数据类型的权限,则拒绝目标函数对敏感数据类型进行使用,能够有效避免因无使用权限的函数对敏感数据的使用所导致的敏感数据泄露。

基于上述任一实施例,提供一种基于控制流的敏感数据使用权限管理方法,还包括:若不存在匹配的权限信息,则根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限。

具体地,确定预设权限管理库中不存在匹配的权限信息,则说明预设权限管理库中并未记录目标控制流的权限信息。在此基础上,本发明实施例中,根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限。可以理解的是,android系统原有的授权机制是以单个应用程序为粒度进行敏感数据使用权限的管理。因此,在根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限时,若目标函数对应的应用程序具备使用敏感数据类型的权限,则可确定目标函数具备使用敏感数据类型的权限;若目标函数对应的应用程序不具备使用敏感数据类型的权限,则可确定目标函数不具备使用敏感数据类型的权限。在此基础上,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用;若目标函数不具备使用敏感数据类型的权限,则拒绝目标函数对敏感数据类型进行使用。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,若不存在匹配的权限信息,则根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限,当且仅当目标函数具备使用敏感数据类型的权限时,才允许目标函数对敏感数据类型进行正常使用,能够有效避免因无使用权限的函数对敏感数据的使用所导致的敏感数据泄露。

基于上述任一实施例,提供一种基于控制流的敏感数据使用权限管理方法,根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限,之后还包括:若目标函数为目标控制流中最后一个被调用的函数,则根据目标函数确定敏感数据流终点,根据应用程序标识、触发事件类型、敏感数据类型和敏感数据流终点生成目标控制流的授权提示信息;将授权提示信息反馈给用户,以提示用户对目标控制流进行权限设置。

具体地,若预设权限管理库中不存在匹配的权限信息,则根据android系统原有的授权机制确定目标函数是否具备使用敏感数据类型的权限。此后,判断目标函数是否为目标控制流中最后一个被调用的函数,若目标函数为目标控制流中最后一个被调用的函数,则说明目标控制流已执行结束,此时根据目标函数确定敏感数据流终点。敏感数据流终点包括离开本应用程序和未离开本应用程序。其中,离开本应用程序细分为:网络、外存、其它进程和短信等。因此,若目标函数为向网络发送敏感数据的函数,则可确定敏感数据流终点为网络;若目标函数为将敏感数据写入外存的函数,则可确定敏感数据流终点为外存;若目标函数为将敏感数据发送给另一个进程的函数,则可确定敏感数据流终点为其他进程;若目标函数为将敏感数据作为短信内容的发送短信函数,则可确定敏感数据流终点为短信。

进一步地,在确定了敏感数据流终点之后,根据应用程序标识、触发事件类型、敏感数据类型和敏感数据流终点生成目标控制流的授权提示信息,并将授权提示信息反馈给用户,以提示用户对目标控制流进行权限设置。需要说明的是,根据应用程序标识可以在授权提示信息中显示具体是哪个应用程序需要使用敏感数据;根据触发事件类型可以在授权提示信息中显示具体是什么事件触发了敏感数据的使用;根据敏感数据类型可以在授权提示信息中显示具体需要使用哪种敏感数据类型;根据敏感数据流终点可以在授权提示信息中显示敏感数据最终流向哪里。举例而言,若应用程序标识为应用程序a,触发事件类型为用户点击事件,敏感数据类型为短信,敏感数据流终点为网络,则对应的授权提示信息可以为:应用a在用户点击事件的触发下申请获取读取短信权限,短信数据最终被发送到网络,是否予以授权?用户在获得此授权提示信息之后,即可进行权限设置,其中权限设置包括授权和拒绝。

进一步地,若检测到用户对目标控制流的权限设置信息,则将目标控制流的权限设置信息加入预设权限管理库中,以丰富预设权限管理库中的权限信息,便于后续根据预设权限管理库直接判断目标控制流是否具备使用敏感数据的权限。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,若预设权限管理库中不存在目标控制流的匹配权限信息,则在目标控制流执行结束之后,生成目标控制流的授权提示信息,并将授权提示信息反馈给用户,以提示用户对目标控制流进行权限设置,并在检测到用户对目标控制流的权限设置信息之后,将目标控制流的权限设置信息加入预设权限管理库中。该方法在预设权限管理库中不存在目标控制流的权限信息的情况下,能够提示用户对目标控制流进行权限设置,并将目标控制流的权限设置信息加入预设权限管理库中,以丰富预设权限管理库中的权限信息,便于后续根据预设权限管理库直接判断目标控制流是否具备使用敏感数据的权限,从而有利于用户对不同控制流的敏感数据使用权限进行管理。

基于上述任一实施例,提供一种基于控制流的敏感数据使用权限管理方法,获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识,之前还包括:在目标控制流被触发时,记录目标控制流的触发事件类型和目标控制流对应的应用程序标识。

具体地,本发明实施例中,在目标控制流被触发时,记录目标控制流的触发事件类型和目标控制流对应的应用程序标识。其中,触发事件类型的记录方法有如下两种:

1)对android系统api的增强:

若触发事件类型为网络交互、点击事件、系统广播、位置信息改变、传感器改变中的一种,则根据安卓系统提供的开发指南找到触发事件相应的api,通过增强每一个api,将相应的函数嵌入一个包装器中,包装器负责自动地将触发事件类型与此函数关联,并在调用此函数时,将此触发事件类型记录在此控制流的详细信息中。

2)对activitymanagerservice(ams)的增强:

由于android系统中不同进程间的组件交互过程为:应用程序a发送一个intent到ams,ams选择一个目标应用b,并将intent发送给b。因此,若触发事件类型为进程间的组件调用,则通过增强ams,对每一个intent绑定发送者的标识;当发送者为系统进程时,根据不同的系统进程类型绑定不同的标识;当发送者为第三方应用程序时,标识是第三方应用程序的uid;当从ams接收到intent对象后,会先获取intent对象中记录的发送者的类型。并更新当前线程保存的触发事件类型。

需要说明的是,在其他实施例中,触发事件类型还可以通过其他记录方法进行记录,此处不做具体限定。

此外,本发明实施例中,触发事件类型被记录之后,可以通过新建线程、线程交互、函数回调等传递场景进行传递,在其他实施例中,触发事件类型还可以通过其他传递场景进行传递,此处不做具体限定。

本发明实施例提供的基于控制流的敏感数据使用权限管理方法,在目标控制流被触发时,记录目标控制流的触发事件类型和目标控制流对应的应用程序标识,以便于后续根据目标控制流的触发事件类型和目标控制流对应的应用程序标识确定目标控制流中的各个被调用函数是否具备使用敏感数据的权限,以有效避免因无使用权限的函数对敏感数据的使用所导致的敏感数据泄露。

图2为本发明实施例提供的基于控制流的敏感数据使用权限的管理装置的结构示意图,如图2所示,该装置包括:敏感数据检测模块21、关联信息获取模块22、权限信息匹配模块23和使用权限管理模块24,其中:

敏感数据检测模块21用于将目标控制流中当前任意一个被调用函数作为目标函数,检测目标函数的参数中是否包含敏感数据。

具体地,本发明实施例中,对应用程序中的每个控制流进行监控,将任意一个被监控的控制流作为目标控制流。可以理解的是,目标控制流中的多个函数是按照顺序依次被调用的。在此基础上,敏感数据检测模块21将目标控制流中当前任意一个被调用函数作为目标函数,并检测目标函数的参数中是否包含敏感数据。其中,敏感数据指的是用户的隐私数据,比如,短信、通讯录、位置信息、摄像头数据等。

关联信息获取模块22用于若目标函数的参数中包含敏感数据,且目标函数为目标控制流中首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识。

具体地,若检测到目标函数的参数中包含敏感数据,关联信息获取模块22则判断目标函数是否为目标控制流中首次使用敏感数据的函数。可以理解的是,若在目标函数之前被调用的所有函数的参数中均不包含敏感数据,则目标函数为目标控制流中首次使用敏感数据的函数。在此基础上,若确定目标函数为目标控制流中首次使用敏感数据的函数,关联信息获取模块22则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识。其中,目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识均已在上述方法实施例中进行了具体说明,具体可以参考上述方法实施例,此处不再赘述。

权限信息匹配模块23用于根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息。

具体地,在获得目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识之后,权限信息匹配模块23根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息。需要说明的是,预设权限管理库中预先存储了多个控制流的权限信息,每个控制流的权限信息对应于预设权限数据库中的一条权限记录,其中,一条权限记录中包含了应用程序uid、触发事件类型、前向函数调用序列、后向函数调用序列、敏感数据类型和权限类型。在基础上,本发明实施例中,权限信息匹配模块23遍历预设权限库中的每条权限记录,将上述获得的敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识依次与每条权限记录中的敏感数据类型、前向函数调用序列、触发事件类型和应用程序uid进行匹配,若匹配成功,则可确定预设权限管理库中存在匹配的权限信息;若匹配不成功,则可确定预设权限管理库中不存在匹配的权限信息。

使用权限管理模块24用于若存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。

具体地,若预设权限管理库中存在匹配的权限信息,则使用权限管理模块24根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限。若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。其中,使用敏感数据类型的权限包括发送权限和访问权限。也就是说,若目标函数具备发送敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常发送;若目标函数具备访问敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常访问。

本发明实施例提供的基于控制流的敏感数据使用权限管理装置,具体执行上述各方法实施例流程,具体请详见上述各方法实施例的内容,此处不再赘述。

本发明实施例提供的基于控制流的敏感数据使用权限管理装置,在检测到目标控制流中当前被调用函数的参数中包含敏感数据之后,根据预设权限管理库确定当前被调用函数是否具备使用敏感数据的权限,当且仅当当前被调用函数具备使用敏感数据的权限时,才允许当前被调用函数对敏感数据进行正常使用。该装置以控制流为粒度进行敏感数据使用权限的管理,由此可以对同一应用程序中的不同控制流分别进行权限管理,能够有效监控同一应用程序中的所有控制流的敏感数据使用情况,以有效避免由于现有技术中的粗粒度敏感数据使用权限管理机制所导致的敏感数据泄露,一定程度上提高了敏感数据的安全性。

图3为本发明实施例提供的电子设备的实体结构示意图。参照图3,所述电子设备,包括:处理器(processor)31、存储器(memory)32和总线33;其中,所述处理器31和存储器32通过所述总线33完成相互间的通信;所述处理器31用于调用所述存储器32中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将目标控制流中当前任意一个被调用函数作为目标函数,检测目标函数的参数中是否包含敏感数据;若目标函数的参数中包含敏感数据,且目标函数为目标控制流中首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识;根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息;若存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。

此外,上述的存储器32中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:将目标控制流中当前任意一个被调用函数作为目标函数,检测目标函数的参数中是否包含敏感数据;若目标函数的参数中包含敏感数据,且目标函数为目标控制流中首次使用敏感数据的函数,则获取目标函数的参数中所包含的敏感数据类型、目标函数的前向函数调用序列、目标控制流的触发事件类型和目标控制流对应的应用程序标识;根据敏感数据类型、前向函数调用序列、触发事件类型和应用程序标识确定预设权限管理库中是否存在匹配的权限信息;若存在匹配的权限信息,则根据匹配的权限信息确定目标函数是否具备使用敏感数据类型的权限,若目标函数具备使用敏感数据类型的权限,则允许目标函数对敏感数据类型进行正常使用。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1