一种恶意软件检测、分类模型生成方法及装置与流程

文档序号:21409361发布日期:2020-07-07 14:44阅读:213来源:国知局
一种恶意软件检测、分类模型生成方法及装置与流程

本发明实施例涉及互联网计算机安全防护领域,尤其涉及一种恶意软件检测、分类模型生成方法及装置。



背景技术:

近年来,随着移动互联网技术的快速发展,特别是智能手机、平板电脑、计算机等电子设备的普及,各类软件应运而生。例如,随着安卓手机的普及,涌现出了各种各样功能的apk(androidpackage,安卓安装包),即安卓终端上安装的软件。但是,很多不法分子可以通过恶意软件对用户进行如窃取用户个人隐私信息、下载和执行诸如病毒、木马、蠕虫等恶意程序等网络攻击行为,这些网络攻击行为会对用户个人隐私信息和用户财产造成极大的危害。

目前,主要是通过字符串特征码和人工规则的启发式来检测恶意软件,但是,这种检测恶意软件的方式严重依赖于分析师的能力,需要分析师针对已有软件样本进行人工分析,找出相应的特征,误检率非常高,而且检测的效率也比较低。



技术实现要素:

有鉴于此,本发明实施例提供一种恶意软件检测、分类模型生成方法及装置,通过预先经深度学习生成的分类模型对软件的图标和/或用于下载软件的url(uniformresourcelocator,统一资源定位符)进行检测,能够快速准确地检测出恶意软件,使用起来十分方便。

为解决上述技术问题,本发明实施例提供如下技术方案:

第一方面,本发明实施例提供一种恶意软件检测方法,所述方法包括:获取未知软件的图像数据,其中,所述图像数据包括所述未知软件的软件图标和用于下载所述未知软件的统一资源定位符url的特征图像中的至少一个;通过预先经深度学习生成的分类模型对所述图像数据进行检测,得到所述未知软件对应的检测值;根据所述检测值,确定所述未知软件为恶意软件或非恶意软件。

第二方面,本发明实施例提供一种分类模型生成方法,所述方法包括:获取海量软件的软件图标和海量用于下载软件的url;对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;基于获取到的海量url,生成特征图像样本集;使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型,其中,所述分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

第三方面,本发明实施例提供一种恶意软件检测装置,所述装置包括:第一获取单元,用于获取未知软件的图像数据,其中,所述图像数据包括所述未知软件的软件图标和用于下载所述未知软件的统一资源定位符url的特征图像中的至少一个;检测单元,用于通过预先经深度学习生成的分类模型对所述图像数据进行检测,得到所述未知软件对应的检测值;确定单元,用于根据所述检测值,确定所述未知软件为恶意软件或非恶意软件。

第四方面,本发明实施例提供一种分类模型生成装置,所述装置包括:第一获取单元,用于获取海量软件的软件图标和海量用于下载软件的url;第一生成单元,用于对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;第二生成单元,用于基于获取到的海量url,生成特征图像样本集;第三生成单元,用于使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型,其中,所述分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

第五方面,本发明实施例提供一种计算机可读存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述方法的步骤。

第六方面,本发明实施例提供一种电子设备,所述电子设备包括:至少一个处理器;以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述方法的步骤。

本发明实施例提供的恶意软件检测、分类模型生成方法及装置,在获取到未知软件的图像数据后,其中,图像数据包括未知软件的软件图标和用于下载未知软件的url的特征图像中的至少一个,可以通过预先经深度学习生成的分类模型来对图像数据进行检测,来实现检测未知软件是否为恶意软件。由于用于识别恶意软件的分类模型是预先对海量软件图标和海量用于下载软件的url的特征图像进行深度学习所生成的,可以发现恶意软件的内在规律,那么,通过该分类模型来检测软件图标和url实现检测恶意软件时,不但能够提到对恶意软件的检测准确度,而且还可以提高对恶意软件的检测效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例中的分类模型生成方法的流程示意图;

图2为本发明实施例中的恶意软件检测方法的流程示意图;

图3为本发明实施例中的恶意软件检测装置的结构示意图;

图4为本发明实施例中的分类模型生成装置的结构示意图;

图5为本发明实施例中的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明实施例提供一种分类模型生成方法,使用深度学习(deeplearning)技术,通过对海量软件的软件图标和海量用于下载软件的url的特征图像进行深度学习,得到用于识别恶意软件的分类模型。该方法可以应用于各种需要通过软件图标和url来检测软件是否为恶意软件的场合。

图1为本发明实施例中的分类模型生成方法的流程示意图,参见图1所示,该分类模型生成方法可以包括:

s101:获取海量软件的软件图标和海量用于下载软件的url;

举例来说,为了生成训练分类模型时所需的图标样本数据和url样本数据,可以先从恶意软件检测中心或360互联网安全中心等专业平台中提取历史非恶意软件对应的软件图标以及历史恶意软件对应的软件图标,这样,就获取到了海量软件图标;而且还可以通过网络爬虫,从预设的安全网站中爬取海量的非恶意的url,并从预设的能够提供钓鱼网站的url、木马病毒的url等专业网站中爬取海量的恶意url。

在实际应用中,根据软件的运行平台的不同,上述软件可以是指安卓软件,即apk,也可以是指计算机软件,当然还可以为其它类型的软件,这里,本发明实施例不做具体限定。

s102:对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;

在实际应用中,由于深度学习模型只能对固定大小的图像进行训练,因此,在获取到海量url后,为了能够使用深度学习技术来训练出图标分类模型,上述步骤s102可以包括:对获取到的海量url进行标注,得到正软件图标样本集和负软件图标样本集;分别将正url样本集和负url样本集中各个软件图标缩放到预设尺寸,得到缩放后的正url样本集和缩放后的负url样本集;将缩放后的正url样本集和缩放后的负url样本集确定为软件图标样本集。

这里,上述正软件图标样本是指非恶意的正常软件图标,而上述负软件图标样本是指恶意的软件图标,例如带有涉黄、涉赌等恶意引诱信息的软件图标、或者带有低俗信息的软件图标等。

s103:基于获取到的海量url,生成特征图像样本集;

具体来说,为了训练出检测效果更好的url分类模型,可以不直接使用海量url本身来训练,而是将各个url转化成各自对应特征图像,得到更具有代表性的特征图像样本集,以便使用该特征图像样本集来训练出用于检测恶意url的url分类模型。

在具体实施过程中,上述s103可以包括以下步骤a1~a3:

步骤a1:对获取到的海量url进行预处理,生成url样本集;

步骤a2:将url样本集输入到预先生成的用于将url进行向量化表示的字符向量表示模型中,得到向量化表示的url样本集;

步骤a3:分别将向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到特征图像样本集。

具体来说,在获取到海量url后,为了能够使用深度学习技术来训练url分类模型,需要先对获取到的海量url进行标注,得到正url样本集和负url样本集,接下来,分别将正url样本集和负url样本集输入到预先生成的字符向量表示模型中,得到向量化表示的正url样本集和向量化表示的负url样本集,最后,可以分别将向量化表示的正url样本集和向量化表示的负url样本集中的各个向量化表示的url转化为特征图像,得到正特征图像样本集和负特征图像样本集,这样,得到了用于训练url分类模型的样本数据。

这里,上述正url样本是指非恶意的url,而上述负url样本是指恶意的url,如指向钓鱼网站、木马、病毒的url。

在本发明另一实施例中,为了生成准确率更高的url分类模型,在标注出正、负样本后,还需要去除样本数据中的无效字符以及将样本数据标准化,那么,上述步骤a1可以包括:对获取到的海量url进行标注,得到正url样本集和负url样本集;分别对正url样本集和负url样本集中的各个url进行清洗处理,得到清洗后的正url样本集和负url样本集;按照预设url长度,分别对清洗后的正url样本集和负url样本集中各个清洗后的url进行标准化处理,得到标准化后的正url样本集和负url样本集。接下来,上述步骤a2就可以包括:分别将标准化后的正url样本集和负url样本集输入到预先生成的字符向量表示模型中,得到向量化表示的正url样本集和向量化表示的负url样本集。从而,上述步骤a3就可以包括:分别将向量化表示的正url样本集和向量化表示的负url样本集中的各个向量化表示的url转化为特征图像,得到特征图像样本集。

在实际应用中,由于深度学习模型只接受固定大小的图像,因此,为了生成满足条件的特征图像,预先设定url最大长度为n,对于长度小于n的url样本,使用预设字符,如0进行填充,而对于长度大于n的url样本做截断处理,去除url样本中大于n那部分字符。

举例来说,将一个长度为n的url样本输入到预先生成的字符向量标识模型中,就可以得到一个n*k的向量矩阵,即向量化表示的url,其中,向量矩阵中的第i行即为url样本中的第i个字符的向量表示,其中,i={1,…,n};接下来,再给这个向量矩阵乘以255,即可将向量化表示的url转化为特征图像。

在本发明另一实施例中,为了能够将url进行向量化表示,还需要先生成用于将url进行向量化表示的字符向量表示模型,那么,作为示例,在具体实施过程中,上述方法还可以包括:获取海量url日志数据;对获取到的海量url日志数据进行处理,得到url训练语料集;使用深度学习工具包word2vec对url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

s104:使用不同的深度学习算法对软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型。

其中,分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

在实际应用中,上述深度学习算法可以为诸如alexnet、vggnet、googlenet、resnet等卷积神经网络(convolutionalneuralnetwork,cnn)算法,也可以为rnn(recurrentneuralnetwork,循环神经网络),当然,还可以为其它能够基于图像样本数据生成图像分类器的深度学习算法。这里,本发明实施例不做具体限定。

此外,在训练url分类模型时,可以使用一种深度学习算法,例如使用alexnet、vggnet、googlenet、resnet中的任意一种,当然,为了综合考虑不同深度学习算法模型的特征提取性能,也可以使用多种深度学习算法,例如使用alexnet、vggnet、googlenet、resnet中的多种。同理,在训练图标分类模型时,也可以使用一种或多种深度学习算法。

在实际应用中,为了提高检测的准确率,训练图标分类模型所采用的深度学习算法与训练url分类模型所采用的深度学习算法可以不相同。

首先,以使用alexnet、vggnet和googlenet这三种神经网络模型为例,对如何基于由url样本集得到的特征图像样本集来训练url分类模型进行说明。

step1:获取特征图像样本集;

step2:为了综合考虑不同网络模型的特征提取性能,分别使用alexnet、googlenet和vggnet这三种cnn网络模型,对特征图像样本集进行训练,得到alexnet分类模型、googlenet分类模型和vggnet分类模型;

step3:为了达到优化模型的目的,分别将alexnet分类模型和vggnet分类模型中倒数第二个全连接层(fullyconnectedlayer,fc层)取出来,同时重新连接一个共同的新全连接层,得到alex-vggnet融合网络模型;

作为示例,在将alexnet分类模型和vggnet分类模型融合得到alex-vggnet融合网络模型的过程中,需要制作alex-vggnet融合网络模型的网络定义,当alexnet分类模型和vggnet分类模型这两个模型中的层名相同时,就需要加以区分,比如alexnet分类模型和vggnet分类模型中均有全连接层fc7,此时,就可以在alex-vggnet融合网络模型的网络定义中将alexnet分类模型的全连接层fc7命名为alexnet/fc7,并将vggnet分类模型中全连接层fc7命名为vgg/fc7。与此同时,为了在融合的时候只需训练融合的全连接层,即重新连接的共同的全连接层,可以将每层的学习率都置为0,而将融合后的最后一层全连接层fc8可适当地增大学习率,这样,能够加快机器学习的过程。

step4:使用alex-vggnet融合网络模型,对特征图像样本集重新训练,得到alex-vggnet融合分类模型。

作为示例,在得到alex-vggnet融合网络模型后,可以分别获取训练好的alexnet分类模型的权重和vggnet分类模型的权重,然后根据alexnet分类模型的权重和vggnet分类模型的权重生成alex-vggnet融合网络模型的权重,然后,基于所生成的alex-vggnet融合网络模型的权重,使用特征图像样本集在alex-vggnet融合网络模型中继续进行微调训练,这样,就得到了融合后的url分类模型,即alex-vggnet融合分类模型,从而,能够达到优化模型的目的。

这样,就通过对特征图像样本集进行深度学习生成了url分类模型,其中,url分类模型包括:alexnet分类模型、googlenet分类模型、vggnet分类模型以及alex-vggnet融合分类模型,从而,能够综合考虑不同网络模型的特征提取性能,提高url分类模型的检测准确率。

具体来说,在通过分类模型检测恶意软件的过程中,为了能够使用url分类模型对用于下载未知软件的url的特征图像进行检测,得到未知软件对应的url检测值。还需要分别为alexnet分类模型、googlenet分类模型、vggnet分类模型以及alex-vggnet融合分类模型设置各自对应的权重,以调解不同模型输出的检测值之间的重要程度。

在实际应用中,在设置上述权重时,可以由本领域技术人员根据经验来设置,也可以由本领域技术人员根据这四个模型在测试url集对应的特征图像集上各自单独的准确率来设定,比如,准确率高的模型权重较高,而准确率低的模型则设置较小的权重。这里,本发明实施例不做具体限定。

其次,以使用yahoo涉黄模型为例,对如何基于软件图标样本集来训练图标分类模型和进行说明。

step1:获取软件图标样本集;

这里,软件图标样本集包括:正软件图标样本集和负软件图标样本集,其中,正软件图标样本集即非恶意软件图标的数据集,负软件图标样本集即恶意软件图标的数据集。

step2:计算软件图标样本集的图像均值文件;

step3:获取yahoo涉黄模型;

这里,yahoo涉黄模型(也称为open_nsfw或opennsfw),该yahoo涉黄模型中所使用的网络结构是基于resnet50深度残差网络。

step4:选定yahoo网络模型文件并修改分类层的学习率等参数,调整网络训练策略solver文件参数;

step5:加载yahoo涉黄模型对软件图标样本集进行训练,得到图标分类模型。

这样,就可以在yahoo涉黄模型的基础上使用软件图标样本集进行微调(也可称为fine-tuning)训练来得到所需的图标分类模型,从而,能够加快机器学习的过程,达到快速训练模型的目的。此外,当软件图标样本集中数据量较少时,也能够训练出准确率高的图标分类模型。

至此,便完成了生成分类模型的过程。

由上述内容可知,本发明实施例所提供的分类模型生成方法,使用深度学习技术,通过对海量软件的软件图标和海量用于下载软件的url的特征图像进行深度学习,得到用于识别恶意软件的分类模型。由于在基于对海量软件图标和海量url的特征图像进行深度学习的基础上,可以发现恶意软件的内在规律,那么,通过该分类模型来检测恶意软件时,不但能够提到对恶意软件的检测准确度,而且还可以提高对恶意软件的检测效率。

下面结合上述经深度学习生成的分类模型,对本发明实施例所提供的检测恶意软件的方法进行说明。

基于同一发明构思,本发明实施例提供一种恶意软件检测方法,在实际应用中,该方法可以由恶意软件检测装置来执行,该装置可以通过硬件和/或软件的方式实现,并可以内置或外接于如计算机、智能手机、平板电脑等电子设备中。

那么,图2为本发明实施例中的恶意软件检测方法的流程示意图,参见图2所示,该恶意软件检测方法可以包括:

s201:获取未知软件的图像数据;

