CN105825089A - 一种智能终端jni数据跟踪方法及系统 - Google Patents

一种智能终端jni数据跟踪方法及系统 Download PDF

Info

Publication number
CN105825089A
CN105825089A CN201610145915.0A CN201610145915A CN105825089A CN 105825089 A CN105825089 A CN 105825089A CN 201610145915 A CN201610145915 A CN 201610145915A CN 105825089 A CN105825089 A CN 105825089A
Authority
CN
China
Prior art keywords
jni
data
code
logic
intelligent terminal
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
Application number
CN201610145915.0A
Other languages
English (en)
Inventor
黄春华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201610145915.0A priority Critical patent/CN105825089A/zh
Publication of CN105825089A publication Critical patent/CN105825089A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking

Abstract

本发明公开了一种智能终端JNI数据跟踪方法,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。本发明在整体上实现对JNI中间层代码进行跟踪标示数据传播,是对隐私数据进行跟踪的生活,从程序运行的角度而去实现的方法,能够较好的跟踪智能终端中以Java应用程序中数据标示传播。

Description

一种智能终端JNI数据跟踪方法及系统
技术领域
本发明涉及智能终端领域,特别是涉及智能终端JNI数据跟踪方法及系统。
背景技术
目前信息技术已进入移动智能互联网时代,智能移动终端由于其便携性、成本低等优点日益成为用户进行各类网络活动的主要终端形态。相比传统移动终端,智能移动终端拥有更高性能的处理器、更高的移动网络数据传输能力以及开放的第三方移动终端操作系统,因此借助智能移动终端可以开展大量业务应用,处理更多的个人隐私数据。这些数据,如通话与短信信息,地理位置,社交网络账户,银行帐号,个人密码,照片视频等等,吸引了众多攻击者的注意力,导致恶意软件增长速度惊人,现在市场上已经出现门类繁多的智能终端安全软件,其中涉及对用户的访问数据进行跟踪,是广大厂商迫切需要解决的问题。
现有数据流追踪保护方案有的采用是数据流白盒追踪,需要在虚拟机中实时截获并分析每一条指令的运行(比如数据加减运算,数据字符串变形,数据复制),如果采用这样方法,则需要在系统中开辟内存,存储和传播数据源和中间数据的标签,一般采用这方法跟踪隐私数据流,给智能终端就受限的内存带来大量的性能消耗,目前在智能移动终端领域,还不存在一种无需实时监控指令的高效隐私数据流追踪和保护方法。
现有技术中申请号为201310233758.5的专利《基于标签的安卓用户隐私数据黑盒防护方法及系统》涉及文本特征标签的安卓用户隐私数据黑盒防护方法及系统,在源头为用户隐私数据抽取其数据文本特征设置标签和数据出口安全控制策略,将数据在终端内部的所有处理过程视为黑盒,不予干涉,仅在Internet、蓝牙、短消息信息出口处,拦截外传数据,查获带有标签的数据包,阻止违反用户保护策略的隐私数据从终端泄漏。保护方法为:1)在安卓用户终端保存隐私数据,根据隐私数据抽取文本特征,同时设置文本特征标签;2)设置文本特征标签的出口安全控制策略,隐私数据由数据包发送到数据出口;3)在数据出口检测出携带有文本特征标签的隐私数据包并按照设定的出口安全策略对数据包中隐私数据进行保护。
现有技术提供了用户可控的细粒度隐私数据防泄露保护方法,并采用黑盒检测的方式大量节省安全监控的时间耗费,适于部署于计算资源受限的安卓智能移动终端,为用户指定的各种隐私数据提供安全保障。但是现有方法对如何提供便捷的隐私数据挑选需要权衡,加上现有用户现在基本对于权限不加考虑,并且策略设定窗口的制定也需要一个过程,因此现有方法也不是百分百令人满意。
发明内容
本发明提供的技术方案如下:
本发明公开了一种智能终端JNI数据跟踪方法,其特征在于,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
进一步优选的,所述JNI特定字节码是指预设跟踪数据的部分字节码。
进一步优选的,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:修改虚拟机的实现源码,使所述虚拟机的实现源码在对JNI代码解释时生成的Native代码中插入数据标识传播的代码片段。
进一步优选的,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据所述数据标识传播的代码片段对所述JNI中数据标识传播进行跟踪。
进一步优选的,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:在应用程序的Native代码的调用和返回处设置安全策略接口。
进一步优选的,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据预设跟踪数据的Native函数的函数名和从函数参数到函数返回值的数据标识映射关系,构建相应的映射表。
进一步优选的,还包括步骤:S5当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
本发明还公开了一种智能终端JNI数据跟踪系统,应用上述方法,包括:初始模块,运行jave程序,加载jave字节码到虚拟机;标示模块,当对Jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;判断模块,判断所述JNI特定字节码的逻辑是否标示成功;跟踪模块,当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
进一步优选的,所述JNI特定字节码是指预设跟踪数据的部分字节码。
进一步优选的,还包括:提示模块,当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
本发明通过对智能终端中消息的传播机制进行跟踪,对于实现源码内部的静态代码,实现虚拟机内Native代码中的数据标识传播,对于应用程序开发者自行实现的代码在Native代码的调用和返回处为安全检测人员提供了安全策略接口,在整体上实现对JNI中间层代码进行跟踪标示数据传播,是对隐私数据进行跟踪的生活,从程序运行的角度而去实现的方法,能够较好的跟踪智能终端中以Java应用程序中数据标示传播。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。
图1为本发明一种智能终端JNI数据跟踪方法的主要步骤示意图;
图2为本发明一种智能终端JNI数据跟踪方法的完整步骤示意图;
图3为本发明一种智能终端JNI数据跟踪方法的流程图;
图4为本发明一种智能终端JNI数据跟踪系统的主要组成示意图;
图5为本发明一种智能终端JNI数据跟踪系统的完整组成示意图。
附图标号说明:
100.初始模块,200.标示模块,300.判断模块,400.跟踪模块,500.提示模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1为本发明一种智能终端JNI数据跟踪方法的主要步骤示意图。作为本发明的一个具体实施例,如图1所示,一种智能终端JNI数据跟踪方法,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
优选的,所述JNI特定字节码是指预设跟踪数据的部分字节码。
对上述实施例进行改进,其中,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:修改虚拟机的实现源码,使所述虚拟机的实现源码在对JNI代码解释时生成的Native代码中插入数据标识传播的代码片段。
对上述实施例进行改进,其中,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据所述数据标识传播的代码片段对所述JNI中数据标识传播进行跟踪。
对上述实施例进行改进,得到优选的实施例,一种智能终端JNI数据跟踪方法,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示,具体包括:修改虚拟机的实现源码,使所述虚拟机的实现源码在对Jave代码解释时生成的Native代码中插入数据标识传播的代码片段;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪,具体包括:根据所述数据标识传播的代码片段对所述JNI中数据标识传播进行跟踪。
优选的,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:在应用程序的Native代码的调用和返回处设置安全策略接口。
优选的,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据预设跟踪数据的Native函数的函数名和从函数参数到函数返回值的数据标识映射关系,构建相应的映射表。
对上述实施例进行改进,得到优选的实施例,一种智能终端JNI数据跟踪方法,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示,具体包括:在应用程序的Native代码的调用和返回处设置安全策略接口;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪,具体包括:根据预设跟踪数据的Native函数的函数名和从函数参数到函数返回值的数据标识映射关系,构建相应的映射表。
对上述实施例进行改进,得到优选的实施例,图2为本发明一种智能终端JNI数据跟踪方法的完整步骤示意图,如图2所示,一种智能终端JNI数据跟踪方法,包括步骤:S1运行jave程序,加载jave字节码到虚拟机;S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;S3判断所述JNI特定字节码的逻辑是否标示成功;S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪;S5当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
具体的,由于Java代码本身的执行效率较低,对于此问题,Java提供了JNI机制,使得Java代码能够与其他语言(主要是C和C++)的代码进行高效的通信。从而,安卓应用程序的开发者能够将应用中计算密集部分的代码以C或C++进行高效的实现,并将以模块的形式作为安卓应用程序的一部分。在实际编程时,开发者需要在Java代码中声明相关函数,并在C或C++代码中实现对应的函数,本发明称这些用C或C++实现的Java函数为Native代码。
在智能终端系统中,Native代码主要在两处被使用。第一处位于Dalvik虚拟机内的基础数据类型处理函数中,第二处为应用程序内所自行实现的Native代码。
第一处的Native代码为安卓系统源码内部的静态代码,通过对其进行修改,本发明专利实现了Dalvik虚拟机内Native代码中的数据标识传播。为了提高开发效率Java语言提供了对于基础数据类型的基本操作函数。在本发明系统中,Dalvik虚拟机提供了Java代码的运行环境,其中也包含了对于上述操作函数的实现。处于性能考虑,安卓使用Native代码实现了上述操作函数。在安卓系统中,共有约200个基本数据类型操作函数,包含对于java.lang.Double、java.lang.Math、java.lang.String等包的实现。其中针对对象是动态创建的类实例或者动态创建的数组,引用一般是指内存地址,所有的对象(包括数组)支持Object类中定义的方法。表1为基本数据类型。
其中,需要处理的只是涉及反射功能的函数和含有数据返回的函数,而对于仅提供内部数据变换的函数则无需处理。通过本处对基础数据类型的处理,则可以实现对安卓系统源码内部的静态代码进行跟踪。
第二处的Native代码为应用程序开发者自行实现的代码,其在使用C或C++实现相关功能后,将其编译为.so文件,然后以函数库形式作为模块组合进安卓应用程序中。对于编译后的.so文件,本系统难以在其中插入数据标识传播逻辑,故本系统在此引入人工介入和半启发式机制,在Native代码的调用和返回处为安全检测人员提供了安全策略注册接口。安全检测人员可以在此指定所要监控的Native函数的函数名和从函数参数到函数返回值的数据标识映射关系,构建相应的映射表。
以微信app为实例构建映射表,表2为应用程序微信的JNI映射表。
通过表2实现对于应用程序Native代码的数据标识传播逻辑,对系统平台实现的Native代码进行跟踪。
本发明确定消息级别的数据标识,然后细分在智能终端中消息机制,不同于之前的在Java应用层消息基本的数据标识。本发明JNI代码中的数据标识传播:主要是修改了JNI的执行环境,如修改了虚拟机的实现源码,使其在对JNI代码进行解释时,在所生成的中间代码中,插入数据标识传播的相关代码片段,实现JNI代码中对于基础数据类型和对象引用的数据标识的正确、高效的传播。
具体的,图3为本发明一种智能终端JNI数据跟踪方法的流程图。结合图3详细介绍本发明的工作流程。
S1、运行Java程序,加载字节码到虚拟机:运行Java程序,在程序运行的时候加载相应的Java字节码到虚拟机中,对于必须依赖平台的本地方法,调用JNI处理用户相应的请求。
S2、对java逻辑标示失败后,并对JNI特定字节码的逻辑标示;
具体的,对于Java的逻辑标示失败后,找到相应的本地Native代码,在JNI中native中间代码中对传播的相关代码段进行跟踪,虚拟机内Native代码中的数据标识,实现对JNI中间层代码进行跟踪标示数据传播。
S3、判断JNI特定字节码的逻辑标示成功与否;如果在本地Native代码标示成功了,则跳到步骤S4;如果Native代码没有标示成功,则跳到步骤S5。
S4、对JNI中数据标示传播进行跟踪:本系统对于在Java层消息数据没有标示成功,在JNI层逻辑标示成功的话,在本模块系统相应可对JNI中的数据标示传播进行跟踪。
S5、提示JNI数据传播标示不成功。具体的,对于在Java层消息数据没有标示成功,在JNI层也没有逻辑标示成功的话,弹出相应的对话框,提示JNI数据传播标示不成功。
图4为本发明一种智能终端JNI数据跟踪系统的主要组成示意图,作为本发明的一个具体实施例,如图4所示,一种智能终端JNI数据跟踪系统,应用上述方法,包括:初始模块100,运行jave程序,加载jave字节码到虚拟机;标示模块200,当对Jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;判断模块300,判断所述JNI特定字节码的逻辑是否标示成功;跟踪模块400,当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
优选地,所述JNI特定字节码是指预设跟踪数据的部分字节码。
对上述实施例进行改进,得到另一个优选的实施例,图5为本发明一种智能终端JNI数据跟踪系统的完整组成示意图,如图5所示,一种智能终端JNI数据跟踪系统,还包括:提示模块500,当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
本发明以修改虚拟机的实现源码,使其在对Java代码进行解释时,在所生成的中间代码中,插入数据标识传播的相关代码片段,实现Java代码中对于基础数据类型和对象引用的数据标识的正确、高效的传播。在应用程序采用native代码进行标示的时候,本发明采用Native代码为安卓系统源码内部的静态代码的形式,对编译后的*.so文件,本系统在其中插入数据标识传播逻辑,引入人工介入和半启发式机制,构建应用程序JNI*.so映射表。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种智能终端JNI数据跟踪方法,其特征在于,包括步骤:
S1运行jave程序,加载jave字节码到虚拟机;
S2当对jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;
S3判断所述JNI特定字节码的逻辑是否标示成功;
S4当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
2.如权利要求1所述的智能终端JNI数据跟踪方法,其特征在于:所述JNI特定字节码是指预设跟踪数据的部分字节码。
3.如权利要求1所述的智能终端JNI数据跟踪方法,其特征在于,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:修改虚拟机的实现源码,使所述虚拟机的实现源码在对JNI代码解释时生成的Native代码中插入数据标识传播的代码片段。
4.如权利要求3所述的智能终端JNI数据跟踪方法,其特征在于,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据所述数据标识传播的代码片段对所述JNI中数据标识传播进行跟踪。
5.如权利要求1所述的智能终端JNI数据跟踪方法,其特征在于,所述步骤S2对JNI特定字节码的逻辑进行标示具体包括:在应用程序的Native代码的调用和返回处设置安全策略接口。
6.如权利要求5所述的智能终端JNI数据跟踪方法,其特征在于,所述步骤S4对JNI中数据标识传播进行跟踪具体包括:根据预设跟踪数据的Native函数的函数名和从函数参数到函数返回值的数据标识映射关系,构建相应的映射表。
7.如权利要求1所述的智能终端JNI数据跟踪方法,其特征在于,还包括步骤:S5当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
8.一种智能终端JNI数据跟踪系统,应用上述1-7任意一项权利要求所述的方法,其特征在于,包括:
初始模块,运行jave程序,加载jave字节码到虚拟机;
标示模块,当对Jave的逻辑标示失败后,对JNI特定字节码的逻辑进行标示;
判断模块,判断所述JNI特定字节码的逻辑是否标示成功;
跟踪模块,当所述JNI特定字节码的逻辑标示成功时,对JNI中数据标识传播进行跟踪。
9.如权利要求8所述的智能终端JNI数据跟踪方法,其特征在于:所述JNI特定字节码是指预设跟踪数据的部分字节码。
10.如权利要求8所述的智能终端JNI数据跟踪方法,其特征在于,还包括:提示模块,当所述JNI特定字节码的逻辑未标示成功时,发出提示信息。
CN201610145915.0A 2016-03-15 2016-03-15 一种智能终端jni数据跟踪方法及系统 Pending CN105825089A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610145915.0A CN105825089A (zh) 2016-03-15 2016-03-15 一种智能终端jni数据跟踪方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610145915.0A CN105825089A (zh) 2016-03-15 2016-03-15 一种智能终端jni数据跟踪方法及系统

Publications (1)

Publication Number Publication Date
CN105825089A true CN105825089A (zh) 2016-08-03

Family

ID=56987798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610145915.0A Pending CN105825089A (zh) 2016-03-15 2016-03-15 一种智能终端jni数据跟踪方法及系统

Country Status (1)

Country Link
CN (1) CN105825089A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175368A1 (en) * 2012-05-25 2013-11-28 Koninklijke Philips N.V. Method, system and device for protection against reverse engineering and/or tampering with programs
CN104050399A (zh) * 2013-03-14 2014-09-17 索尼公司 用户验证方法和装置以及盗版追踪方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175368A1 (en) * 2012-05-25 2013-11-28 Koninklijke Philips N.V. Method, system and device for protection against reverse engineering and/or tampering with programs
CN104050399A (zh) * 2013-03-14 2014-09-17 索尼公司 用户验证方法和装置以及盗版追踪方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李铭: "Android平台下基于行为的恶意代码检测技术研究", 《万方学术论文全文数据库》 *
赵泽虎: "Android智能终端动态分析关键技术的研究与实现", 《CNKI优秀硕士学位论文全文库》 *

Similar Documents

Publication Publication Date Title
US8099472B2 (en) System and method for a mobile cross-platform software system
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN106502747A (zh) 一种应用升级的方法及移动终端
CN104199654A (zh) 开放平台的调用方法及装置
CN110442502B (zh) 一种埋点的方法、装置、设备及存储介质
CN113867913A (zh) 面向微服务的业务请求处理方法、装置、设备及存储介质
JP5008829B2 (ja) メッセージ交換パターンシミュレーションコードの自動生成
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CN109784039B (zh) 移动终端安全运行空间的构建方法、电子设备、存储介质
CN103617120A (zh) 一种单元测试方法和装置
CN112511379A (zh) 一种网络准入配置检查方法和装置
CN110414218B (zh) 内核检测方法、装置、电子设备及存储介质
CN108733374A (zh) 应用程序首页开发方法及终端设备
WO2017076244A1 (zh) 一种动态修复应用程序的方法、装置及相关系统
CN117290138A (zh) 故障处理方法、装置、系统、终端设备及存储介质
CN105825089A (zh) 一种智能终端jni数据跟踪方法及系统
CN109388770B (zh) Web页面生成方法及装置
CN105389241A (zh) 移动终端防骚扰工具的性能测试方法及系统
CN113672908B (zh) 定点插桩方法、相关装置及系统
CN109901937A (zh) 隐藏api的反射调用方法、装置、计算机设备及存储介质
US11663338B2 (en) Automated security analysis of baseband firmware
CN113434217A (zh) 漏洞扫描方法、装置、计算机设备及介质
CN105094773B (zh) 模块功能的重用方法及系统
CN110177085A (zh) 适用于云环境的跨主机动态污点追踪方法及系统
CN113852623B (zh) 一种病毒工控行为检测方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160803

RJ01 Rejection of invention patent application after publication