基于Android系统的隐私保护模块及保护方法与流程

文档序号:11627797阅读:284来源:国知局
基于Android系统的隐私保护模块及保护方法与流程

本发明属于信息安全技术领域,特别涉及一种隐私保护模块,可用于搭载android系统的移动智能终端。



背景技术:

近年来,随着无线网络技术和软硬件技术水平的快速发展,移动智能手机等终端设备正快速的进入人们的生活,android系统已经逐渐成为了移动操作系统的领导者。随着android系统用户和android第三方恶意应用的大量增长,用户隐私数据安全问题已经成为android系统面对的最主要的问题。为了解决此问题,相关学者提出了两种解决方案:

一种解决方案是:学者erikachin和stevehanna等人在the18thacmconferenceoncomputerandcommunicationssecurity.acm,2011中提出的“androidpermissionsdemystified”,该方案主要基于调用系统api判断该应用所申请的权限对,以此来对应用进行危害性判断。在应用安装时,通过第三方反编译软件反编译应用得到应用程序源代码,提取应用中所使用的系统api,将提取出来的api集合在该方案自己建立的api-permission映射对中找出对应的权限,以此来判断应用是否申请了它不需要的系统权限,判断应用的危害性。该方案中过于宽泛的映射对,虽然可以检测出一定的恶意应用,但是错误率较高,同时并不能对应用的恶意行为进行制止。

另一种解决方法是:学者enck,william等人在acmtransactionsoncomputersystems(tocs),2014中提出的“taintdroid:aninformation-flowtrackingsystemforrealtimeprivacymonitoringonsmartphones.”,该方案主要提出了一种基于动态污点分析工具taintdroid。该工具主要利用动态污点技术对隐私数据进行标签标记,当隐私数据被网络发出去的时候,系统内部会打印日志,同时该工具中的taintdroidnotify软件会检测并解析隐私数据被访问的系统日志,给予用于警告。该方案的缺点:仅实现了对隐私数据流通的监控,不能阻止隐私数据的泄漏。



技术实现要素:

本发明的目的在于针对上述已有技术的不足,提出一种基于android系统的隐私保护模块-amdroid模块,以提高恶意应用分类的准确性,并对应用的恶意行为进行检测和控制,实现对用户隐私数据的全方位保护。

本发明的技术思路是:根据应用的危险程度将应用分类为恶意应用和正常应用,对恶意应用,将其通信渠道权限和危险权限设置为动态授权,使得应用在调用具有接触用户隐私数据的功能接口时,必须得到用户授权,以此细粒化应用权限,加强权限控制,以防恶意应用利用权限提升漏洞窃取用户隐私数据,同时监测和控制该应用与其他应用间的互联启动,防止应用间的共谋攻击,从而对用户隐私数据进行保护;对正常应用,将应用权限统一设定为普通权限,用户不需要持续地授予应用权限,从而提升用户体验。

根据以上思路,本发明的实现方案如下:

1.一种基于android系统的隐私保护模块,包括:

应用判别子模块cp,用于利用支持向量机分类方法对应用训练集权限进行学习,将安装应用分为正常应用和恶意应用;

权限管理子模块pm,用于将恶意应用申请的通信渠道权限和敏感权限设定为动态授权,以细粒化其应用权限,加强权限控制;对正常应用粗放化其应用权限,即将应用申请的权限统一设定为普通权限;

互联启动管理子模块cm,用于监测和控制恶意应用与正常应用或者恶意应用间的跨进程通信,禁止它们之间的互联启动。

2.基于android系统的隐私保护方法,包括:

(1)对应用判别子模块cp进行初始化:

(1a)从训练应用集t提取权限组合,构建训练样本集矩阵c;

(1b)应用判别子模块利用训练样本集矩阵c构建分类模型;

(2)应用安装时,应用判别子模块cp提取应用申请权限对,构建应用权限表x;

(3)应用判别子模块利用构建的分类模型对安装应用提取的权限表x进行分类,得到分类结果r;

(4)权限管理子模块pm根据安装应用分类结果r,对应用设定相应的权限规则;

如果应用为正常应用,则权限管理子模块将应用申请的权限统一设定为普通权限;

