CN113326502A - 可疑行为量化评判的安卓应用分类授权法 - Google Patents
可疑行为量化评判的安卓应用分类授权法 Download PDFInfo
- Publication number
- CN113326502A CN113326502A CN202110715474.4A CN202110715474A CN113326502A CN 113326502 A CN113326502 A CN 113326502A CN 202110715474 A CN202110715474 A CN 202110715474A CN 113326502 A CN113326502 A CN 113326502A
- Authority
- CN
- China
- Prior art keywords
- privacy
- application program
- user
- authority
- authorization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 title claims abstract description 156
- 238000011158 quantitative evaluation Methods 0.000 title claims abstract description 44
- 230000006399 behavior Effects 0.000 title claims description 82
- 230000007246 mechanism Effects 0.000 claims abstract description 39
- 238000011156 evaluation Methods 0.000 claims abstract description 24
- 230000014509 gene expression Effects 0.000 claims abstract description 14
- 238000007670 refining Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 61
- 238000009434 installation Methods 0.000 claims description 39
- 238000001514 detection method Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 19
- 238000003909 pattern recognition Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 7
- 238000005457 optimization Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012567 pattern recognition method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 5
- 230000006872 improvement Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 241000282836 Camelus dromedarius Species 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000013499 data model Methods 0.000 claims description 2
- 230000019771 cognition Effects 0.000 description 4
- 238000011900 installation process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Abstract
本发明的可疑行为量化评判的安卓应用分类授权法,对现有的安卓系统授权机制,从辅助用户授权和细化授权方式二个方面进行改进,第一,针对应用程序大量获取用户隐私权限且越界获取十分严重的情况,从安全和隐私的角度,提出一种可疑行为量化评判方案,在应用程序安装时,通过检查申请的权限列表,评判应用程序的安全威胁程度,将评判结果以简单简洁直白的表述呈现给用户,帮助用户做出授权决策;第二,对现有的全选是或全选否的粗粒度授权方式进行改进,提出分类授权方法,对于其中的某些隐私权限,允许用户针对每项权限灵活的进行授权,同时,以替换方式,在保证应用程序正常运行的同时,保护用户的隐私信息不被泄露。
Description
技术领域
本发明涉及一种安卓应用分类授权方法,特别涉及一种可疑行为量化评判的安卓应用分类授权法,属于安卓应用授权技术领域。
背景技术
在当前移动平台的场景中,安卓是最受欢迎的开源可定制的移动操作系统之一。随着智能手机日益增长的复杂性、功能性和便利性,用户越来越依赖它们来存储和处理一些个人信息,用户可以找到智能手机电话日志信息,通过通讯录能够获取到用户的朋友或家庭成员信息,通过访问的Uri可获取用户的浏览历史,还能够获取到缓存的电子邮件及内置摄像头拍摄的照片等,由于这些都是私人信息,所以自然需要考虑这些数据的安全性。
当前,一些恶意应用被上传到应用商店并成功推荐给用户安装在他们的智能手机上,这些恶意应用会在未经用户授权的情况下,泄露用户的个人信息。无序的第三方应用市场和大量来源不明的应用程序严重威胁到用户的手机安全。鉴于这些隐私泄露威胁,有必要采取一些措施来应对恶意应用盗取用户信息的行为。
安卓系统使用一组安全措施来保护智能手机的安全,这些安全措施包括多个方面,其中基于权限的访问控制策略是其中最重要的分类之一,对智能手机的安全具有显著影响。在该权限机制中,每种重要资源对应一项权限,应用程序只有获取了权限后才能访问对应的资源。在应用安装时,安卓系统将会获取详细的权限描述,以便用户能够知晓运行该应用需要哪些信息或访问权限,同时将这些权限请求展示给终端用户,让用户来决定同意或拒绝。分配给应用程序的权限能限制应用程序应用于智能手机上的操作,而对于权限而言,无论是恶意应用还是合法应用都能申请获取,用户很难识别出存在威胁的应用程序。因此,如何在用户安装应用时,向用户指出应用程序潜藏的威胁,辅助用户做出授权决策,具有非常重大的作用。
此外,用户如果想使用某个应用程序,安卓的权限机制需要用户授予应用程序请求的所有权限,这是一个全选是或全选否的选择,即要么接受所有的请求权限来完成安装,要么拒绝所有权限而放弃安装。这种粗粒度的控制策略使得用户为了使用某一个应用程序,而不得不接受它的一些不必要或不合理的权限请求。例如,一个天气类应用软件,需要通过手机读取用户的位置信息,以便向用户提供及时的天气更新,获取位置信息的方式有两种,分别是通过卫星定位自动获取和通过用户手动输入,该应用程序安装时,用户必须授予它访问位置信息的权限,应用程序便可获取到用户的精确位置,即使提供天气更新可能并不需要这样精确的位置信息,因此,用户如果希望使用该应用,除接受访问位置权限请求外,别无选择,尽管该应用程序并不需要用户确切的位置信息,甚至应用程序本身已经提供了其它选择。如何在应用程序安装时,改进现有的全选是或全选否的授权机制,允许用户更灵活的对应用程序提出的权限请求授权,也具有非常重大的作用。
现有技术对安卓权限安全的研究主要包括基于权限的恶意软件安全性检测与评估和安装时的选择性授权,进程间的通信机制给权限机制带来了新的挑战,共谋攻击也开始受到关注。针对安卓权限滥用问题,现有技术通过设定一组安全规则,应用程序安装时对其进行检测,如果通过检测则继续安装,否则就提示用户警告信息或放弃安装,该方案的缺点是需要考虑所有可能的情况,某些良性应用可能会具有与某些恶意应用完全相同的权限,而方案的安全规则彼此独立,应用程序只要违背了其中的一条规则便判定为失败,拒绝安装,因此误判率高,同时无法评估应用程序的整体威胁。
现有技术的Apex方案允许用户在安装应用程序时将分类权限授予应用程序,同时还允许用户设置一些动态的约束条件,但该方案需要用户在安装时做出决策,用户在不清楚可能会存在什么隐患的情况下,只能依靠自己的经验做出决策。同时,由于移除了某些权限,这可能会导致应用程序运行时产生异常甚至崩溃。
现有技术的TISSA方案认为从可用性的角度来看,应用程序在安装时授予分类权限或者在运行时移除权限不是一个好的设计,因为这可能导致应用发生异常甚至崩溃。但应用程序安装时,采用全选是或全选否的权限机制,无法拒绝某些含有隐患且不必要的权限申请,并且调整隐私保护策略时,用户只能凭自己的经验进行设置。
现有技术的安卓应用授权方法存在诸多不足,现有技术的难点和本发明解决的问题主要集中在以下方面:
第一,恶意应用会在未经用户授权的情况下,泄露用户的个人信息,无序的第三方应用市场和大量来源不明的应用程序严重威胁到用户的手机安全,鉴于这些隐私泄露威胁,有必要采取一些措施来应对恶意应用盗取用户信息的行为,而安卓系统权限机制中,每种重要资源对应一项权限,应用程序只有获取了权限后才能访问对应的资源,在应用安装时,安卓系统将会获取详细的权限描述,以便用户能够知晓运行该应用需要哪些信息或访问权限,同时将这些权限请求展示给终端用户,让用户来决定同意或拒绝,分配给应用程序的权限能限制应用程序应用于智能手机上的操作,而对于权限而言,无论是恶意应用还是合法应用都能申请获取,用户很难识别出存在威胁的应用程序,因此,如何在用户安装应用时,向用户指出应用程序潜藏的威胁,辅助用户做出授权决策,是现有技术的痛点和本发明解决的问题;
第二,现有技术用户如果想使用某个应用程序,安卓的权限机制需要用户授予应用程序请求的所有权限,这是一个全选是或全选否的选择,即要么接受所有的请求权限来完成安装,要么拒绝所有权限而放弃安装,这种粗粒度的控制策略使得用户为了使用某一个应用程序,而不得不接受它的一些不必要或不合理的权限请求,如何在应用程序安装时,改进现有的全选是或全选否的授权机制,允许用户更灵活的对应用程序提出的权限请求授权,是现有技术的痛点和本发明解决的问题;
第三,安卓系统的安全机制中,权限机制则存在较多问题,主要有以下两个问题:一是应用程序安装时,安卓系统将应用申请的权限列表展示给用户,将授权任务交给用户,由用户来决定是否授权,对于应用程序的威胁性,用户无法直观的得出结论,只能根据自己的认知和经验做出授权决策,针对该问题,本发明研究实现一种辅助用户授权决策的方法,二是尽管安卓系统中提供超过100种权限标签申明对应的权限,但其访问控制却是粗粒度的,授权时只能选择全选是或全选否,对于某些明显不合理的权限请求,无法选择性的拒绝,针对该问题,本发明研究实现一种允许用户安装时分类授权的方法;
第四,日常使用中的恶意软件总是伪装成合法的应用程序,用户很难感知恶意软件执行的恶意行为,而当智能手机用户意识到恶意软件的存在时,很多时候已经太迟,恶意软件已经对用户造成了危害,但现有的安卓权限机制中,当安装应用程序时,用户只能依靠自己的安全认知来决选择是否授权,以此来决定安装或者不安装。在实际安装过程中,用户通常不会仔细分析应用申请的权限,而且即使用户仔细查看,普通用户也很难将申请的权限与应用的功能完全对应起来,由于用户一般不会用到所有功能,这使得用户在安装时识别出多余的权限申请或恶意应用变得非常困难,他们往往只是根据使用需求来决定是否安装,基于这类用户授权困难问题,安装应用程序时,需要额外的信息来帮助用户做出恰当的决策。
发明内容
安卓系统使用一组安全措施保护智能手机的安全,权限体系是其中最重要的一种,通过授予APP权限来限制其实现对智能手机的访问控制。然而,合法应用和恶意程序都能获取到这些权限,使用户很难识别出恶意应用。同时,由于权限机制打捆采用全选是或全选否的授权方式,用户即使识别出可能具有可疑行为的权限或权限组合也无法进行针对性的授权。因此本发明提出一种基于安卓应用程序可疑行为检测的分类授权方案,考虑用户的安全和隐私问题,旨在帮助用户知晓应用程序的威胁程度,识别出存在恶意和隐私泄露风险的权限,同时帮助用户对这类权限进行灵活授权。
为达到以上技术效果,本发明所采用的技术方案如下:
可疑行为量化评判的安卓应用分类授权法,对现有的安卓系统授权机制,从辅助用户授权和细化授权方式二个方面进行改进,主要包括:第一,基于应用程序大量获取用户隐私权限且越界获取十分严重的情况,从安全和隐私的角度,提出一种安卓应用程序的可疑行为量化评判方法,在应用程序安装时,通过检查申请的权限列表,评判应用程序的安全威胁程度,将评判结果以直白的表述呈现给用户,帮助用户做出授权决策;第二,对现有的全选是或全选否的粗粒度授权方式进行改进,提出一种基于安卓权限机制的分类授权方案,对于其中的某些隐私权限,允许用户针对每项权限灵活的进行授权,同时,对于其中的某些隐私权限采用替换方法,采取利用预设的虚假数据代替真实数据的方法,而不必移除相关权限的授权,在允许应用程序获取权限的同时保护隐私信息的安全;
安卓应用程序的可疑行为量化评判方法,包括设置隐私权限组合、计算权限组合的威胁指数、应用程序威胁度量化检测模型、量化检测模型实现方法,首先通过分析智能手机隐私类别资源和对应的隐私权限,找出存在风险的权限和权限组合,然后对隐私权限进行分类,同时为每类隐私权限设定一个威胁指数,最后根据应用程序申请的权限集合计算出其整体的威胁指数,通过可疑行为量化检测模型评判应用程序的隐私泄露安全威胁程度,并以简洁直白的表述呈现评判结果,方便用户知晓应用程序的威胁程度;
基于安卓权限机制的分类授权方案,包括分类授权方案设计和分类授权方案实现,对当前安卓权限机制中粗粒度的授权方式进行改进,对于应用程序安装时提供的权限申请列表,用户不再只有全选是和全选否两种选择,针对隐私类权限,在应用程序安装时对其安全性进行评判,用户根据评判结果进行灵活授权,对于其中的某些隐私权限利用替换方法来实现分类授权,基于应用程序可能会因为权限检测失败抛出安全异常问题而导致的崩溃情况,对分类隐私权限的申请,授予它权限的同时,根据用户的授权决策选择返回真实数据或虚假数据,针对当前应用程序申请获取最频繁的三类隐私权限:获取设备状态信息、获取地理位置信息、访问联系人,基于本发明的两类隐私保护方法,对此三类隐私相关组件进行优化以实现隐私保护。
可疑行为量化评判的安卓应用分类授权法,进一步的,设置隐私权限组合:针对应用程序获取用户隐私的可疑行为,根据得出的隐私权限,解析可能泄露用户隐私信息的权限组合,同时,基于单项权限也可能会对用户造成安全威胁的情况,对单项权限设定威胁参数,对于危险的权限组合,以每项权限威胁参数的乘积作为权限组合的威胁参数;
将隐私相关的权限归为三大类:
第一类,核心隐私权限:包括SEND_SMS和INTERNET两项权限,将第一类隐私权限的威胁指数设置为4;
第二类,重要隐私权限:应用程序申请获取该类隐私权限的频率非常频繁,并且该类隐私权限对应的隐私信息对用户非常重要,将第二类隐私权限的威胁指数设置为2;
第三类,一般隐私权限:应用程序申请获取的频率较低或对用户重要程度一般,将第三类隐私权限的威胁指数设置为1。
可疑行为量化评判的安卓应用分类授权法,进一步的,隐私权限具体分类为:核心隐私权限包括SEND_SMS、INTERNET,重要隐私权限包括READ_CONTACTS、READ_PHONE_STATE、CALL_PHONESACCESS_COARSE_LOCATION、READ_SMS、RECEIVE_MMS、ACCESS_FINE_LOCATION、READ_CALL_LOG、RECEIVE_SMS、WRITE_SMREAD_OWNER_DATA,一般隐私权限包括READ_CALENDAR、READ_HISTORY_BOOKMARKS、READ_EXTERNAL_STORAGE、RECORD_AUDIO、CAMERA、PROCESS_OUTGOING_CALLS、GET_ACCOUNTS、READ_LOGS、BATTERY_STATS、READ_USER_DICTIONARY,隐私权限分类完成之后,对应用程序申请的权限集合,根据隐私权限及组合的威胁参数计算它的整体威胁指数。
可疑行为量化评判的安卓应用分类授权法,进一步的,计算权限组合的威胁指数:基于单项隐私权限及三项隐私权限组合可能会造成安全威胁的情况,对于每个应用程序,威胁指数的计算方法为:
T=(∑ac+∑ai×aj+∑ai×aj×ak) 式1
在式1中,T代表应用程序整体的威胁参数,ac代表造成安全威胁的单项隐私权限的威胁参数,ai×aj代表造成安全威胁的两项隐私权限组合的威胁参数,ai×aj×ak代表造成安全威胁的三项权限组合的威胁参数。
可疑行为量化评判的安卓应用分类授权法,进一步的,应用程序威胁度量化检测模型:引入模糊数学并基于应用程序威胁度优化改进,利用模糊模式识别评判应用程序的隐私泄露安全威胁程度;
定义一:设D*是X到[0,1]的一个映射,即D*:X->[0,1],x->D*(x),D*是X上的模糊集合,函数D*(·)为模糊集合D*的隶属函数,D*(X)为X对模糊集合D*的隶属度,X上的全体模糊集构成的集合记为G(X),有Q(X)∈G(X),即普通集合是模糊集合的特殊情况;
可疑行为量化检测模型主要由隶属函数和模糊模式识别两大模块组成,对于每个应用程序对应的威胁指数,首先通过隶属函数计算出隶属值,然后通过模糊模式识别的方法确定其隶属范围,最后根据隶属范围就能得到其威胁程度;
确定隶属函数首先是对专家知识建模,有三类隶属函数,将应用程序的隐私泄露安全威胁程度分为三等:正常、较高、高,它们分别对应三个G集D* 1、D* 2、D* 3,设论域V=(0,100],对x∈(0,100],隶属函数为:
在确定隶属函数之后,利用模糊模式识别的方法判定威胁指数的隶属范围,采用模糊模式识别中最大隶属原则进行隶属范围归类,最大隶属原则为:设D* 1∈G(V),i=1,2,…,n,对于v0∈V,如果存在i,使得D* i(v0)=max{D* 1(v0),D* 2(v0),...,D* n(v0)},则认为v0相对地隶属于D* i;
按照最大隶属度原则,通过这种直观的描述,用户能够很好的知晓待安装的应用程序在泄露用户隐私方面的威胁程度,从而能够针对性的做出决策。
可疑行为量化评判的安卓应用分类授权法,进一步的,量化检测模型实现方法:应用程序评判时,首先获取应用程序申请获取的权限集合,然后与存在风险的隐私权限及组合进行匹配,找出应用程序权限集合中存在风险的权限及组合,并利用威胁指数计算方法计算出应用程序的整体威胁指数,最后利用量化检测模型对得出的整体威胁指数进行评判,最终得出评判结果,即应用程序隐私泄露的安全威胁程度。
可疑行为量化评判的安卓应用分类授权法,进一步的,分类授权方案设计:通过引入安卓应用程序的可疑行为量化评判方法,提出基于安卓应用程序可疑行为检测的分类授权方法:
第一,在应用程序安装时,对于申请的权限集合,利用可疑行为评判方案对其进行分析,根据存放在数据库中存在风险的权限及组合,找出权限集合中与之相匹配的权限,计算应用程序的整体威胁指数之后,引入模糊数学并基于应用程序威胁度优化改进,对其进行模糊判定,将判定结果以简洁直白的表述提供给用户,帮助用户进行授权,用户知晓待安装应用程序的隐私泄露安全威胁程度的过程主要通过对现有的安卓安装系统PackageInstaller进行修改和扩展来实现;
第二,分类授权方法对现有安卓权限机制中的全选是或全选否的粗粒度授权方式进行改进,对于应用程序申请的某些隐私权限,允许用户对其进行单独授权,对于这类隐私权限,用户拒绝之后,记录下用户的授权决策,照常授权,这一过程是通过修改扩展PackageInstaller来实现;而在应用程序访问对应的资源时,根据用户的授权决策,利用预设的虚假数据代替真实的隐私数据,以保护用户的隐私,用户可以对隐私权限进行单项授权的过程主要是通过修改相关的API函数和ContentProvider组件实现。
可疑行为量化评判的安卓应用分类授权法,进一步的,在分类授权方法系统框架图中,隐私权限组合数据库是一个本地的SQLite数据库,存储存在风险的权限及组合,供可疑行为量化评判方案查询,可疑行为量化评判方案分类主要实现对PackageInstaller解析出的应用程序申请的权限集合进行检测,通过查询隐私权限组合数据库,找出权限集合中存在风险的权限及组合,计算应用程序的整体威胁参数,并对程序的隐私泄露安全威胁程度进行评判,将评判结果以简洁直白的表述返回给安装系统,本地决策文件主要保存隐私权限的授权信息,隐私信息保护分类主要在用户对某些隐私信息拒绝授权后,比如联系人、地理位置信息等,采用替换方法实现对这些隐私信息的保护;
应用程序安装时,系统调用软件安装包PackageInsataller对应用程序安装包进行解析,AndroidManifest.xml文件中包含有应用程序的权限申明,通过解析该清单文件,便能获取到应用申请的所有权限列表,PackageInstaller将应用程序解析后的信息保存在类mPkgInfo中,调用mPkgInfo.requestedPermission便可获取应用程序的权限集合;
获取到权限集合之后,对应用程序进行量化评判,为此采用一个本地SQLite数据库存储存在风险的权限及组合以及对应的威胁参数,首先,检查权限集合,判断应用程序是否申请了INTERNET权限或SEND_SMS权限,如果权限集合中二项权限都不存在,则评判应用程序安全,如果二项权限中存在任意一项或二项都存在,则进行下一步的判断,此时通过查询数据库,将权限集合与数据库中的权限组合进行匹配,匹配成功则记录下该项权限组合的威胁指数,直至应用程序的权限集合匹配完成,根据匹配的结果计算应用程度整体的威胁指数,评判应用程序的隐私泄露安全威胁程度,最后将评判结果展示给用户;
用户获取到应用程序的评判结果之后,便能根据评判结果,对隐私权限进行单独授权,选择允许或拒绝,针对其中存在风险的某些隐私权限,根据应用程序访问资源的方式,本发明分类授权方法中的处理过程为:
对于一类调用隐私相关的API接口或利用ContentProvider提供隐私数据的权限,用户授权时,选择允许或拒绝,但无论用户做出何种选择,该权限都能正常授权,同时记录下用户的授权决策,该类隐私权限包括:联系人信息、地理位置信息、手机状态,都能够利用预设的虚假数据代替真实数据,如果用户选择允许,则应用程序访问对应资源时,返回真实的数据信息,如果选择拒绝,则应用程序访问时,返回预设的虚假数据;
对于这类权限,用户授权时,记录下用户做出的每项授权决策,用户选择完成之后,将这些权限的授权决策以文件的形式保存在安装系统PackageInstaller数据目录下,同时以应用程序的包名对文件进行命名,以便在应用程序访问对应的隐私资源信息时,直接查看此文件中的授权决策,以此决定返回真实数据或预设的虚假数据。
可疑行为量化评判的安卓应用分类授权法,进一步的,分类授权方法的授权方案分为两个模块:模块一,授权模块,利用可疑行为评判方案对应用程序进行评判,提交评判结果,用户可根据评判结果进行针对性的授权;模块二,隐私保护模块,针对授权模块中的分类隐私权限,实现对应隐私信息的保护;
授权模块主要是通过修改和扩展现有技术的PackageInstaller安装系统,通过自定义类EvaluationActivity来实现对应用程序权限集合的评判工作,同时针对申请的某些隐私权限提供用户进行单独授权的功能,针对用户做出的拒绝决策时的处理方式为:将授权决策写入授权文件中,同时照常授权,对于隐私保护模块,在安卓系统对应用程序进行动态权限检测时,在获取隐私数据的相关函数中加入判断逻辑代码段,查看应用程序的决策文件,决定返回真实数据或预设的虚假数据;
隐私保护模块主要是采取替换方法来实现,利用预设的虚假数据来替换真实的数据,应用程序安装时正常授权,应用程序运行时,如果要访问相关资源,则既能保证程序能够通过安卓系统的动态权限检查,避免应用程序的异常,又能保护用户的隐私不会泄露;安卓系统应用程序获取的隐私信息分成二类:一类隐私数据,应用程序访问时,首先获取对应的系统服务,然后通过调用相关的API函数来获取;另一类隐私信息利用ContentProvider以某种Uri的形式向外提供数据,应用程序访问时,采用ContentResolver根据Uri来获取,针对这两类隐私数据,有二种方法实现隐私保护,具体为:
方法一,修改隐私数据相关的API函数:应用程序获取系统服务,通过系统服务调用API函数获取隐私数据时,根据隐私数据的数据格式,预先设定一个或多个值,根据用户的授权决策,选择返回预设值或返回真实的数据,隐私权限READ_PHONE_STATE,ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION都可以利用这种方法来实现隐私数据的保护,应用程序访问该类隐私信息时,应用程序访问隐私数据时,会调用隐私相关的API来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则执行API函数,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户允许,则返回真实的隐私数据给应用程序,否则,返回给应用程序预设的虚假数据;
方法二,修改ContentResolver中的方法:不同应用程序之间利用ContentProvider进行数据交换,应用程序通过ContentProvider以某种Uri的形式对外提供数据,此时不管该应用程序是否启动,其它应用程序都能够通过该接口来操作应用程序内部的数据,包括删除数据delete、查询数据query、增加数据insert和修改数据modify,根据指定的Uri,其它应用程序使用ContentResolver去访问操作指定数据,调用getContentResolver.query()来获取Cursor数据,应用程序访问隐私数据时,利用ContentResolver来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则根据指定的Uri执行getContentResolver.query()方法,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户选择允许,则返回真实的隐私数据信息给应用程序,如果用户选择拒绝,则返回空值给应用程序。
可疑行为量化评判的安卓应用分类授权法,进一步的,Contacts ContentProvider组件优化:READ_CONTACTS权限控制系统中联系人信息的访问,应用程序申请该权限之后,便具备了访问手机中联系人信息的能力,安卓系统提供Contacts应用程序来管理联系人,并为联系人管理提供ContentProvider,每当其他应用程序访问联系人信息时,使用ContentResolver来获取数据,使用如下语句来获得Uri所指定的Cursor数据:Cursorphones=getContent Resolver().query(uri,projection,selection,selectionArgs,sortOrder);为保护用户联系人信息,分析安卓系统源代码中位于/frameworks/base/core/java/android/content/目录下的contentResolver类文件,修改其中的query函数,在返回cursor数据之前,增加逻辑判断代码,根据传入的应用程序包名和权限,查询PackageInstaller数据目录下的决策文件,如果用户授予该权限,则执行正常流程,返回真实的cursor数据,否则,则返回空值,此时应用程序获取的联系人数据为空,联系人信息得到保护。
与现有技术相比,本发明的贡献和创新点在于:
第一,安卓系统中采用的是粗粒度的基于权限的访问控制策略,用户必须接受所有的权限申请才能安装该应用程序,而恶意应用也能申请使用所有的权限,用户在应用程序安装时很难识别出其可能存在的安全隐患,本发明辅助用户安装时决策,并灵活的进行授权,针对安卓粗粒度权限授权机制的现状,提出一种新的方法,修改安卓系统中应用层包安装器的源代码和一些访问资源的API函数,同时提出可疑行为量化检测模型,在应用程序安装时,辅助用户进行授权决策,并允许用户对应用程序的权限进行灵活授权,以此来增强权限访问控制策略的安全性,使得用户在安装时能够直观的认识到该应用程序可能存在的安全威胁,同时授权时不再需要接受请求的所有权限,在不影响应用程序安装的前提下,可以灵活的授予应用程序分类权限,而在应用程序运行时,根据用户的授权决策限制它对某些资源的访问,实现保护用户隐私信息的目的;
第二,在当前大量应用程序申请获取隐私权限且越界获取的情况非常严峻的形势下,用户面对应用程序申请的权限列表,很难做出正确的授权决策,针对这种情况,本发明提出安卓应用程序的可疑行为评判方案,量化应用程序的隐私泄露威胁程序,并将评判结果以简洁直白的表述展示给用户,以便用户能够较好的知晓,帮助用户进行授权,从安全和隐私角度,提出一种安卓手机可疑行为量化检测模型,综合考虑单项权限、两项权限组合、三项权限组合都可能造成安全威胁的情况,将权限进行分类,同时为它们设定对应的威胁指数,提出应用程序整体威胁指数的计算方法,利用模糊数学的方法评判应用程序的隐私泄露安全威胁程度,以便用户能够很好的知晓评判结果;
第三,针对用户授权困难问题提出的应用程序可疑行为评判方案,对当前安卓权限机制中粗粒度的授权方式进行改进,对于应用程序安装时提供的权限申请列表,用户不再只有全选是和全选否两种选择,针对隐私类权限,允许用户根据应用程序的评判结果进行针对性授权,提出分类授权方法中的授权方案,对分类隐私权限的申请,授予它权限的同时,根据用户的授权决策选择返回真实数据或虚假数据,这样既保证了应用程序的正常运行,同时又保护了用户的隐私不会泄露,增强了该授权方法的可用性,针对应用程序申请获取十分频繁且对用户非常重要的三类隐私信息的保护,进行了具体的实现,用户拒绝授权后,隐私信息能够得到很好的保护;
第四,为了在用户授权时能够知晓APP的威胁程度以便更好的做出决策,本发明提出安卓应用程序的可疑行为量化评判方法,从安全和隐私角度考虑,通过可疑行为量化检测模型评判应用程序的隐私泄露安全威胁程度,并以简洁直白的表述呈现评判结果,方便用户知晓应用程序的威胁程度,以达到帮助用户进行授权决策的目的;本发明提出基于安卓应用程序可疑行为检测的分类授权方案,在应用程序安装时对其安全性进行评判,用户根据评判结果进行灵活授权,对于其中的某些隐私权限采用替换方法,在允许应用程序获取权限的同时保护隐私信息的安全。
附图说明
图1是本发明的应用程序威胁指数分布示意图。
图2是本发明的应用程序威胁度量化检测模型示意图。
图3是本发明的三类应用程序分布示意图。
图4是应用程序隐私泄露威胁程度评判流程示意图。
图5是本发明分类授权方法的具体流程示意图。
图6是调用隐私相关API类隐私数据的保护流程示意图。
图7是本发明调用ContentResolver类隐私数据保护流程图。
具体实施方式
下面结合附图,对本发明提供的可疑行为量化评判的安卓应用分类授权法的技术方案进行进一步的描述,使本领域的技术人员能够更好的理解本发明并能予以实施。
伴随智能手机的迅速普及,方方面面的应用程序开始影响人们的生活,而在APP激增的同时,恶意程序的数量也在增加,对用户手机安全和隐私造成严重威胁。安卓系统使用一组安全措施保护智能手机的安全,权限体系是其中最重要的一种,通过授予APP权限来限制其实现对智能手机的访问控制。然而,合法应用和恶意程序都能获取到这些权限,使用户很难识别出恶意应用。同时,由于权限机制打捆采用全选是或全选否的授权方式,用户即使识别出可能具有可疑行为的权限或权限组合也无法进行针对性的授权。因此本发明提出一种基于安卓应用程序可疑行为检测的分类授权方案,考虑用户的安全和隐私问题,旨在帮助用户知晓应用程序的威胁程度,识别出存在恶意和隐私泄露风险的权限,同时帮助用户对这类权限进行灵活授权。
为了在用户授权时能够知晓APP的威胁程度以便更好的做出决策,本发明提出安卓应用程序的可疑行为量化评判方法,从安全和隐私角度考虑,首先通过分析智能手机隐私类别资源和对应的隐私权限,找出存在风险的权限和权限组合,然后对隐私权限进行分类,同时为每类隐私权限设定一个威胁指数。最后,根据应用程序申请的权限集合计算出其整体的威胁指数,通过可疑行为量化检测模型评判应用程序的隐私泄露安全威胁程度,并以简洁直白的表述呈现评判结果,方便用户知晓应用程序的威胁程度。
本发明提出基于安卓应用程序可疑行为检测的分类授权方案,通过对安卓系统源码中的软件安装包PackageInstaller进行修改,引入应用程序的可疑行为检测方法,在应用程序安装时对其安全性进行评判,用户根据评判结果进行灵活授权,对于其中的某些隐私权限采用替换方法,在允许应用程序获取权限的同时保护隐私信息的安全。
本发明利用大量的安卓应用程序进行实验,不同的应用程序根据申请隐私权限的不同出现不同的评判结果,同时用户对于列出的隐私权限能够选择性单项授权,并且拒绝授权之后,应用程序无法获取对应的真实隐私数据。实验结果表明,本发明的分类授权法能够量化评判出应用程序的隐私泄露安全威胁程度,同时允许用户对隐私权限选择性灵活授权,保护隐私信息的安全。
一、安卓应用程序的可疑行为量化评判方法
日常使用中的恶意软件总是伪装成合法的应用程序,他们在提供一些有用功能的同时,会在后台执行一些恶意行为。正是因为它的这种伪装性,用户很难感知恶意软件执行的恶意行为,尤其是对于没有计算机基础的智能手机用户。而当智能手机用户意识到恶意软件的存在时,很多时候已经太迟,恶意软件已经对用户造成了危害。基于此,降低恶意软件危害的最佳方法是在应用程序安装时就识别出它,并拒绝安装。
但现有的安卓权限机制中,当安装应用程序时,用户只能依靠自己的安全认知来决选择是否授权,以此来决定安装或者不安装。在实际安装过程中,用户通常不会仔细分析应用申请的权限,而且即使用户仔细查看,普通用户也很难将申请的权限与应用的功能完全对应起来,由于用户一般不会用到所有功能,这使得用户在安装时识别出多余的权限申请或恶意应用变得非常困难,他们往往只是根据使用需求来决定是否安装。基于这类用户授权困难问题,安装应用程序时,需要额外的信息来帮助用户做出恰当的决策。
本发明从安卓用户普遍关注的手机安全和隐私问题入手,通过分析安卓手机安全和隐私现状问题,从安卓手机中提取出隐私类型资源,并对这些资源进行解析,明确应用程序获取和使用它们的方式途径,找出在资源的获取和使用过程中存在的隐私泄露和安全威胁,基于可能引起隐私泄露的安全威胁,提出了一种量化评判方法,监测应用程序申请的权限,量化应用程序在隐私获取方面的安全威胁程度,并将评判结果以简洁直白的表述形式提供给用户,以达到帮助用户进行授权决策的目的。
(一)可疑行为量化检测模型
基于安卓应用程序常用的隐私权限项,并对这些隐私权限的功能和风险都进行解析,首先分析这些隐私权限项,找出存在风险的权限及组合,基于单项权限也可能造成安全威胁的情况,本发明按照它们可能造成的安全威胁程度的不同对隐私权限进行分类,并为每类隐私权限设定对应的威胁参数,根据隐私权限组合提出应用程序整体威胁指数的计算模型,并取安卓应用市场中排名靠前的100个应用程序进行实验,根据实验结果对威胁指数进行解析。在此基础上提出应用程序安全威胁程度量化检测模型和实现方法。
1、设置隐私权限组合
安卓系统应用程序申请各项权限以便能够访问对应的资源,对于某些权限,单项权限可能不会对用户造成威胁,但当应用程序同时获取二种或多种权限时,利用权限之间的组合便能实行一些恶意行为。比如,一个应用程序单纯获取访问网络或读取用户联系人权限并不会对用户的安全和隐私造成威胁,但当该应用同时获取到上述两项权限时,恶意应用能够利用读取联系人权限来获取用户的联系人信息,然后再利用访问网络的权限将获取到的隐私信息发送出去,以达到获取用户隐私的目的,访问网络权限和读取用户联系人权限组合后就成了一对可能获取用户隐私的权限组合。
一些权限组合能够被恶意程序用来进行一些恶意行为,比如访问网络和读取手机状态、使用麦克风录音三项权限组合,访问网络与获取用户精确地理位置两项权限组合等。但同时,正常的应用程序也可能会用到这些权限组合,如天气预报软件的墨迹天气,它就申请了访问网络和获取用户精确地理位置信息的权限组合,而微信、QQ等社交通讯类软件,都会申请访问网络和读取联系人的权限组合。由此可见,仅根据权限或权限组合本身并不能判断申请获取它的应用程序是否具有可疑行为。
本发明从安全和隐私的角度,针对应用程序获取用户隐私的可疑行为,根据得出的隐私权限,解析可能泄露用户隐私信息的权限组合,同时,基于单项权限也可能会对用户造成安全威胁的情况,如CALL_PHONE、SEND_SMS等,这些都可能会产生恶意扣费行为,对单项权限设定威胁参数,对于危险的权限组合,以每项权限威胁参数的乘积作为权限组合的威胁参数。
隐私获取类恶意程序一般通过网络和短信两种途径将获取的隐私信息发送出去,综合考虑安卓系统中对隐私相关权限的分类,本发明从安卓市场中选取排名靠前的100个应用程序,解析各项隐私权限在100个应用程序中的申请情况,最终将隐私相关的权限归为三大类:
第一类,核心隐私权限:包括SEND_SMS和INTERNET两项权限,基于隐私信息泄露的两种途径,这两项权限至关重要,应用程序如果没有申请获取这两项权限中的任意一种,那么即使它获取到用户的隐私信息也无法泄露出去,因此认为它是不具备隐私威胁的,将第一类隐私权限的威胁指数设置为4;
第二类,重要隐私权限:应用程序申请获取该类隐私权限的频率非常频繁,并且该类隐私权限对应的隐私信息对用户非常重要,如访问联系人信息、读取短消息、获取地理位置信息、获取本机手机号码等,获取访问联系人权限能够访问用户的通讯录,根据通讯录信息可以知晓用户的社交关系,获取读取位置信息权限能够知晓用户的生活轨迹,将第二类隐私权限的威胁指数设置为2;
第三类,一般隐私权限:应用程序申请获取的频率较低或对用户重要程度一般,将第三类隐私权限的威胁指数设置为1。
隐私权限具体分类为:核心隐私权限包括SEND_SMS、INTERNET,重要隐私权限包括READ_CONTACTS、READ_PHONE_STATE、CALL_PHONESACCESS_COARSE_LOCATION、READ_SMS、RECEIVE_MMS、ACCESS_FINE_LOCATION、READ_CALL_LOG、RECEIVE_SMS、WRITE_SMREAD_OWNER_DATA,一般隐私权限包括READ_CALENDAR、READ_HISTORY_BOOKMARKS、READ_EXTERNAL_STORAGE、RECORD_AUDIO、CAMERA、PROCESS_OUTGOING_CALLS、GET_ACCOUNTS、READ_LOGS、BATTERY_STATS、READ_USER_DICTIONARY,隐私权限分类完成之后,对应用程序申请的权限集合,根据隐私权限及组合的威胁参数计算它的整体威胁指数。
2、计算权限组合的威胁指数
基于单项隐私权限及三项隐私权限组合可能会造成安全威胁的情况,对于每个应用程序,威胁指数的计算方法为:
T=(∑ac+∑ai×aj+∑ai×aj×ak) 式1
在式1中,T代表应用程序整体的威胁参数,ac代表造成安全威胁的单项隐私权限的威胁参数,ai×aj代表造成安全威胁的两项隐私权限组合的威胁参数,ai×aj×ak代表造成安全威胁的三项权限组合的威胁参数。
为验证威胁指数计算方法的合理性,本发明从安卓应用市场中,取排名靠前的100个应用程序进行分析,统计应用程序整体威胁指数,统计结果如图1所示。从图1可以看出,威胁指数为0的应用程序数量为0,所有的应用程序至少都申请了INTERNET和SEND_SMS二项权限中的一项,同时申请了至少一项其它类的隐私权限,在100个应用程序中,威胁指数31至40的应用程序数量最多,有33个,其次是威胁指数41至50和61至70的应用程序,分别有19个和17个,而威胁指数小于10和大于80的应用程序数量最少,分别为3个和2个。图1表明,威胁指数较低和威胁指数较高的应用程序的数量都较少,大部分应用程序的威胁指数都分布在21至70之间,威胁指数的分布情况与应用程序的实际情况基本相符。
3、应用程序威胁度量化检测模型
通过式1,对于每一个应用程序都能够得出具体的威胁指数,一般情况下,单独根据应用程序的威胁指数判断其是否具有可疑行为,不同的人可能有不同的判断结果。因此本发明中引入模糊数学并基于应用程序威胁度优化改进,利用模糊模式识别评判应用程序的隐私泄露安全威胁程度。
定义一:设D*是X到[0,1]的一个映射,即D*:X->[0,1],x->D*(x),D*是X上的模糊集合,函数D*(·)为模糊集合D*的隶属函数,D*(X)为X对模糊集合D*的隶属度,X上的全体模糊集构成的集合记为G(X),有Q(X)∈G(X),即普通集合是模糊集合的特殊情况。本发明的量化检测模型如图2所示。
可疑行为量化检测模型主要由隶属函数和模糊模式识别两大模块组成,对于每个应用程序对应的威胁指数,首先通过隶属函数计算出隶属值,然后通过模糊模式识别的方法确定其隶属范围,最后根据隶属范围就能得到其威胁程度。
确定隶属函数首先是对专家知识建模,有三类隶属函数。本发明上述获取的100个应用程序的威胁指数进行分析,在对100个应用程序的分析过程中,发现所有的应用程序都申请了完全的网络访问权限,而几乎所有的应用程序都申请获取了手机设备信息和读取地理位置这两项权限,威胁指数小于或等于20的应用申请的隐私权限中,获取的重要隐私权限最多只含获取手机设备信息和读取地理位置两项权限,并且获取这两项权限也是由于功能的需求,本发明认为这类应用程序的威胁度是正常的,而威胁指数大于70的应用申请的隐私权限中,包含有绝大部分重要隐私权限及一部分一般隐私权限,许多应用都申请获取了功能之外的隐私权限,这类应用很可能存在获取隐私的可疑行为,本发明认为它们的隐私泄露安全威胁程度很高,对于威胁指数介于20至70之间的应用程序,申请的隐私权限中,包含部分重要隐私权限和部分一般隐私权限,存在一定的越界申请隐私权限的情况,这类应用的隐私泄露程度介于正常和很高之间,本发明认为这类应用的隐私泄露安全威胁程度较高。按照上述三类正常、较高、高对100项应用程序重新分类后,统计结果如图3所示。
从图3可以看出,威胁指数介于1至20的应用程序数量为8个,威胁指数介于71至100之间的应用程序数量有9个,而威胁指数介于21至70之间的应用程序数量最多,有83个。将应用程序的隐私泄露安全威胁程度分为三等:正常、较高、高,它们分别对应三个G集D* 1、D* 2、D* 3,通过对100个应用程序的威胁指数进行分析,设论域V=(0,100],对x∈(0,100],隶属函数为:
在确定隶属函数之后,利用模糊模式识别的方法判定威胁指数的隶属范围,采用模糊模式识别中最大隶属原则进行隶属范围归类,最大隶属原则为:设D* 1∈G(V),i=1,2,…,n,对于v0∈V,如果存在i,使得D* i(v0)=max{D* 1(v0),D* 2(v0),...,D* n(v0)},则认为v0相对地隶属于D* i。
实施例中例如:一个应用程序的威胁指数是40,根据式2至式4,D* 1(40)=0,D* 2(40)=1,D* 3(40)=0,则:
D* 2(40)=max{D* 1(40),D* 2(40),D* 3(40)}=max{0,1,0}=1 式5
按照最大隶属度原则,40相对的隶属于D* 2,因而该应用程序的隐私泄露安全威胁程度属于较高,通过这种直观的描述,用户能够很好的知晓待安装的应用程序在泄露用户隐私方面的威胁程度,从而能够针对性的做出决策。
4、量化检测模型实现方法
本发明已经得到存在隐私泄露风险的权限及组合和应用程序整体威胁指数计算方法,并在此基础上提出应用程序威胁度的量化检测模型。对于每个应用程序,可评判出其隐私泄露安全威胁程度,具体流程如图4所示。由图4可知,应用程序评判时,首先获取应用程序申请获取的权限集合,然后与存在风险的隐私权限及组合进行匹配,找出应用程序权限集合中存在风险的权限及组合,并利用威胁指数计算方法计算出应用程序的整体威胁指数,最后利用量化检测模型对得出的整体威胁指数进行评判,最终得出评判结果,即应用程序隐私泄露的安全威胁程度。
二、基于安卓权限机制的分类授权方案
在安卓应用程序的可疑行为量化评判方法的基础上,对权限机制中“全选是或全选否”的粗粒度授权方式进行改进,允许用户根据评判方案提交的评判结果,对隐私权限进行单项灵活授权,同时,从可用性的角度,对于一些需要保护的用户隐私信息,采取利用预设的虚假数据代替真实数据的方法,而不必移除相关权限的授权。
应用程序的可疑行为评判过程以及提供给用户灵活授权选择发生在应用程序的安装过程中,而利用替换方法实现隐私信息的保护发生在权限的检查过程中。本发明从安卓系统中的应用程序安装系统入手,分析安卓的权限检查机制,在上述两者的基础上提出权限的分类授权方法。
(一)分类授权方案
基于安卓系统中应用程序的安装过程和权限检查机制,针对PackageInstaller中存在的缺陷和权限的动态检查机制,本发明提出分类授权方案,包括分类授权方案设计和方案的具体实现两个方面。
1、分类授权方案设计
现有技术安卓系统权限机制的不足包括:第一,用户对应用程序申请的权限列表,由于缺乏有效的认知,只能依靠个人的经验决定是否授权,而对于没有计算机基础的用户而言,做出正确的授权决定十分困难;第二,对于应用程序申请的权限列表,用户只能选择接受所有权限或拒绝所有权限,这种全选是或全选否的粗粒度授权方式存在着很大的安全漏洞,应用程序利用这种权限机制申请获取功能之外的权限,用户可能会因为对其功能认知有限或其它一些因素而对这些额外的权限申请也进行了授权,尤其是在当前应用程序越界申请权限的形式越来越严峻的情况下,对于安卓粗粒度授权方式缺陷的改进更应当引起关注。本发明针对上述安卓权限机制中存在的问题,通过引入安卓应用程序的可疑行为量化评判方法,提出基于安卓应用程序可疑行为检测的分类授权方法,该方法相对于传统的授权方法具有以下两个特点:
第一,用户可以较好的知晓待安装应用程序的隐私泄露安全威胁程度,在应用程序安装时,对于申请的权限集合,利用可疑行为评判方案对其进行分析,根据存放在数据库中存在风险的权限及组合,找出权限集合中与之相匹配的权限,计算应用程序的整体威胁指数之后,引入模糊数学并基于应用程序威胁度优化改进,对其进行模糊判定,将判定结果以简洁直白的表述提供给用户,以便用户能够较好的知晓,帮助用户进行授权,这一过程主要通过对现有的安卓安装系统PackageInstaller进行修改和扩展来实现。
第二,用户可以对隐私权限进行单项授权,分类授权方法对现有安卓权限机制中的全选是或全选否的粗粒度授权方式进行改进,对于应用程序申请的某些隐私权限,允许用户对其进行单独授权,对于这类隐私权限,用户拒绝之后,记录下用户的授权决策,照常授权,这一过程是通过修改扩展PackageInstaller来实现;而在应用程序访问对应的资源时,根据用户的授权决策,利用预设的虚假数据代替真实的隐私数据,以保护用户的隐私,这一过程主要是通过修改相关的API函数和ContentProvider组件实现。
在分类授权方法系统框架图中,隐私权限组合数据库是一个本地的SQLite数据库,存储存在风险的权限及组合,供可疑行为量化评判方案查询,可疑行为量化评判方案分类主要实现对PackageInstaller解析出的应用程序申请的权限集合进行检测,通过查询隐私权限组合数据库,找出权限集合中存在风险的权限及组合,计算应用程序的整体威胁参数,并对程序的隐私泄露安全威胁程度进行评判,将评判结果以简洁直白的表述返回给安装系统,本地决策文件主要保存隐私权限的授权信息,隐私信息保护分类主要在用户对某些隐私信息拒绝授权后,比如联系人、地理位置信息等,采用替换方法实现对这些隐私信息的保护。分类授权方法的具体流程如图5。
根据图5所示,应用程序安装时,系统调用软件安装包PackageInsataller对应用程序安装包进行解析,AndroidManifest.xml文件中包含有应用程序的权限申明,通过解析该清单文件,便能获取到应用申请的所有权限列表,PackageInstaller将应用程序解析后的信息保存在类mPkgInfo中,只需调用mPkgInfo.requestedPermission便可获取应用程序的权限集合。
获取到权限集合之后,对应用程序进行量化评判,为此采用一个本地SQLite数据库存储存在风险的权限及组合以及对应的威胁参数,首先,检查权限集合,判断应用程序是否申请了INTERNET权限或SEND_SMS权限,如果权限集合中二项权限都不存在,则评判应用程序安全,如果二项权限中存在任意一项或二项都存在,则进行下一步的判断,此时通过查询数据库,将权限集合与数据库中的权限组合进行匹配,匹配成功则记录下该项权限组合的威胁指数,直至应用程序的权限集合匹配完成,根据匹配的结果计算应用程度整体的威胁指数,评判应用程序的隐私泄露安全威胁程度,最后将评判结果展示给用户。
用户获取到应用程序的评判结果之后,便能根据评判结果,对隐私权限进行单独授权,选择允许或拒绝,针对其中存在风险的某些隐私权限,根据应用程序访问资源的方式,本发明分类授权方法中的处理过程为:
对于一类调用隐私相关的API接口或利用ContentProvider提供隐私数据的权限,用户授权时,选择允许或拒绝,但无论用户做出何种选择,该权限都能正常授权,同时记录下用户的授权决策,该类隐私权限包括:联系人信息、地理位置信息、手机状态,都能够利用预设的虚假数据代替真实数据,如果用户选择允许,则应用程序访问对应资源时,返回真实的数据信息,如果选择拒绝,则应用程序访问时,返回预设的虚假数据。
对于这类权限,用户授权时,记录下用户做出的每项授权决策,用户选择完成之后,将这些权限的授权决策以文件的形式保存在安装系统PackageInstaller数据目录下,同时以应用程序的包名对文件进行命名,以便在应用程序访问对应的隐私资源信息时,直接查看此文件中的授权决策,以此决定返回真实数据或预设的虚假数据。
2、分类授权方案实现
分类授权方法的授权方案分为两个模块:模块一,授权模块,利用可疑行为评判方案对应用程序进行评判,提交评判结果,用户可根据评判结果进行针对性的授权;模块二,隐私保护模块,针对授权模块中的分类隐私权限,实现对应隐私信息的保护。
授权模块主要是通过修改和扩展现有技术的PackageInstaller安装系统,通过自定义类EvaluationActivity来实现对应用程序权限集合的评判工作,同时针对申请的某些隐私权限提供用户进行单独授权的功能,针对用户做出的拒绝决策时的处理方式为:将授权决策写入授权文件中,同时照常授权,对于隐私保护模块,在安卓系统对应用程序进行动态权限检测时,在获取隐私数据的相关函数中加入判断逻辑代码段,查看应用程序的决策文件,决定返回真实数据或预设的虚假数据。
隐私保护模块主要是采取替换方法来实现,利用预设的虚假数据来替换真实的数据,应用程序安装时正常授权,应用程序运行时,如果要访问相关资源,则既能保证程序能够通过安卓系统的动态权限检查,避免应用程序的异常,又能保护用户的隐私不会泄露。安卓系统应用程序获取的隐私信息分成二类:一类隐私数据,应用程序访问时,首先获取对应的系统服务,然后通过调用相关的API函数来获取,比如获取地理位置信息时,通过系统服务LocationManager调用getLastKnownLocation()获取;另一类隐私信息利用ContentProvider以某种Uri的形式向外提供数据,应用程序访问时,采用ContentResolver根据Uri来获取,比如利用ContentProvider获取用户通讯录。针对这两类隐私数据,有二种方法实现隐私保护,具体为:
方法一,修改隐私数据相关的API函数:应用程序获取系统服务,通过系统服务调用API函数获取隐私数据时,比如:获取本机的手机号码或地理信息,根据隐私数据的数据格式,预先设定一个或多个值,根据用户的授权决策,选择返回预设值或返回真实的数据,隐私权限READ_PHONE_STATE,ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION都可以利用这种方法来实现隐私数据的保护,应用程序访问该类隐私信息时,实现隐私保护的具体流程如图6所示,应用程序访问隐私数据时,会调用隐私相关的API来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则执行API函数,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户允许,则返回真实的隐私数据给应用程序,否则,返回给应用程序预设的虚假数据;
方法二,修改ContentResolver中的方法:不同应用程序之间利用ContentProvider进行数据交换,应用程序通过ContentProvider以某种Uri的形式对外提供数据,此时不管该应用程序是否启动,其它应用程序都能够通过该接口来操作应用程序内部的数据,包括删除数据delete、查询数据query、增加数据insert和修改数据modify,根据指定的Uri,其它应用程序使用ContentResolver去访问操作指定数据,调用getContentResolver.query()来获取Cursor数据。比如:访问短信息、通讯录信息、日历活动信息、网络书签和历史记录等,此时根据用户的授权决策,选择返回空数据或真实数据给应用程序,隐私权限READ_CALL_LOG,READ_SMS,READ_CONTACTS,READ_HISTORY_BOOKMARKS都可以使用利用这种方法来保护相关的隐私信息。应用程序访问该类隐私信息时,实现隐私保护的具体流程如图7所示,应用程序访问隐私数据时,会利用ContentResolver来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则根据指定的Uri执行getContentResolver.query()方法,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户选择允许,则返回真实的隐私数据信息给应用程序,如果用户选择拒绝,则返回空值给应用程序。
根据两类隐私保护方法,针对当前应用程序申请获取最频繁的三类隐私权限:获取设备状态信息、获取地理位置信息、访问联系人,对此三类隐私相关组件进行优化以实现隐私保护的具体过程为:
(1)Contacts Content Provider组件优化
READ_CONTACTS权限控制系统中联系人信息的访问,应用程序申请该权限之后,便具备了访问手机中联系人信息的能力。安卓系统提供Contacts应用程序来管理联系人,并为联系人管理提供ContentProvider。每当其他应用程序访问联系人信息时,使用ContentResolver来获取数据,使用如下语句来获得Uri所指定的Cursor数据:Cursorphones=getContent Resolver().query(uri,projection,selection,selectionArgs,sortOrder);为保护用户联系人信息,分析安卓系统源代码中位于/frameworks/base/core/java/android/content/目录下的contentResolver类文件,修改其中的query函数,在返回cursor数据之前,增加逻辑判断代码,根据传入的应用程序包名和权限,查询PackageInstaller数据目录下的决策文件,如果用户授予该权限,则执行正常流程,返回真实的cursor数据,否则,则返回空值,此时应用程序获取的联系人数据为空,联系人信息得到保护。
(2)Telephony Manager组件优化
READ_PHONE_STATE权限控制系统中手机状态信息的访问,应用程序获取该权限之后,便能够获取手机的状态信息,包括手机设备号、SIM卡号、本机手机号码,应用程序访问这些信息时,首先需要获得系统服务TelephoneManager,该类提供了大量的getXxx()方法用于获取手机相关的信息,通过这些方法便可获取到对应的数据,获取手机号码、手机设备号、SIM卡序列号、IMSI号调用如下函数:getLine1Number()、getDeviceId()、getSimSerialNumber()、getSubscriberId(),其中,设备ID的数据格式为15位数字,预先定义“000000000000000”作为设备ID的预设的虚假数据,手机号码的数据格式为11位的数字,预先定义为一个固定号码“00000000000”,SIM卡序列号数据格式为20位的数字,预先定义为固定的“00000000000000000000”,IMSI号总数据格式为不超过15位的数字,预先设定为固定的字符串“000000000000000”,分析安卓系统源代码中的/frameworks/base/telephony/java/android/telephony/目录下TelephonyManager类,在getLine1Number()、getDeviceID()、getSubscriberId()、getSimSerialNumber()函数中,增加逻辑判断语句,根据传入的应用程序包名和权限,查询PackageInstaller数据目录下的决策文件,如果用户授予该权限,则执行正常流程,返回真实的手机状态信息,否则,则返回预设的虚假数据,此时应用程序获取的手机状态信息并非本机的真实状态数据,手机状态信息得到保护。
(3)Location Manager组件优化
ACCESS_FINE_LOCATION权限和ACCESS_COARSE_LOCATION权限控制对设备地理位置的访问,前者通过卫星定位获取精确的定位信息,后者通过移动通信网络获取定位信息,应用程序访问这些信息时,首先申请系统服务LocationManager,然后指定LocationProvider来获取定位信息,访问设备地理位置信息的关键代码为:LocationManager lManger=(Location Manager)getSystemService(Context.LOCATION_SERVICE);Locationlocation=lManager.get LastKnownLocation(ProviderName);
Location是一个地理位置信息类,包含有用户地理位置的经度、纬度信息,分析位于安卓系统源代码中的/frameworks/base/location/java/android/location目录下的LocationManager类文件,在getLastKnownLocation()函数中,增加逻辑判断语句,根据传入的应用程序包名和权限,查询PackageInstaller数据目录下的决策文件,如果用户授予该权限,则执行正常流程,返回真实的定位信息,否则,则调用Location类中setLongitude()和setLatitude()方法,分别设置地理位置坐标的经度和纬度为固定值,以此来替换用户现有的位置坐标信息,此时应用程序获取的并非是用户的真实坐标,用户的地理位置信息得到保护。
本发明分别对可疑行为量化评判方案和分类授权方法的实验结果进行了分析,第一,对于引入的可疑行为量化评判方案,通过实验结果进行分析,应用程序安装时,根据申请的权限列表,对安全和隐私威胁程度进行评判,评判结果简单简洁直白,能够让用户很好的认知。第二,针对三类隐私信息,对保护前后的实验结果分别进行分析,实验结果表明,用户拒绝授权后,隐私信息能够得到很好的保护,总结两类实验结果,都与理论吻合。
三、发明点总结
伴随安卓手机用户量的不断增加,安卓系统上的第三方应用程序数量也在不断激增,由于安卓平台的开放性,使得恶意程序的数量也随之猛增。而现有的安卓系统的权限管理机制还不够完善,应用程序安装时,恶意应用能够瞒过用户的感知成功部署在用户手机中,这主要体现在二个方面:一方面,应用程序安装时,系统仅仅将应用程序申请的权限以列表的形式展示给用户,将授权的任务交给用户,而除去某些专业人员之外,一般用户很难将应用申请的权限与其功能完全对应起来,许多用户甚至都不会耐心看完所有的权限描述,这就给恶意应用以可乘之机;另一方面,即使用户察觉出某项权限是属于越界申请的,应用程序无需此项权限也可提供正常的功能,但安卓系统全选是或全选否的授权方式,用户若要使用该应用的功能,就不得不接受应用程序对权限的越界获取。
本发明对现有的安卓系统授权机制,从辅助用户授权和细化授权方式二个方面进行改进,主要包括:第一,针对应用程序大量获取用户隐私权限且越界获取十分严重的情况,从安全和隐私的角度,提出一种可疑行为量化评判方案,在应用程序安装时,通过检查申请的权限列表,评判应用程序的安全威胁程度,将评判结果以简单简洁直白的表述呈现给用户,帮助用户做出授权决策;第二,对现有的全选是或全选否的粗粒度授权方式进行改进,提出分类授权方法,对于其中的某些隐私权限,允许用户针对每项权限灵活的进行授权,同时,以替换方式,在保证应用程序正常运行的同时,保护用户的隐私信息不被泄露;第三,对恶意评判方案和分类授权方法进行了实验,同时对实验结果进行了分析,验证了分类授权方法在辅助用户授权和细化授权方式二个方面所带来的积极作用。
Claims (10)
1.可疑行为量化评判的安卓应用分类授权法,其特征在于,对现有的安卓系统授权机制,从辅助用户授权和细化授权方式二个方面进行改进,主要包括:第一,基于应用程序大量获取用户隐私权限且越界获取十分严重的情况,从安全和隐私的角度,提出一种安卓应用程序的可疑行为量化评判方法,在应用程序安装时,通过检查申请的权限列表,评判应用程序的安全威胁程度,将评判结果以直白的表述呈现给用户,帮助用户做出授权决策;第二,对现有的全选是或全选否的粗粒度授权方式进行改进,提出一种基于安卓权限机制的分类授权方案,对于其中的某些隐私权限,允许用户针对每项权限灵活的进行授权,同时,对于其中的某些隐私权限采用替换方法,采取利用预设的虚假数据代替真实数据的方法,而不必移除相关权限的授权,在允许应用程序获取权限的同时保护隐私信息的安全;
安卓应用程序的可疑行为量化评判方法,包括设置隐私权限组合、计算权限组合的威胁指数、应用程序威胁度量化检测模型、量化检测模型实现方法,首先通过分析智能手机隐私类别资源和对应的隐私权限,找出存在风险的权限和权限组合,然后对隐私权限进行分类,同时为每类隐私权限设定一个威胁指数,最后根据应用程序申请的权限集合计算出其整体的威胁指数,通过可疑行为量化检测模型评判应用程序的隐私泄露安全威胁程度,并以简洁直白的表述呈现评判结果,方便用户知晓应用程序的威胁程度;
基于安卓权限机制的分类授权方案,包括分类授权方案设计和分类授权方案实现,对当前安卓权限机制中粗粒度的授权方式进行改进,对于应用程序安装时提供的权限申请列表,用户不再只有全选是和全选否两种选择,针对隐私类权限,在应用程序安装时对其安全性进行评判,用户根据评判结果进行灵活授权,对于其中的某些隐私权限利用替换方法来实现分类授权,基于应用程序可能会因为权限检测失败抛出安全异常问题而导致的崩溃情况,对分类隐私权限的申请,授予它权限的同时,根据用户的授权决策选择返回真实数据或虚假数据,针对当前应用程序申请获取最频繁的三类隐私权限:获取设备状态信息、获取地理位置信息、访问联系人,基于本发明的两类隐私保护方法,对此三类隐私相关组件进行优化以实现隐私保护。
2.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,设置隐私权限组合:针对应用程序获取用户隐私的可疑行为,根据得出的隐私权限,解析可能泄露用户隐私信息的权限组合,同时,基于单项权限也可能会对用户造成安全威胁的情况,对单项权限设定威胁参数,对于危险的权限组合,以每项权限威胁参数的乘积作为权限组合的威胁参数;
将隐私相关的权限归为三大类:
第一类,核心隐私权限:包括SEND_SMS和INTERNET两项权限,将第一类隐私权限的威胁指数设置为4;
第二类,重要隐私权限:应用程序申请获取该类隐私权限的频率非常频繁,并且该类隐私权限对应的隐私信息对用户非常重要,将第二类隐私权限的威胁指数设置为2;
第三类,一般隐私权限:应用程序申请获取的频率较低或对用户重要程度一般,将第三类隐私权限的威胁指数设置为1。
3.根据权利要求2所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,隐私权限具体分类为:核心隐私权限包括SEND_SMS、INTERNET,重要隐私权限包括READ_CONTACTS、READ_PHONE_STATE、CALL_PHONESACCESS_COARSE_LOCATION、READ_SMS、RECEIVE_MMS、ACCESS_FINE_LOCATION、READ_CALL_LOG、RECEIVE_SMS、WRITE_SMREAD_OWNER_DATA,一般隐私权限包括READ_CALENDAR、READ_HISTORY_BOOKMARKS、READ_EXTERNAL_STORAGE、RECORD_AUDIO、CAMERA、PROCESS_OUTGOING_CALLS、GET_ACCOUNTS、READ_LOGS、BATTERY_STATS、READ_USER_DICTIONARY,隐私权限分类完成之后,对应用程序申请的权限集合,根据隐私权限及组合的威胁参数计算它的整体威胁指数。
4.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,计算权限组合的威胁指数:基于单项隐私权限及三项隐私权限组合可能会造成安全威胁的情况,对于每个应用程序,威胁指数的计算方法为:
T=(∑ac+∑ai×aj+∑ai×aj×ak) 式1
在式1中,T代表应用程序整体的威胁参数,ac代表造成安全威胁的单项隐私权限的威胁参数,ai×aj代表造成安全威胁的两项隐私权限组合的威胁参数,ai×aj×ak代表造成安全威胁的三项权限组合的威胁参数。
5.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,应用程序威胁度量化检测模型:引入模糊数学并基于应用程序威胁度优化改进,利用模糊模式识别评判应用程序的隐私泄露安全威胁程度;
定义一:设D*是X到[0,1]的一个映射,即D*:X->[0,1],x->D*(x),D*是X上的模糊集合,函数D*(·)为模糊集合D*的隶属函数,D*(X)为X对模糊集合D*的隶属度,X上的全体模糊集构成的集合记为G(X),有Q(X)∈G(X),即普通集合是模糊集合的特殊情况;
可疑行为量化检测模型主要由隶属函数和模糊模式识别两大模块组成,对于每个应用程序对应的威胁指数,首先通过隶属函数计算出隶属值,然后通过模糊模式识别的方法确定其隶属范围,最后根据隶属范围就能得到其威胁程度;
确定隶属函数首先是对专家知识建模,有三类隶属函数,将应用程序的隐私泄露安全威胁程度分为三等:正常、较高、高,它们分别对应三个G集D* 1、D* 2、D* 3,设论域V=(0,100],对x∈(0,100],隶属函数为:
在确定隶属函数之后,利用模糊模式识别的方法判定威胁指数的隶属范围,采用模糊模式识别中最大隶属原则进行隶属范围归类,最大隶属原则为:设D* 1∈G(V),i=1,2,…,n,对于v0∈V,如果存在i,使得D* i(v0)=max{D* 1(v0),D* 2(v0),...,D* n(v0)},则认为v0相对地隶属于D* i;
按照最大隶属度原则,通过这种直观的描述,用户能够很好的知晓待安装的应用程序在泄露用户隐私方面的威胁程度,从而能够针对性的做出决策。
6.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,量化检测模型实现方法:应用程序评判时,首先获取应用程序申请获取的权限集合,然后与存在风险的隐私权限及组合进行匹配,找出应用程序权限集合中存在风险的权限及组合,并利用威胁指数计算方法计算出应用程序的整体威胁指数,最后利用量化检测模型对得出的整体威胁指数进行评判,最终得出评判结果,即应用程序隐私泄露的安全威胁程度。
7.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,分类授权方案设计:通过引入安卓应用程序的可疑行为量化评判方法,提出基于安卓应用程序可疑行为检测的分类授权方法:
第一,在应用程序安装时,对于申请的权限集合,利用可疑行为评判方案对其进行分析,根据存放在数据库中存在风险的权限及组合,找出权限集合中与之相匹配的权限,计算应用程序的整体威胁指数之后,引入模糊数学并基于应用程序威胁度优化改进,对其进行模糊判定,将判定结果以简洁直白的表述提供给用户,帮助用户进行授权,用户知晓待安装应用程序的隐私泄露安全威胁程度的过程主要通过对现有的安卓安装系统PackageInstaller进行修改和扩展来实现;
第二,分类授权方法对现有安卓权限机制中的全选是或全选否的粗粒度授权方式进行改进,对于应用程序申请的某些隐私权限,允许用户对其进行单独授权,对于这类隐私权限,用户拒绝之后,记录下用户的授权决策,照常授权,这一过程是通过修改扩展PackageInstaller来实现;而在应用程序访问对应的资源时,根据用户的授权决策,利用预设的虚假数据代替真实的隐私数据,以保护用户的隐私,用户可以对隐私权限进行单项授权的过程主要是通过修改相关的API函数和ContentProvider组件实现。
8.根据权利要求7所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,在分类授权方法系统框架图中,隐私权限组合数据库是一个本地的SQLite数据库,存储存在风险的权限及组合,供可疑行为量化评判方案查询,可疑行为量化评判方案分类主要实现对PackageInstaller解析出的应用程序申请的权限集合进行检测,通过查询隐私权限组合数据库,找出权限集合中存在风险的权限及组合,计算应用程序的整体威胁参数,并对程序的隐私泄露安全威胁程度进行评判,将评判结果以简洁直白的表述返回给安装系统,本地决策文件主要保存隐私权限的授权信息,隐私信息保护分类主要在用户对某些隐私信息拒绝授权后,比如联系人、地理位置信息等,采用替换方法实现对这些隐私信息的保护;
应用程序安装时,系统调用软件安装包PackageInsataller对应用程序安装包进行解析,AndroidManifest.xml文件中包含有应用程序的权限申明,通过解析该清单文件,便能获取到应用申请的所有权限列表,PackageInstaller将应用程序解析后的信息保存在类mPkgInfo中,调用mPkgInfo.requestedPermission便可获取应用程序的权限集合;
获取到权限集合之后,对应用程序进行量化评判,为此采用一个本地SQLite数据库存储存在风险的权限及组合以及对应的威胁参数,首先,检查权限集合,判断应用程序是否申请了INTERNET权限或SEND_SMS权限,如果权限集合中二项权限都不存在,则评判应用程序安全,如果二项权限中存在任意一项或二项都存在,则进行下一步的判断,此时通过查询数据库,将权限集合与数据库中的权限组合进行匹配,匹配成功则记录下该项权限组合的威胁指数,直至应用程序的权限集合匹配完成,根据匹配的结果计算应用程度整体的威胁指数,评判应用程序的隐私泄露安全威胁程度,最后将评判结果展示给用户;
用户获取到应用程序的评判结果之后,便能根据评判结果,对隐私权限进行单独授权,选择允许或拒绝,针对其中存在风险的某些隐私权限,根据应用程序访问资源的方式,本发明分类授权方法中的处理过程为:
对于一类调用隐私相关的API接口或利用ContentProvider提供隐私数据的权限,用户授权时,选择允许或拒绝,但无论用户做出何种选择,该权限都能正常授权,同时记录下用户的授权决策,该类隐私权限包括:联系人信息、地理位置信息、手机状态,都能够利用预设的虚假数据代替真实数据,如果用户选择允许,则应用程序访问对应资源时,返回真实的数据信息,如果选择拒绝,则应用程序访问时,返回预设的虚假数据;
对于这类权限,用户授权时,记录下用户做出的每项授权决策,用户选择完成之后,将这些权限的授权决策以文件的形式保存在安装系统PackageInstaller数据目录下,同时以应用程序的包名对文件进行命名,以便在应用程序访问对应的隐私资源信息时,直接查看此文件中的授权决策,以此决定返回真实数据或预设的虚假数据。
9.根据权利要求1所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,分类授权方法的授权方案分为两个模块:模块一,授权模块,利用可疑行为评判方案对应用程序进行评判,提交评判结果,用户可根据评判结果进行针对性的授权;模块二,隐私保护模块,针对授权模块中的分类隐私权限,实现对应隐私信息的保护;
授权模块主要是通过修改和扩展现有技术的PackageInstaller安装系统,通过自定义类EvaluationActivity来实现对应用程序权限集合的评判工作,同时针对申请的某些隐私权限提供用户进行单独授权的功能,针对用户做出的拒绝决策时的处理方式为:将授权决策写入授权文件中,同时照常授权,对于隐私保护模块,在安卓系统对应用程序进行动态权限检测时,在获取隐私数据的相关函数中加入判断逻辑代码段,查看应用程序的决策文件,决定返回真实数据或预设的虚假数据;
隐私保护模块主要是采取替换方法来实现,利用预设的虚假数据来替换真实的数据,应用程序安装时正常授权,应用程序运行时,如果要访问相关资源,则既能保证程序能够通过安卓系统的动态权限检查,避免应用程序的异常,又能保护用户的隐私不会泄露;安卓系统应用程序获取的隐私信息分成二类:一类隐私数据,应用程序访问时,首先获取对应的系统服务,然后通过调用相关的API函数来获取;另一类隐私信息利用ContentProvider以某种Uri的形式向外提供数据,应用程序访问时,采用ContentResolver根据Uri来获取,针对这两类隐私数据,有二种方法实现隐私保护,具体为:
方法一,修改隐私数据相关的API函数:应用程序获取系统服务,通过系统服务调用API函数获取隐私数据时,根据隐私数据的数据格式,预先设定一个或多个值,根据用户的授权决策,选择返回预设值或返回真实的数据,隐私权限READ_PHONE_STATE,ACCESS_COARSE_LOCATION,ACCESS_FINE_LOCATION都可以利用这种方法来实现隐私数据的保护,应用程序访问该类隐私信息时,应用程序访问隐私数据时,会调用隐私相关的API来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则执行API函数,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户允许,则返回真实的隐私数据给应用程序,否则,返回给应用程序预设的虚假数据;
方法二,修改ContentResolver中的方法:不同应用程序之间利用ContentProvider进行数据交换,应用程序通过ContentProvider以某种Uri的形式对外提供数据,此时不管该应用程序是否启动,其它应用程序都能够通过该接口来操作应用程序内部的数据,包括删除数据delete、查询数据query、增加数据insert和修改数据modify,根据指定的Uri,其它应用程序使用ContentResolver去访问操作指定数据,调用getContentResolver.query()来获取Cursor数据,应用程序访问隐私数据时,利用ContentResolver来获取,此时安卓系统对该应用程序进行动态权限检查,如果检测出该应用程序没有被系统授予对应的访问权限,则抛出安全异常,访问终止,如果检查通过,则根据指定的Uri执行getContentResolver.query()方法,此时根据传入的应用程序的包名和隐私权限,查询保存在安装系统PackageInstaller数据目录下的决策文件,检查用户对此权限的授权决策,如果用户选择允许,则返回真实的隐私数据信息给应用程序,如果用户选择拒绝,则返回空值给应用程序。
10.根据权利要求9所述的可疑行为量化评判的安卓应用分类授权法,其特征在于,Contacts Content Provider组件优化:READ_CONTACTS权限控制系统中联系人信息的访问,应用程序申请该权限之后,便具备了访问手机中联系人信息的能力,安卓系统提供Contacts应用程序来管理联系人,并为联系人管理提供ContentProvider,每当其他应用程序访问联系人信息时,使用ContentResolver来获取数据,使用如下语句来获得Uri所指定的Cursor数据:Cursor phones=getContent Resolver().query(uri,projection,selection,selectionArgs,sortOrder);为保护用户联系人信息,分析安卓系统源代码中位于/frameworks/base/core/java/android/content/目录下的contentResolver类文件,修改其中的query函数,在返回cursor数据之前,增加逻辑判断代码,根据传入的应用程序包名和权限,查询PackageInstaller数据目录下的决策文件,如果用户授予该权限,则执行正常流程,返回真实的cursor数据,否则,则返回空值,此时应用程序获取的联系人数据为空,联系人信息得到保护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110715474.4A CN113326502A (zh) | 2021-06-27 | 2021-06-27 | 可疑行为量化评判的安卓应用分类授权法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110715474.4A CN113326502A (zh) | 2021-06-27 | 2021-06-27 | 可疑行为量化评判的安卓应用分类授权法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113326502A true CN113326502A (zh) | 2021-08-31 |
Family
ID=77424853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110715474.4A Pending CN113326502A (zh) | 2021-06-27 | 2021-06-27 | 可疑行为量化评判的安卓应用分类授权法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326502A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836540A (zh) * | 2021-09-02 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 管理应用权限的方法、设备、存储介质和程序产品 |
CN116956347A (zh) * | 2023-07-28 | 2023-10-27 | 浙江大学 | 一种隐私保护下的可交互微数据发布系统 |
CN117290823A (zh) * | 2023-11-21 | 2023-12-26 | 中国电信股份有限公司江西分公司 | 一种app智能检测与安全防护方法、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2884784A1 (en) * | 2013-12-11 | 2015-06-17 | Alcatel Lucent | Privacy ratings for applications of mobile terminals |
WO2017063424A1 (zh) * | 2015-10-15 | 2017-04-20 | 中兴通讯股份有限公司 | 一种防隐私信息泄露的方法、装置及终端 |
CN106650485A (zh) * | 2016-09-18 | 2017-05-10 | 山东大学 | 基于Android 的个性化环境感知隐私保护方法 |
CN110084047A (zh) * | 2019-03-20 | 2019-08-02 | 努比亚技术有限公司 | 一种访问权限控制方法、终端及计算机可读存储介质 |
CN111709017A (zh) * | 2020-06-16 | 2020-09-25 | 荆门汇易佳信息科技有限公司 | 安卓平台的细化增强权限管控与解析系统 |
-
2021
- 2021-06-27 CN CN202110715474.4A patent/CN113326502A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2884784A1 (en) * | 2013-12-11 | 2015-06-17 | Alcatel Lucent | Privacy ratings for applications of mobile terminals |
WO2017063424A1 (zh) * | 2015-10-15 | 2017-04-20 | 中兴通讯股份有限公司 | 一种防隐私信息泄露的方法、装置及终端 |
CN106650485A (zh) * | 2016-09-18 | 2017-05-10 | 山东大学 | 基于Android 的个性化环境感知隐私保护方法 |
CN110084047A (zh) * | 2019-03-20 | 2019-08-02 | 努比亚技术有限公司 | 一种访问权限控制方法、终端及计算机可读存储介质 |
CN111709017A (zh) * | 2020-06-16 | 2020-09-25 | 荆门汇易佳信息科技有限公司 | 安卓平台的细化增强权限管控与解析系统 |
Non-Patent Citations (1)
Title |
---|
种伟龙;: "基于权限组合的Android安全检测方案的研究", 无线通信技术, no. 04, pages 1 - 4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836540A (zh) * | 2021-09-02 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 管理应用权限的方法、设备、存储介质和程序产品 |
CN116956347A (zh) * | 2023-07-28 | 2023-10-27 | 浙江大学 | 一种隐私保护下的可交互微数据发布系统 |
CN117290823A (zh) * | 2023-11-21 | 2023-12-26 | 中国电信股份有限公司江西分公司 | 一种app智能检测与安全防护方法、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924514B1 (en) | Machine learning detection of fraudulent validation of financial institution credentials | |
EP3854047B1 (en) | Supervised learning system for identity compromise risk computation | |
CN113326502A (zh) | 可疑行为量化评判的安卓应用分类授权法 | |
US11017088B2 (en) | Crowdsourced, self-learning security system through smart feedback loops | |
JP6019484B2 (ja) | サーバで結合されたマルウェア防止のためのシステムと方法 | |
US9215548B2 (en) | Methods and systems for rating privacy risk of applications for smart phones and other mobile platforms | |
CN110851872B (zh) | 针对隐私数据泄漏的风险评估方法及装置 | |
CN106548342B (zh) | 一种可信设备确定方法及装置 | |
AU2020327001A1 (en) | Privacy score | |
CN114021184A (zh) | 一种数据管理方法、装置、电子设备及存储介质 | |
CN105930726A (zh) | 一种恶意操作行为的处理方法及用户终端 | |
CN111709017A (zh) | 安卓平台的细化增强权限管控与解析系统 | |
CN115080956A (zh) | 基于移动终端已安装应用程序违规权限的检测方法和系统 | |
CN114117539A (zh) | 一种数据保护方法及装置 | |
Zhang et al. | A Small Leak Will Sink Many Ships: Vulnerabilities Related to mini-programs Permissions | |
CN115879156A (zh) | 动态脱敏方法、装置、电子设备及储存介质 | |
Izergin et al. | Risk assessment model of compromising personal data on mobile devices | |
AU2005209678A1 (en) | Integrated access authorization | |
EP4302217A1 (en) | Managing access to data stored on a terminal device | |
CN115866585B (zh) | 一种手机app信息保护方法 | |
CN115102793B (zh) | 基于日志信息分析的工控网络安全策略匹配方法和系统 | |
CN117195297B (zh) | 基于erp的数据安全与隐私保护系统及方法 | |
US20230132611A1 (en) | Abnormal classic authorization detection systems | |
CN115955354A (zh) | 风险控制的方法、装置、电子设备及存储介质 | |
Turco | Threat modelling on data sharing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |