检测安卓系统敏感信息泄露的方法和装置的制造方法

文档序号:9274858阅读:766来源:国知局
检测安卓系统敏感信息泄露的方法和装置的制造方法
【技术领域】
[0001]本发明属于检测敏感信息泄露领域,具体涉及一种检测安卓系统敏感信息泄露的方法和装置。
【背景技术】
[0002]由于Android开源等特性,Android已经成为全世界最流行的移动终端操作系统。根据StrategyAnalytics的2014第三季度调研数据显示,Android系统市场占有率为83.6%,居移动操作系统市场第一。随着Android移动设备的广泛应用,大规模的恶意应用也随之产生。至2013年,Android占全球移动恶意应用的份额为97%。
[0003]通过大量非官方市场(包括官方市场google play)发布的应用可以看出,由于缺乏有效的检测机制,恶意应用泛滥。恶意应用主要分为耗费资源型,破坏系统型,恶意扣费型,窃取隐私数据型等等。如今,很多用户在移动终端保存了大量个人隐私数据,并且很多商务人士还保存了商业机密数据,这些数据成为越来越多的恶意应用窃取的目标。
[0004]目前检测android隐私泄露主流的方法有静态和动态两种。静态的方法通过反编译技术发现源码中是否有的敏感数据泄露途径。动态方法是收集程序运行时的行为信息,并检测应用程序与外部环境之间的交互,从而判断是否有恶意行为。动态污点分析是一种典型的隐私泄露检测方法,通常需要三个环节,污点标记,污点传播和污点检测,属于动态检测方法的范畴。
[0005]现有的基于污点的检测方法通常是通过定制特定的污点检测系统,对android系统或模拟器进行静态或动态插粧,添加污点标签,触发相应的行为,在程序运行时进行检测。这些方法大都需要配置复杂的android系统或模拟器环境,插粧过程比较复杂,通常难以准确触发恶意行为发生,也无法检测污点数据的密文泄露等。
[0006]目前,中国专利申请公布号为CN103177210A公开了一种在Android中植入动态污点分析模块的方法,该方法对Android系统的系统类库和应用程序进行静态插粧,通过重定向虚拟机启动函数的方法重构执行环境,应用程序装载时能够引用插粧后的系统类库,在运行过程中,动态污点分析模块同步运行,实施动态污点跟踪分析。该方法虽然不需要修改Android系统源代码和系统架构,但对系统类库和待测应用都要进行静态插粧,还需要重构执行环境,实现复杂,且无法检测污点数据以密文形式泄露,更无法自定义敏感数据源并预警提示待测应用的危险等级等。

【发明内容】

