CN110414222A - 一种基于组件关联的应用隐私泄露问题检测方法和装置 - Google Patents
一种基于组件关联的应用隐私泄露问题检测方法和装置 Download PDFInfo
- Publication number
- CN110414222A CN110414222A CN201910524860.8A CN201910524860A CN110414222A CN 110414222 A CN110414222 A CN 110414222A CN 201910524860 A CN201910524860 A CN 201910524860A CN 110414222 A CN110414222 A CN 110414222A
- Authority
- CN
- China
- Prior art keywords
- feature
- privacy leakage
- data
- sensitive
- permission
- 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.)
- Granted
Links
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于组件关联的应用隐私泄露问题检测方法和装置,该方法包括步骤:提取组件间通信的关联信息,建立关联关系集合;确定敏感权限,将敏感权限的数据对象定义为敏感数据,查找对敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路;收集数据通路上的隐私泄露特征;依据隐私泄露特征,采用层次分析法给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过所述恶意指数评判是否发生隐私泄露。该装置包括组件关系解析单元、数据流向查找单元、特征采集单元和层次分析单元。该方法和装置,能够有效地检测出利用组件间通信机制对用户敏感数据窃取的行为。
Description
技术领域
本发明涉及移动互联网安全技术领域,特别涉及一种基于组件关联的应用隐私泄露问题检测方法和装置。
背景技术
为了进行安全保护,Android系统有自己特有的安全机制,例如采用了权限机制进行筛查隔离,以控制Android系统中短信、照片、通讯录和位置等敏感数据和一些系统功能的访问,保证系统的安全性。此外,现有技术针对隐私泄露问题的研究中,提出了一些从应用中提取方法调用、权限和信息流等特征的工具与手段,并将特征与预先发现的应用签名、恶意特征或侵犯隐私的行为进行比较,从而发现存在隐私泄露问题的应用。传统的Android应用分析中,根据分析方法可将防隐私泄露方案主要分为三大类:特征匹配、行为分析和动态模拟运行监控。特征匹配主要是判断应用中是否有特定的一段序列或签名或者特定的指令序列等特征;行为代码分析则是从单个apk文件出发,反编译出应用的中间代码信息,再根据词法分析、语法分析、控制流、数据流等方法收集应用行为特征评判安全性;动态模拟运行监控则是通过自动化脚本触发应用的各种行为,同时在沙箱中进行应用的运行监控,识别应用的敏感行为,从而实现应用实际行为的安全分析。
然而,这些检测方法,多是针对单个应用进行分析的,对于恶意应用直接或间接利用其它应用泄漏的权限获得用户数据的现象,上述方法不具备很好的检测能力。尽管Android系统采取了保护措施以尽可能避免攻击,恶意攻击者还是有可能通过一些手段越过权限审查窃取隐私信息,其中一种可能窃取到隐私信息的攻击手段就是利用Android的组件间通信机制。
Android应用的设计和开发方式越来越倾向于模块化、可重用的原则,使得开发者们通过组件间通信(Inter-Component Communication,ICC)的方式实现组件重用,进而将各类功能的组件组合成一个功能完整的应用。这类开发方式遵循高内聚低耦合的设计模式,受到广泛的推广。然而,恶意软件也可使用组件间通信机制,进行窃取隐私、恶意扣费或者诱骗欺诈。这类由组件间通信造成的Android安全问题相比于传统研究的安全问题,产生问题的方式更灵活多变,也更加难以被检测到,对用户保留在手机中的隐私信息安全造成巨大的威胁。随着现代社会对个人隐私安全保护的日益重视,如何更好地减少组件间通信造成的Android安全问题给用户带来的损失,保护用户的信息与财产安全,是安全研究人员极为关注的一个研究方向。
综上,如何检测利用组件间通信机制泄露隐私的恶意行为,成为本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的是提出一种基于组件关联的应用隐私泄露问题检测方法和装置,以解决上述技术问题。
为实现上述目的,本发明提供了如下方案:
本发明实施例的第一个方面,提供了一种基于组件关联的应用隐私泄露问题检测方法,包括如下步骤:
提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合;
确定敏感权限,将敏感权限的数据对象定义为敏感数据,在所述关联关系集合范围内,查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路;
收集所述数据通路上的隐私泄露特征;
依据所述隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过所述恶意指数评判是否发生隐私泄露。
可选的,提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合,包括步骤:
通过应用分析器提取应用代码中的组件声明信息与组件调用信息,通过模糊匹配建立组件间的关联关系库;
根据所述关联关系库中精确解析的组件关联关系对当前未精确解析的组件关联关系进行实际调用概率评估,记录关联概率,根据预设的概率阈值筛选出可靠的关联关系,形成所述关联关系集合。
可选的,确定敏感权限,包括:
随机选取第一预设数量个已知的恶意应用作为数据样本,统计恶意应用使用最多的前第二预设数量条权限;将第二预设数量条权限作为样本权限;
将权限设置不当的自定义权限和所述样本权限定义为敏感权限。
可选的,查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路,包括步骤:
根据权限及方法映射与方法及方法类型映射,获得待测应用中对敏感数据进行的获取操作与发送操作;将所述获取操作获取到的数据定义为污点数据,进行污点分析,根据深度优先算法访问相邻的数据节点,直到遇到敏感数据发送操作的执行,或者所有相邻的数据节点都访问完成,分析结束即获得所述数据通路。
可选的,收集所述数据通路上的隐私泄露特征,包括收集传播过程因素特征和/或收集操作特征;
所述收集传播过程因素特征,包括:沿所述数据通路反向寻找敏感数据获取操作的代码起始入口,追溯待测应用内引发敏感数据获取操作的起始动作,判断动作产生原因,以此收集关联触发因素特征;在所述数据通路中,通过识别if、else条件语句中对环境信息获取的操作,判定在数据流向过程中是否存在对环境因素特征的控制依赖以及依赖的环境因素类别,以此收集环境因素特征;
所述收集操作特征,包括:收集通过敏感权限对敏感数据进行的获取操作和发送操作,作为操作特征。
可选的,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值,包括步骤:
将隐私泄露特征划分为传播过程因素特征和操作特征;
一次所述操作特征包括通过敏感权限对敏感数据进行的一次获取操作和一次发送操作;
将所述传播过程因素特征包括关联触发因素特征和环境因素特征;
通过层次分析法进行一致性分析与归一化校验,得到所述操作特征、所述关联触发因素和所述环境因素特征各自的权值均值。
可选的,综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,包括步骤:
按照下式计算恶意指数:
α=A1*N1+A2*N2+A3*N3
其中,α为恶意指数,A1表示操作特征的权值均值,N1表示操作特征发生的次数,A2表示关联触发因素特征的权值均值,N2表示关联触发因素特征的数量;A3表示环境因素特征的权值均值,N3表示环境因素特征的数量。
本发明实施例的第二个方面,还提供一种基于组件关联的应用隐私泄露问题检测装置,包括组件关系解析单元、数据流向查找单元、特征采集单元和层次分析单元;
组件关系解析单元,用于提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合;
数据流向查找单元,用于确定敏感权限,将敏感权限的数据对象定义为敏感数据,在所述关联关系集合范围内,查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路;
特征采集单元,用于收集所述数据通路上的隐私泄露特征;
层次分析单元,用于依据所述隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过所述恶意指数评判是否发生隐私泄露。
可选的,数据流向查找单元,具体用于:
根据权限及方法映射与方法及方法类型映射,获得待测应用中对敏感数据进行的获取操作与发送操作;将所述获取操作获取到的数据定义为污点数据,进行污点分析,根据深度优先算法访问相邻的数据节点,直到遇到敏感数据发送操作的执行,或者所有相邻的数据节点都访问完成,分析结束即获得所述数据通路。
可选的,特征采集单元,具体用于:
收集传播过程因素特征,包括:沿所述数据通路反向寻找敏感数据获取操作的代码起始入口,追溯待测应用内引发敏感数据获取操作的起始动作,判断动作产生原因,以此收集关联触发因素特征;在所述数据通路中,通过识别if、else条件语句中对环境信息获取的操作,判定在数据流向过程中是否存在对环境因素特征的控制依赖以及依赖的环境因素类别,以此收集环境因素特征;收集操作特征,包括:收集通过敏感权限对敏感数据进行的获取操作和发送操作,作为操作特征;
和/或,层次分析单元,具体用于:
将隐私泄露特征划分为传播过程因素特征和操作特征;将所述传播过程因素特征包括关联触发因素特征和环境因素特征;
通过层次分析法进行一致性分析与归一化校验,得到所述操作特征、所述关联触发因素和所述环境因素特征各自的权值均值。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开的基于复合层次分析的数据处理分类方法和装置,首先提取组件关联相关信息,并依据信息建立组件的关联关系集合,然后基于组件的关联关系集合对隐私泄露问题相关特征进行采集,依据特征采用层次分析法建立隐私泄露检测模型对某次数据流向行为中是否存在隐私泄露问题进行评估,能够有效地检测出通过组件间通信漏洞窃取用户敏感数据的行为,实现了对Android应用隐私泄露问题更准确的检测,提升了系统的安全性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于组件关联的应用隐私泄露问题检测方法的一个实施例的流程示意图;
图2为本发明实施例中一种隐私泄露特征划分示意图;
图3为本发明基于组件关联的应用隐私泄露问题检测方法的另一个实施例的主体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
在组件间通信导致的各类安全问题检测中,隐私泄露检测在数据追踪过程中存在分析断点,如何克服断点,有效追踪数据流向,是需要解决的一大问题。追踪数据流需要进行跨组件的分析,需要在获得组件之间的信息传递过程,因此研究需要从组件维度进行问题分析。组件之间的关联关系是分析的基础,组件关联的精度和后续安全分析的精度都对最终检测结果产生影响,只有结合组件关联分析与安全分析多方面的相关问题进行综合研究,才能对组件间通信造成的隐私泄露问题研究的产生更多帮助与贡献,提高对用户隐私的保护能力。
本发明实施例1提供了一种基于组件关联的应用隐私泄露问题检测方法,参加图1所示,该方法包括如下步骤:
S100,提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合。
S101,确定敏感权限,将敏感权限的数据对象定义为敏感数据。
S102,查找数据通路。
基于步骤S100建立的关联关系集合,查找对敏感数据执行的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路。
S103,收集数据通路上的隐私泄露特征。
S104,依据隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;
S105,综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过恶意指数评判是否发生隐私泄露。
本发明实施例充分考虑了应用内与应用间组件间通信导致的隐私泄露安全问题,针对组件间通信的特殊性,采集恶意隐私泄露问题特有特征,并依据层次分析法对特征建立检测模型,实现了基于组件间通信的Android应用隐私泄露安全检测方法,有效应对Android应用隐私泄露问题,提升系统整体安全性能。
实施例2
本发明实施例提供基于组件关联的应用隐私泄露问题检测方法的一个优选实施例。该实施例包括如下步骤:
S200,通过应用分析器提取Android应用代码中的组件声明信息与组件调用信息,将信息保存在关联数据库中,通过模糊匹配建立组件关联关系。
将当前未精确解析的调用信息使用正则表达式表示,通过正则匹配进行模糊匹配。
S201,根据当前关联数据库中精确解析的组件关联情况对当前未精确解析的组件关联关系进行实际调用概率评估,记录关联概率。
将当前已精确解析的调用信息匹配得到的关联关系为基础集,在精确解析的关联中统计与非精确关联使用方式一致的精确关联数量,根据一致关联数量在同类型关联数量中的占比数值来作为经验概率,评估非精确解析的关联关系。
在任意应用入库后,上述两个流程持续运作。
S202,设置概率阈值,根据概率阈值筛选出可靠关联关系,由可靠关联关系组成关联关系集合。
S203,针对待测应用,根据数据源方法与目标方法的筛选列表分析应用中所有敏感数据的获取与发送点。
其中,筛选列表,即根据权限及方法映射与方法及方法类型映射,获得待测应用中敏感数据获取的源方法与敏感数据发送的目的方法,这些方法组成的列表。
获取点和发送点是各种不同的函数接口,作为一种可实施方式,通过函数名、方法名信息,控制流分析识别出来。
具体地,从恶意应用中统计权限使用的方法收集敏感权限,确定敏感权限集。首先从恶意应用集中随机选取第一预设数量个应用样本作为数据源,统计恶意应用使用最多的前第二预设数量条权限,将这第二预设数量条权限组成敏感权限集作为筛选依据。作为一种可实施方式,第一预设数量为6000,第二预设数量为25,即从6000个恶意应用样本中选取使用最多的前25条权限。
除了获得的恶意应用常用敏感权限外,把不当的自定义权限也加入最终的敏感权限集中。
作为一种可实施方式,检查<permission>标签内容是否有与之匹配的<uses-permission>标签和组件中<android:permission>标签内容,若<uses-permission>或者<android:permission>存在,而<permission>不存在,则说明开发者对该权限未定义即使用,该权限设置不当,可看做无效,使用权限保护的数据即可当做无权限保护。该数据泄露危险性较高,将该设置不当的权限加入敏感权限集合中。
S204,依据污点分析方法寻找敏感数据获取与发送点之间的数据通路,并收集数据通路中的隐私泄露特征。
敏感权限集合中的元素即为敏感权限。
然后根据获得的敏感权限集合得到相关数据操作API。根据权限及方法映射与方法及方法类型映射,获得待测应用中敏感信息获取的源方法与敏感信息发送的目的方法。
相关数据操作API,即操作敏感权限保护的那些数据的API(ApplicationProgramming Interface,应用程序编程接口),相关数据即敏感权限保护的数据。
本领域技术人员能够根据本发明技术方案建立或者选择具体的权限及方法映射、方法与方法类型映射,有多种实施方式,本发明不一一列举。
定义敏感信息获取方法获取到的数据为污点数据,进行污点分析,根据深度优先算法访问相邻数据节点,直到遇到敏感信息发送方法的使用,或者所有节点都访问完成,分析结束即获得疑似隐私泄露的数据通路。
指定敏感数据获取方法为目标方法,由控制流反向寻找方法的代码起始入口,追溯本应用内引发数据获取操作的起始动作,判断动作产生原因,以此收集关联触发因素特征。
需要说明的是,这里是以敏感数据获取方法为起始点,以与代码执行顺序相反的方向去寻找代码起始点,而前述步骤中的相关分析与代码执行顺序一致,二者应有所区分。
在疑似隐私泄露的数据通路中,通过识别if、else条件语句中对环境信息获取的操作,判定在数据流向过程中是否存在对环境因素特征的控制依赖以及依赖的环境因素类别,以此收集环境因素特征。
优选地,作为一种可实施方式,获取环境信息的操作是不同的函数或者接口的使用,通过控制流分析可以识别函数操作,进而识别是否使用该函数,实现对环境信息获取操作的识别。
S205,依据隐私泄露特征采用层次分析法建立隐私泄露检测模型,对各部分特征给予相应权值,并综合所有特征计算全过程隐私泄露恶意指数,以恶意指数评判此次数据流向通路中是否发生隐私泄露。
优选地,作为一种可实施方式,隐私泄露模型建立与评判的具体过程为:
定义在拥有敏感权限的条件下由敏感数据获取操作B获取敏感数据A后,经过C过程再由敏感数据发生数据操作B’发送出去的全过程隐私泄露恶意指数为R(A,B,C),R(A,B,C)∈[0,1]。R(A,B,C)数值代表本次操作的恶意隐私泄露程度,数值越大说明恶意性越大。根据各项特征的具体内容,使用层次分析法建立针对隐私信息从获取到发送的单次过程上的隐私泄露检测模型,用于量化R(A,B,C)。
对隐私泄露特征,首先分为两大部分,敏感数据操作B1和传播过程因素B2。其中具体的特征内容如图2所示。采用层次分析法对各特征进行一致性分析与归一化校验,得到特征权重表如下表1所示。根据特征权重值,在分析中可能会遇到多个特征,应该综合考虑各特征造成的影响,因此全过程隐私泄露恶意性指数R(A,B,C)的最终值应为过程中包括的各部分特征值求和。即根据检测模型权重,计算隐私泄露评判阈值。
表1特征权重表
在本发明实施例中,对一次隐私泄露行为,存在敏感数据操作特征和传播中的触发因素以及环境因素特征。根据上表,计算敏感数据操作B1权重均值为0.06755,触发因素D1权重均值为0.1216,环境因素D2权重均值为0.1243,根据一次行为中的特征使用次数,对权值进行累加。
一次疑似隐私泄露行为中通常涉及一组敏感数据操作,包括一次敏感信息获取行为和一次敏感信息的发送行为,两者必须同时存在才能发掘疑似隐私泄露路径。此外还有一项触发因素和n项环境因素。因此根据特征发生次数,对一次正常的敏感隐私传递行为,行为特征权值计算方法为0.06755*1+0.1216*1+0.1243*n,将其认为是隐私泄露判断的阈值,超过阈值,则认为此次敏感数据传递不正常,发生恶意的隐私泄露问题。
需要说明的是,对全过程隐私泄露恶意性指数的计算,根据检测模型,若存在权限不当现象,则需要根据检测模型特征权值记录该部分权值。存在权限不当问题的情况可能有两种,一是问题存在但不当权限未被利用,二是不当权限已被利用。对第一种情况,该部分恶意权值为不当权限特征值的1/2,即0.0811/2=0.04055;对第二种情况,该部分恶意权值为不当权限特征值,即0.0811。其余特征均按照特征权重表的权值进行取值计算。
本发明实施例提供的检测方法的一种可实施方式的主体流程图参见图3所示。
本发明该实施例仅示出了一种特征分层方式,本发明的隐私泄露特征划分包括多种方式,并不仅限于此,本领域技术人员能够根据该实施例对应得到其他特征划分方式下的实施方案,本发明不一一赘述。
实施例3
本发明实施例还提供了一种基于组件关联的应用隐私泄露问题检测装置,包括组件关系解析单元、数据流向查找单元、特征采集单元和层次分析单元。
组件关系解析单元,用于提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合。
数据流向查找单元,用于确定敏感权限,将敏感权限的数据对象定义为敏感数据,在关联关系集合范围内,查找对敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路。
特征采集单元,用于收集数据通路上的隐私泄露特征。
层次分析单元,用于依据隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过恶意指数评判是否发生隐私泄露。
现有技术中的检测方法,多是针对单个应用进行分析的,对于恶意应用直接或间接利用其它应用泄漏的权限获得用户数据的现象,因此不具备很好的检测能力。其中特征匹配并不能判断这类特征是否能被其他的应用或组件调用。静态代码分析技术主要是在函数内或函数间进行分析,对于跨组件和跨应用的分析能力不足。动态模拟运行的基础依赖于动态行为触发,而动态行为触发技术在多应用交互场景下存在较大不足,难以实现自动化测试。因此,现有技术的应用检测分析方法难以在多应用关联分析的场景下使用,需要对应用进行关联分析,进而进行跨应用、跨组件的安全分析,这就需要基于组件维度进行新的分析方法的研究。
而本发明实施例提供的技术方案,则是通过组件维度对用户敏感数据加以防护。其支持组件关联关系可扩充,对组件生命信息与组件调用信息进行调用概率计算后,可以根据实际安全性需求,对组件特征进行筛选和控制;且支持特征模型可扩充,可对模型选取的特征进行更改与替换;根据最终选择特征不同,也可对特征权重进行重新配置;根据特征和权重的不同,可对模型层次与架构进行重新构建,即本发明支持模型的重构和更新。
此外,本发明还提出了基于组件关联的细粒度的隐私泄露检测特征提取技术,在分析Android应用代码中的组件生命和调用关系信息时提取通过计算关联概率,筛选可靠关系来获得细粒度的敏感数据特征。在特征选取时,依据关联触发条件和过程中环境条件等细粒度特征,对数据流向意图进行判断。
本发明还提出了基于层次分析法的隐私泄露建模技术,在分析隐私泄露建模过程中,建立层次化的安全评估模型,构造判断矩阵,求出各项评估指标的权重并加权综合,最终得到Android应用代码隐私泄露权值作为最终的量化评估结果。
通过上述技术特征,本发明实现了从组件间通信的角度对用户敏感数据泄露行为的监控,可在一定程度上提升安卓系统防敏感数据泄露的安全性能。
在一个或多个示例性设计中,所述功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外先、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (10)
1.一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,包括如下步骤:
提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合;
确定敏感权限,将敏感权限的数据对象定义为敏感数据,在所述关联关系集合范围内,查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路;
收集所述数据通路上的隐私泄露特征;
依据所述隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过所述恶意指数评判是否发生隐私泄露。
2.根据权利要求1所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合,包括步骤:
通过应用分析器提取应用代码中的组件声明信息与组件调用信息,通过模糊匹配建立组件间的关联关系库;
根据所述关联关系库中精确解析的组件关联关系对当前未精确解析的组件关联关系进行实际调用概率评估,记录关联概率,根据预设的概率阈值筛选出可靠的关联关系,形成所述关联关系集合。
3.根据权利要求1所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤确定敏感权限,包括:
随机选取第一预设数量个已知的恶意应用作为数据样本,统计恶意应用使用最多的前第二预设数量条权限;将第二预设数量条权限作为样本权限;
将权限设置不当的自定义权限和所述样本权限定义为敏感权限。
4.根据权利要求1所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路,包括步骤:
根据权限及方法映射与方法及方法类型映射,获得待测应用中对敏感数据进行的获取操作与发送操作;将所述获取操作获取到的数据定义为污点数据,进行污点分析,根据深度优先算法访问相邻的数据节点,直到遇到敏感数据发送操作的执行,或者所有相邻的数据节点都访问完成,分析结束即获得所述数据通路。
5.根据权利要求1所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤收集所述数据通路上的隐私泄露特征,包括收集传播过程因素特征和/或收集操作特征;
所述收集传播过程因素特征,包括:沿所述数据通路反向寻找敏感数据获取操作的代码起始入口,追溯待测应用内引发敏感数据获取操作的起始动作,判断动作产生原因,以此收集关联触发因素特征;在所述数据通路中,通过识别if、else条件语句中对环境信息获取的操作,判定在数据流向过程中是否存在对环境因素特征的控制依赖以及依赖的环境因素类别,以此收集环境因素特征;
所述收集操作特征,包括:收集通过敏感权限对敏感数据进行的获取操作和发送操作,作为操作特征。
6.根据权利要求5所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值,包括步骤:
将隐私泄露特征划分为传播过程因素特征和操作特征;
一次所述操作特征包括通过敏感权限对敏感数据进行的一次获取操作和一次发送操作;
将所述传播过程因素特征包括关联触发因素特征和环境因素特征;
通过层次分析法进行一致性分析与归一化校验,得到所述操作特征、所述关联触发因素和所述环境因素特征各自的权值均值。
7.根据权利要求6所述的一种基于组件关联的应用隐私泄露问题检测方法,其特征在于,所述步骤综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,包括步骤:
按照下式计算恶意指数:
α=A1*N1+A2*N2+A3*N3
其中,α为恶意指数,A1表示操作特征的权值均值,N1表示操作特征发生的次数,A2表示关联触发因素特征的权值均值,N2表示关联触发因素特征的数量;A3表示环境因素特征的权值均值,N3表示环境因素特征的数量。
8.一种基于组件关联的应用隐私泄露问题检测装置,其特征在于,包括组件关系解析单元、数据流向查找单元、特征采集单元和层次分析单元;
所述组件关系解析单元,用于提取组件间通信的关联信息,建立描述组件间通信关系的关联关系集合;
所述数据流向查找单元,用于确定敏感权限,将敏感权限的数据对象定义为敏感数据,在所述关联关系集合范围内,查找对所述敏感数据的获取操作和发送操作,并使用污点分析法查找敏感数据获取操作和发送之间的数据通路;
所述特征采集单元,用于收集所述数据通路上的隐私泄露特征;
所述层次分析单元,用于依据所述隐私泄露特征,采用层次分析法建立隐私泄露检测模型,对各项隐私泄露特征给予相应权值;并综合本次所有隐私泄露特征进行加权计算,得到隐私泄露的恶意指数,通过所述恶意指数评判是否发生隐私泄露。
9.根据权利要求8所述的一种基于组件关联的应用隐私泄露问题检测装置,其特征在于,所述数据流向查找单元,具体用于:
根据权限及方法映射与方法及方法类型映射,获得待测应用中对敏感数据进行的获取操作与发送操作;将所述获取操作获取到的数据定义为污点数据,进行污点分析,根据深度优先算法访问相邻的数据节点,直到遇到敏感数据发送操作的执行,或者所有相邻的数据节点都访问完成,分析结束即获得所述数据通路。
10.根据权利要求8或者9所述的一种基于组件关联的应用隐私泄露问题检测装置,其特征在于:
所述特征采集单元,具体用于:
收集传播过程因素特征,包括:沿所述数据通路反向寻找敏感数据获取操作的代码起始入口,追溯待测应用内引发敏感数据获取操作的起始动作,判断动作产生原因,以此收集关联触发因素特征;在所述数据通路中,通过识别if、else条件语句中对环境信息获取的操作,判定在数据流向过程中是否存在对环境因素特征的控制依赖以及依赖的环境因素类别,以此收集环境因素特征;收集操作特征,包括:收集通过敏感权限对敏感数据进行的获取操作和发送操作,作为操作特征;
和/或,所述层次分析单元,具体用于:
将隐私泄露特征划分为传播过程因素特征和操作特征;将所述传播过程因素特征包括关联触发因素特征和环境因素特征;
通过层次分析法进行一致性分析与归一化校验,得到所述操作特征、所述关联触发因素和所述环境因素特征各自的权值均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910524860.8A CN110414222B (zh) | 2019-06-18 | 2019-06-18 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910524860.8A CN110414222B (zh) | 2019-06-18 | 2019-06-18 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414222A true CN110414222A (zh) | 2019-11-05 |
CN110414222B CN110414222B (zh) | 2020-08-14 |
Family
ID=68359210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910524860.8A Active CN110414222B (zh) | 2019-06-18 | 2019-06-18 | 一种基于组件关联的应用隐私泄露问题检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414222B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632328A (zh) * | 2020-12-07 | 2021-04-09 | 西安电子科技大学 | 一种vlog隐私泄漏度量评估方法、系统、介质及应用 |
CN112948823A (zh) * | 2021-03-19 | 2021-06-11 | 中国人民解放军国防科技大学 | 一种数据泄露风险评估方法 |
CN113051601A (zh) * | 2019-12-27 | 2021-06-29 | 中移动信息技术有限公司 | 敏感数据识别方法、装置、设备和介质 |
CN113176990A (zh) * | 2021-03-25 | 2021-07-27 | 中国人民解放军战略支援部队信息工程大学 | 一种支持数据间关联分析的污点分析框架及方法 |
CN114006776A (zh) * | 2021-12-31 | 2022-02-01 | 北京微步在线科技有限公司 | 一种敏感信息泄露检测方法及装置 |
CN116401658A (zh) * | 2023-04-10 | 2023-07-07 | 淳安华数数字电视有限公司 | 一种智能电视敏感数据安全控制方法与系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446259A (zh) * | 2010-09-30 | 2012-05-09 | 联想(北京)有限公司 | 组件访问控制方法及电子设备 |
CN105787366A (zh) * | 2016-02-16 | 2016-07-20 | 上海交通大学 | 基于组件关系的安卓软件可视化安全分析方法 |
CN107103240A (zh) * | 2017-04-20 | 2017-08-29 | 中国科学院信息工程研究所 | 一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统 |
CN106203113B (zh) * | 2016-07-08 | 2018-11-16 | 西安电子科技大学 | 安卓应用文件的隐私泄露监控方法 |
CN109145603A (zh) * | 2018-07-09 | 2019-01-04 | 四川大学 | 一种基于信息流的Android隐私泄露行为检测方法和技术 |
CN110020552A (zh) * | 2019-04-09 | 2019-07-16 | 中南大学 | 一种基于有限状态自动机的Android应用跨组件污点数据流拼接方法 |
-
2019
- 2019-06-18 CN CN201910524860.8A patent/CN110414222B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446259A (zh) * | 2010-09-30 | 2012-05-09 | 联想(北京)有限公司 | 组件访问控制方法及电子设备 |
CN105787366A (zh) * | 2016-02-16 | 2016-07-20 | 上海交通大学 | 基于组件关系的安卓软件可视化安全分析方法 |
CN106203113B (zh) * | 2016-07-08 | 2018-11-16 | 西安电子科技大学 | 安卓应用文件的隐私泄露监控方法 |
CN107103240A (zh) * | 2017-04-20 | 2017-08-29 | 中国科学院信息工程研究所 | 一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统 |
CN109145603A (zh) * | 2018-07-09 | 2019-01-04 | 四川大学 | 一种基于信息流的Android隐私泄露行为检测方法和技术 |
CN110020552A (zh) * | 2019-04-09 | 2019-07-16 | 中南大学 | 一种基于有限状态自动机的Android应用跨组件污点数据流拼接方法 |
Non-Patent Citations (2)
Title |
---|
孙璐: "Android应用风险性检测与评估方法研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
孙贝: "基于上下文的Android隐私泄露检测技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051601A (zh) * | 2019-12-27 | 2021-06-29 | 中移动信息技术有限公司 | 敏感数据识别方法、装置、设备和介质 |
CN113051601B (zh) * | 2019-12-27 | 2024-05-03 | 中移动信息技术有限公司 | 敏感数据识别方法、装置、设备和介质 |
CN112632328A (zh) * | 2020-12-07 | 2021-04-09 | 西安电子科技大学 | 一种vlog隐私泄漏度量评估方法、系统、介质及应用 |
CN112948823A (zh) * | 2021-03-19 | 2021-06-11 | 中国人民解放军国防科技大学 | 一种数据泄露风险评估方法 |
CN113176990A (zh) * | 2021-03-25 | 2021-07-27 | 中国人民解放军战略支援部队信息工程大学 | 一种支持数据间关联分析的污点分析框架及方法 |
CN113176990B (zh) * | 2021-03-25 | 2022-10-18 | 中国人民解放军战略支援部队信息工程大学 | 一种支持数据间关联分析的污点分析框架及方法 |
CN114006776A (zh) * | 2021-12-31 | 2022-02-01 | 北京微步在线科技有限公司 | 一种敏感信息泄露检测方法及装置 |
CN114006776B (zh) * | 2021-12-31 | 2022-03-18 | 北京微步在线科技有限公司 | 一种敏感信息泄露检测方法及装置 |
CN116401658A (zh) * | 2023-04-10 | 2023-07-07 | 淳安华数数字电视有限公司 | 一种智能电视敏感数据安全控制方法与系统 |
CN116401658B (zh) * | 2023-04-10 | 2024-02-27 | 淳安华数数字电视有限公司 | 一种智能电视敏感数据安全控制方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110414222B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414222A (zh) | 一种基于组件关联的应用隐私泄露问题检测方法和装置 | |
CN103984900B (zh) | Android应用漏洞检测方法及系统 | |
CN107368417A (zh) | 一种漏洞挖掘技术测试模型及测试方法 | |
CN110266669A (zh) | 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 | |
CN110633567B (zh) | 一种基于rasp的智能合约虚拟机漏洞检测系统及方法 | |
US10664601B2 (en) | Method and system automatic buffer overflow warning inspection and bug repair | |
Jiang et al. | Pdiff: Semantic-based patch presence testing for downstream kernels | |
CN109583200A (zh) | 一种基于动态污点传播的程序异常分析方法 | |
CN103150511B (zh) | 一种安全防护系统 | |
CN111695119B (zh) | 一种基于细粒度静态污点分析与符号执行的web漏洞检测方法 | |
CN104866763A (zh) | 基于权限的Android恶意软件混合检测方法 | |
CN109711163A (zh) | 基于api调用序列的安卓恶意软件检测方法 | |
CN106570399A (zh) | 一种跨App组件间隐私泄露的检测方法 | |
CN113158197B (zh) | 一种基于主动iast的sql注入漏洞检测方法、系统 | |
CN106294149A (zh) | 一种检测Android应用程序组件通信漏洞的方法 | |
CN102739652A (zh) | 网络抗攻击性能评估指标体系构建方法及装置 | |
WO2018127794A1 (en) | Management of security vulnerabilities | |
CN107169360A (zh) | 一种源代码安全漏洞的检测方法及系统 | |
CN106529283A (zh) | 一种面向软件定义网络的控制器安全性定量分析方法 | |
El-Rewini et al. | Dissecting residual APIs in custom android ROMs | |
CN111428247A (zh) | 一种对计算机漏洞库进行改进的方法 | |
Zhu et al. | Detecting privilege escalation attacks through instrumenting web application source code | |
Meng et al. | WeMinT: Tainting Sensitive Data Leaks in WeChat Mini-Programs | |
CN113779589B (zh) | 一种安卓智能手机应用误配置检测方法 | |
CN115795475A (zh) | 软件系统风险的确定方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |