一种基于深度学习技术的恶意证书自动检测系统及方法与流程

文档序号:23903274发布日期:2021-02-09 14:14阅读:58来源:国知局
一种基于深度学习技术的恶意证书自动检测系统及方法与流程

[0001]
本发明涉及网络安全、深度学习领域,尤其涉及一种基于深度学习技术的恶意证书自动检测系统及方法。


背景技术:

[0002]
传统的恶意证书检测主要基于黑名单发现的检测方法,通过在互联网中进行扫描、收集和整理,构建了恶意证书的样本数据库,然后将待检测证书与黑名单库中的证书进行匹配检测。同时,这种检测模型需要频繁的从威胁情报数据源下载最新的恶意证书样本,更新黑名单库,保证检测结果的时效性。显然易见,这种基于黑名单发现的检测方法对于已知的攻击类型确实能够起到很好的检测效果,但对于未知攻击和已知攻击的变种却难以取得有效的成果,缺乏泛化性。
[0003]
得益于机器学习技术的进一步发展,越来越多的研究开始专注于证书本身的字段信息,通过对大量数据进行统计分析,研究正常证书与恶意证书在字段选择与字段取值之间的差异性,分析恶意证书对字段选择与字段取值的偏好性,包括证书签名、证书链、有效期、注册机构、注册国家、cn等字段。然后根据大数据分析结果,人工进行有效特征的设计与选择,提取证书的特征表示,常用的特征包括证书版本号、证书有效期、是否自签名、签名算法类型、公钥加密算法类型、公钥长度、域名等。最后使用人工提取的证书特征训练分类模型,完成恶意证书的检测,常用的分类模型包括逻辑回归、决策树、随机森林、xgboost等。
[0004]
除了使用特征工程的方法进行证书特征的提取,也有研究尝试使用深度模型,比如lstm模型提取证书使用者与颁发者字段的特征向量,然后与人工设计的特征进行融合,共同用于训练分类模型,完成恶意证书的检测。上述基于特征工程的恶意证书检测方法,需要耗费大量人力资源进行特征的设计与选择,并且在检测效果上还有很大的提升空间。同时,这种方法对于人工设计特征的依赖性较大,恶意攻击者通过有意的修改证书字段的取值就能够很好的逃避检测,在真实环境中的实用性不强。


技术实现要素:

[0005]
本发明技术解决问题:克服现有技术的不足,提供一种基于深度学习技术的恶意证书自动检测系统及方法,能够自动化的提取证书不同字段的特征向量,进行加权融合,最终得到更深层次的证书表征向量用于恶意证书的检测,在省去了特征设计所需的人力成本的同时,也取得了非常优异的检测效果。
[0006]
针对上述问题,本发明提出了一个基于深度学习技术的恶意证书自动检测方法,首先通过数据预处理将证书字段转换成计算机能够处理的数值表示,然后通过向量化方法和深度模型自动提取证书不同字段的特征向量,并使用自注意力机制对不同字段的特征向量进行加权融合,得到证书表征向量用于恶意证书的检测,在降低了人力成本的同时也提高了恶意证书检测的效果。本发明的创新点包括:
[0007]
(1)提出了一种针对证书不同字段取值特点的数值化方法
[0008]
本发明根据证书不同字段的取值特点,将证书字段分为两类,一类是version、serial number、signature、validity、public key algorithm、subject public key这些长度固定的字段,一类是issuer、subject、extensions这些包含众多可选子字段且长度可变的字段。对于固定字段,数据预处理部分会根据每个字段的具体含义和取值情况设计不同的数值化策略,使用若干个数值来表示各个字段。对于可变字段,数据预处理部分直接将其对应的字节码序列转为相应的整数序列,整数的取值范围与字节的取值范围相对应,都是0~255。
[0009]
(2)提出了一种针对证书不同字段取值特点的特征提取方法
[0010]
本发明根据证书不同字段的取值特点,将证书字段分为固定字段和可变字段两类,提出了各自的字段特征提取方法。对于固定字段,本发明使用位置编码的方法,通过公式计算将每个字段的数值表示转换成指定维度的特征向量表示。对于可变字段,本发明使用34层的深度残差卷积网络resnet提取字段的特征向量。
[0011]
(3)提出了一种基于自注意力机制的证书字段特征加权融合方法
[0012]
为了更好的融合证书不同字段的特征向量,获得有效的证书表征向量,本发明使用自注意力机制对证书不同字段的特征向量进行加权融合。该方法通过自注意力机制学习不同字段特征向量之间的相互关系,对原始的字段特征向量进行加权调整,然后再对所有调整后的字段特征向量进行融合,得到证书表征向量。
[0013]
本发明采用的技术方案为:一种基于深度学习技术的恶意证书自动检测系统,包括:数据预处理模块、字段特征提取模块、字段特征融合模块和证书判别模块。
[0014]
数据预处理模块:将证书字段转换成计算机能够处理的数值表示。首先根据证书字段的取值特点将证书字段分为固定字段和可变字段两类;对于固定字段,根据每个字段的具体含义和取值情况设计不同的数值化策略,使用若干个数值来表示各个字段;对于可变字段,直接将字段对应的字节码序列转为相应的整数序列,整数的取值范围与字节的取值范围相对应,都是0~255。
[0015]
字段特征提取模块:使用向量化方法和深度模型提取字段的特征表示。对于固定字段,使用位置编码这种向量化的方法,通过公式计算将每个字段的数值表示转换成指定维度的特征向量表示。对于可变字段,借助深度残差卷积网络,通过输入可变字段的预处理后的数值向量,自动化的提取字段的特征向量。
[0016]
字段特征融合模块:利用自注意力机制学习不同字段特征向量之间的相互关系,对原始的字段特征向量进行加权调整,然后再对所有调整后的字段特征向量进行融合,得到证书表征向量。
[0017]
证书判别模块:输入证书表征向量,利用预训练的分类模型对证书表征向量进行判别,检测出恶意的证书。即在训练时,根据证书表征向量与证书标签对分类模型的参数进行调整,学习合适的参数;然后在测试使用时,将证书表征向量输入到预训练的分类模型中,根据训练时学习到的参数计算判别结果,对证书进行分类检测。
[0018]
数据预处理模块主要负责对证书字段进行数值化处理,具体实现如下:
[0019]
(1)对于证书的固定字段,需要根据每个字段的具体含义和取值情况设计不同的数值化策略,使用若干个数值来表示各个字段,每个字段的具体数值化方法如下:
[0020]
1)version字段:使用rfc规范中版本号对应的具体数值来表示。
[0021]
2)serial number字段:使用其字节序列的熵值来表示。
[0022]
3)signature字段:预先整理了8种常见的签名算法类型,使用1~8对其进行编号,并用0来表示其他非常见签名算法,然后将证书中使用签名算法转换成对应的编号来表示。
[0023]
4)validity字段:使用证书的有效时长,也就是证书到期日期和证书生效日期之差来表示。
[0024]
5)public key algorithm字段:使用编号1~2分别表示rsa、ecdsa这两种常用的非对称加密算法类型,使用0来表示其他非对称加密算法,然后将证书中使用非对称加密算法转换成对应的编号来表示。
[0025]
6)subject public key字段:使用公钥的长度来表示。
[0026]
(2)对于可变字段,数据预处理部分直接将其对应的字节码序列转为相应的整数序列,整数的取值范围与字节的取值范围相对应,都是0~255。
[0027]
字段特征提取模块主要负责提取证书不同字段的特征表示向量,具体实现如下:
[0028]
(1)对于固定字段,每个字段都已经被预处理成了单一的数值表示,只需要使用位置编码的向量化方法,通过公式计算将每个字段的数值转换成指定维度的特征向量表示,具体计算公式如公式(1)所示。
[0029][0030]
式中pos代表固定字段对应的具体数值,2i代表转换后特征向量的偶数项,2i+1代表转换后特征向量的奇数项,d
model
是转换后特征向量的总维度数,sin是正弦函数,cos是余弦函数,pe代表着转换后的特征向量。
[0031]
(2)对于可变字段,使用34层的深度残差卷积网络resnet提取字段的特征向量,具体结构如图2。卷积神经网络以滑动窗口的方式进行特征的提取,对数据的有序性要求性较低,可以处理多维度的序列数据。因此,本模块首先将三个可变字段的数值向量进行拼接,然后进行维度重组,再输入到34层的深度残差卷积网络resnet中提取可变字段的特征向量。
[0032]
字段特征融合模块主要负责融合证书不同字段的特征向量,获得有效的证书表征向量,整体结构如图3所示,具体实现如下:
[0033]
(1)首先对固定字段的特征向量与可变字段的特征向量进行拼接和维度重组,生成一个二维的特征矩阵,得到未加权的特征向量。
[0034]
(2)然后使用自注意力机制学习不同字段特征向量之间的关联信息,对特征向量进行加权,得到加权后的特征向量。自注意力机制加权的公式如公式(2)所示。
[0035][0036]
式中q、k、v代表字段的原始特征向量,t是转置操作符,d
k
代表字段原始特征向量的维度,softmax是归一化指数函数,attention(q,k,v)代表着加权后的字段特征向量。
[0037]
(3)将未加权的特征向量与加权后的特征向量进行有机融合,得到证书最终的表征向量。
[0038]
证书判别模块主要负责根据证书的表征向量对证书进行分类判别,具体使用全连接层实现。在训练时,根据前几步所获取的证书表征向量与证书标签对全连接层的参数进行调整,学习合适的参数;然后在测试使用时,将证书的表征向量输入到预训练的全连接层中,根据训练时学习到的参数计算判别结果,对证书进行分类检测。
[0039]
本发明的一种基于深度学习技术的恶意证书自动检测方法,包括以下步骤:
[0040]
(1)证书数据预处理:根据证书字段的取值特点将证书字段分为固定字段和可变字段两类,使用不同的策略将证书字段转换成计算机能够处理的数值表示;对于证书的固定字段,根据每个字段的具体含义和取值情况设计不同的数值化策略,使用若干个数值来表示各个字段;对于可变字段,直接将字段对应的字节码序列转为相应的整数序列来表示该可变字段;
[0041]
(2)证书不同字段的特征向量提取:根据数据预处理操作后证书字段转换后的数值化结果,利用向量化方法与深度模型提取证书不同字段的特征向量;对于固定字段,使用位置编码的向量化方法,通过公式计算将每个字段的数值转换成指定维度的特征向量表示;对于可变字段,将多个可变字段对应的一维整数序列进行拼接与维度重组,生成一个包含所有可变字段原始信息的二维的整数向量;然后将包含所有可变字段原始信息的二维整数向量输入到34层的深度残差卷积网络resnet中,经过网络计算,得到所有可变字段的特征向量表示;
[0042]
(3)证书不同字段特征向量的加权融合:通过对证书固定字段的特征向量与证书可变字段的特征向量进行拼接和维度重组,生成一个二维的特征矩阵,得到未加权的字段特征向量;然后使用自注意力机制学习不同字段特征向量之间的关联信息,对字段特征向量进行加权,得到加权后的字段特征向量;最后将证书未加权的字段特征向量与加权后的字段特征向量进行有机融合,得到证书表征向量;
[0043]
(4)证书分类模型的训练与测试:在训练时,使用上述步骤提取出的证书表征向量与证书自带的标签进行分类模型的训练,学习合适的参数;然后在测试使用时,将证书表征向量输入到预训练的分类模型中,根据训练时学习到的参数计算判别结果,对证书进行分类检测。
[0044]
本发明与现有方法相比的主要优点在于:本发明基于多种深度学习技术,能够利用向量化方法和深度模型自动提取证书不同字段的特征向量,并使用自注意力机制进行加权融合,得到证书表征向量用于恶意证书的检测,有效的摆脱了传统恶意证书检测中特征设计的人力成本开销,同时取得了更优异的检测效果。并且,与传统的黑名单匹配和特征工程方法相比,基于深度学习的方法具有更加优异的泛化性与实用性,深度学习方法能够学习证书不同字段深层次的相互关系,黑客无法通过刻意修改字段信息来简单的规避系统的检测。
[0045]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0046]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通
技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
[0047]
图1是本发明的恶意证书检测系统整体框架图;
[0048]
图2是本发明所设计的证书可变字段的特征向量提取结构图;
[0049]
图3是本发明所设计的证书不同字段的特征向量加权融合结构图。
具体实施方式
[0050]
下面参考附图,对本发明的实施例进行详细的说明。
[0051]
首先对本发明的方法全过程进行说明。
[0052]
图1展示了本发明所设计的基于深度学习技术的恶意证书自动检测系统整体框架图,该系统由数据预处理模块、字段特征提取模块、字段特征融合模块和证书判别模块组成。其中,数据预处理模块主要负责将证书字段转换成计算机能够处理的数值表示。字段特征提取模块主要负责使用向量化方法和深度模型提取字段的特征向量表示。字段特征融合模块主要负责利用自注意力机制学习不同字段特征向量之间的相互关系,对原始的字段特征向量进行加权调整,然后再对所有调整后的字段特征向量进行融合,得到证书表征向量。证书判别模块主要负责利用预训练的分类模型对证书表征向量进行判别,检测出恶意的证书。
[0053]
数据预处理模块主要负责对证书字段进行数值化处理,具体实施方式如下:
[0054]
(1)对于证书的固定字段,需要根据每个字段的具体含义和取值情况设计不同的数值化策略,使用若干个数值来表示各个字段,每个字段的具体数值化方法如下:
[0055]
1)version字段:使用rfc规范中版本号对应的具体数值来表示。
[0056]
2)serial number字段:使用其字节序列的熵值来表示。
[0057]
3)signature字段:预先整理了8种常见的签名算法类型,使用1~8对其进行编号,并用0来表示其他非常见签名算法,然后将证书中使用签名算法转换成对应的编号来表示。
[0058]
4)validity字段:使用证书的有效时长,也就是证书到期日期和证书生效日期之差来表示。
[0059]
5)public key algorithm字段:使用编号1~2分别表示rsa、ecdsa这两种常用的非对称加密算法类型,使用0来表示其他非对称加密算法,然后将证书中使用非对称加密算法转换成对应的编号来表示。
[0060]
6)subject public key字段:使用公钥的长度来表示。
[0061]
(2)对于可变字段,数据预处理部分直接将其对应的字节码序列转为相应的整数序列,整数的取值范围与字节的取值范围相对应,都是0~255。
[0062]
字段特征提取模块主要负责提取证书不同字段的特征表示向量,具体实施方式如下:
[0063]
(1)对于固定字段,每个字段都已经被预处理成了单一的数值表示,只需要使用位置编码的向量化方法,通过公式计算将每个字段的数值转换成指定维度的特征向量表示,具体计算公式如公式(1)所示。
[0064][0065]
式中pos代表固定字段对应的具体数值,2i代表转换后特征向量的偶数项,2i+1代表转换后特征向量的奇数项,d
model
是转换后特征向量的总维度数,sin是正弦函数,cos是余弦函数,pe代表着转换后的特征向量。
[0066]
(2)对于可变字段,使用34层的深度残差卷积网络resnet提取字段的特征向量,具体结构如图2。卷积神经网络以滑动窗口的方式进行特征的提取,对数据的有序性要求性较低,可以处理多维度的序列数据。因此,本模块首先将三个可变字段的数值向量进行拼接,然后进行维度重组,再输入到34层的深度残差卷积网络resnet中提取可变字段的特征向量。
[0067]
字段特征融合模块主要负责融合证书不同字段的特征向量,获得有效的证书表征向量,整体结构如图3所示,具体实施方式如下:
[0068]
(1)首先对固定字段的特征向量与可变字段的特征向量进行拼接和维度重组,生成一个二维的特征矩阵,得到未加权的特征向量。
[0069]
(2)然后使用自注意力机制学习不同字段特征向量之间的关联信息,对特征向量进行加权,得到加权后的特征向量。自注意力机制加权的公式如公式(2)所示。
[0070][0071]
式中q、k、v代表字段的原始特征向量,t是转置操作符,d
k
代表字段原始特征向量的维度,softmax是归一化指数函数,attention(q,k,v)代表着加权后的字段特征向量。
[0072]
(3)将未加权的特征向量与加权后的特征向量进行有机融合,得到证书最终的表征向量。
[0073]
证书判别模块主要负责根据证书的表征向量对证书进行分类判别,具体使用全连接层实现。在训练时,根据前几步所获取的证书表征向量与证书标签对全连接层的参数进行调整,学习合适的参数;然后在测试使用时,将证书的表征向量输入到预训练的全连接层中,根据训练时学习到的参数计算判别结果,对证书进行分类检测。
[0074]
综上所述,本发明提供的一种基于深度学习技术的恶意证书检测方法,首先通过数据预处理将证书字段转换成计算机能够处理的数值表示,然后通过向量化方法和深度模型自动提取证书不同字段的特征向量,并使用自注意力机制对不同字段的特征向量进行加权融合,得到证书最终的表征向量,最后再使用预训练的分类模型对证书的表征向量进行判别,完成了恶意证书的检测。
[0075]
通过以上的实施方式的描述,本领域的普通技术人员可显而易见地得出其他优点和修改。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的保护范围应由权利要求限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1