加密程序识别方法及装置、电子设备与流程

文档序号:11432571阅读:273来源:国知局
加密程序识别方法及装置、电子设备与流程

本发明涉及计算机技术领域,具体涉及一种加密程序识别方法及装置、电子设备。



背景技术:

随着计算机技术的不断发展,越来越多的用户习惯于使用电子化的文档来完成工作、学习、娱乐等多方面的需求。而与此同时,网络中各种恶意程序也在不断增加。恶意程序的攻击给用户带来了很多麻烦,如勒索型蠕虫病毒对用户的电子文档进行加密,使得用户无法使用自己原有的文档,而必须向勒索者支付赎金才能继续使用。对于这些未经用户允许对文档进行加密的恶意程序,需要对其进行识别,并及时拦截其对文档的操作,以保护用户的文档安全。

在识别上述对文档加密的恶意程序时,如果仅通过人工分析加密程序的特征,在根据程序特征进行人工处理的方式,会使得整个识别过程效率低下、花费的人力和时间等成本较高,不能及时有效的识别出加密的恶意程序。

因此,需要一种可以解决上述问题,有效快速的加密程序识别的方法。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的加密程序识别方法及装置、电子设备。

根据本发明的一个方面,提供了一种加密程序识别方法,其包括:

获取待检测的程序向磁盘写入的数据流;

将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果;

根据鉴定结果,确定是否对程序的写入操作进行拦截。

根据本发明的另一方面,提供了一种加密程序识别装置,其包括:

获取模块,适于获取待检测的程序向磁盘写入的数据流;

检测模块,适于将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果;

识别模块,适于根据鉴定结果,确定是否对程序的写入操作进行拦截。

根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述加密程序识别方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述加密程序识别方法对应的操作。

根据本发明提供的加密程序识别方法及装置、电子设备,先获取待检测的程序向磁盘写入的数据流。将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。根据鉴定结果,确定是否对程序的写入操作进行拦截。通过机器学习算法训练得到检测模型,利用检测模型识别加密程序,可以节省大量的人力和时间,提高对加密程序的识别效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

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

图1示出了根据本发明一个实施例的加密程序识别方法的流程图;

图2示出了根据本发明另一个实施例的加密程序识别方法的流程图;

图3示出了根据本发明一个实施例的加密程序识别装置的功能框图;

图4示出了根据本发明另一个实施例的加密程序识别装置的功能框图;

图5示出了根据本发明一个实施例的一种电子设备的结构示意图。

具体实施方式

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

图1示出了根据本发明一个实施例的加密程序识别方法的流程图。如图1所示,加密程序识别方法具体包括如下步骤:

步骤s101,获取待检测的程序向磁盘写入的数据流。

加密程序一般会先从磁盘读取文件相关的内容如数据流到内存,在内存中实现对数据流的改写,如按照其本身的加密算法对数据流进行加密。然后再将加密后的数据流重新写回文件或者将其保存为一个新的文件。因此,在识别待检测程序是否为加密程序时,需要获取待检测的程序向磁盘写入的数据流,以便对该数据流进行检测。

获取待检测的程序向磁盘写入的数据流时,需要通过文件监控驱动来获取。文件监控驱动可以对待检测的程序对文件的各种操作进行实时监控,从而方便的获取到待检测的程序向磁盘写入的数据流。

步骤s102,将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。

将获取到的数据流输入到检测模型中,得到检测模型对该数据流的鉴定结果。其中,检测模型为采用大量正常数据流和加密数据流利用机器学习算法训练得到的检测模型。

检测模型对数据流的鉴定结果包括了用于表征该数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间。其中,表征该数据流的随机性的分数是对该数据流中各个字节进行检测后,得到其随机性的分数。正常数据流与加密数据流的随机性分数所分布的区间不同,通过大量正常数据流和加密数据利用机器学习算法训练得到的检测模型可以提供正常数据流分数分布的区间和/或加密数据流分数分布的区间。

步骤s103,根据鉴定结果,确定是否对程序的写入操作进行拦截。

根据鉴定结果,即根据其包括的表征该数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间进行判断。

若分数不属于正常数据流分数区间,判断该程序的向磁盘写入的数据流为加密数据流;或者,分数属于加密数据流分数区间,判断该程序的向磁盘写入的数据流为加密数据流;或者,分数不属于正常数据流分数区间且分数属于加密数据流分数区间,判断该程序的向磁盘写入的数据流为加密数据流。当该程序向磁盘写入的数据为加密数据流时,确定该程序为加密程序,对该程序的写入操作进行拦截。反之,当该程序向磁盘写入的数据为正常数据流时,对该程序的写入操作进行放行。

根据本发明提供的加密程序识别方法,先获取待检测的程序向磁盘写入的数据流。将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。根据鉴定结果,确定是否对程序的写入操作进行拦截。通过机器学习算法训练得到检测模型,利用检测模型识别加密程序,可以节省大量的人力和时间,提高对加密程序的识别效率。

图2示出了根据本发明另一个实施例的加密程序识别方法的流程图。如图2所示,加密程序识别方法具体包括如下步骤:

步骤s201,获取已知加密程序从磁盘读取的正常数据流和向磁盘写入的加密数据流。

步骤s202,利用机器学习算法,将正常数据流和加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

为方便快速高效、低成本的识别加密程序,本发明利用机器学习算法训练得到检测模型,而非人工手动建立检测模型。

对检测模型进行训练时,先利用已知的加密程序对磁盘中的文件进行操作,获取到已知加密程序从磁盘读取的正常数据流和加密后向磁盘写入的加密数据流。将获取的正常数据流和加密数据流作为样本数据,分析正常数据流和加密数据流的不同特征,根据不同特征,确定检测模型所采用的算法。之后,将样本数据输入到检测模型中,对检测模型进行训练,并得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

在本发明中确定信息熵计算算法作为初始检测模型。将正常数据流和加密数据流作为样本数据输入到初始检测模型中,对信息熵计算算法所涉及的参数进行训练。具体的,对其中数据流中每个二进制字节进行统计,计算其随机性的平均值,即信息熵。根据信息熵计算算法可以得到,由于加密数据流与完全随机的数据流非常相似,加密数据流的随机性大于正常数据流的随机性,因此,加密数据流的信息熵会大于正常数据流的信息熵,即加密数据流的随机性分数大于正常数据流的随机性分数。对正常数据流和加密数据流的分数进行统计,分别得到正常数据流分数区间和/或加密数据流分数区间。

通过上述步骤,训练得到的检测模型及检测模型的正常数据流分数区间和/或加密数据流分数区间。

步骤s203,利用文件监控驱动,获取待检测的程序向磁盘写入的数据流。

步骤s204,将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。

获取到待检测的程序向磁盘写入的数据流,将数据流输入到利用机器学习算法训练得到的检测模型中,即将数据流输入到经训练的信息熵计算算法中,可以计算得到数据流的信息熵。该信息熵即对数据流鉴定结果中用于表征该数据流的随机性的分数。

步骤s205,将程序的相关信息和鉴定结果上传至云端服务器。

步骤s206,接收云端服务器根据程序的相关信息和鉴定结果进行预设检测后的返回的指令。

步骤s207,根据指令,对程序的写入操作进行拦截或放行操作。

将程序的相关信息如程序名称、程序路径、进程id等信息和得到的鉴定结果,上传至云端服务器。

