【CN109933988A】一种Android应用隐私泄露漏洞检测方法【专利】
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
CN 109933988 A
权 利 要 求 书
2/2 页
个数不超过三个。 6 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述
步骤S3中,构建CFG的具体过程如下: 首先找到CClink涉及的每个组件的入口方法,即activity的oncreate( )、onstart( ) ,
洞检测方法,使用显式intent调用以及使用隐式 intent设置的action、data、category属性查找 并匹配所有目标接收组件,不仅能检测出同一个 应用内组件间显式intent通信造成的隐私泄露 问题,还能检测出不同应用间组件通信造成的 , 尤其是使用了隐式intent导致的隐私泄露问题。
service的onstartcommand( ),broadcastreceiver的onreceiver( ),从这些入口方法开始 处构建组件内控制流图 ;在遇到ICC方法时 ,根据得到的CCP结果找到对应接收组件的入口 方法并连接起来生成组件间控制流图 ,最后将组件内CFG和组件间CFG合并形成完整的控制 流图。
7 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 步骤S4中污点标记与传播的 具体过程为 :在步骤S3构建的 CFG基础上 ,扫描所有语 句 ,找到 锚函数,若找到,则把步骤S2找到的源函数产生的对应数据标记为污点 ,然后进行污点数据 传播过程。
8 .根据权利要求7所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 传播过程包括组件内与组件间污点传播;
( 19 )中华人民 共和国国家知识产权局
( 12 )发明专利申请
(21)申请号 201910088200 .X
(22)申请日 2019 .01 .29
(71)申请人 广东工业大学 地址 510062 广东省广州市大学城外环西 路100号
(72)发明人 柳毅 陈宇彤 凌捷 欧毓毅
(74)专利代理机构 广东广信君达律师事务所 44329
代理人 杨晓松
(51)Int .Cl . G06F 21/57(2013 .01)
(10)申请公布号 CN 109933988 A (43)申请公布日 2019.06.25
( 54 )发明 名称 一种Android应用隐私泄露漏洞检测方法
( 57 )摘要 本发明公开了一种Android应用隐私泄露漏
权利要求书2页 说明书4页 附图2页
CN 109933988 A
CN Βιβλιοθήκη Baidu09933988 A
权 利 要 求 书
1/2 页
1 .一种Android应用隐私泄露漏洞检测方法,其特征在于,包括以下步骤: S1:对APK进行逆向分析获取信息; S2 :对逆向分析获取的 信息判断 应 用的组件是否存在源函数 和ICC方法 ,若存在 ,则进 行步骤S3 ,否则不存在隐私泄露风险 ,处理下一个应用; S3:构建CCP、CCLink以及CFG; S4:进行污点标记与传播; S5:判断锚函数中的参数是否包含了污点数据,若是,则判断包含源函数的组件到包含 锚函数的组件之间存在一条隐私数据泄露的路径,即可断定从源函数到锚函数之间所涉及 的所有组件存在数据泄露的漏洞。 2 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 步骤S1包括解析配置文件、代码反编译分析两个部分;具体过程如下: S1-1:将apk解压后获取其中的manifest .xml文件并通过使用AXMLprint2 .jar提取内 容; S1 - 2 :将APK 文件进行反 编译 ,获 取 应 用中的 d e x文件 ,然 后将a nd roid 应 用反 编译为 ja va 源 代 码 ,并 在该 代 码 基 础上 提 取 应 用组 件中 有 关 数 据 ,包 括 I C C 方 法 、入口 点 、 getintent( )方法与接收intent并提取其中数据以及动态注册broadcast receiver的相 关信息。 3 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 步骤S1-1中 ,除 了获取清单文件里应 用的 包 名及其组件的 基本信息外 ,还包括应 用安全相 关的属性,包括应用的权限属性permission与use-permission、组件的exported属性与意 图过滤器intent-filter属性。 4 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 步骤S3中,构建CCP的具体过程如下: 首先查找应用组件所有的icc方法,若查找到,则将根据该方法参数输入CCP构造器,使 其自动生成匹配目标组件的结果,把发送组件、调用的ICC方法及其参数和匹配到的目标组 件存入到CCP表中; 对于动态注册广播,CCP构造器不能有效匹配其结果的情况下,查找应用源代码并解析 registerreciver( )方法中的第一参数获取接收组件将其添加到与发送组件、ICC方法及 其参数相同的对应CCP表中; 若应用没有使用ICC方法,则该应用没有组件间通信安全问题。 5 .根据权利要求1所述的一种Android应用隐私泄露漏洞检测方法,其特征在于,所述 步骤S3中,构建CCLink的具体过程如下: 首先遍历CCP表,并按照以下规则构建CCLink: 1)如果找到两组CCP均来自同一应用,且存在该两组CCP中其中一组的目标组件与另一 组中的发送组件为同一组件,则通过它们的共同组件连接起来; 2)如果CCP的目标组件与发送组件不是来自同一应用,但其目标组件与另一组CCP的发 送组件为同一组件,也通过它们的共同组件连接起来; 3)对发送组件与目标组件不在同一应用内的CCP直接生成CCLink; 4) 考虑到组件 调 用的 无穷性 ,规定一条CCLink包含的组件若来自 不同的 应 用 ,则应 用
组件内污点传播根据污点跟踪规则对污点进行传播; 组件间污点传播首先确定接收组件的入口方法,如果为oncreate( )或者为onstart ( ) ,则将intent数据的污点信息传递给getintent( ) ;如果是onreceive( )、Onbind( )、 onstartcommand( )则传递给相应的方法参数。