一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于卷积神经网络的安卓恶意软件检测方法及系统

2022-06-05 02:47:54 来源:中国专利 TAG:


1.本发明涉及一种基于卷积神经网络的安卓恶意软件检测方法及系统,属于恶意软件检测技术领域。


背景技术:

2.安卓系统因其开放性和简易性而广为流传,因而成为恶意软件肆虐的目标,这种情况使得安卓平台下各种针对恶意软件攻击的安全防护技术得到蓬勃发展,安卓恶意软件可视化检测技术即为其中备受关注的一种。
3.目前现有针对安卓软件的分类检测,做法多为其他平台(如windows)检测方案的移植,没有考虑到安卓平台的独特性,且没有考虑到比特流前后之间互相作用的联系,导致准确率偏低,检测有待于进一步提高;并且由于自动化代码编写、重用技术、以及安卓系统的开放性,相当一部分安卓恶意软件是由良性软件编写而来的,很难被可视化检测框架区分开来,使其容易产生漏报,表现为召回率不高。


技术实现要素:

4.本发明所要解决的技术问题是提供一种基于卷积神经网络的安卓恶意软件检测方法,采用全新逻辑设计,解决了目前安卓检测方法中存在的准确率低、召回率低的问题,进而完成高效、且准确的安卓恶意软件检测工作。
5.本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于卷积神经网络的安卓恶意软件检测方法,基于预设数量分别已知属于正常标签或恶意标签的各个安卓样本软件,按如下步骤a至步骤b,获得恶意软件识别模型;然后应用恶意软件识别模型,执行步骤i,针对目标安卓软件执行恶意检测;步骤a. 分别针对各个安卓样本软件,执行如下步骤a1至步骤a4,获得各个安卓样本软件分别所对应的频域特征图像,然后进入步骤b;步骤a1. 获得安卓样本软件压缩包中的classes.dex文件,并基于classes.dex文件的二进制数据流形式,通数据进制转换,获得classes.dex文件所对应的十六进制数据流,然后进入步骤a2;步骤a2. 针对classes.dex文件所对应的十六进制数据流,执行n-gram处理,获得classes.dex文件所对应的各个gram分片,并进入步骤a3;步骤a3. 根据classes.dex文件所对应的各个gram分片,获得classes.dex文件所对应的三通道彩色图像,然后进入步骤a4;步骤a4. 针对classes.dex文件所对应的三通道彩色图像,执行频域变换映射处理,获得该三通道彩色图像所对应的频域特征图像,即该安卓样本软件所对应的频域特征图像;步骤b. 基于各个安卓样本软件,以安卓样本软件所对应频域特征图像为输入,安卓样本软件属于正常标签或恶意标签为输出,针对目标卷积神经网络进行训练,获得恶意
软件识别模型;步骤i. 按步骤a1至步骤a4的方式,获得目标安卓软件所对应的频域特征图像,并应用恶意软件识别模型,获得目标安卓软件所属的正常标签或恶意标签,即实现对目标安卓软件进行恶意检测。
6.作为本发明的一种优选技术方案:所述步骤a1包括如下步骤a1-1至步骤a1-2;步骤a1-1. 基于classes.dex文件的二进制数据流形式,以步长为4,顺序按每四位二进制数转化为一位十六进制数,获得所对应转换后的十六进制数据流,并进入步骤a1-2;步骤a1-2. 判断该十六进制数据流的长度是否为6的倍数,是则该十六进制数据流即作为classes.dex文件所对应的十六进制数据流;否则针对该十六进制数据流,通过末尾最少位数补0的方式,获得长度为6的倍数的十六进制数据流,作为classes.dex文件所对应的十六进制数据流。
7.作为本发明的一种优选技术方案:所述步骤a2中,应用滑动步长为6、窗口长度为6的滑动窗口,将classes.dex文件所对应的十六进制数据流进行划分,获得各个长度为6的gram分片,即classes.dex文件所对应的各个gram分片。
8.作为本发明的一种优选技术方案:所述步骤a3包括如下步骤a3-1至步骤a3-4;步骤a3-1. 初始化256*256*3、像素值均为0的三通道基础图像,并进入步骤a3-2;步骤a3-2. 分别针对classes.dex文件所对应的各个gram分片,顺序选择第一个十六进制数与第二个十六进制数组合所对应的十进制数,构成gram分片所对应第一个像素点的横坐标,以及顺序选择第三个十六进制数与第四个十六进制数组合所对应的十进制数,构成该gram分片所对应第一个像素点的纵坐标;并且顺序选择第三个十六进制数与第四个十六进制数组合所对应的十进制数,构成该gram分片所对应第二个像素点的横坐标,以及顺序选择第五个十六进制数与第六个十六进制数组合所对应的十进制数,构成该gram分片所对应第二个像素点的纵坐标;即获得该gram分片所对应两个像素点的坐标,进而获得各gram分片分别所对应两个像素点的坐标,然后进入步骤a3-3;步骤a3-3. 分别针对classes.dex文件所对应的各个gram分片,以步长为2,顺序选择gram分片中每两位十六进制数转化为一位十进制数,获得三个十进制数,分别对应各颜色通道的颜色值,构成该gram分片所对应两个像素点的像素值,进而获得各gram分片分别所对应两个像素点的像素值,然后进入步骤a3-4;步骤a3-4. 将各gram分片分别所对应的两个像素点,按其坐标、像素值,置于三通道基础图像中,构成classes.dex文件所对应的三通道彩色图像,其中,若三通道基础图像中像素位置上若存在至少两个来自gram分片的像素点,则将该各像素点的像素值进行累加,并对应于该像素位置,且若像素值累加大于255时,则定义该像素位置对应像素值即为255。
9.作为本发明的一种优选技术方案:所述步骤a4中,针对classes.dex文件所对应的三通道彩色图像,按二维离散余弦变换公式如下:
执行频域变换映射处理,获得该三通道彩色图像所对应的频域特征图像,即该安卓样本软件所对应的频域特征图像,其中,表示空间域中一个的二维向量元素,即,表示256*256的三通道彩色图像,表示像素坐标,,,表示经二维离散余弦变换后得到的变换域矩阵,即频域特征图像,,。
10.作为本发明的一种优选技术方案:所述步骤b中的目标卷积神经网络包括输入层、sigmoid分类输出层、两个全连接层、两个随机失活层、三个池化层、三个卷积层,其中,256*256*1的输入层依次串联含有32个尺寸为3*3的卷积层、池化窗口为2*2的池化层、含有64个尺寸为3*3的卷积层、池化窗口为2*2的池化层、含有128个尺寸为3*3的卷积层、池化窗口为2*2的池化层、512个全连接层、概率为0.5的随机失活层、256个全连接层、概率为0.5的随机失活层、sigmoid分类输出层。
11.与上述相对应,本发明还要解决的技术问题是提供一种基于卷积神经网络的安卓恶意软件检测方法的系统,通过模块化的划分设计,分别执行方法中的各个步骤,能够对安卓恶意软件实现高效检测。
12.本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于卷积神经网络的安卓恶意软件检测方法的系统,包括获取模块、处理模块、可视化模块、训练模块、检测模块;其中,获取模块用于执行步骤a1中获得安卓软件压缩包中的classes.dex文件;处理模块用于执行步骤a1中获得classes.dex文件所对应的十六进制数据流,以及执行步骤a1至步骤a2针对十六进制数据流,执行n-gram处理;可视化模块用于执行步骤a3至步骤a4,获得安卓软件所对应的频域特征图像;训练模块用于执行步骤b获得恶意软件识别模型;检测模块用于执行步骤i针对目标安卓软件执行恶意检测。
13.本发明所述一种基于卷积神经网络的安卓恶意软件检测方法及系统,采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计一种基于卷积神经网络的安卓恶意软件检测方法及系统,采用全新逻辑设计,基于安卓软件中所提取的classes.dex文件,依次通过中间十六进制的转换、以及6-gram处理,获得安卓软件所对应的频域特征图像,由此基于已知属于正常标签或恶意标签的各安卓样本软件,结合安卓样本软件所对应频域特征图像,通过网络训练方式,获得恶意软件识别模型,进而在实际实施中,完成针对目标安卓软件的恶意检测,整个技术方案能够提高安卓恶意软件的检测精度,并有效提高检测效率。
附图说明
14.图1是本发明设计中基于卷积神经网络的安卓恶意软件检测方法的流程示意图;图2是本发明设计中目标卷积神经网络的结构示意图。
具体实施方式
15.下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
16.本发明所设计一种基于卷积神经网络的安卓恶意软件检测方法,实际应用当中,如图1所示,基于预设数量分别已知属于正常标签或恶意标签的各个安卓样本软件,按如下步骤a至步骤b,获得恶意软件识别模型。
17.步骤a. 分别针对各个安卓样本软件,执行如下步骤a1至步骤a4,获得各个安卓样本软件分别所对应的频域特征图像,然后进入步骤b。
18.步骤a1. 利用脚本工具调用系统命令对安卓样本软件进行解压缩,获得组成安卓样本软件的文件,并基于组成安卓样本软件的文件,识别获得安卓样本软件压缩包中的classes.dex文件,并基于classes.dex文件的二进制数据流形式,通数据进制转换,获得classes.dex文件所对应的十六进制数据流,然后进入步骤a2。
19.实际应用场景中,对于安卓系统的apk应用程序包,利用python编程语言中自带的unzip工具对apk进行解压缩,生成按照程序结构组织的各种文件,如androidmanifest.xml、resources.arsc文件等。通过分析程序结构,classes.dex文件大多位于解压后的文件夹的根目录,且文件的后缀名为唯一的dex,因此可以直接根据后缀名对classes.dex文件进行检索。
20.实际应用当中,上述步骤a1具体执行如下步骤a1-1至步骤a1-2。
21.步骤a1-1. 基于classes.dex文件的二进制数据流形式,以步长为4,顺序按每四位二进制数转化为一位十六进制数,获得所对应转换后的十六进制数据流,并进入步骤a1-2。
22.步骤a1-2. 判断该十六进制数据流的长度是否为6的倍数,是则该十六进制数据流即作为classes.dex文件所对应的十六进制数据流;否则针对该十六进制数据流,通过末尾最少位数补0的方式,获得长度为6的倍数的十六进制数据流,作为classes.dex文件所对应的十六进制数据流。
23.实际应用场景中,使用python脚本工具以二进制流的方式读取classes.dex文件,得到其比特流,再用自带的解码工具转化为十六进制数。例如比特流1010、0100、0011、0101、0000、0010,经过十六进制转换为a43502;接着,将十六进制数以六个为单位划为一组,即进行窗口为六、步长为六的6-gram处理,即可得到多组6位十六进制数。譬如十六进制流00a43502150306a1b0,经6-gram处理后即为00a435,021503和06a1b0。
24.步骤a2. 针对classes.dex文件所对应的十六进制数据流,执行n-gram处理,获得classes.dex文件所对应的各个gram分片,并进入步骤a3。
25.具体实施操作当中,步骤a2中,应用滑动步长为6、窗口长度为6的滑动窗口,将classes.dex文件所对应的十六进制数据流进行划分,获得各个长度为6的gram分片,即classes.dex文件所对应的各个gram分片。
26.步骤a3. 根据classes.dex文件所对应的各个gram分片,获得classes.dex文件所对应的三通道彩色图像,然后进入步骤a4。
27.上述步骤a3在实际应用当中,具体执行如下步骤a3-1至步骤a3-4。
28.步骤a3-1. 初始化256*256*3、像素值均为0的三通道基础图像,并进入步骤a3-2。
29.步骤a3-2. 分别针对classes.dex文件所对应的各个gram分片,顺序选择第一个
十六进制数与第二个十六进制数组合所对应的十进制数,构成gram分片所对应第一个像素点的横坐标,以及顺序选择第三个十六进制数与第四个十六进制数组合所对应的十进制数,构成该gram分片所对应第一个像素点的纵坐标。
30.并且顺序选择第三个十六进制数与第四个十六进制数组合所对应的十进制数,构成该gram分片所对应第二个像素点的横坐标,以及顺序选择第五个十六进制数与第六个十六进制数组合所对应的十进制数,构成该gram分片所对应第二个像素点的纵坐标。
31.即获得该gram分片所对应两个像素点的坐标,进而获得各gram分片分别所对应两个像素点的坐标,然后进入步骤a3-3。
32.步骤a3-3. 分别针对classes.dex文件所对应的各个gram分片,以步长为2,顺序选择gram分片中每两位十六进制数转化为一位十进制数,获得三个十进制数,分别对应各颜色通道的颜色值,构成该gram分片所对应两个像素点的像素值,进而获得各gram分片分别所对应两个像素点的像素值,然后进入步骤a3-4。
33.实际应用中,诸如关于rgb三通道颜色空间,前两个十六进制数化为十进制数,作为red通道的颜色值,第三个和第四个十六进制数化为十进制数,作为green通道的颜色值,最后两个十六进制数化为十进制数,作为blue通道的颜色值。
34.步骤a3-4. 将各gram分片分别所对应的两个像素点,按其坐标、像素值,置于三通道基础图像中,构成classes.dex文件所对应的三通道彩色图像,其中,若三通道基础图像中像素位置上若存在至少两个来自gram分片的像素点,则将该各像素点的像素值进行累加,并对应于该像素位置,且若像素值累加大于255时,则定义该像素位置对应像素值即为255。
35.实际应用中,譬如gram分片00a435,生成像素值三通道为(0,164,53),和两个坐标点(0,164),(164,53)。
36.步骤a4. 针对classes.dex文件所对应的三通道彩色图像,按二维离散余弦变换公式如下:执行频域变换映射处理,获得该三通道彩色图像所对应的频域特征图像,即该安卓样本软件所对应的频域特征图像,其中,表示空间域中一个的二维向量元素,即,表示256*256的三通道彩色图像,表示像素坐标,,,表示经二维离散余弦变换后得到的变换域矩阵,即频域特征图像,,。
37.在进行离散余弦变换时,三通道被合并为一通道(即彩色图片被转化为灰度图片),然后再进行二维离散余弦变换。
38.步骤b. 基于各个安卓样本软件,以安卓样本软件所对应频域特征图像为输入,安卓样本软件属于正常标签或恶意标签为输出,针对目标卷积神经网络进行训练,获得恶意
软件识别模型。
39.这里的目标卷积神经网络在实际应用当中,如图2所示,具体设计包括输入层、sigmoid分类输出层、两个全连接层、两个随机失活层、三个池化层、三个卷积层,其中,256*256*1的输入层依次串联含有32个尺寸为3*3的卷积层、池化窗口为2*2的池化层、含有64个尺寸为3*3的卷积层、池化窗口为2*2的池化层、含有128个尺寸为3*3的卷积层、池化窗口为2*2的池化层、512个全连接层、概率为0.5的随机失活层、256个全连接层、概率为0.5的随机失活层、sigmoid分类输出层。
40.基于上述步骤a至步骤b关于恶意软件识别模型的获得,接下来如图1所示,应用恶意软件识别模型,执行步骤i,针对目标安卓软件执行恶意检测。
41.步骤i. 按步骤a1至步骤a4的方式,获得目标安卓软件所对应的频域特征图像,并应用恶意软件识别模型,获得目标安卓软件所属的正常标签或恶意标签,即实现对目标安卓软件进行恶意检测。
42.关于上述所设计基于卷积神经网络的安卓恶意软件检测方法,进一步设计实现此方法的系统,应用中,包括获取模块、处理模块、可视化模块、训练模块、检测模块;其中,获取模块用于执行步骤a1中获得安卓软件压缩包中的classes.dex文件;处理模块用于执行步骤a1中获得classes.dex文件所对应的十六进制数据流,以及执行步骤a1至步骤a2针对十六进制数据流,执行n-gram处理;可视化模块用于执行步骤a3至步骤a4,获得安卓软件所对应的频域特征图像;训练模块用于执行步骤b获得恶意软件识别模型;检测模块用于执行步骤i针对目标安卓软件执行恶意检测。
43.将本发明所设计基于卷积神经网络的安卓恶意软件检测方法应用于实际当中,从硬件角度出发,具体包括:处理器、存储器、输入/输出接口、通信接口和总线 ;其中处理器、存储器、输入/输出接口、通信接口通过总线实现彼此之间在设备内部的通信连接。
44.处理器可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明所设计基于卷积神经网络的安卓恶意软件检测方法。
45.存储器可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行。
46.输入/输出接口用于连接输入/输出模块,以实现信息输入及输出。输入输出/ 模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
47.通信接口用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式 (例如移动网络、wifi、蓝牙等)实现通信。
48.总线包括一通路,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息。
49.实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
50.上述技术方案所设计一种基于卷积神经网络的安卓恶意软件检测方法及系统,采用全新逻辑设计,基于安卓软件中所提取的classes.dex文件,依次通过中间十六进制的转换、以及6-gram处理,获得安卓软件所对应的频域特征图像,由此基于已知属于正常标签或恶意标签的各安卓样本软件,结合安卓样本软件所对应频域特征图像,通过网络训练方式,获得恶意软件识别模型,进而在实际实施中,完成针对目标安卓软件的恶意检测,整个技术方案能够提高安卓恶意软件的检测精度,并有效提高检测效率。
51.上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献