由云端服务器根据上传的程序的相关信息进行预设检测,如根据程序名称判断程序是否在被拦截黑名单中、根据程序名称判断程序是否在放行白名单中等预设检测。根据预设检测的结果结合鉴定结果中的数据流的随机性分数、正常数据流分数区间和/或加密数据流分数区间等信息,云端服务器会返回相应的指令。如该程序在被拦截黑名单中,且该数据流的随机性分数属于加密数据流分数区间,接收云端服务器返回的对程序的写入操作进行拦截的指令,根据该指令,对程序的写入操作进行拦截。拦截时,可以提示用户,如“xx程序正在对e盘/xx文件执行加密操作,是否允许?”等方式提示用户,使得加密程序在修改文档时,用户可以根据实际情况选择阻止;或者,也可以在发现加密程序后对其后续可能的操作直接进行拦截,拦截后再提示用户当前有加密程序试图对文件进行加密操作。或者,该程序在放行白名单中,或该数据流的随机性分数属于正常数据流分数区间,接收云端服务器返回的对程序的写入操作进行放行的指令,根据该指令,对程序的写入操作进行放行。其中,放行白名单为预先存储的用户已授权的加密程序的列表,其为用户默认为可以对文件进行加密的程序。

需要注意的是,以上各数据流均为从文件中截取的固定片段大小的数据流。文件的文件格式具体为以下文件格式中的任意一种:ppt、doc、docx、xlsx、sxi、sxw、odt、hwp、zip、rar、tar、mp4、mkv、eml、msg、ost、pst、deb、sql、accdb、mdb、dbf、odb、myd、php、java、cpp、asp、asm、key、pfx、pem、p12、csr、gpg、aes、vsd、odg、raw、nef、svg、psd、vmx、vmdk、vdi。

根据本发明提供的加密程序识别方法,使用利用机器学习算法训练的检测模型对加密程序进行识别可以节省大量的人力,提高对加密程序识别的效率。通过检测模型可以发现加密程序的特征,便于对未知的加密程序进行有效的识别。同时,在根据检测模型得到待检测的程序向磁盘写入的数据流的鉴定结果后,由云端服务器根据程序相关信息和鉴定结果进行分析,根据云端服务器返回的指令确定是否对程序的写入操作进行拦截,可以保证在识别加密程序后,及时阻止加密程序对文件进行加密的操作,以免对用户造成文件不可使用等损失。

图3示出了根据本发明一个实施例的加密程序识别装置的功能框图。如图3所示,加密程序识别装置包括如下模块:

获取模块310,适于获取待检测的程序向磁盘写入的数据流。

加密程序一般会先从磁盘读取文件相关的内容如数据流到内存,在内存中实现对数据流的改写,如按照其本身的加密算法对数据流进行加密。然后再将加密后的数据流重新写回文件或者将其保存为一个新的文件。因此,在识别待检测程序是否为加密程序时,需要获取模块310先获取待检测的程序向磁盘写入的数据流,以便对该数据流进行检测。

获取模块310在获取待检测的程序向磁盘写入的数据流时,需要通过文件监控驱动来获取。文件监控驱动可以对待检测的程序对文件的各种操作进行实时监控,从而方便的获取到待检测的程序向磁盘写入的数据流。

检测模块320,适于将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。

检测模块320将获取到的数据流输入到检测模型中,得到检测模型对该数据流的鉴定结果。其中,检测模型为采用大量正常数据流和加密数据流利用机器学习算法训练得到的检测模型。

检测模型对数据流的鉴定结果包括了用于表征该数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间。其中,表征该数据流的随机性的分数是检测模块320对该数据流中各个字节进行检测后,得到其随机性的分数。正常数据流与加密数据流的随机性分数所分布的区间不同,通过大量正常数据流和加密数据利用机器学习算法训练得到的检测模型可以提供正常数据流分数分布的区间和/或加密数据流分数分布的区间。

识别模块330,适于根据鉴定结果,确定是否对程序的写入操作进行拦截。

识别模块330根据鉴定结果,即根据其包括的表征该数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间进行判断。