如果应用为恶意应用,则权限管理子模块将其申请的通信渠道权限和敏感权限设定为动态授权;

(5)互联启动模块cm根据分类结果r对应用设定相应的跨进程通信规则;

如果应用为正常应用,则互联启动子模块允许该应用与其他应用进行跨进程通信;

如果应用为恶意应用,则互联启动子模块对应用间的service服务进行监听,当恶意应用发起跨进程通信时,截断该恶意应用的通信通道,并将该恶意行为写入系统日志;

本发明具有如下优点:

1)本发明利用机器学习分类算法以应用危害程度对应用进行分类,能准确的分类出恶意应用,并对用户进行了界面友好提示;

2)本发明依据应用的危害程度设定了不同的权限规则,能全面的对用户的个人隐私数据进行保护;

3)本发明由于设置了互联启动管理模块,能对应用间的权限提升攻击和共谋攻击进行有效的抵抗,以此加固了恶意应用的沙盒机制,成功保护了用户的个人隐私数据。

附图说明

图1是本发明的系统框图;

图2是本发明的方法流程图;

图3是本发明实验中判别模块的分类结果图;

图4是本发明实验中权限管理模块的权限拦截图;

图5是本发明实验中互联启动管理模块拦截互联启动的日志信息图。

具体实施方式

下面结合附图对本发明的实现和效果作详细说明。

参照图1,本发明基于android系统的隐私保护模块,包括应用判别子模块、权限管理子模块和互联启动管理子模块共同组成,其中:

应用判别子模块cp,利用支持向量机分类方法对应用训练集权限进行学习,构建分类函数,并利用分类函数将安装应用分为正常应用和恶意应用;

权限管理子模块pm,用于将恶意应用申请的通信渠道权限和敏感权限设定为动态授权,以细粒化其应用权限,加强权限控制;对正常应用粗放化其应用权限,即将应用申请的权限统一设定为普通权限;

互联启动管理子模块cm,用于监测和控制恶意应用与正常应用或者恶意应用间的跨进程通信,禁止它们之间的互联启动。

参照图2,本发明基于android系统的隐私保护方法,是利用上述隐私模块进行,其实现步骤如下:

步骤1,对应用判别子模块cp进行初始化:

(1a)应用判别子模块从训练应用集中提取权限组合,构建训练样本集权限矩阵c:

(1a1)设权限矩阵c中的任意元素为cij;

(1a2)规定权限矩阵c的列标号为权限编号iid,行标号为应用编号uid,矩阵c的ci行为第i个应用的权限对值,其表现形式如下:

cij={xij,t|0<i<n,0<j<335}

其中t表示该应用的危害类型,分为两种类型:正常应用和恶意应用,xij表示为第i个应用的第j个权限值,n表示应用的个数;

(1a3)设应用判别子模块中认定的分类权限对为a={xi|0<i<335},其中xi为具体权限;

(1a4)将应用ui在权限编号iid为ij的权限值,赋值给权限矩阵c的第i行第j列元素cij,如果在应用判别子模块认定的权限组合a={xi|0<i<335}中包含应用ui的权限ij,则将cij赋值为1,反之,则赋值为0;

(1a5)将所有元素cij构成权限矩阵c:

其中,m是训练应用集中应用的个数,也是权限矩阵的行数,n是应用判别子模块cp定义权限的个数,也是权限矩阵的列数;

现有机器学习中常见的分类模型包括knn最近邻分类模型,朴素贝叶斯分类模型和支持向量机分类模型,其中支持向量机分类模型对训练样本的大小并无严苛的要求,擅长解决小样本下的分类和处理高维数据集合,符合本发明中对权限组合规则的提取和分类,因此本发明采用支持向量机作为分类模型,并需要按如下步骤对分类模型中的参数进行确定:

(1b)应用判别子模块利用训练应用集矩阵c对支持向量机分类模型中的分类函数进行训练,获取偏移常量b和权限的分类系数ai,即根据已知支持向量机分类模型中的分类函数为:将训练样本集矩阵c的每一行ci依次代入到分类函数中的xi中,训练得到合适的偏移常量b和权限的分类系数ai,

