首页> 中国专利> 一种基于深度学习的木马家族分类方法和系统

一种基于深度学习的木马家族分类方法和系统

摘要

本发明提供一种基于深度学习的木马家族分类方法和系统,通过将木马的代码转换为灰度图像,并且为了克服灰度图像的精确度缺陷,在灰度图像的基础上,补充了一个木马的特征值的维度,更加突显某些木马家族的特征,把木马的分类问题转换为图像的分类问题,从而借助深度学习在图像分类上的优势,解决已知检测手段跟不上木马的迭代速度的问题。

著录项

  • 公开/公告号CN115114625A

    专利类型发明专利

  • 公开/公告日2022-09-27

    原文格式PDF

  • 申请/专利权人 北京国瑞数智技术有限公司;

    申请/专利号CN202210892620.5

  • 发明设计人 周瑞红;刘玉佳;侯小超;

    申请日2022-07-27

  • 分类号G06F21/56(2013.01);G06V10/764(2022.01);G06V10/80(2022.01);G06V10/82(2022.01);G06T3/40(2006.01);G06N3/04(2006.01);G06N3/08(2006.01);

  • 代理机构北京秉文同创知识产权代理事务所(普通合伙) 11859;北京秉文同创知识产权代理事务所(普通合伙) 11859;

  • 代理人孙富利;张文武

  • 地址 100032 北京市西城区阜成门外大街31号6层607A

  • 入库时间 2023-06-19 17:09:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-10-18

    实质审查的生效 IPC(主分类):G06F21/56 专利申请号:2022108926205 申请日:20220727

    实质审查的生效

  • 2022-09-27

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及网络安全技术领域,尤其涉及一种基于深度学习的木马家族分类方法和系统。

背景技术

随着网络的飞速发展,恶意软件的数量呈指数级增长,恶意代码已经成为当今网络的主要威胁。恶意代码,以下以木马为例,通常都有一个演化的过程,会衍生和迭代出很多不同的版本,这些不同版本的木马往往具有一定的相关性,可以将它们归为一个木马家族。

由于已知检测手段跟不上木马的迭代速度,需要能够根据木马家族特点溯源和归纳出针对整个木马家族的通用性防护措施。

同时,随着机器学习的快速发展,深度学习技术将会在特征溯源和归纳中发挥不可替代的作用,能够快速、准确地处理海量数据。

因此,急需一种针对性的基于深度学习的木马家族分类方法和系统。

发明内容

本发明的目的在于提供一种基于深度学习的木马家族分类方法和系统,将木马的代码转换为图像,把木马的分类问题转换为图像的分类问题,从而借助深度学习在图像分类上的优势,解决已知检测手段跟不上木马的迭代速度的问题。

第一方面,本申请提供一种基于深度学习的木马家族分类方法,所述方法包括:

接收外部装置送入的木马,提取该木马的二进制代码和特征值,将所述二进制代码编码映射为第一一维向量,将所述特征值向量化为第二一维向量,每个向量值的范围限定在0-255之间;

根据木马文件的大小设定木马图像的宽度,创建一个二维数组矩阵,所述木马图像的宽度作为该二维数组矩阵的列数;

将所述第一一维向量的向量值逐个写入所述二维数组矩阵中,再将所述第二一维向量的向量值逐个接着写入所述二维数组矩阵中,将所述二维数组矩阵的每一个点作为一个灰度像素点,得到对应的所述木马图像;

按照服务器的分类器所需的宽度,将所述木马图像进行统一预处理,当该木马图像的宽度不满足分类器所需的宽度时,采用图像插值算法,对木马图像进行图像缩放处理,得到待分类木马图像,送入服务器的分类器;

所述分类器采用神经网络,接收输入的所述待分类木马图像,并且使用若干神经元组成双向隐藏层,所述神经元分为两组,一组为前向反馈线路,另一组为反向反馈线路,由此形成双向线路,每个反馈线路中的当前神经元接收上一个神经元传递来的隐藏层信息,以及接收所述上一个神经元相邻的邻居神经元传递来的状态信息,输出当前时刻的隐藏层信息和当前神经元更新后的状态信息,输出至所述时序特征模块的累加单元进行元素对位相加;

