针对Android移动应用的恶意加密流量标注方法研究
发布时间:2021-03-22 19:18
为区分恶意Android移动应用在运行过程中产生的恶意流量和正常流量,提出一种Android移动应用恶意流量标注方法。针对加密类型的网络流量,根据端口号和流载荷内容的字节熵值进行加密检测,依据服务器证书等内容判断加密流量是否异常,同时对恶意Android移动应用进行反编译,并利用程序控制流程图分析该加密流量是否涉及敏感操作,从而标注出恶意加密流量。对300个重打包类型的恶意移动应用进行测试,实验结果与同基准值对比分析表明,与未采用该方法的标注结果(1 602条恶意加密流量)相比,该方法检测出的恶意加密流量有341条,且标注结果中仅有28条为误报流量。
【文章来源】:计算机工程. 2020,46(07)北大核心CSCD
【文章页数】:7 页
【部分图文】:
本文标注方法的整体思路
在上述步骤中,初始化阶段的核心功能是反编译APK文件F,然后针对得到的源代码,构建全局程序控制流程图G。APK文件名称、反编译后的文件与全局程序控制流程图将一一对应保存,便于后续分析使用。程序控制流程图反映程序调用关系,示例如图2所示。Android应用的程序控制流程图可由Soot框架自动生成,本文不再进行赘述。在初始化阶段的步骤2中,利用域名或IP地址A定位至特定函数。但在实际中,域名可以动态生成(通过参数赋值或多个参数串联而成,如new URL(str)),无法直接进行匹配查询。因此,在生成全局程序控制流程图时,对于网络访问类函数,需要对访问地址参数进行数据流分析,进而得到域名的完整表示,具体流程同前向搜索类似。
执行完初始化后,进行前向搜索,确定函数参数是否含有敏感数据。参数变量Par1,Par2,…,Parp表示Android系统提供的网络相关函数,如setURI函数的参数。在当前节点所在的函数Fun(A)中寻找对Par1,Par2,…,Parp的赋值语句,若在赋值语句的右边存在变量Var,则继续向上遍历其父节点,寻找对变量Var的赋值语句(即对参数Par1,Par2,…,Parp的隐形赋值)。以此类推,形成递归分析,从而最终确定参数Par1,Par2,…,Parp的具体值,如图3所示。若在赋值路径中存在敏感函数调用,则返回“恶意”标注。在后向搜索中,无需考虑参数问题,只需判断子节点是否为敏感函数。即在网络通信结束后,根据通信内容,恶意移动应用会执行相关攻击代码。此行为在远程控制、广告展示类恶意应用中较为常见。恶意流量的确认算法中的敏感函数具体有startService()、loadClass()、sendTextMessage()、getContentResolver()、query()、mkdir()、delete()、ListFiles()等。完整的函数列表及其在恶意应用的常见应用解释见文献[27]的第4节内容,但不包括其中的HttpURLConnection 和Sockets等网络相关函数。
【参考文献】:
期刊论文
[1]基于域名关联的恶意移动应用检测研究[J]. 蔡荣彦,王鹤,姚启桂,何高峰. 计算机工程. 2020(05)
[2]移动应用安全生态链构建方法[J]. 杨昕雨,徐国爱. 软件学报. 2017(11)
[3]基于图的可扩展移动应用安全评估模型[J]. 陈璐,刘行,陈牧,李尼格,戴造建. 计算机工程. 2018(05)
[4]PKI技术的近年研究综述[J]. 林璟锵,荆继武,张琼露,王展. 密码学报. 2015(06)
本文编号:3094350
【文章来源】:计算机工程. 2020,46(07)北大核心CSCD
【文章页数】:7 页
【部分图文】:
本文标注方法的整体思路
在上述步骤中,初始化阶段的核心功能是反编译APK文件F,然后针对得到的源代码,构建全局程序控制流程图G。APK文件名称、反编译后的文件与全局程序控制流程图将一一对应保存,便于后续分析使用。程序控制流程图反映程序调用关系,示例如图2所示。Android应用的程序控制流程图可由Soot框架自动生成,本文不再进行赘述。在初始化阶段的步骤2中,利用域名或IP地址A定位至特定函数。但在实际中,域名可以动态生成(通过参数赋值或多个参数串联而成,如new URL(str)),无法直接进行匹配查询。因此,在生成全局程序控制流程图时,对于网络访问类函数,需要对访问地址参数进行数据流分析,进而得到域名的完整表示,具体流程同前向搜索类似。
执行完初始化后,进行前向搜索,确定函数参数是否含有敏感数据。参数变量Par1,Par2,…,Parp表示Android系统提供的网络相关函数,如setURI函数的参数。在当前节点所在的函数Fun(A)中寻找对Par1,Par2,…,Parp的赋值语句,若在赋值语句的右边存在变量Var,则继续向上遍历其父节点,寻找对变量Var的赋值语句(即对参数Par1,Par2,…,Parp的隐形赋值)。以此类推,形成递归分析,从而最终确定参数Par1,Par2,…,Parp的具体值,如图3所示。若在赋值路径中存在敏感函数调用,则返回“恶意”标注。在后向搜索中,无需考虑参数问题,只需判断子节点是否为敏感函数。即在网络通信结束后,根据通信内容,恶意移动应用会执行相关攻击代码。此行为在远程控制、广告展示类恶意应用中较为常见。恶意流量的确认算法中的敏感函数具体有startService()、loadClass()、sendTextMessage()、getContentResolver()、query()、mkdir()、delete()、ListFiles()等。完整的函数列表及其在恶意应用的常见应用解释见文献[27]的第4节内容,但不包括其中的HttpURLConnection 和Sockets等网络相关函数。
【参考文献】:
期刊论文
[1]基于域名关联的恶意移动应用检测研究[J]. 蔡荣彦,王鹤,姚启桂,何高峰. 计算机工程. 2020(05)
[2]移动应用安全生态链构建方法[J]. 杨昕雨,徐国爱. 软件学报. 2017(11)
[3]基于图的可扩展移动应用安全评估模型[J]. 陈璐,刘行,陈牧,李尼格,戴造建. 计算机工程. 2018(05)
[4]PKI技术的近年研究综述[J]. 林璟锵,荆继武,张琼露,王展. 密码学报. 2015(06)
本文编号:3094350
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3094350.html