其中,图像数据包括未知软件的软件图标和用于下载未知软件的url的特征图像中的至少一个。

在具体实施过程中,根据所需获取的未知软件的图像数据的类型的不同,上述步骤s201可以采用但不局限于以下方法来实现。

第一种情况,当可以获取到未知软件的软件图标时,为了提高检测的检测速度,所需获取的图像数据就可以只包括软件图标,此时,在具体实施过程中,上述s201可以包括:获取未知软件的安装包;对安装包进行解析,从安装包中获取软件图标。

第二种情况,当可以获取到用于下载未知软件的url时,为了提高检测的检测速度,所需获取的图像数据可以只包括该url的特征图像,此时,在具体实施过程中,上述s201可以包括:获取用于下载未知软件的url;将url输入到预先生成的用于将url进行向量化表示的字符向量表示模型中进行处理,得到向量化表示的url;将向量化表示的url进行图像化处理,得到特征图像。

第三种情况,当可以同时获取到未知软件的软件图标和用于下载未知软件的url时,为了提高检测的准确率,所需获取的图像数据可以同时包括软件图标和该url的特征图像,此时,在具体实施过程中,上述s201可以包括:获取用于下载未知软件的url;将url输入到预先生成的用于将url进行向量化表示的字符向量表示模型中进行处理,得到向量化表示的url;将向量化表示的url进行图像化处理,得到特征图像;获取未知软件的安装包;对安装包进行解析,从安装包中获取软件图标。

s202:通过预先经深度学习生成的分类模型对图像数据进行检测,得到未知软件对应的检测值;

这里,预先经深度学习生成的分类模型用于检测恶意软件,该分类模型可以包括:用于检测url的特征图像的url分类模型以及用于检测软件图标的图标分类模型,其中,url分类模型是预先使用深度学习算法对海量url的特征图像进行深度学习所得到的,而图标分类模型是预先使用深度学习算法对海量软件图标进行深度学习所得到的。

在实际应用中,为了提高检测准确率,分类模型中的url分类模型可以由多个子url分类模型实现,例如,url分类模型可以是由alexnet分类模型、googlenet分类模型、vggnet分类模型以及alex-vggnet融合分类模型这四个子url分类模型来实现的。同理,分类模型中的图标分类模型也可以由多个子图标分类模型实现,这里,本发明实施例不做具体限定。

在具体实施过程中,根据所需获取的未知软件的图像数据的类型的不同,上述步骤s201可以采用但不局限于以下方法来实现。

第一种情况,为了提高检测的检测速度,所需获取的图像数据只包括未知软件的软件图标,此时,在具体实施过程中,上述s202可以包括:将软件图标输入到图标分类模型中进行检测,得到未知软件对应的图标检测值。

第二种情况,为了提高检测的检测速度,所需获取的图像数据只包括用于下载未知软件的url的特征图像,此时,在具体实施过程中,上述s202可以包括:将特征图像输入到url分类模型中进行检测,得到未知软件对应的url检测值。

第三种情况,为了提高检测的准确率,所需获取的图像数据同时包括软件图标和该url的特征图像,此时,在具体实施过程中,上述s202可以包括:将特征图像输入到url分类模型中进行检测,得到未知软件对应的url检测值;将软件图标输入到图标分类模型中进行检测,得到未知软件对应的图标检测值。

在具体实施过程中,当url分类模型是通过多个子url分类模型来实现的时,则将未知软件对应的待检测的url的特征图像输入到url分类模型中进行检测,得到url分类模型所输出的url检测值的步骤具体就可以包括:分别将特征图像输入到多个子url分类模型中,得到多个子url检测值;基于多个子url检测值,计算出最终的url检测值,并输出。

同理,当图标分类模型是通过多个子图标模型来实现的时,则将待检测的未知软件的软件图标输入到图标分类模型中进行检测,得到未知软件对应的图标检测值步骤可以包括:分别将软件图标输入到多个子图标分类模型中,得到多个子图标检测值;基于多个子图标检测值,计算出最终的图标检测值,并输出。

在实际应用中,当由多个子检测值来计算最终的检测值时,可以采用直接平均法来实现,即将多个子检测值的平均值作为最终的检测值,也可以采用加权平均法,即将多个子检测值的加权平均值作为最终的检测值,也就是说,在直接平均法基础上加入多个子模型各自对应的权重来调节不同子模型输出的测试值的重要程度。当然,还可以采用其它方法,这里,本发明实施例不做具体限定。

举例来说,以url分类模型包括多个子url分类模型为例,当采用加权平均法来实现时,上述基于多个子url检测值,计算出最终的url检测值的步骤可以包括:通过预设的与多个子url分类模型一一对应的多个权重,对多个子url检测值进行加权平均计算,得到加权平均值;将该加权平均值确定为未知软件对应的url检测值。

在具体实施过程中,为了能够通过分类模型得到所需的未知软件的测试值,在获取到未知软件的图像数据后,可以先判断获取到的图像数据的尺寸是否为预设尺寸,若是,则直接将图像数据输入到分类模型中进行检测,得到未知软件对应的检测值;若否,则将图像数据缩放到预设尺寸;然后将缩放后的图像数据输入到分类模型中进行检测,得到未知软件对应的检测值。这里,预设尺寸为分类模型所需的尺寸大小。