其中sgn表示符号函数,yi表示该权限的分类类型,其中-1为恶意权限,1为正常权限,ai表示权限的分类系数,k(x,xi)表示高斯径向基函数,b为偏移常量,n为应用权限个数;

步骤2,应用判别子模块cp构建应用权限表x。

(2a)应用判别子模块cp解析安装应用的androidmanifest.xml文件,获取安装应用的权限表p={xi|0<i<n},其中n为安装应用获取的权限数;

(2b)定义应用权限表x={xi|0<i<335};

(2c)将获取的权限p按照应用判别子模块cp中定义的权限组合a={xi|0<i<335}顺序进行重新赋值,当步骤(1a)中认定的分类权限ai包含安装应用权限p={xi|0<i<n}时,将应用权限表p中的xi置为1,反之置为0;

步骤3,应用判别子模块将安装应用提取的权限表x={xi|0<i<335}代入步骤(1b)中的分类函数中,得到分类结果r,并将分类结果r添加到安装应用信息表中,其中分类结果有以下两种:

当r为0时,应用为恶意应用;

当r为1时,应用为正常应用。

步骤4,权限管理子模块对不同的应用权限设定不同的权限策略。

(4a)权限管理子模块对正常应用的权限进行粗放化,即将正常应用申请的所有权限设定为普通权限,安装应用在调用普通权限的接口时,不需要得到用户的授权;

(4b)权限管理子模块对恶意应用的权限进行细粒化,即首先设定危险权限组di,其中包含危险权限和通信渠道权限,当应用申请的权限组合x={xi|0<i<335}属于危险权限组di时,将该权限组合x={xi|0<i<335}设定为动态权限,当安装应用在调用危险权限组的接口时,需要得到用户的授权。

步骤5,互联启动管理子模块根据分类结果r对应用设定相应的跨进程通信规则。

(5a)互联启动管理子模块对系统service服务进行监听;

(5b)当应用发起跨进程service服务时,互联启动管理子模块获得发起service服务应

用和接收service服务应用的序列化信息;

(5c)互联启动管理子模块从发起service服务应用的序列化信息中提取出应用判别模块对该发起service服务应用的分类结果信息t1;

(5d)互联启动管理子模块从接收service服务应用的序列化信息中提取出应用判别模块对该接收service服务应用的分类结果信息t2;

(5e)互联启动管理子模块对应用分类信息t1和t2进行判断,如果t1和t2中有一个为恶意应用,则拦截该跨进程通信,并输出日志信息;如果t1和t2皆为正常应用,则允许该应用间跨进程通信。

本发明的优点可通过以下实验进一步说明:

1.实验运行工具

本实验中所有的实现过程和算法用java语言进行实验,运行环境为主频2.5ghz的双核cpu,内存6g,系统为ubuntu16.04的计算机,开发工具为androidstudio2.3。

2.实验内容与结果

本实验中的训练应用集为kaggle大数据发布的应用权限数据。

实验1,本次实验室中通过随机在各大应用商城下载的50个应用对本发明的应用判别子模块进行测试,结果如图3,其中包括30个正常应用,20个恶意应用。

从图3中表明,本发明应用判别模块将测试的50个应用能分类出25个正常应用,25个恶意应用,其中正确分类45个应用,错误分类5个应用,正确率为90%。

实验2,本次实验中通过恶意应用窃取用户隐私数据来测试本发明中的权限管理子模块,权限管理子模块对安装应用危险权限的拦截界面和拦截日志信息,结果如图4。其中图4(a)为应用权限管理子模块拦截安装应用危险权限的用户界面,图4(b)为权限管理子模块对应用危险权限进行拦截行为的日志信息。

从图4(a)中表明,权限管理子模块对恶意应用申请的读取文件危险权限成功进行拦截,并以友好界面提醒的方式向用户请求授权。

从图4(b)中表明,观察到危险应用调用读取外部存储卡和网络连接的危险权限组合行为被权限管理子模块进行了拦截。

实验3,本次实验通过对恶意应用间互联启动来测试本发明中的互联启动管理子模块的有效性,即互联启动管理子模块对恶意应用间互联启动行为拦截的日志信息,结果如图5。

从图5中表明,恶意应用唤醒其他应用的行为被本发明中的互联启动管理子模块成功检测并进行了拦截。

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