[0007]本发明是为了解决上述课题而进行的,目的在于提供一种实现简单,能自定义敏感信息且能够同时检测以明文或密文形式泄露的污点数据并能预警危险等级的检测安卓系统敏感信息泄露的方法和装置。
[0008]本发明提供了一种实现简单,能自定义敏感信息且能够同时检测以明文或密文形式泄露的污点数据并能预警危险等级的检测安卓系统敏感信息泄露的方法,其特征在于,包括以下步骤:步骤1,将库函数1ctl O、库函数sendtoBytesO以及库函数SSL_write()的函数名称加前缀,然后形成so文件,导入android native层中;
[0009]步骤2,将库函数1ctl O、库函数sendtoBytes O以及库函数SSL_write O对应的函数体通过调用步骤I中相对应的加前缀的库函数1ctl O、库函数sendtoBytesO以及库函数SSL_write O分别形成相应的壳函数,然后形成so文件,导入android native层中;
[0010]步骤3,定义敏感信息,将所有敏感信息进程和待测应用进程的信息存储于共享区中;
[0011]步骤4,当待测应用进程调用所述库函数1ctl O进行进程通信并且访问的目的进程属于共存区时,采用敏感信息进程,标记的常量污点数据和访问敏感信息权重的三元组污点标记形式对所述待测应用进程进行污点标记形成标记信息,并将共享区中对应的marked位置位,将所述标记的常量污点数据存储到共享存区的marked data中;
[0012]步骤5,根据标记信息对壳函数sendtoBytes O和壳函数SSL_write O发送的数据包进行污点检测;
[0013]步骤6,判断包含标记信息的所述数据包是否需要重新检测;
[0014]步骤7,计算待测应用进程中的访问敏感信息权重之和并预警提示待测应用进程的危险等级。
[0015]本发明的检测安卓系统敏感信息泄露的方法还可以具有这样的特征:其中,壳函数的函数签名与库函数1ctl O、库函数sendtoBytes O以及库函数SSL_write O的函数签名形同。
[0016]本发明的检测安卓系统敏感信息泄露的方法还可以具有这样的特征:其中,当所述待测应用没使用加密算法时,壳函数sendtoBytes O发送的为明文数据包,壳函数SSL_write O发送的为传输层SSL加密的密文数据包;当所述待测应用使用加密算法时,两个壳函数都发送密文数据包。
[0017]本发明的检测安卓系统敏感信息泄露的方法还可以具有这样的特征:其中,步骤6包含以下步骤:
[0018]步骤6-1,缓存包含标记信息的数据包至共享区的checked data和weight位;步骤 6~2,如果 checked data 和 marked data 一致,则 remarked 为置 0,如果 checked data和marked data不一致,则remarked为置1,暂存checked data的值,重新进行污点标记和检测。
[0019]本发明还包括检测android系统敏感信息泄露的装置,其特征在于,包含:污点标记模块,位于android native层,用于对待检测的应用进程进行污点标记;污点检测模块,位于android native层,用于过滤并截获壳函数sendtoBytes O和壳函数SSL_write ()发送的数据包;控制模块,位于android应用层,用于用户自定义敏感信息,自行查找所有敏感信息进程和待检测的应用进程的信息并写入共享区中,接收所述污点检测模块发送的所述数据包,并对所述数据包进行计算,给检测人员预警提示所述待检测的应用进程的危险等级;以及共享存储模块,位于进程的全局数据区,用于存储所述待检测的应用进程、敏感信息进程和标记信息。
[0020]发明的作用与效果
[0021]根据本发明所涉及的检测安卓系统敏感信息泄露的方法,通过将在natinve层的库函数1ctl O、库函数sendtoBytesO以及库函数SSL_write O的函数名称加前缀,并对库函数1ctl O、库函数sendtoBytes O以及库函数SSL_write O加壳形成壳函数,加壳的库函数1ctl O能够对待测应用进程进行污点标记,加壳的库函数sendtoBytesO以及库函数SSL_Write()能够对待测应用进程进行明文和密文的污点检查,从而降低了漏检概率,在应用层中,控制模块能够自定义敏感信息,并对待测应用的危险程度进行计算和预警提示,因此本发明所涉及的检测安卓系统敏感信息泄露的方法不需要给待测应用进行静态插粧,也不需要重构执行环境,即可以实现natinve层的动态污点检测,并且检测环境分层互联,实现简单,而且能够预警危险等级。
【附图说明】
[0022]图1是本发明的实施例中检测安卓系统敏感信息泄露的方法的流程图;以及
[0023]图2是本发明的实施例中检测安卓系统敏感信息泄露的装置的结构图。
[0024]具体实施案例
[0025]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明的检测安卓系统敏感信息泄露的方法和装置作具体阐述。
[0026]在Android中,一些敏感信息,比如通讯录,相册,浏览日志信息等,都是以系统服务的形式存储,要访问这些信息,必须访问相应的服务进程。
[0027]恶意应用获取敏感信息数据,大部分会通过网络发送给远程服务器。这些敏感信息数据通过明文或密文发送。调用的两个本地库函数是sendtoBytesO和SSL_write()。
[0028]图1是本发明的实施例中检测安卓系统敏感信息泄露的方法的流程图。
[0029]如图1所示,检测安卓系统敏感信息泄露的方法用于检测安卓系统中的恶意应用程序,防止恶意应用肆意传播,本发明的检测安卓系统敏感信息泄露的方法实现简单,能自定义敏感信息且能够同时检测以明文或密文形式泄露的污点数据并能预警危险等级。检测安卓系统敏感信息泄露的方法100包含以下步骤:
[0030]步骤SI,分别导出android本地库中包含的库函数1ctl O、库函数sendtoBytesO以及库函数SSL_write O的共享库文件,解析文件获取文件原型,然后给的库函数1ctl O、库函数sendtoBytesO以及库函数SSL_write O函数名称加前缀,编译成so文件,重新导入本地库层中。
[0031]给函数名称加前缀,如加“ctlmark_”,得到以 ctlmark_1ctl O,ctlmark_sendtoBytes O , ctlmark_SSL_write O 命名的形式,将以 ctlmark_1ctl O,ctlmark_sendtoBytes (),ctlmark_SSL_write O命名的库函数编译成so文件后,重新导入本地库层中。然后进入步骤S2。
[0032]步骤S2,将库函数1ctl O、库函数sendtoBytes O以及所述库函数SSL_write O对应的函数体通过调用步骤I中相对应的加前缀的库函数1ctl O、库函数sendtoBytes O以及库函数SSL_write()分别形成相应的壳函数,然后形成so文件,导入本地库层中。
[0033]污点标记模块:
[0034]mark, so包含如下内容:
[0035]1ctl (para...) {
[0036]污点标记功能代码;
[0037]传参代码;
[0038]return ctlmark_1clt (para...);
[0039]}
[0040]污点检测模块:
[0041]check, so包含如下内容:
[0042]sendToBytes (para...) {
[0043]检测功能代码;
[0044]传参代码;
[0045]return ctlmark_sendToBytes (para...);
[0046]}
[0047]SSLffrite (para...) {
[0048]检测功能代码;
[0049]传参代码;
[00
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1