Android应用程序密码学误用检测方法

2018-08-09 08:58卫志刚张晓龙
科技资讯 2018年8期
关键词:检测方法

卫志刚 张晓龙

摘 要:在智能手机的普遍应用过程中,大量Android的应用程序存在着一定的密码误用问题,对此相关学者对密码学误用检测方式进行了系统的研究分析。在常规状况之下,密码学误用是在程序操作以及实现过程中对于密码的各种算法调用出现了失误问题,导致密码机制无法实现既定的安全标准的状况。而通过动静结合的分析方式对密码学误用进行检测,精准度相对较高,可以精准检测各种误用状况。

关键词:Android应用程序 密码学误用 检测方法

中图分类号:TN919 文献标识码:A 文章编号:1672-3791(2018)03(b)-0011-02

1 基于Android CMA的静态密码学误用检测模块

基于smali文件内容生成控制图以及调用图,并根据控制流图和调用图,对应用程序与密码相关的函数调用进行分析,得到密码相关的函数名以及执行密码函数调用的路径以及分支。静态分析的具体流程如图1所示。

在基于Android CMA的静态密码学误用检测模块中,首先要对APK文件解压,获得dex文件,再利用Baksmali以及smali0将dex文件进行转换,使其变为smali格式。再对smali文件进行分析,生成控制流图以及调用图。在整个控制流图中主要是通过节点、连接节点的边构成,这些节点是基本块。在Android CMA中,这些基本块主要是通过不同的dalvik字节码共同构建形成,其连接节点的边主要是基于jump指令以及异常处理两个程序共同构建形成。在进行控制流图的构建过程中,先通过jump指令以及异常处理程序的目的地址对各个基本块进行链接处理。在调用图中要先对调用的入口进行分析,基于Android自身的系统特征,对不同的活动的程序如onCreate、onResume、onStart以及onPause等作为主要的调用操作的入口,基于这些入口对其进行系统分析,进而将不同的函数信息进行链接应用。

2 基于Android CMA的动态密码学误用检测模块

基于Android CMA的动态密码学误用检测模块主要是基于静态分析过程中获得的各项数据信息以及结果,通过执行密码函数调用的路径分支,对不同的函数密码进行调用监控处理,了解不同函数以及参数信息,详实记录整理。

动态密码学误用检测模块在实践中主要应用的技术手段是APK重打包技术。APK重打包利用API monitor工具开展操作,在APK中嵌入一个日志代码,获得相关运行记录。

在进行Android应用程序密码学误用检测方法的动态处理过程中应用的是动态污点分析方式,是一种在应用程序运行过程中,对于各种信息记录进行动态的标记、跟踪以及分析的实时性检测技术与手段。在應用程序的安全中,因为动态污点分析方式可以有效地组织一些广泛范围的攻

图1 基于Android CMA的静态密码学误用检测模块流程

图2 Android 密码误用案例

击,可以对缓冲区溢出攻击、命令注入攻击、格式字符串攻击以及跨站点脚本攻击等攻击方式进行处理,检测相对较为精准。

2.1 污点源

污染源是基于Android CMA的动态密码学误用检测模块中的重点内容,是在相关应用程序数据被一些污点标记过程中的初始化的描述处理,是通过何种污点标记对特定的污染敏感数据进行标记的方式手段。在程序数据中涵盖了不同的污染类型,主要是变量名(variable names)以及函数返回值(function-return values)、数据读取与I/O流等相关内容,其涵盖了文件传递以及网络信息系统的链接。

2.2 传播策略

传播策略在基于Android CMA的动态密码学误用检测模块中的主要作用是对执行污点标记过程中的传播方式进行分析。在进行污点传播过程中可以将其具体步骤进行如下概括分析,设置特定的语句S,将其产生的数据叫做起始数据信息,利用控制污点标记的方式进行函数的分配,其称之为映射函数。在实践中对于S结果产生影响的称之为影响数据描。因为初始数据是各种信息数据的集合,识别相对较为容易,这些数据在寄存器或者内存中进行存储,其各项信息数值会基于S的执行也出现不同的变化。同时,也有不同的模式识别影响相关数据以及定义映射函数,因为在操作中其既定的目标具有一定的灵活性。对此可以基于实际的状况,进行传播策略的定义与处理。

2.3 污点池

污点池是基于Android CMA的动态密码学误用检测模块中的代码地址,在操作中,用户要想对多个或者几个存储单元中的污点进行标准监测,可以基于ID地址、内存地址以及代码地址,在特定代码地址中综合关联此内存地址的污点标记执行一个或者多个不同的检测与操作。其中ID是被用户分配给一组汇点或者一个汇点的整数数值。

3 基于Android CMA的密码误用检测模块

在基于Android CMA的密码误用检测模块中,主要是通过对各种记录结果进行分析,获得其需要的密码误用分析结果。在操作中要利用密码误用检测模块进行函数名的匹配分析,了解其各项参数信息,是否存在与预先设定的密码误用模型相吻合的模型,然后进行各项参数信息的分析处理。密码误用识别模块对记录结果进行分析,得到密码误用漏洞分析结果。

在实践中使用基于Android CMA的密码误用检测模块,对一些使用了密码机制保护用户敏感数据的应用程序进行验证分析,发现一半以上的应用都存在密码勿用。观察某一应用的程序调用如图2所示,其中第一行中的函数参数为MD5,这种状况就是密码误用中的hash算法勿用。

4 结语

在常规状况之下,密码学误用是在程序操作以及实现过程中对于密码的各种算法调用出现了失误问题,导致密码机制无法实现既定的安全标准的状况。而通过动静结合的分析方式对密码学误用进行检测,精准度相对较高,可以精准检测各种误用状况。

参考文献

[1] 邵帅,王眉林,时志伟,等.Android和iOS应用软件密码误用漏洞分析[A].信息安全漏洞分析与风险评估大会[C].2014.

[2] 曹欢欢.Android平台下的安全检测软件的设计与实现[D].江苏科技大学,2015.

猜你喜欢
检测方法
建筑工程结构检测及加固措施
建筑工程质量检测的重要性及措施探讨
饮用水中钼元素测定及钼超标治理方法综述
浅谈坯用干混色料性能对生产应用的影响
食品安全与食品添加剂的关系探究
宫颈内人乳头瘤病毒的研究进展
小儿氨酚黄那敏颗粒有关物质对氯苯乙酰胺检测方法的建立
粉状速凝剂氯离子含量检测方法