s203:根据检测值,确定未知软件为恶意软件或非恶意软件。

在具体实施过程中,上述步骤s203可以包括以下步骤b1~b2:

步骤b1:将检测值与预设阈值进行比较;

步骤b2:根据比较结果,确定未知软件为恶意软件或非恶意软件。

在具体实施过程中,根据预设阈值的数量以及所得到的检测值的数量的不同,上述步骤b1~b2可以采用但是不局限于以下方法来实现。

方法一,当所获取到的图像数据同时包括:软件图标和特征图像时,则所得到的检测值包括:url检测值和图标检测值。若预设阈值包括:预设的url阈值和图标阈值时,在具体实施过程中,上述步骤b1可以包括:将url检测值与url阈值进行比较;将图标检测值与图标阈值进行比较;

相应地,上述步骤b2可以包括:若url检测值大于url阈值,且图标检测值大于图标阈值,确定未知软件为恶意软件;或者,若url检测值不大于url阈值,且图标检测值不大于图标阈值,确定未知软件为非恶意软件。

在此种方法中,当url检测值大于url阈值,且图标检测值不大于图标阈值时,或者,当url检测值不大于url阈值,且图标检测值大于图标阈值时,由于两个检测值中有一个不符合预设阈值,因此,无法直接确定出位置软件是否为恶意软件。

方法二,当所获取到的图像数据同时包括:软件图标和特征图像时,则所得到的检测值包括:url检测值和图标检测值。若预设阈值包括:预设的url阈值和图标阈值时,在具体实施过程中,上述步骤b1可以包括:根据预设的与url分类模型对应的第一权重和与图标分类模型对应的第二权重,对url检测值和图标检测值进行加权计算,得到加权检测值;根据第一权重和第二权重,对url阈值和图标阈值进行加权计算,得到加权阈值;将加权检测值与加权阈值进行比较;

相应地,上述步骤b2可以包括:若加权检测值大于加权阈值,确定未知软件为恶意软件;否则,确定未知软件为非恶意软件。

方法三,当所获取到的图像数据仅为软件图标和特征图像中任意一个时,对应地,所得到的检测值为url检测值和图标检测值中的任意一个。此时,若预设阈值包括:预设的url阈值和图标阈值时,其中,图标阈值与url阈值是不相同的,那么,在具体实施过程中,上述b1可以包括:将url检测值与url阈值进行比较;或者,将图标检测值与图标阈值进行比较;进而,上述步骤b2可以包括:若url检测值大于url阈值或图标检测值大于图标阈值,则确定未知软件为恶意软件;否则,确定未知软件为非恶意软件。

当然,除了所列出的上述三种方法外,还可以通过其它方法来实现,这里,本发明实施例不做具体限定。

至此,便完成了通过预先经深度学习生成的分类模型来检测恶意软件的过程。

由上述内容可知,本发明实施例所提供的恶意软件检测方法,在获取到未知软件的图像数据后,其中,图像数据可以包括未知软件的软件图标和用于下载未知软件的url的特征图像中的至少一个,可以通过预先经深度学习生成的分类模型来对图像数据进行检测,来实现检测未知软件是否为恶意软件。由于用于识别恶意软件的分类模型是预先对海量软件图标和海量用于下载软件的url的特征图像进行深度学习所生成的,可以发现恶意软件的内在规律,那么,通过该分类模型来检测软件图标和url实现检测恶意软件时,不但能够提高对恶意软件的检测准确度,而且还可以提高对恶意软件的检测效率。另外,通过本发明实施例所提供的恶意软件检测方法,只要能获取到软件图标和特征图像中的任意一个,就能进行恶意软件的检测,大大提高了可检测范围,能够减少漏检的情况,而且当能够同时获取到软件图标和特征图像时,可以得到更好的检测准确率。

基于同一发明构思,作为对上述恶意软件检测方法的实现,本发明实施例提供了一种恶意软件检测装置,在实际应用中,该恶意软件检测装置可应用于电子设备中。

图3为本发明实施例中的恶意软件检测装置的结构示意图,参见图3所示,该装置30可以包括:第一获取单元301,用于获取未知软件的图像数据,其中,图像数据包括未知软件的软件图标和用于下载未知软件的统一资源定位符url的特征图像中的至少一个;检测单元302,用于通过预先经深度学习生成的分类模型对图像数据进行检测,得到未知软件对应的检测值;确定单元303,用于根据检测值,确定未知软件为恶意软件或非恶意软件。

在本发明实施例中,第一获取单元,用于获取用于下载未知软件的url;将url输入到预先生成的字符向量表示模型中进行处理,得到向量化表示的url;将向量化表示的url进行图像化处理,得到特征图像;和/或,还用于获取未知软件的安装包;对安装包进行解析,从安装包中获取软件图标。

在本发明实施例中,分类模型包括:用于检测url的特征图像的url分类模型和用于检测软件图标的图标分类模型;检测单元,用于将特征图像输入到url分类模型中进行检测,得到未知软件对应的url检测值;和/或,还用于将软件图标输入到图标分类模型中进行检测,得到未知软件对应的图标检测值。