提取神经网络的全连接中间层输出作为所述待分类木马图像的新特征,根据该新特征进行分类,根据所述分类的结果确定出所述待分类木马图像对应的木马家族,向外部装置下发该木马家族对应的通用性防护措施。

第二方面,本申请提供一种基于深度学习的木马家族分类系统,所述系统包括:

提取单元,用于接收外部装置送入的木马,提取该木马的二进制代码和特征值,将所述二进制代码编码映射为第一一维向量,将所述特征值向量化为第二一维向量,每个向量值的范围限定在0-255之间;

图像化单元,用于根据木马文件的大小设定木马图像的宽度,创建一个二维数组矩阵,所述木马图像的宽度作为该二维数组矩阵的列数;将所述第一一维向量的向量值逐个写入所述二维数组矩阵中,再将所述第二一维向量的向量值逐个接着写入所述二维数组矩阵中,将所述二维数组矩阵的每一个点作为一个灰度像素点,得到对应的所述木马图像;

预处理单元,用于按照服务器的分类器所需的宽度,将所述木马图像进行统一预处理,当该木马图像的宽度不满足分类器所需的宽度时,采用图像插值算法,对木马图像进行图像缩放处理,得到待分类木马图像,送入服务器的分类器;

分类器,位于服务器并采用神经网络,用于接收输入的所述待分类木马图像,并且使用若干神经元组成双向隐藏层,所述神经元分为两组,一组为前向反馈线路,另一组为反向反馈线路,由此形成双向线路,每个反馈线路中的当前神经元接收上一个神经元传递来的隐藏层信息,以及接收所述上一个神经元相邻的邻居神经元传递来的状态信息,输出当前时刻的隐藏层信息和当前神经元更新后的状态信息,输出至所述时序特征模块的累加单元进行元素对位相加;提取神经网络的全连接中间层输出作为所述待分类木马图像的新特征,根据该新特征进行分类;

执行单元,用于根据所述分类的结果确定出所述待分类木马图像对应的木马家族,向外部装置下发该木马家族对应的通用性防护措施。

第三方面,本申请提供一种基于深度学习的木马家族分类系统,所述系统包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行第一方面四种可能中任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面四种可能中任一项所述的方法。

有益效果

本发明提供一种基于深度学习的木马家族分类方法和系统,通过将木马的代码转换为灰度图像,并且为了克服灰度图像的精确度缺陷,在灰度图像的基础上,补充了一个木马的特征值的维度,更加突显某些木马家族的特征,把木马的分类问题转换为图像的分类问题,从而借助深度学习在图像分类上的优势,解决已知检测手段跟不上木马的迭代速度的问题。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于深度学习的木马家族分类方法的大致流程图;

图2为本发明基于深度学习的木马家族分类系统的架构图。

具体实施方式

下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

同一木马家族的图像纹理具有相似性,不同木马家族的图像纹理具有一定的区别,木马代码图像化可以呈现木马的整体结构和特征,无需传统的反向分析木马操作。

但是在某些场景中,木马代码图像化后进行检测,可能准确度不够高,常见的改进方法是采用转换为彩色图像。

而本发明创造性地在灰度图像的基础上,补充了一个维度:木马的特征值。将提取的木马特征值向量化为一个一维向量,也写入到二维数组矩阵中,进而使得木马图像中也携带有木马特征值,可以进一步突显某些木马家族的特征。

图1为本申请提供的基于深度学习的木马家族分类方法的大致流程图,所述方法包括:

接收外部装置送入的木马,提取该木马的二进制代码和特征值,将所述二进制代码编码映射为第一一维向量,将所述特征值向量化为第二一维向量,每个向量值的范围限定在0-255之间;

根据木马文件的大小设定木马图像的宽度,创建一个二维数组矩阵,所述木马图像的宽度作为该二维数组矩阵的列数;

将所述第一一维向量的向量值逐个写入所述二维数组矩阵中,再将所述第二一维向量的向量值逐个接着写入所述二维数组矩阵中,将所述二维数组矩阵的每一个点作为一个灰度像素点,得到对应的所述木马图像;

上述第二一维向量的向量值逐个接着写入所述二维数组矩阵中,就是在第一一维向量写入二维数组矩阵后,紧接着后面继续写入第二一维向量的向量值。