若分数不属于正常数据流分数区间,识别模块330判断该程序的向磁盘写入的数据流为加密数据流;或者,分数属于加密数据流分数区间,识别模块330判断该程序的向磁盘写入的数据流为加密数据流;或者,分数不属于正常数据流分数区间且分数属于加密数据流分数区间,识别模块330判断该程序的向磁盘写入的数据流为加密数据流。当该程序向磁盘写入的数据为加密数据流时,识别模块330确定该程序为加密程序,对该程序的写入操作进行拦截。反之,当该程序向磁盘写入的数据为正常数据流时,识别模块330对该程序的写入操作进行放行。

根据本发明提供的加密程序识别装置,先获取待检测的程序向磁盘写入的数据流。将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。根据鉴定结果,确定是否对程序的写入操作进行拦截。通过机器学习算法训练得到检测模型,利用检测模型识别加密程序,可以节省大量的人力和时间,提高对加密程序的识别效率。

图4示出了根据本发明另一个实施例的加密程序识别装置的流程图。如图4所示,与图3相比,加密程序识别装置还包括如下模块:

训练数据获取模块340,适于获取已知加密程序从磁盘读取的正常数据流和向磁盘写入的加密数据流;

训练模块350,适于利用机器学习算法,将正常数据流和加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

为方便快速高效、低成本的识别加密程序,本发明利用机器学习算法训练得到检测模型,而非人工手动建立检测模型。

对检测模型进行训练时,训练数据获取模块340先利用已知的加密程序对磁盘中的文件进行操作,获取到已知加密程序从磁盘读取的正常数据流和加密后向磁盘写入的加密数据流。训练模块350将获取的正常数据流和加密数据流作为样本数据,分析正常数据流和加密数据流的不同特征,根据不同特征,确定检测模型所采用的算法。之后,训练模块350将样本数据输入到检测模型中,对检测模型进行训练,并得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

训练模块350还包括了算法模块351,算法模块351确定信息熵计算算法作为初始检测模型。

训练模块350将正常数据流和加密数据流作为样本数据输入到初始检测模型中,对信息熵计算算法所涉及的参数进行训练。具体的,训练模块350对其中数据流中每个二进制字节进行统计,计算其随机性的平均值,即信息熵。根据信息熵计算算法可以得到,由于加密数据流与完全随机的数据流非常相似,加密数据流的随机性大于正常数据流的随机性,因此,加密数据流的信息熵会大于正常数据流的信息熵,即加密数据流的随机性分数大于正常数据流的随机性分数。训练模块350对正常数据流和加密数据流的分数进行统计,分别得到正常数据流分数区间和/或加密数据流分数区间。

检测模块320将数据流输入到利用机器学习算法训练得到的检测模型中时,即检测模块320将数据流输入到经训练的信息熵计算算法中,计算得到数据流的信息熵。该信息熵即对数据流鉴定结果中用于表征该数据流的随机性的分数。

识别模块330进一步包括:

上传模块331,适于将程序的相关信息和鉴定结果上传至云端服务器。

接收模块332,适于接收云端服务器根据程序的相关信息和鉴定结果进行预设检测后的返回的指令。

执行模块333,适于根据指令,对程序的写入操作进行拦截或放行操作。

上传模块331将程序的相关信息如程序名称、程序路径、进程id等信息和得到的鉴定结果,上传至云端服务器。

由云端服务器根据上传的程序的相关信息进行预设检测,如根据程序名称判断程序是否在被拦截黑名单中、根据程序名称判断程序是否在放行白名单中等预设检测。根据预设检测的结果结合鉴定结果中的数据流的随机性分数、正常数据流分数区间和/或加密数据流分数区间等信息,云端服务器会返回相应的指令。如该程序在被拦截黑名单中,且该数据流的随机性分数属于加密数据流分数区间,接收模块332接收云端服务器返回的对程序的写入操作进行拦截的指令,执行模块333根据该指令,对程序的写入操作进行拦截。执行模块333拦截时,可以提示用户,如“xx程序正在对e盘/xx文件执行加密操作,是否允许?”等方式提示用户,使得加密程序在修改文档时,用户可以根据实际情况选择阻止;或者,执行模块333也可以在发现加密程序后对其后续可能的操作直接进行拦截,拦截后再提示用户当前有加密程序试图对文件进行加密操作。当该程序在放行白名单中,或该数据流的随机性分数属于正常数据流分数区间,接收模块332接收云端服务器返回的对程序的写入操作进行放行的指令,执行模块333根据该指令,对程序的写入操作进行放行。其中,放行白名单为预先存储的用户已授权的加密程序的列表,其为用户默认为可以对文件进行加密的程序。