在本发明实施例中,确定单元,用于将检测值与预设阈值进行比较;根据比较结果,确定未知软件为恶意软件或非恶意软件。

在本发明实施例中,当图像数据包括:软件图标和特征图像时,检测值包括:得到的url检测值和图标检测值,预设阈值包括:预设的url阈值和图标阈值;确定单元,用于将url检测值与url阈值进行比较;将图标检测值与图标阈值进行比较;还用于若url检测值大于url阈值,且图标检测值大于图标阈值,确定未知软件为恶意软件;或者,若url检测值不大于url阈值,且图标检测值不大于图标阈值,确定未知软件为非恶意软件。

在本发明实施例中,当图像数据包括:软件图标和特征图像时,检测值包括:得到的url检测值和图标检测值,预设阈值包括:预设的url阈值和图标阈值;确定单元,用于根据预设的与url分类模型对应的第一权重和与图标分类模型对应的第二权重,对url检测值和图标检测值进行加权计算,得到加权检测值;根据第一权重和第二权重,对url阈值和图标阈值进行加权计算,得到加权阈值;将加权检测值与加权阈值进行比较;还用于若加权检测值大于加权阈值,确定未知软件为恶意软件;否则,确定未知软件为非恶意软件。

在本发明实施例中,url分类模型包括多个子url分类模型;检测单元,用于分别将特征图像输入到多个子url分类模型中进行检测,得到与多个子url分类模型一一对应的多个子url检测值;通过预设的与多个子url分类模型一一对应的多个权重,对多个子url检测值进行加权平均计算,得到加权平均值;将加权平均值确定为url检测值。

在本发明其它实施例中,上述装置还包括:第二获取单元,用于获取海量软件的软件图标和海量用于下载软件的url;第一生成单元,用于对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;第二生成单元,用于基于获取到的海量url,生成特征图像样本集;获得单元,用于使用不同的深度学习算法对软件图标样本集和特征图像样本集进行深度学习,得到经深度学习生成的图标分类模型和url分类模型。

在本发明实施例中,第二生成单元,用于对获取到的海量url进行预处理,生成url样本集;将url样本集输入到预先生成的字符向量表示模型中,得到向量化表示的url样本集;分别将向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到特征图像样本集。

在本发明其它实施例中,上述装置还包括:第三获取单元,用于获取海量url日志数据;处理单元,用于对获取到的海量url日志数据进行处理,得到url训练语料集;第三生成单元,用于使用深度学习工具包word2vec对url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

基于同一发明构思,作为对上述分类模型生成方法的实现,本发明实施例提供了一种分类模型生成装置,在实际应用中,该分类模型生成装置可应用于电子设备中。

图4为本发明实施例中的分类模型生成装置的结构示意图,参见图4所示,该装置40可以包括:第一获取单元401,用于获取海量软件的软件图标和海量用于下载软件的url;第一生成单元402,用于对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;第二生成单元403,用于基于获取到的海量url,生成特征图像样本集;第三生成单元404,用于使用不同的深度学习算法对软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型,其中,分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

在本发明实施例中,第二生成单元,用于对获取到的海量url进行预处理,生成url样本集;将url样本集输入到预先生成的字符向量表示模型中,得到向量化表示的url样本集;分别将向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到特征图像样本集。

在本发明其它实施例中,上述装置还包括:第二获取单元,用于获取海量url日志数据;处理单元,用于对获取到的海量url日志数据进行处理,得到url训练语料集;第四生成单元,用于使用深度学习工具包word2vec对url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

基于同一发明构思,本发明实施例提供一种电子设备。图5为本发明实施例中的电子设备的结构示意图,参见图5所示,该电子设备50包括:至少一个处理器51;以及与处理器51连接的至少一个存储器52、总线53;其中,处理器51、存储器52通过总线53完成相互间的通信;处理器51用于调用存储器52中的程序指令,以执行上述一个或多个实施例中的恶意软件检测、分类模型生成方法的步骤。

相应地,基于同一发明构思,本发明实施例还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述一个或多个实施例中的恶意软件检测、分类模型生成方法的步骤。

上述处理器可由中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)、或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。存储器可能包括计算机可读介质中的非永久性存储器,随机存储器(randomaccessmemory,ram)和/或非易失性内存等形式,如只读存储器(readonlymemory,rom)或闪存(flashram),存储器包括至少一个存储芯片。

需要说明的是,在本发明实施例中,如果以软件功能模块的形式实现上述一个或多个实施例中的安防预警方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、智能音箱、个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。

相应地,基于同一发明构思,本发明实施例再提供一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述一个或多个实施例中的恶意软件检测、分类模型生成方法的步骤。

这里需要指出的是:以上装置、电子设备或计算机可读存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置、电子设备或计算机可读存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

本发明实施例还提供了如下方案:

a1、一种恶意软件检测方法,所述方法包括:

获取未知软件的图像数据,其中,所述图像数据包括所述未知软件的软件图标和用于下载所述未知软件的统一资源定位符url的特征图像中的至少一个;

通过预先经深度学习生成的分类模型对所述图像数据进行检测,得到所述未知软件对应的检测值;

根据所述检测值,确定所述未知软件为恶意软件或非恶意软件。

a2、根据a1所述的方法,所述获取未知软件的特征图像,包括:

获取用于下载所述未知软件的url;将所述url输入到预先生成的用于将url进行向量化表示的字符向量表示模型中进行处理,得到向量化表示的url;将所述向量化表示的url进行图像化处理,得到所述特征图像;

和/或,获取所述未知软件的安装包;对所述安装包进行解析,从所述安装包中获取所述软件图标。

a3、根据a1所述的方法,所述分类模型包括:用于检测url的特征图像的url分类模型和用于检测软件图标的图标分类模型;

所述通过预先经深度学习生成的分类模型对所述图像数据进行检测,得到所述未知软件对应的检测值,包括:将所述特征图像输入到所述url分类模型中进行检测,得到所述未知软件对应的url检测值;和/或,将所述软件图标输入到所述图标分类模型中进行检测,得到所述未知软件对应的图标检测值。

a4、根据a3所述的方法,所述根据所述检测值,确定所述未知软件为恶意软件或非恶意软件,包括:

将所述检测值与预设阈值进行比较;

根据比较结果,确定所述未知软件为恶意软件或非恶意软件。

a5、根据a4所述的方法,当所述图像数据包括:所述软件图标和所述特征图像时,所述检测值包括:得到的url检测值和图标检测值,所述预设阈值包括:预设的url阈值和图标阈值;

所述将所述检测值与预设阈值进行比较,包括:将所述url检测值与所述url阈值进行比较;将所述图标检测值与所述图标阈值进行比较;

所述根据比较结果,确定所述未知软件为恶意软件或非恶意软件,包括:若所述url检测值大于所述url阈值,且所述图标检测值大于所述图标阈值,确定所述未知软件为恶意软件;或者,若所述url检测值不大于所述url阈值,且所述图标检测值不大于所述图标阈值,确定所述未知软件为非恶意软件。

a6、根据a4所述的方法,当所述图像数据包括:所述软件图标和所述特征图像时,所述检测值包括:得到的url检测值和图标检测值,所述预设阈值包括:预设的url阈值和图标阈值;

所述将所述检测值与预设阈值进行比较,包括:根据预设的与所述url分类模型对应的第一权重和与所述图标分类模型对应的第二权重,对所述url检测值和所述图标检测值进行加权计算,得到加权检测值;根据所述第一权重和所述第二权重,对所述url阈值和所述图标阈值进行加权计算,得到加权阈值;将所述加权检测值与所述加权阈值进行比较;

所述根据比较结果,确定所述未知软件为恶意软件或非恶意软件,包括:若所述加权检测值大于所述加权阈值,确定所述未知软件为恶意软件;否则,确定所述未知软件为非恶意软件。

a7、根据a3所述的方法,所述url分类模型包括多个子url分类模型;

所述将所述特征图像输入到所述url分类模型中进行检测,得到所述未知软件对应的url检测值,包括:分别将所述特征图像输入到所述多个子url分类模型中进行检测,得到与所述多个子url分类模型一一对应的多个子url检测值;通过预设的与所述多个子url分类模型一一对应的多个权重,对所述多个子url检测值进行加权平均计算,得到加权平均值;将所述加权平均值确定为所述url检测值。

a8、根据a1所述的方法,在所述获取未知软件的图像数据之前,所述方法还包括:

获取海量软件的软件图标和海量用于下载软件的url;

对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;

基于获取到的海量url,生成特征图像样本集;

使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,得到经深度学习生成的图标分类模型和url分类模型。

a9、根据a1所述的方法,所述基于获取到的海量url,生成特征图像样本集,包括:

对所述获取到的海量url进行预处理,生成url样本集;

将所述url样本集输入到预先生成的用于将url进行向量化表示的字符向量表示模型中,得到向量化表示的url样本集;

分别将所述向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到所述特征图像样本集。

a10、根据a9所述的方法,所述方法还包括:

获取海量url日志数据;

对获取到的url日志数据进行处理,得到url训练语料集;

使用深度学习工具包word2vec对所述url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

b11、一种分类模型生成方法,所述方法包括:

获取海量软件的软件图标和海量用于下载软件的url;

对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;

基于获取到的海量url,生成特征图像样本集;

使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型,其中,所述分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

b12、根据b11所述的方法,所述基于获取到的海量url,生成特征图像样本集,包括:

对所述获取到的海量url进行预处理,生成url样本集;

将所述url样本集输入到预先生成的用于将url进行向量化表示的字符向量表示模型中,得到向量化表示的url样本集;

分别将所述向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到所述特征图像样本集。

b13、根据b11所述的方法,所述方法还包括:

获取海量url日志数据;

对获取到的海量url日志数据进行处理,得到url训练语料集;

使用深度学习工具包word2vec对所述url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

c14、一种恶意软件检测装置,所述装置包括:

第一获取单元,用于获取未知软件的图像数据,其中,所述图像数据包括所述未知软件的软件图标和用于下载所述未知软件的统一资源定位符url的特征图像中的至少一个;

检测单元,用于通过预先经深度学习生成的分类模型对所述图像数据进行检测,得到所述未知软件对应的检测值;

确定单元,用于根据所述检测值,确定所述未知软件为恶意软件或非恶意软件。

