一种基于大规模图分析的快速安卓ROP木马检测方法技术

技术编号:35033071 阅读:14 留言:0更新日期:2022-09-24 23:08
本发明专利技术涉及木马检测的技术领域,揭露了一种基于大规模图分析的快速安卓ROP木马检测方法,包括:将待运行APP转化为包含APP字节数的方阵,利用卷积操作将方阵压缩到规定维度,构建APP压缩网络;基于优化后的APP压缩网络计算得到方阵的APP哈希值,并将该哈希值上传至云端,云端判断哈希值是否存在,若存在则直接将该哈希值对应的检测结果回传给安卓用户;云端在沙箱中运行APP并记录APP执行的系统调用序列;构建ROP木马检测图模型:将待运行APP执行的系统调用序列与ROP木马检测图模型进行路径匹配,若路径相似度大于指定阈值则说明待运行APP为ROP木马。本发明专利技术所述方法实现基于历史哈希值的ROP木马快速检测,以及基于图模型相似度的ROP木马快速检测。度的ROP木马快速检测。度的ROP木马快速检测。

【技术实现步骤摘要】
一种基于大规模图分析的快速安卓ROP木马检测方法


[0001]本专利技术涉及ROP木马检测的
,尤其涉及一种基于大规模图分析的快速安卓ROP木马检测方法。

技术介绍

[0002]ROP(Return

Oriented Programming),即面向返回编程,是Hovav Shacham提出的一种基于栈溢出的非注入代码漏洞攻击方法,它利用进程地址空间中的代码片段而不依赖外部提供的注入代码。在系统运行的程序中,例如libc库、驱动程序,甚至内核程序中,存在大量的以ret结尾的指令序列,由于指令集编码的缘故,从不同的起始地址解析这些指令序列可以得到不同的执行结果,通过静态分析的方法,查找到符合条件的指令片段,把这些指令片段链接,形成能完成简单操作的指令序列,例如加法运算,并通过将这些指令序列串联起来完成一些复杂的操作。ROP木马就是利用该技术实现的,目前针对安卓ROP木马检测的相关研究较少,并且依赖于高性能处理器,而移动设备计算能力无法满足该要求,针对该问题,本专利提出一种基于大规模图分析的快速安卓ROP木马检测方法。

技术实现思路

[0003]有鉴于此,本专利技术提供一种基于大规模图分析的快速安卓ROP木马检测方法,目的在于(1)实现待运行安卓APP的哈希压缩,通过将待运行APP的哈希值发送到云端,若云端存储有该APP的历史检测结果,云端可对比历史ROP木马检测结果实现更为快速的ROP木马检测;(2)基于图理论构建ROP木马检测图模型,所述ROP木马检测图模型节点由安卓系统调用组成,有向边表示系统调用的执行顺序,由于ROP木马不包含任何指令,通过提取程序中的指令片段,对APP程序控制流进行劫持,导致部分指令顺序混乱,因此本方案通过比较待运行APP执行的系统调用序列与ROP木马检测图模型进行路径匹配,路径相似度越高,表示系统调用序列受到ROP木马劫持的概率越大,若路径相似度大于指定阈值则说明待运行APP为ROP木马,并在路径匹配过程中对待运行APP的系统调用序列进行降维,提高路径匹配速度,实现更为快速的ROP木马检测。
[0004]实现上述目的,本专利技术提供的一种基于大规模图分析的快速安卓ROP木马检测方法,包括以下步骤:
[0005]S1:安卓手机在运行APP前将待运行APP转化为包含APP字节数的方阵,利用卷积操作将方阵压缩到规定维度,构建APP压缩网络,所述APP压缩网络以方阵为输入,以哈希值为输出;
[0006]S2:对APP压缩网络进行优化学习,学习得到APP压缩网络参数,基于优化后的APP压缩网络计算得到方阵的APP哈希值,并将该哈希值上传至云端,云端判断哈希值是否存在,若存在则直接将该哈希值对应的检测结果回传给安卓用户;若不存在则执行S3;
[0007]S3:将待运行APP上传至云端,云端在沙箱中运行APP并记录APP执行的系统调用序列;
[0008]S4:构建ROP木马检测图模型,所述ROP木马检测图模型节点由安卓系统调用组成,有向边表示系统调用的执行顺序:
[0009]S5:将待运行APP执行的系统调用序列与ROP木马检测图模型进行路径匹配,若路径相似度大于指定阈值则说明待运行APP为ROP木马,否则不是。
[0010]作为本专利技术的进一步改进方法:
[0011]可选地,所述S1步骤中将待运行APP转化为包含APP字节数的最小方阵,利用卷积操作将方阵压缩到规定维度,包括:
[0012]安卓手机接收待运行APP,并对待运行APP进行解析,得到包含APP字节数的方阵,其中所述方阵中的每个值表示待运行APP不同框架部分的字节数;
[0013]在本专利技术实施例中,所述待运行APP的框架包括app部分以及Gradle Scripts部分,app部分包括AndroidManifest.xml文件、uses

