一种安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法_4

文档序号:9304763阅读:来源:国知局
法,本发明可以自然地避免安全规约的碎片化现象。随后,编译器可以通过从代码库打包文件中提取安全使用规约,并将其输入安全使用检查器。
[0058]应用市场审查机制:由于多数的安卓用户都通过应用市场浏览和下载应用,因此扩展应用市场审查机制并加入对漏洞的检测是一种有效的防范方法。在扩展应用市场审查机制时,首先,应用市场需要从代码库设计人员处收集代码库安全规约。由于安卓应用市场数量众多,由代码库设计人员直接将安全规约推送到所有安卓市场是不现实的。因此,本发明需要构建一个集中式的安卓规约收集服务,由该收集服务收集代码库安全规约,并通过提供统一的访问接口处理来自不同应用市场的安全规约推送请求。
【主权项】
1.一种安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法,其特征在于建立以规则语言表述的安全规约模型、静态程序分析器以及安卓应用防御策略;其具体步骤包括:建立安全规约模型,即用形式化的规则语言描述代码库安全规约;设计基于安全规约模型的用于进行自动化验证的静态程序分析器;将该静态程序分析器用于应用程序编译和应用市场对应用程序审查两个阶段,进行安全漏洞检测,以防范程序中的安全性风险。2.根据权利要求1所述的检测分析方法,其特征在于所述建立安全规约模型的过程如下: (1)定义安全规约的基本元素 构成安全规约的基本元素为:执行点、数据点;每一条安全规约都包含多个执行点或数据点: 执行点,表示某一个方法的调用点;对于在应用程序中存在的大量的方法调用,安全规约使用每个方法的签名将其表述为一个执行点;另外,使用两个特殊的虚拟执行点ProgramEntry和ProgramExit来表示整个应用程序的入口和出口 ;对于需要表示满足某个条件的执行点的全体,采用执行点集合05?)语法; 数据点,表示一次方法调用的参数或返回值;由于安全规约以方法为粒度出现,因此用户只可以将方法调用的参数或返回值指定为程序数据点;类似于执行点集合(EPS),把数据点集合(DPS)表示所有同类数据点的集合; (2)确定安全规约的语法逻辑 使用上述的基本元素,通过规则逻辑组合出需要实现的各种安全规约,具体如下: 时序规则,时序规则限制了指令之间的时序关系;使用四元组的方法来表示时序规则,语法是: Rule:: Temporal (EPSs, EPS1, EPSe, mode) 其中,EPSs, EPS1, EPSe*别为时序规则中的起始执行点集,经过执行点集,汇集执行点集,mode 取 PR0P_SKIP 或 PROP_PASS_THROUGH ;如果在 mode 为 PROP_PASS_THROUGH,则表示如果在从EPSgIj EPSe的任一条执行路径上出现了 EPSj^执行点,则存在安全隐患;如果mode为PR0P_SKIP,则表示如果在从EPSgIj EPSe的每一条执行路径上都没有EPS 4勺执行点,则存在安全隐患; 数据传播规则,用来描述包含敏感信息的数据流传播,其语法是:Rule:: Propagat1n (DPSs, DPSd, mode) 其中,DPSjP DPS D表示数据传播的源点与汇点集合,mode取PR0P_MAY或PR0P_MAYN0T ;如果mode为PR0P_MAY,则当存在数据从数据点集合0?$流向数据点集合DPS D时,存在安全隐患;如果mode为PR0P_MAYN0T,则如果不存在数据从数据点集合DPS流向数据点集合DPSd时,存在安全隐患; 参数赋值规则,针对单一的数据点集合,用于对函数的参数加以限制,其语法是:Rule:: Assignment(DPS, V1lat1nPattern) 其中,V1lat1nPattern表示对参数施加的限制,这些限制包括数值的范围、字符串应当匹配的正则表达式,有些规则需要参数不能是常量,用关键字CONST来表示; (3)安全规约的组合与绑定 安全规约类型的组合与绑定主要包含以下几种情况: 执行点集合与执行点集合绑定,主要适用于某一执行点集合需要同时满足两条或以上的时序规则; 执行点集合与数据点集合绑定,主要适用于某一执行点集合应满足时序规则,而对应该执行点集合的某个数据点集合需要满足数据传播规则或者参数赋值规则; 数据点集合与数据点集合绑定,主要适用于某一数据点集合需要满足数据传播规则或参数赋值规则的中的两个或以上。3.根据权利要求1所述的检测分析方法,其特征在于所述静态程序分析器的设计过程如下: 静态程序分析器包含安全规约解析器、安全规约分析器和分析算法调度器三个部分,具体如下: (I)、安全规约解析器 用于解析安全规约,即将规格化表述的安全规约解析为静态程序分析器可以理解的静态代码片段及其匹配模式;安全规约解析器将安全规约解释为(数据点或集合点,限制或约束)的元组,将代码片段及对其作出的限制或约束一起保存下来,以备静态程序分析阶段进行进一步匹配检查;安全规约解析器还记录被多个安全规约共享的执行点集合或数据点集合信息,以对静态分析的搜索范围做出限制,进而进一步减少静态分析的分析开销; (2 )、安全规约分析器 安全规约分析器,用于分析安全规约;安全规约分析器直接读取安全规约解析器记录的各元组信息,直接从执行点集合或数据点集合对应的指令开始执行,并在扫描到终止点集合的指令时立即停止; 安全规约分析器对安全规约的语法逻辑中的3种基本安全规约采用不同的静态分析方法:对于时序规则,通过在程序控制流图上进行代码可达性分析判断代码时序是否满足规则约束;对于数据传播规则,通过静态污点分析,利用污点分析反应的程序数据流特征进行规则验证;对于参数赋值规则,通过对应用程序进行常量传播分析验证应用的函数参数赋值是否满足参数赋值规则; (3)、分析算法调度器 分析算法调度器采用时间最短策略进行分析算法调用顺序的分析,即运行时间较短的分析算法具有较高的优先级,具体如下:首先,若被检测的安全规约中包含参数赋值规则,则相关规则将首先被安全规约分析器所检查;随后,检查数据传播规则的静态分析过程;最后再检查时序规则的静态分析过程; 在上述调度过程中,根据安全规约解析器记录的规约间组合绑定关系,若处在队列前部的某一规约检测结果为空,那么在队列后部与其组合在一起的规约都可以跳过,即缩短了队列长度,减小了静态分析搜索范围。4.根据权利要求1所述的检测分析方法,其特征在于所述安卓应用的防御策略具体如下: 将该静态程序分析器用于应用程序编译和应用市场对应用程序审查两个阶段进行安全漏洞检测,其做法为:在应用程序编译阶段,将静态程序分析器以安全检查器的形式嵌入到应用程序编译流水线中,通过在编译时进行安全检查,直接向开发人员报告出程序隐含的安全缺陷;在应用程序审查阶段,静态分析器直接扩充到现有的应用市场审查流程中,在应用程序流向用户之前构建起第二道防线。
【专利摘要】本发明属于程序信息安全监测技术领域,具体为安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法。本发明方法包括:建立安全规约模型,即用形式化的规则语言描述代码库安全规约;设计基于安全规约模型的用于进行自动化验证的静态程序分析器;将该静态程序分析器用于应用程序编译和应用市场对应用程序审查两个阶段,进行安全漏洞检测。本发明可以防范程序中的安全性风险。
【IPC分类】G06F21/56
【公开号】CN105022958
【申请号】CN201510403224
【发明人】杨珉, 杨哲慜, 张磊
【申请人】复旦大学
【公开日】2015年11月4日
【申请日】2015年7月11日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1