需要注意的是,以上各数据流均为从文件中截取的固定片段大小的数据流。文件的文件格式具体为以下文件格式中的任意一种:ppt、doc、docx、xlsx、sxi、sxw、odt、hwp、zip、rar、tar、mp4、mkv、eml、msg、ost、pst、deb、sql、accdb、mdb、dbf、odb、myd、php、java、cpp、asp、asm、key、pfx、pem、p12、csr、gpg、aes、vsd、odg、raw、nef、svg、psd、vmx、vmdk、vdi。

根据本发明提供的加密程序识别装置,使用利用机器学习算法训练的检测模型对加密程序进行识别可以节省大量的人力,提高对加密程序识别的效率。通过检测模型可以发现加密程序的特征,便于对未知的加密程序进行有效的识别。同时,在根据检测模型得到待检测的程序向磁盘写入的数据流的鉴定结果后,由云端服务器根据程序相关信息和鉴定结果进行分析,根据云端服务器返回的指令确定是否对程序的写入操作进行拦截,可以保证在识别加密程序后,及时阻止加密程序对文件进行加密的操作,以免对用户造成文件不可使用等损失。

本申请还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的加密程序识别方法。

图5示出了根据本发明一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(communicationsinterface)504、存储器(memory)506、以及通信总线508。

其中:

处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器502,用于执行程序510,具体可以执行上述加密程序识别方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行以下操作:

在一种可选的实施方式中,程序510用于使得处理器502获取待检测的程序向磁盘写入的数据流;将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果;根据鉴定结果,确定是否对程序的写入操作进行拦截。

在一种可选的实施方式中,鉴定结果包括:用于表征数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间。

在一种可选的实施方式中,程序510用于使得处理器502根据分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间,确定是否对程序的写入操作进行拦截。

在一种可选的实施方式中,若分数不属于正常数据流分数区间,和/或,分数属于加密数据流分数区间,程序510用于使得处理器502确定对程序的写入操作进行拦截。

在一种可选的实施方式中,程序510用于使得处理器502获取已知加密程序从磁盘读取的正常数据流和向磁盘写入的加密数据流;利用机器学习算法,将正常数据流和加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

在一种可选的实施方式中,程序510用于使得处理器502确定信息熵计算算法作为初始检测模型;将正常数据流和加密数据流作为样本数据输入到初始检测模型中,对信息熵计算算法所涉及的参数进行训练,得到经训练的信息熵计算算法作为检测模型;其中,在检测模型训练过程中,根据信息熵计算算法得到正常数据流和加密数据流的信息熵,根据正常数据流和加密数据流的信息熵的分布,得到检测模型的正常数据流分数区间和/或加密数据流分数区间。

在一种可选的实施方式中,程序510用于使得处理器502将数据流输入到经训练的信息熵计算算法中,计算得到数据流的信息熵。

在一种可选的实施方式中,数据流为从文件中截取的固定片段大小的数据流。

在一种可选的实施方式中,程序510用于使得处理器502利用文件监控驱动,获取待检测的程序向磁盘写入的数据流。

在一种可选的实施方式中,文件的文件格式具体为以下文件格式中的任意一种:ppt、doc、docx、xlsx、sxi、sxw、odt、hwp、zip、rar、tar、mp4、mkv、eml、msg、ost、pst、deb、sql、accdb、mdb、dbf、odb、myd、php、java、cpp、asp、asm、key、pfx、pem、p12、csr、gpg、aes、vsd、odg、raw、nef、svg、psd、vmx、vmdk、vdi。

