【技术实现步骤摘要】
一种基于大规模图分析的快速安卓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木马检测图模型节点由安卓系统调用 ...
【技术保护点】
【技术特征摘要】
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压缩网络参数θ包括卷积层的权重参数、偏置量参数,全连接层的长度参数、神经元数参数,所述优化学习流程为:...
【专利技术属性】
技术研发人员:罗耿,潘苏强,
申请(专利权)人:广西华曜网络科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。