permission文件、application文件、java源代码以及待运行APP的资源文件等,Gradle Scripts部分包括待运行APP的编译配置文件,其中AndroidManifest.xml文件描述了待运行APP的运行配置,uses

permission文件描述了待运行APP的权限,application文件描述了APP的自身属性,待运行APP的资源文件包括图形资源、页面布局资源以及启动图标资源等,待运行APP的编译配置文件包括编译规则,用于描述java文件的代码混淆规则等;
[0014]利用卷积操作将方阵压缩到规定维度,所述卷积操作的卷积核大小为C
×
C,原始方阵的维度为n
×
n,卷积操作的步长为strides,设定压缩后方阵的规定维度为m
×
m,其中m≤n,则原始方阵规格的压缩公式为:
[0015][0016]选取不同规格的卷积核以及设定不同的步长,将不同的方阵压缩到规定维度,所述卷积压缩后的方阵为F。
[0017]可选地,所述S1步骤中构建APP压缩网络,其中所述APP压缩网络以方阵为输入,以哈希值为输出,包括:
[0018]构建APP压缩网络,所述APP压缩网络包括两个卷积层,一个池化层,一个全连接层以及一个哈希层,其中所述APP压缩网络以方阵为输入,以哈希值为输出;
[0019]方阵分别通过两个卷积层,得到方阵的两个特征图C1(F)和C2(F),其中特征图C1(F)所对应卷积层的卷积核大小为5
×
5,特征图C2(F)所对应卷积层的卷积核大小为3
×
3,将特征图C1(F)和C2(F)相加得到特征图C(F),并将特征图C(F)输入到池化层进行池化,将池化结果输入到两层的全连接层,全连接层分别输出特征图C1(F)的权重矩阵w
c1
和特征图C2(F)的权重矩阵w
c2
,则最终特征图为C3(F)=w
c1
C1(F)+w
c2
C2(F),将最终特征图C3(F)输入到哈希层,哈希层输出对应的哈希值。
[0020]可选地,所述S2步骤中对APP压缩网络进行优化学习,得到APP压缩网络参数,包括:
[0021]对APP压缩网络进行优化学习,得到APP压缩网络参数θ,其中APP压缩网络参数θ包括卷积层的权重参数、偏置量参数,全连接层的长度参数、神经元数参数,所述优化学习流程为:
[0022]S21:构建APP压缩网络优化学习的训练集data={(x
k
,h
k
)|k∈[1,K]},其中(x
k
,
h
k
)为训练集data中第k组训练数据,x
k
表示方阵,h
k
表示方阵x
k
所对应的哈希值;
[0023]S22:构建APP压缩网络优化学习的损失函数:
[0024][0025]其中:
[0026]为基于参数θ的APP压缩网本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于大规模图分析的快速安卓ROP木马检测方法,其特征在于,所述方法包括:S1:安卓手机在运行APP前将待运行APP转化为包含APP字节数的方阵,利用卷积操作将方阵压缩到规定维度,构建APP压缩网络,所述APP压缩网络以方阵为输入,以哈希值为输出;S2:对APP压缩网络进行优化学习,学习得到APP压缩网络参数,基于优化后的APP压缩网络计算得到方阵的APP哈希值,并将该哈希值上传至云端,云端判断哈希值是否存在,若存在则直接将该哈希值对应的检测结果回传给安卓用户;若不存在则执行S3;S3:将待运行APP上传至云端,云端在沙箱中运行APP并记录APP执行的系统调用序列;S4:构建ROP木马检测图模型,所述ROP木马检测图模型节点由安卓系统调用组成,有向边表示系统调用的执行顺序:S5:将待运行APP执行的系统调用序列与ROP木马检测图模型进行路径匹配,若路径相似度大于指定阈值则说明待运行APP为ROP木马,否则不是,其中所述路径匹配流程,包括:将待运行APP执行的系统调用序列与ROP木马检测图模型进行路径匹配,所述路径匹配流程为:S51:初始化待运行APP系统调用序列的最小连通图为空集S52:将待运行APP中变量调用顺序序列(va1,va2,...,va
N
)构成图G