在一种可选的实施方式中,程序510用于使得处理器502将程序的相关信息和鉴定结果上传至云端服务器;接收云端服务器根据程序的相关信息和鉴定结果进行预设检测后的返回的指令;根据指令,对程序的写入操作进行拦截或放行操作。

程序510中各步骤的具体实现可以参见上述加密程序识别实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

通过本实施例提供的方案,先获取待检测的程序向磁盘写入的数据流。将数据流输入到利用机器学习算法训练得到的检测模型中,得到检测模型对数据流的鉴定结果。根据鉴定结果,确定是否对程序的写入操作进行拦截。通过机器学习算法训练得到检测模型,利用检测模型识别加密程序,可以节省大量的人力和时间,提高对加密程序的识别效率。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的加密程序识别装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:a1.一种加密程序识别方法,其包括:

获取待检测的程序向磁盘写入的数据流;

将所述数据流输入到利用机器学习算法训练得到的检测模型中,得到所述检测模型对所述数据流的鉴定结果;

根据所述鉴定结果,确定是否对所述程序的写入操作进行拦截。

a2.根据a1所述的方法,其中,所述鉴定结果包括:

用于表征数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间。

a3.根据a2所述的方法,其中,所述根据鉴定结果,确定是否对所述程序的写入操作进行拦截包括:

根据所述分数以及所述检测模型提供的正常数据流分数区间和/或加密数据流分数区间,确定是否对所述程序的写入操作进行拦截。

a4.根据a3所述的方法,其中,所述根据所述分数以及所述检测模型提供的正常数据流分数区间和/或加密数据流分数区间,确定是否对所述程序的写入操作进行拦截进一步包括:

若所述分数不属于所述正常数据流分数区间,和/或,所述分数属于所述加密数据流分数区间,确定对所述程序的写入操作进行拦截。

a5.根据a1所述的方法,其中,还包括:

获取已知加密程序从磁盘读取的正常数据流和向磁盘写入的加密数据流;

利用机器学习算法,将所述正常数据流和所述加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到所述检测模型的正常数据流分数区间和/或加密数据流分数区间。

a6.根据a5所述的方法,其中,所述利用机器学习算法,将所述正常数据流和所述加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到所述检测模型的正常数据流分数区间和/或加密数据流分数区间进一步包括:

确定信息熵计算算法作为初始检测模型;

将所述正常数据流和所述加密数据流作为样本数据输入到初始检测模型中,对信息熵计算算法所涉及的参数进行训练,得到经训练的信息熵计算算法作为检测模型;

其中,在检测模型训练过程中,根据信息熵计算算法得到所述正常数据流和所述加密数据流的信息熵,根据所述正常数据流和所述加密数据流的信息熵的分布,得到所述检测模型的正常数据流分数区间和/或加密数据流分数区间。

a7.根据a6所述的方法,其中,所述将所述数据流输入到利用机器学习算法训练得到的检测模型中,得到所述检测模型对所述数据流的鉴定结果具体为:将数据流输入到经训练的信息熵计算算法中,计算得到所述数据流的信息熵。

a8.根据a1-a7中任一项所述的方法,其中,所述数据流为从文件中截取的固定片段大小的数据流。

a9.根据a8所述的方法,其中,所述获取待检测的程序向磁盘写入的数据流具体为:利用文件监控驱动,获取待检测的程序向磁盘写入的数据流。

a10.根据a8所述的方法,其中,所述文件的文件格式具体为以下文件格式中的任意一种:

ppt、doc、docx、xlsx、sxi、sxw、odt、hwp、zip、rar、tar、mp4、mkv、eml、msg、ost、pst、deb、sql、accdb、mdb、dbf、odb、myd、php、java、cpp、asp、asm、key、pfx、pem、p12、csr、gpg、aes、vsd、odg、raw、nef、svg、psd、vmx、vmdk、vdi。

