移动互联网智能终端应用中间件安全开发方法

文档序号:6377690阅读:193来源:国知局
专利名称:移动互联网智能终端应用中间件安全开发方法
技术领域
本发明涉及移动互联网安全领域,尤其涉及智能终端应用中间件开发安全领域。
背景技术
现有智能手机系统无法撤回权限、对调用的API序列无法控制,从而导致用户的隐私数据被窃取等安全问题。

发明内容
为了解决现有技术中问题,本发明通过在开发者项目打包编译阶段,采用静态代·码检测技术来检测开发者代码中的敏感功能,并给源代码标上安全等级;所采用的技术有多模式匹配技术(AC)、模型检验技术、词法分析、语法分析、单模式匹配技术(KMP)。在软件运行阶段,采用动态防御技术来对软件所调用的敏感API以及敏感API序列进行检测,并且能够实时的撤回赋予软件的权限。所采用的技术有socket异步通信技术。提供了一种移动互联网智能终端应用中间件安全开发方法,包括A :建模,具体如下Al :利用多模式匹配算法确定程序的安全等级以及筛选出包含敏感API(例如调用发送短信函数)的子函数;A2 :对子函数进行分析;A3 :构造子函数的系统迁移图,完成了系统的建模;B :规范,使用规范语言CTL来描述程序的恶意行为,构造CTL公式的语法树,对CTL公式进行翻译、解析、EF替换、变量绑定;C :验证,利用非递归的标记算法来实现模型检验。作为本发明的进一步改进,应用程序调用系统的关键API (如调用发送短信函数)或者有害API序列(如应用程序调用完获取用户通信录信息的函数后,立刻调用发送短信的函数,或者联网函数,此时我们可以认为此应用程序可能对用户的隐私造成威胁)时,系统通过Socket给用户发出一个是否阻止本次操作的请求,如果用户选择“是”,客户端通过Socket发送一个响应给系统,程序能够顺利调用该API,得到相应的系统数据,同时系统会记录此次调用的记录,如果用户选择“否”,则系统会禁止程序调用此API。作为本发明的进一步改进,步骤A2中,对子函数进行词法分析、语法分析、语义分析。作为本发明的进一步改进,步骤Al中,多模式匹配算法的匹配过程如下从AC自动机的初始状态O出发,每次取出文本中的一个字符,根据当前的状态和扫描到的字符,利用goto或者failure函数进入下一个状态,当某个状态的output函数不为空时,表明在该状态找到了匹配模式,并输出其值。作为本发明的进一步改进,步骤A3中,
在模型检测中系统由迁移系统KS来描述,KS本质上是一个被标记的有向图,它由状态和状态间的转换关系组成;设AP表不原子命题的集合,一个迁移系统M是一个4兀组(S,SO, R, L),其中S是一个有限状态集合,Sfl £*5是初始状态集合,i cz Sxb差迁移关系,L :S — 2AP是一个标记函数用来标记每个状态上成立的原子命题的集合;模型M中的一条路径是S中状态的无限序列S1, s2, S3,…对每个i彡1,有(Si,Si+1) eR,用JIi表示从Si开始的路径JI的后缀,用TIs表示所有以S开头的路径的集合;
计算树在迁移系统M中指定一个状态S,并且依靠迁移关系R将迁移系统从有向图的形式展开成的以指定的状态s为根的树形结构。作为本发明的进一步改进,步骤B中,规范语言用来描述状态迁移系统的性质,CTL是一种分支时间逻辑,它的时间模型是一个树状结构,其中未来是不确定的,未来有不同的路径,其中的任何一个都可能将是现实的“实际”路径;CTL公式由原子命题和操作符组成,CTL中可用的操作符包括/' V — ~> ,AX, EX., AF, E F, AG, HG, AUB U, CTL 公式由如下缩减的Backus-Naur范式归纳定义Φ ::丄 |τ|ρ(Φ)|(Φ Λ Φ)|ΕΡΦ|Ε[Φ U Φ ]3个操作符的优先级如下EF> Λ >EU子公式若公式@的语法分析树是公式Φ的语法分析树的子树,则公式P称为公式Φ的子公式;定义5 :设M=(S,Sq,R,L)是一个迁移系统,s e S,Φ是一个CTL公式,关系M,s=Φ表示迁移系统M的状态节点s满足公式Φ描述的属性,其具体语义需对Φ做结构归纳来定义I. M, s I =E [ Φ I U Φ 2]且 M, s I 古丄;2· Μ, s I =ρ 当且仅当 P G L(S);3. Μ, s I = Φ ! U Φ2 当且仅当 W1A v2s0 e S,且 M, s I = Φ2 ;4. Μ, s I =EF Φ成立当且仅当存在一条满足S=S1的路径S1 — S2 — s3···,并且沿该路径存在某个Si使得M,sj = Φ ;5. M, s I =E[ Ψ! U Ψ2]成立当且仅当存在一条满足S=S1的路径S1 — S2 — s3···,且沿该路径满足存在某个i,使得当l〈j〈i时,M,Sj| = Ct1且氧&| = Φ2;两个CTL公式Φ和¢5称为语义等价的,记为0 = %如果任何模型中的任何状态,只要满足其中一个,就满足另一个;由定义5的归纳定义能得到如下的等价关系EF Φ = E [TU Φ ] ο作为本发明的进一步改进,步骤C中,标记算法通过计算出M中所有满足Φ的状态的集合S’,若Stl e S'则可知M, S01 = Φ ,否则 M, sj 幸 Φ ,标记算法的主要内容如下输入一个CTL模型M= (S,S0, R, L)和一个CTL公式Φ,初始CTL公式只包含Λ、EF两种操作符,
输出满足φ的M的状态集合, 首先,由式EF Φ = E [TU Φ ]等价关系把Φ中的EF操作符用EU操作符替换,其次从Φ的最小子公式开始,用Φ的被满足的子公式来标记M的状态,并由里向外逐步扩展Φ ,假定@是φ的子公式,且满足P的所有直接子公式的状态都已经被标记,通过具体情况分析来确定哪些状态用P标记,如果是丄没有状态用丄标记P :若 P e L (S),则用 P 标记 sF1 Λ Ψ2:若状态s已用V1和Ψ2标记,则用Vi八V2标记s
E[ F1 U ψ2]任何状态s若已用Ψ2标记,则用E[ F1 U Ψ2]标记它,重复用U Ψ2]标记状态s,如果该状态用V1标记,并且其后继状态中至少有一个用Ε[Ψι U ψ2]标记,直到不再发生改变。本发明弥补了传统的如Android系统在权限赋予方面的缺陷(在安装时只能选择接受全部权限,否则无法安装。一旦接受,无法撤回),能够有效的保护用户隐私数据的安全。能够做到真正的主动防御,对所有的隐私数据的访问都需要通过用户的选择。


图I是本发明系统整体结构图中的平台侧;图2是本发明系统整体结构图中的客户端侧;图3是本发明模式串集P= {hiS,he, hers, she}的AC自动机;图4是本发明AC算法伪代码。
具体实施例方式下面结合附图对本发明做进一步说明。该安全框架通过采用静态代码检测技术来确定程序的安全等级以及程序的安全漏洞,采用动态主动防御技术实现按用户的选择实时的撤回在安装时已经赋予给应用程序的权限。在平台侧采用静态代码检测技术,同时我们设计了一个安全检测客户端(^乙安全卫士),来实现动态主动防御。框架的整体结构如图I和2所示在平台侧,在MoSync源代码打包之前,首先利用模型检验技术对源代码进行语义验证。首先,利用多模式匹配算法确定程序的安全等级(这一步主要是为了配合该项目数字签名部分的工作)以及筛选出包含敏感API的子函数;接着对子函数进行词法分析、语法分析、语义分析,从而构造子函数的系统迁移(KS)图,KS本质上是一个被标记的有向图,它由状态和状态之间的转移关系组成。此时完成了系统的建模。另一方面,使用规范语言CTL来描述程序的恶意行为,构造CTL公式的语法树,对CTL公式进行翻译、解析、EF替换、变量绑定。最后利用非递归的标记算法来实现模型检验。在客户端侧,每当应用程序调用系统的关键API或者有害API序列时,系统都会通过Socket来给用户发出一个是否阻止本次操作的请求,如果用户选择“是”,客户端会通过Socket发送一个响应给系统,程序能够顺利调用该API,得到相应的系统数据,同时系统会记录此次调用的记录,以备检测应用程序调用的API序列之用。如果用户选择“否”,则系统会禁止程序调用此API,以达到保护用户隐私数据的效果。下面对系统的关键技术加以介绍I.多模式匹配技术本框架采用了 AC的多模匹配方法,Aho-Corasick算法(AC算法)是基于有穷状态机的多模式匹配算法,于1975年产生于贝尔实验室。该算法在匹配之前对所有待匹配关键字集合构建一个有穷模式匹配状态机,命名为AC自动机;在匹配时,利用AC自动机对待匹配文本进行一次扫描便可完成匹配工作。故AC算法文本匹配的复杂度是与模式串的大小是无关,只与匹配文本长度有关,时间复杂度为O (η),η为待匹配文本长度。AC自动机定义所有模式集合的AC自动机是这样的一个程序,它以文本字符串X为输入,当模式集合中有模式串作为子串出现于X中时便产生当前其在X的位置为输出。AC自动机包含一系列状态,每一状态由一数字表示。其动作由三个函数来表示goto (转移)·函数、failure (失效)函数和output (输出)函数。goto函数表明在当前状态下读入下一个待比较文本的字符后到达的下一个状态;failure函数用来指明在某个状态下,当读入的字符不匹配时应转移到的下一个状态;output函数的作用是在匹配过程中,当出现匹配时输出匹配到的模式。AC状态机的示例如图3所示图3模式串集P= {his,he,hers,she}的AC自动机(实线为goto,虚线为failure,双圆圈为output)。匹配过程从AC自动机的初始状态O出发,每次取出文本中的一个字符。根据当前的状态和扫描到的字符,利用goto或者failure函数进入下一个状态,当某个状态的output函数不为空时,表明在该状态找到了匹配模式,并输出其值。AC算法具有简明和高效的特点,其串行伪代码如图4所示。要对AC算法并行化,只需将所有匹配文本进行分割,形成若干大小相等且相互独立的页面,然后通过不同线程读取同一个AC自动机,去匹配不同的页面即可,这一操作非常适合GPU大量数据量的并行操作。2.模型检验技术模型检验的基本思想是通过遍历系统模型的状态空间来检验系统模型是否满足给定的性质。在模型检验中涉及两种形式说明语言性质说明语言用于描述系统的性质;模型描述语言用于描述系统的模型。在应用模型检验时,最重要的就是给被检验系统进行形式化建模,同时用时序逻辑公式描述期望性质,因此,应用模型检验验证系统一般需要3个步骤建模、规范和验证。2. I系统建模在模型检测中系统由迁移系统(Kripke Structure, KS)来描述,KS本质上是一个被标记的有向图,它由状态和状态间的转换关系组成。定义I设AP表不原子命题的集合,一个迁移系统M是一个4兀组(S,SO, R, L),其中S是一个有限状态集合,Sfl e S是初始状态集合,R a ,V X S是迁移关系(迁移关系必须是完整的,即对于每个状态s e S必须存在状态s, e S使得R(s,s ‘)),L :S — 2AP是一个标记函数用来标记每个状态上成立的原子命题的集合。定义2模型M中的一条路径是S中状态的无限序列S1, s2, S3,…对每个i彡1,有(Si,Si+1) e R0为方便起见,我们用JIi表示从Si开始的路径的后缀,用113表示所有以S开头的路径的集合。KS中的路径表明了系统运行过程中有效的状态迁移序列,它对于验证系统性质具有重要意义定义3计算树在迁移系统M中指定一个状态S,并且依靠迁移关系R将迁移系统从有向图的形式展开成的以指定的状态s为根的树形结构。计算树能明确地表示出模型M完整的执行路径,因此将迁移系统展开为一个无限(迁移关系完整性所致)计算树是非常有用的。2. 2 规范语目 _CTL规范语言用来描述状态迁移系统的性质,CTL是一种分支时间逻辑,即它的时间模型是一个树状结构,其中未来是不确定的,未来有不同的路径,其中的任何一个都可能将是 现实的“实际”路径。CTL公式由原子命题和操作符组成,CTL中可用的操作符包括Λ,ν,ι, -> ,AX,EX.AF,EF,AG,EG,AU.EU,但由后文的分析可知本文用CTL公式描述恶意行为时只会用到Λ,EF,EU操作符。因此本文中的CTL公式都由如下缩减的Backus-Naur范式归纳定义Φ ::丄 |Τρ(Φ)|(Φ Λ Φ)|ΕΡΦ|Ε[Φ U φ ]3个操作符的优先级如下EF> Λ >EU定义4子公式若公式P的语法分析树是公式Φ的语法分析树的子树,则公式罗称为公式Φ的子公式。定义5设M= (S,ScilR1L)是一个迁移系统,s e S,Φ是一个CTL公式,关系M,s | = Φ表示迁移系统M的状态节点s满足公式Φ描述的属性,其具体语义需对Φ做结构归纳来定义I. M, s I =Ε[ Φ ! U Φ2]且 M, s I 古丄。2· Μ, s I =ρ 当且仅当 P e L(S)。3. M, s I = Φ ! U Φ2 当且仅当 Ψ! Λ V2Stl e S'且 M, s 卜 Ψ2。4. M, s I =EF Φ成立当且仅当存在一条满足S=S1的路径S1 — S2 — s3···,并且沿该路径存在某个Si使得Μ,&| = Φ。5. M, s I =E[ Ψ! U Ψ2]成立当且仅当存在一条满足S=S1的路径S1 — S2 — s3···,且沿该路径满足存在某个i,使得当l〈j〈i时,M,Sj| =定义6两个CTL公式Φ和¢5称为语义等价的,记为# = φ,如果任何模型中的任何状态,只要满足其中一个,就满足另一个。有定义5的归纳定义能得到如下的等价关系EF Φ ^ Ε[ΤυΦ] (1-1)2. 3 验证模型检测的目的就是要查看M,S01 = Φ是否成立,标记算法通过计算出M中所有满足Φ的状态的集合S’,若S。e S’则可知M,sQ| = (K否则M,sQ| Φ Φ。标记算法的主要内容如下输入一个CTL模型M= (S,S0, R, L)和一个CTL公式Φ (本文中初始CTL公式只包含A、EF两种操作符)。输出满足φ的M的状态集合。
首先,由式1-1等价关系把Φ中的EF操作符用EU操作符替换,其次从Φ的最小子公式开始,用Φ的被满足的子公式来标记M的状态,并由里向外逐步扩展Φ。假定@是φ的子公式,且满足P的所 有直接子公式的状态都已经被标记,通过具体情况分析来确定哪些状态用4示记。如果^是丄没有状态用丄标记P :若 P e L (S),则用 P 标记 sF1 Λ Ψ2:若状态S已用V1和Ψ2标记,则用Vi Λ V2标记SEtF1 U Ψ2]任何状态s若已用Ψ2标记,则用E[ F1 U Ψ2]标记它。重复用U Ψ2]标记状态s,如果该状态用V1标记,并且其后继状态中至少有一个用Ε[Ψι U ψ2]标记,直到不再发生改变。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种移动互联网智能终端应用中间件安全开发方法,其特征在于包括 A :建模,具体如下 Al :利用多模式匹配算法确定程序的安全等级以及筛选出包含敏感API的子函数; A2 :对子函数进行分析; A3 :构造子函数的系统迁移图,完成了系统的建模; B :规范,使用规范语言CTL来描述程序的恶意行为,构造CTL公式的语法树,对CTL公式进行翻译、解析、EF替换、变量绑定; C :验证,利用非递归的标记算法来实现模型检验。
2.根据权利要求I所述的移动互联网智能终端应用中间件安全开发方法,其特征在于应用程序调用系统的关键API或者有害API序列时,系统通过Socket给用户发出一个是否阻止本次操作的请求,如果用户选择“是”,客户端通过Socket发送一个响应给系统,程序能够顺利调用该API,得到相应的系统数据,同时系统会记录此次调用的记录,如果用户选择“否”,则系统会禁止程序调用此API。
3.根据权利要求I或2所述的移动互联网智能终端应用中间件安全开发方法,其特征在于步骤A2中,对子函数进行词法分析、语法分析、语义分析。
4.根据权利要求I或2所述的移动互联网智能终端应用中间件安全开发方法,其特征在于步骤Al中,多模式匹配算法的匹配过程如下从AC自动机的初始状态O出发,每次取出文本中的一个字符,根据当前的状态和扫描到的字符,利用goto或者failure函数进入下一个状态,当某个状态的output函数不为空时,表明在该状态找到了匹配模式,并输出其值。
5.根据权利要求I或2所述的移动互联网智能终端应用中间件安全开发方法,其特征在于:步骤A3中, 在模型检测中系统由迁移系统KS来描述,KS本质上是一个被标记的有向图,它由状态和状态间的转换关系组成; 设AP表示原子命题的集合,一个迁移系统M是一个4元组(S,SO, R,L),其中S是一个有限状态集合,Sfl 是初始状态集合,XxS是迁移关系,LS- 2AP是一个标记函数用来标记每个状态上成立的原子命题的集合; 模型M中的一条路径是S中状态的无限序列S1, s2, s3,…对每个i > 1,有(Si,si+1) ER,用Jii表示从Si开始的路径Ji的后缀,用TIs表示所有以s开头的路径的集合; 计算树在迁移系统M中指定一个状态S,并且依靠迁移关系R将迁移系统从有向图的形式展开成的以指定的状态s为根的树形结构。
6.根据权利要求5所述的移动互联网智能终端应用中间件安全开发方法,其特征在于步骤B中, 规范语言用来描述状态迁移系统的性质,CTL是一种分支时间逻辑,它的时间模型是一个树状结构,其中未来是不确定的,未来有不同的路径,其中的任何一个都可能将是现实的“实际”路径; CTL公式由原子命题和操作符组成,CTL中可用的操作符包括 Λ,ν,、,AX,EX,AF,EF,AG,EG,AU,EU, CTL 公式由如下缩减的 Backus-Naur 范式归纳定义Φ ::丄 |τ|ρ(Φ) I (Φ Λ Φ) |EF(ji |Ε[Φ U φ] .3个操作符的优先级如下EF> Λ >EU 子公式若公式的语法分析树是公式Φ的语法分析树的子树,则公式识称为公式Φ的子公式; 定义5 :设M= (S,SO, R, L)是一个迁移系统,s e S,Φ是一个CTL公式,关系M,s | = Φ表示迁移系统M的状态节点s满足公式Φ描述的属性,其具体语义需对Φ做结构归纳来定乂 I.M, s I =Ε[ Φ ! U Φ2]且 M, s I 古丄;.2· Μ, s I =ρ 当且仅当 P e L (s); .3.M, s I = Φ! U Φ2 当且仅当 W1A v2s0 e S '且 M, s I = Φ2 ;.4.Μ, s I =EF Φ成立当且仅当存在一条满足S=S1的路径S1 — S2 — s3...,并且沿该路径存在某Asi使得Μ,&| = Φ ;.5.Μ, s I =E [ Ψ! U ψ2]成立当且仅当存在一条满足S=S1的路径S1 — S2 — S3...,且沿该路径满足存在某个i,使得当l〈j〈i时, M, Sj I = Φ !且 M, Si I = Φ 2 ; 两个CTL公式Φ和炉称为语义等价的,记为^ = ¢5,如果任何模型中的任何状态,只要满足其中一个,就满足另一个;由定义5的归纳定义能得到如下的等价关系EF Φ ξ E [TU Φ ]。
7.根据权利要求6所述的移动互联网智能终端应用中间件安全开发方法,其特征在于步骤C中, 标记算法通过计算出M中所有满足Φ的状态的集合S’,若Sci e S,则可知IscJ = (J),否则 M, S。I Φ Φ , 标记算法的主要内容如下 输入一个CTL模型M= (S,S0, R, L)和一个CTL公式Φ,初始CTL公式只包含Λ、EF两种操作符, 输出满足Φ的M的状态集合, 首先,由式EFcj5 =Ε[ Φ]等价关系把Φ中的EF操作符用EU操作符替换,其次从Φ的最小子公式开始,用Φ的被满足的子公式来标记M的状态,并由里向外逐步扩展Φ,假定P是Φ的子公式,且满足P的所有直接子公式的状态都已经被标记,通过具体情况分析来确定哪些状态用@标记,如果 是丄没有状态用丄标记P :若P e L (s),则用P标记s V1A ψ2:若状态s已用V1和标记,则用Vi Λ V2标记s EtF1U ψ2] 任何状态S若已用Ψ2标记,则用Eliiir1 U Ψ2]标记它, 重复用U Ψ2]标记状态s,如果该状态用V1标记,并且其后继状态中至少有一个用Ε[Ψι U ψ2]标记,直到不再发生改变。
全文摘要
本发明提供了一种移动互联网智能终端应用中间件安全开发方法,包括A建模,具体如下A1利用多模式匹配算法确定程序的安全等级以及筛选出包含敏感API的子函数;A2对子函数进行分析;A3构造子函数的系统迁移图,完成了系统的建模;B规范,使用规范语言CTL来描述程序的恶意行为,构造CTL公式的语法树,对CTL公式进行翻译、解析、EF替换、变量绑定;C验证,利用非递归的标记算法来实现模型检验。本发明弥补了传统的如Android系统在权限赋予方面的缺陷,能够有效的保护用户隐私数据的安全。能够做到真正的主动防御,对所有的隐私数据的访问都需要通过用户的选择。
文档编号G06F9/44GK102902538SQ201210360628
公开日2013年1月30日 申请日期2012年9月21日 优先权日2012年9月21日
发明者王轩, 张加佳, 赵海楠, 吴绍梅 申请人:哈尔滨工业大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1