c15、根据c14所述的装置,所述第一获取单元,用于获取用于下载所述未知软件的url;将所述url输入到预先生成的用于将url进行向量化表示的字符向量表示模型中进行处理,得到向量化表示的url;将所述向量化表示的url进行图像化处理,得到所述特征图像;和/或,还用于获取所述未知软件的安装包;对所述安装包进行解析,从所述安装包中获取所述软件图标。

c16、根据c14所述的装置,所述分类模型包括:用于检测url的特征图像的url分类模型和用于检测软件图标的图标分类模型;

所述检测单元,用于将所述特征图像输入到所述url分类模型中进行检测,得到所述未知软件对应的url检测值;和/或,还用于将所述软件图标输入到所述图标分类模型中进行检测,得到所述未知软件对应的图标检测值。

c17、根据c16所述的装置,所述确定单元,用于将所述检测值与预设阈值进行比较;根据比较结果,确定所述未知软件为恶意软件或非恶意软件。

c18、根据c17所述的装置,当所述图像数据包括:所述软件图标和所述特征图像时,所述检测值包括:得到的url检测值和图标检测值,所述预设阈值包括:预设的url阈值和图标阈值;

所述确定单元,用于将所述url检测值与所述url阈值进行比较;将所述图标检测值与所述图标阈值进行比较;还用于若所述url检测值大于所述url阈值,且所述图标检测值大于所述图标阈值,确定所述未知软件为恶意软件;或者,若所述url检测值不大于所述url阈值,且所述图标检测值不大于所述图标阈值,确定所述未知软件为非恶意软件。

c19、根据c17所述的装置,当所述图像数据包括:所述软件图标和所述特征图像时,所述检测值包括:得到的url检测值和图标检测值,所述预设阈值包括:预设的url阈值和图标阈值;

所述确定单元,用于根据预设的与所述url分类模型对应的第一权重和与所述图标分类模型对应的第二权重,对所述url检测值和所述图标检测值进行加权计算,得到加权检测值;根据所述第一权重和所述第二权重,对所述url阈值和所述图标阈值进行加权计算,得到加权阈值;将所述加权检测值与所述加权阈值进行比较;还用于若所述加权检测值大于所述加权阈值,确定所述未知软件为恶意软件;否则,确定所述未知软件为非恶意软件。

c20、根据c16所述的装置,所述url分类模型包括多个子url分类模型;

所述检测单元,用于分别将所述特征图像输入到所述多个子url分类模型中进行检测,得到与所述多个子url分类模型一一对应的多个子url检测值;通过预设的与所述多个子url分类模型一一对应的多个权重,对所述多个子url检测值进行加权平均计算,得到加权平均值;将所述加权平均值确定为所述url检测值。

c21、根据c14所述的装置,所述装置还包括:

第二获取单元,用于获取海量软件的软件图标和海量用于下载软件的url;

第一生成单元,用于对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;

第二生成单元,用于基于获取到的海量url,生成特征图像样本集;

获得单元,用于使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,得到经深度学习生成的图标分类模型和url分类模型。

c22、根据c14所述的装置,第二生成单元,用于对所述获取到的海量url进行预处理,生成url样本集;将所述url样本集输入到预先生成的用于将url进行向量化表示的字符向量表示模型中,得到向量化表示的url样本集;分别将所述向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到所述特征图像样本集。

c23、根据c22所述的装置,所述装置还包括:

第三获取单元,用于获取海量url日志数据;

处理单元,用于对获取到的海量url日志数据进行处理,得到url训练语料集;

第三生成单元,用于使用深度学习工具包word2vec对所述url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

d24、一种分类模型生成装置,所述装置包括:

第一获取单元,用于获取海量软件的软件图标和海量用于下载软件的url;

第一生成单元,用于对获取到的海量软件的软件图标进行预处理,生成软件图标样本集;

第二生成单元,用于基于获取到的海量url,生成特征图像样本集;

第三生成单元,用于使用不同的深度学习算法对所述软件图标样本集和特征图像样本集进行深度学习,生成用于检测恶意软件的分类模型,其中,所述分类模型包括:用于针对软件的软件图标进行检测的图标分类模型和用于针对用于下载软件的url的特征图像进行检测的url分类模型。

d25、根据d24所述的装置,所述第二生成单元,用于对所述获取到的海量url进行预处理,生成url样本集;将所述url样本集输入到预先生成的用于将url进行向量化表示的字符向量表示模型中,得到向量化表示的url样本集;分别将所述向量化表示的url样本集中的各个向量化表示的url转化为特征图像,得到所述特征图像样本集。

d26、根据d24所述的装置,所述装置还包括:

第二获取单元,用于获取海量url日志数据;

处理单元,用于对获取到的海量url日志数据进行处理,得到url训练语料集;

第四生成单元,用于使用深度学习工具包word2vec对所述url训练语料集合进行训练,生成用于将url进行向量化表示的字符向量表示模型。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(compactdiscread-onlymemory,cd-rom)、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,ram和/或非易失性内存等形式,如rom或flashram。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质可以是rom、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性随机存取存储器(ferromagneticrandomaccessmemory,fram)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(compactdiscread-onlymemory,cd-rom)等存储器;也可以是快闪记忆体或其他内存技术、cd-rom、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息;还可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1