a11.根据a1-a10中任一项所述的方法,其中,所述确定是否对所述程序的写入操作进行拦截进一步包括:

将所述程序的相关信息和所述鉴定结果上传至云端服务器;

接收所述云端服务器根据所述程序的相关信息和所述鉴定结果进行预设检测后的返回的指令;

根据所述指令,对所述程序的写入操作进行拦截或放行操作。

本发明还公开了:b12.一种加密程序识别装置,其包括:

获取模块,适于获取待检测的程序向磁盘写入的数据流;

检测模块,适于将所述数据流输入到利用机器学习算法训练得到的检测模型中,得到所述检测模型对所述数据流的鉴定结果;

识别模块,适于根据所述鉴定结果,确定是否对所述程序的写入操作进行拦截。

b13.根据b12所述的装置,其中,所述鉴定结果包括:

用于表征数据流的随机性的分数以及检测模型提供的正常数据流分数区间和/或加密数据流分数区间。

b14.根据b13所述的装置,其中,所述识别模块进一步适于:

根据所述分数以及所述检测模型提供的正常数据流分数区间和/或加密数据流分数区间,确定是否对所述程序的写入操作进行拦截。

b15.根据b14所述的装置,其中,所述识别模块进一步适于:

若所述分数不属于所述正常数据流分数区间,和/或,所述分数属于所述加密数据流分数区间,确定对所述程序的写入操作进行拦截。

b16.根据b12所述的装置,其中,还包括:

训练数据获取模块,适于获取已知加密程序从磁盘读取的正常数据流和向磁盘写入的加密数据流;

训练模块,适于利用机器学习算法,将所述正常数据流和所述加密数据流作为样本数据输入到检测模型中,对检测模型进行训练,并得到所述检测模型的正常数据流分数区间和/或加密数据流分数区间。

b17.根据b16所述的装置,其中,所述训练模块进一步包括:

算法模块,适于确定信息熵计算算法作为初始检测模型;

所述训练模块进一步适于:将所述正常数据流和所述加密数据流作为样本数据输入到初始检测模型中,对信息熵计算算法所涉及的参数进行训练,得到经训练的信息熵计算算法作为检测模型;其中,在检测模型训练过程中,根据信息熵计算算法得到所述正常数据流和所述加密数据流的信息熵,根据所述正常数据流和所述加密数据流的信息熵的分布,得到所述检测模型的正常数据流分数区间和/或加密数据流分数区间。

b18.根据b17所述的装置,其中,所述检测模块进一步适于:将数据流输入到经训练的信息熵计算算法中,计算得到所述数据流的信息熵。

b19.根据b12-b18中任一项所述的装置,其中,所述数据流为从文件中截取的固定片段大小的数据流。

b20.根据b19所述的装置,其中,所述获取模块进一步适于:利用文件监控驱动,获取待检测的程序向磁盘写入的数据流。

b21.根据b19所述的装置,其中,所述文件的文件格式具体为以下文件格式中的任意一种:

ppt、doc、docx、xlsx、sxi、sxw、odt、hwp、zip、rar、tar、mp4、mkv、eml、msg、ost、pst、deb、sql、accdb、mdb、dbf、odb、myd、php、java、cpp、asp、asm、key、pfx、pem、p12、csr、gpg、aes、vsd、odg、raw、nef、svg、psd、vmx、vmdk、vdi。

b22.根据b12-b21中任一项所述的装置,其中,所述识别模块进一步包括:

上传模块,适于将所述程序的相关信息和所述鉴定结果上传至云端服务器;

接收模块,适于接收所述云端服务器根据所述程序的相关信息和所述鉴定结果进行预设检测后的返回的指令;

执行模块,适于根据所述指令,对所述程序的写入操作进行拦截或放行操作。

本发明还公开了:c23.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a11中任一项所述的加密程序识别方法对应的操作。

本发明还公开了:d24.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如a1-a11中任一项所述的加密程序识别方法对应的操作。

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