,其中图的节点为待运行APP中的变量,基于(va1,va2,...,va
N
)为任意两个节点添加有向边,有向边表示调用变量的执行顺序;S53:计算不同变量在图G

中的度,并按度的大小对变量进行降序排序,得到度最小且不存在度为1的邻接点的变量作为最小连通图的初始连通点L0,并将该变量从图中删除,其中最小连通图的连通点为待运行APP中的变量,将初始连通点L0添加到最小连通图中;S54:遍历初始连通点L0在图G

中的邻接点,将邻接点中度最大的变量作为下一个连通点L1,并将该变量从图中删除,将L1添加到最小连通图中;S55:选取度最小且不存在度为1的邻接点的变量作为连通点,将该变量从图中删除,并将连通点添加到最小连通图中;S56:选取连通点在图G

中邻接点中度最大的变量作为下一个连通点,并将该变量从图中删除,将连通点添加到最小连通图中;S57:重复步骤S55、S56,得到待运行APP系统调用序列的最小连通图:{L0,L1,...,L
Q
}其中:Q表示最小连通图中连通点的数目;计算最小连通图中不同连通点的路径匹配成本,所述路径匹配成本的公式为:cost(L
i
)=s(L
i
)/d(L
i
)其中:cost(L
i
)为最小连通图中连通点L
i
的路径匹配成本;d(L
i
)表示连通点L
i
在图G

中的度;s(L
i
)表示连通点L
i
与前i个连通点在图G

中所构成有向边的数量;S58:选取路径匹配成本最低的连通点作为待运行APP系统调用序列最小连通图的起点,并构成最小连通图;
S59:将所构成的最小连通图与ROP木马检测图模型中的若干子图进行距离度量,即分别将最小连通图以及子图放置于向量空间中,计算最小连通图与最接近子图在向量空间的距离,若该距离值小于阈值,待运行APP执行的系统调用序列与ROP木马检测图模型之间的路径相似度较高,说明待运行APP为ROP木马,否则待运行APP不为ROP木马,并将待运行APP的哈希值以及ROP木马检测结果存放到云端。2.如权利要求1所述的一种基于大规模图分析的快速安卓ROP木马检测方法,其特征在于,所述S1步骤中将待运行APP转化为包含APP字节数的最小方阵,利用卷积操作将方阵压缩到规定维度,包括:安卓手机接收待运行APP,并对待运行APP进行解析,得到包含APP字节数的方阵,其中所述方阵中的每个值表示待运行APP不同框架部分的字节数;利用卷积操作将方阵压缩到规定维度,所述卷积操作的卷积核大小为C
×
C,原始方阵的维度为n
×
n,卷积操作的步长为strides,设定压缩后方阵的规定维度为m
×
m,其中m≤n,则原始方阵规格的压缩公式为:选取不同规格的卷积核以及设定不同的步长,将不同的方阵压缩到规定维度,所述卷积压缩后的方阵为F。3.如权利要求2所述的一种基于大规模图分析的快速安卓ROP木马检测方法,其特征在于,所述S1步骤中构建APP压缩网络,其中所述APP压缩网络以方阵为输入,以哈希值为输出,包括:构建APP压缩网络,所述APP压缩网络包括两个卷积层,一个池化层,一个全连接层以及一个哈希层,其中所述APP压缩网络以方阵为输入,以哈希值为输出;方阵分别通过两个卷积层,得到方阵的两个特征图C1(F)和C2(F),其中特征图C1(F)所对应卷积层的卷积核大小为5
×
5,特征图C2(F)所对应卷积层的卷积核大小为3
×
3,将特征图C1(F)和C2(F)相加得到特征图C(F),并将特征图C(F)输入到池化层进行池化,将池化结果输入到两层的全连接层,全连接层分别输出特征图C1(F)的权重矩阵w
c1
和特征图C2(F)的权重矩阵w
c2
,则最终特征图为C3(F)=w
c1
C1(F)+w
c2
C2(F),将最终特征图C3(F)输入到哈希层,哈希层输出对应的哈希值。4.如权利要求2

3所述的一种基于大规模图分析的快速安卓ROP木马检测方法,其特征在于,所述S2步骤中对APP压缩网络进行优化学习,得到APP压缩网络参数,包括:对APP压缩网络进行优化学习,得到APP压缩网络参数θ,其中APP压缩网络参数θ包括卷积层的权重参数、偏置量参数,全连接层的长度参数、神经元数参数,所述优化学习流程为:...

【专利技术属性】
技术研发人员:罗耿潘苏强
申请(专利权)人:广西华曜网络科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1