如果第一一维向量和第二一维向量写完后,二维数组矩阵还存在未满的行时,则写入“0”,直到该行被填满。

按照服务器的分类器所需的宽度,将所述木马图像进行统一预处理,当该木马图像的宽度不满足分类器所需的宽度时,采用图像插值算法,对木马图像进行图像缩放处理,得到待分类木马图像,送入服务器的分类器;

所述分类器采用神经网络,接收输入的所述待分类木马图像,并且使用若干神经元组成双向隐藏层,所述神经元分为两组,一组为前向反馈线路,另一组为反向反馈线路,由此形成双向线路,每个反馈线路中的当前神经元接收上一个神经元传递来的隐藏层信息,以及接收所述上一个神经元相邻的邻居神经元传递来的状态信息,输出当前时刻的隐藏层信息和当前神经元更新后的状态信息,输出至所述时序特征模块的累加单元进行元素对位相加;

提取神经网络的全连接中间层输出作为所述待分类木马图像的新特征,根据该新特征进行分类,根据所述分类的结果确定出所述待分类木马图像对应的木马家族,向外部装置下发该木马家族对应的通用性防护措施。

所述分类包括进行n轮抽取,得到n个训练集,使用抽取的n个训练集由列采样随机使用指定量特征值训练得到n棵决策树,所述n棵决策树按照投票的方式得到分类结果。

在一些优选实施例中,所述采用图像插值算法包括:最近邻插值算法、双线性插值算法和双三次插值算法。

在木马中常常存在加壳,加壳是指木马为了防止被修改或反向分析,在木马代码中添加一段保护程序。

在一些优选实施例中,所述提取该木马的二进制代码和特征值之前,还包括侦测出该木马代码的加壳类型和签名,针对不同的加壳木马代码进行脱壳处理。

在一些优选实施例中,所述分类包括多次抽取,创建多棵决策树,将每棵决策树的输出结果进行加权累加投票。

图2为本申请提供的基于深度学习的木马家族分类系统的架构图,所述系统包括:

提取单元,用于接收外部装置送入的木马,提取该木马的二进制代码和特征值,将所述二进制代码编码映射为第一一维向量,将所述特征值向量化为第二一维向量,每个向量值的范围限定在0-255之间;

图像化单元,用于根据木马文件的大小设定木马图像的宽度,创建一个二维数组矩阵,所述木马图像的宽度作为该二维数组矩阵的列数;将所述第一一维向量的向量值逐个写入所述二维数组矩阵中,再将所述第二一维向量的向量值逐个接着写入所述二维数组矩阵中,将所述二维数组矩阵的每一个点作为一个灰度像素点,得到对应的所述木马图像;

预处理单元,用于按照服务器的分类器所需的宽度,将所述木马图像进行统一预处理,当该木马图像的宽度不满足分类器所需的宽度时,采用图像插值算法,对木马图像进行图像缩放处理,得到待分类木马图像,送入服务器的分类器;

分类器,位于服务器并采用神经网络,用于接收输入的所述待分类木马图像,并且使用若干神经元组成双向隐藏层,所述神经元分为两组,一组为前向反馈线路,另一组为反向反馈线路,由此形成双向线路,每个反馈线路中的当前神经元接收上一个神经元传递来的隐藏层信息,以及接收所述上一个神经元相邻的邻居神经元传递来的状态信息,输出当前时刻的隐藏层信息和当前神经元更新后的状态信息,输出至所述时序特征模块的累加单元进行元素对位相加;提取神经网络的全连接中间层输出作为所述待分类木马图像的新特征,根据该新特征进行分类;

执行单元,用于根据所述分类的结果确定出所述待分类木马图像对应的木马家族,向外部装置下发该木马家族对应的通用性防护措施。

本申请提供一种基于深度学习的木马家族分类系统,所述系统包括:所述系统包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行第一方面所有实施例中任一项所述的方法。

本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所有实施例中任一项所述的方法。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可以存储有程序,该程序执行时可包括本发明各个实施例中的部分或全部步骤。所述的存储介质可以为磁碟、光盘、只读存储记忆体(简称:ROM)或随机存储记忆体(简称:RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号