发明内容
本发明的目的在于提供一种基于协议深度分析的工控安全审计系统,通过对危害数据包进行特征分析和建模,实现对新接收数据包的模糊判断,提高了网络流量的审计全面性和工控系统网络的安全性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种基于协议深度分析的工控安全审计系统,包括,
接收单元,用于接收控制调度工控设备的数据包;
协议解析单元,用于解析数据包得到每个数据包的流量特征;
模型训练单元,用于获取具有危害性的数据包,记为危害数据包;
获取所述危害数据包的流量特征;
将所述危害数据包的流量特征作为输出层,将危害等级作为输出层,训练得到安全识别模型;
根据所述安全识别模型蒸馏得到若干个参数量不等的系列安全识别子模型;
审计单元,用于根据所述接收单元新获取的数据包与所述危害数据包的流量特征进行比对和/或根据所述安全识别模型进行识别判断所述接收单元新获取的数据包是否为所述危害数据包;
若是,则对所述接收单元新获取的数据包进行拦截;
若否,则不对所述接收单元新获取的数据包进行拦截。
本发明旨在提高网络流量审计全面性和工控系统网络安全性,通过特征分析和建模危害数据包,实现对新数据包的模糊判断。系统主要由接收单元、协议解析单元、模型训练单元和审计单元组成。接收单元负责接收控制调度工控设备的数据包。协议解析单元解析数据包以获取流量特征。模型训练单元获取具有危害性的数据包,并提取其流量特征,通过训练将危害等级与危害数据包的流量特征相对应,从而获得安全识别模型,并进一步蒸馏得到系列安全识别子模型。审计单元通过比对新接收数据包与危害数据包的流量特征,或使用安全识别模型进行识别判断,若新数据包被判定为危害数据包,则拦截;否则,不进行拦截。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述一种基于协议深度分析的工控安全审计系统于一实施例的功能模块及信息流向示意图;
图2为本发明所述一种基于协议深度分析的工控安全审计系统于一实施例的步骤流程示意图;
图3为本发明所述步骤S7于一实施例的步骤流程示意图一;
图4为本发明所述步骤S74于一实施例的步骤流程示意图;
图5为本发明所述步骤S744于一实施例的步骤流程示意图;
图6为本发明所述步骤S7443于一实施例的步骤流程示意图;
图7为本发明所述步骤S7于一实施例的步骤流程示意图二;
图8为本发明所述步骤S75于一实施例的步骤流程示意图;
图9为本发明所述步骤S753于一实施例的步骤流程示意图;
附图中,各标号所代表的部件列表如下:
1-接收单元,2-协议解析单元,3-模型训练单元,4-审计单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
由于网络数据包的特征具有高度的独立
请参阅图1至2所示,本发明提供了一种基于协议深度分析的工控安全审计系统,从功能模块上划分可以包括接收单元1、协议解析单元2、模型训练单元3以及审计单元4。以上四个功能模块中的接收单元1可以是读取控制工控机等工控设备的网络接口或者API接口,其余三个功能模块可以是位于服务器中的服务进程。
在具体实施中,本方案中的接收单元1可以用于执行步骤S1接收控制调度工控设备的数据包。之后可以由位于服务器端的协议解析单元2执行步骤S2解析数据包得到每个数据包的流量特征,流量特征包括安全传输层协议版本、加密组件、扩展类型列表、支持组和/或椭圆曲线密码格式。
之后可以由模型训练单元3执行步骤S3获取具有危害性的危害数据包,接下来可以执行步骤S4获取危害数据包的流量特征,此处的流量特征可以是将数据包的安全传输层协议版本、加密组件、扩展类型列表、支持组和/或椭圆曲线密码格式按照固定格式进行排列得到的字符串。接下来可以执行步骤S5将危害数据包的流量特征作为输出层,将危害等级作为输出层,训练得到安全识别模型。接下来可以执行步骤S6根据安全识别模型蒸馏得到若干个参数量不等的系列安全识别子模型,安全识别子模型的识别准确性与参数量具有正相关的关系。
知识蒸馏是一种通过训练小模型(称为学生模型)以模仿大模型(称为教师模型)的行为的机器学习技术。这种方法可以将教师模型的知识“蒸馏”到学生模型中,使得学生模型在不损失太多精度的情况下具有更高的效率。
在最后由审计单元4执行步骤S7根据接收单元新获取的数据包与危害数据包的流量特征进行比对和/或根据安全识别模型进行识别判断接收单元新获取的数据包是否为危害数据包。若是则可以执行步骤S8对接收单元新获取的数据包进行拦截,若否则接下来可以执行步骤S9不对接收单元新获取的数据包进行拦截。可以是不予执行数据包中的数据指令,也可以是使用更高级的工具或技术,比如ARP欺骗等。需要注意的是,未经授权的拦截网络数据包可能违法,并可能侵犯他人的隐私权。因此,这种技术应该只在有权进行此类活动的情况下使用,例如在授权部署的网络上进行安全测试或故障排除。
由此可见,以上步骤在实施的过程中实现了危害数据包的特征分析与模型建立,以便模糊识别新接入的数据包,这对于提高网络流量审计的完整性和工控系统网络的安全性非常有帮助。系统主要构成部分包括接收模块、协议解码模块、模型训练模块以及审计模块。接收模块的主要任务是接收用于控制和调度工控设备的数据包。协议解码模块的职责是解码数据包并提取其流量特征。模型训练模块负责采集具有潜在危害的数据包并提取其流量特征,然后训练出一个模型,使危害等级与危害数据包的流量特征相互对应,从而形成安全识别模型,并通过蒸馏方法进一步生成多个安全识别子模型。审计模块通过比较新接收的数据包与危害数据包的流量特征,或利用安全识别模型进行评估,以实现对新数据包的安全有效地拦截或放行。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
请参阅图3所示,由于识别模型进行判断的速度较慢,为了加快对数据包安全性的判断识别速度,上述的步骤S7在实施的过程中首先可以执行步骤S71将危害数据包的流量特征作为危害流量特征存入危害特征库。接下来可以执行步骤S72将接收单元新获取的数据包的流量特征与危害特征库中已存入的危害流量特征进行比对,判断是否一致。若是则接下来可以执行步骤S73判断接收单元新获取的数据包为危害数据包,接下来可以执行步骤S74将对应的流量特征作为危害流量特征存储危害特征库。若否则接下来可以执行步骤S75将接收单元新获取的数据包的流量特征输入系列安全识别子模型和/或安全识别模型,判断接收单元新获取的数据包是否为危害数据包,若是则最后可以执行步骤S76将接收单元新获取的数据包的流量特征作为危害流量特征存储危害特征库。由于流量特征可以是字符串,对比速度较快,也就是通过前置流量特征比对的方式提高了识别速度。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
请参阅图4所示,为了提高危害特征库的检索比对速度,需要考虑不同危害流量特征检索命中时间和命中次数,也就是说检索命中时间在后的危害流量特征在此出现的概率较高,同时由于检索命中次数越多的危害流量特征再次出现的概率也较高。有鉴于此,上述的步骤S74在实施的过程中首先可以执行步骤S741按照危害特征库的检索顺序将危害特征库划分为若干个存储记录,其中,每条存储记录存储一个危害流量特征。接下来可以执行步骤S742按照存储记录的检索顺序,将设定数量的连续的存储记录划入同一个存储区块,得到多个存储区块。接下来可以执行步骤S743按照存储记录的检索顺序,间隔将存储区块标记为新存储区块和旧存储区块。最后可以执行步骤S744将存储至危害特征库的危害流量特征按照危害流量特征的出现频次及更新时间存入新存储区块或旧存储区块内。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
请参阅图5所示,考虑到最近一次更新时间较晚的危害流量特征再次出现的概率较大,因此上述的步骤S744在实施的过程中首先可以执行步骤S7441获取危害流量特征的最近一次更新时间。接下来可以执行步骤S7442按照危害流量特征最近一次更新时间与新存储区块中最近一次更新时间最早的危害流量特征的时间先后顺序,判断危害流量特征存入新存储区块或旧存储区块。接下来可以执行步骤S7443根据危害流量特征的出现频次及更新时间得到危害流量特征的排序参考值。最后可以执行步骤S7444按照危害流量特征的排序参考值以及对应存入的新存储区块或旧存储区块中已存入的危害流量特征的排序参考值的大小,将危害流量特征存储至新存储区块或旧存储区块内的存储记录中,在这其中,排序参考值较小的危害流量特征对应的存储记录检索顺序在前。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
请参阅图6所示,由于危害流量特征再次出现的概率还与出现频次和历史更新时刻分布息息相关,因此上述步骤S7443在实施的过程中首先可以执行步骤S74431获取危害流量特征的历史更新时刻分布。接下来可以执行步骤S74432根据危害流量特征的历史更新时刻分布得到危害流量特征的历史更新均值时刻。接下来可以执行步骤S74433获取危害流量特征的出现频次。最后可以执行步骤S74434将危害流量特征的历史更新均值时刻除以危害流量特征的出现频次得到危害流量特征的排序参考值。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
请参阅图7所示,为了提高安全识别模型和安全识别子模型的识别准确度,上述的步骤S7在另一实施例的实施过程中首先可以执行步骤S71将危害数据包的流量特征作为危害流量特征存入危害特征库。接下来可以执行步骤S72将接收单元新获取的数据包的流量特征与危害特征库中已存入的危害流量特征进行比对,判断是否一致。若是则接下来可以执行步骤S73判断接收单元新获取的数据包为危害数据包,接下来可以执行步骤S74将对应的流量特征作为危害流量特征存储危害特征库。若否则接下来可以执行步骤S75将接收单元新获取的数据包的流量特征输入系列安全识别子模型和/或安全识别模型,判断接收单元新获取的数据包是否为危害数据包,若是则接下来可以执行步骤S76将接收单元新获取的数据包的流量特征作为危害流量特征存储危害特征库。最后可以执行步骤S77将危害特征库新增加的危害流量特征以及对应的危害等级分别作为输入层和输出层对安全识别模型进行补充训练。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
/>
请参阅图8所示,由于参数量越多的安全识别子模型输出结果的速度越慢,但是输出结果的准确度越高。为了兼顾准确性和速度,上述的在步骤S75在实施的过程中首先可以执行步骤S751获取危害特征库中与流量特征相似度最高的危害流量特征作为目标危害流量特征。接下来可以执行步骤S752获取流量特征与目标危害流量特征的相似度。接下来可以执行步骤S753根据流量特征与目标危害流量特征的相似度在安全识别模型和系列安全识别子模型中选择目标安全识别模型。最后可以执行步骤S754将流量特征输入目标安全识别模型判断接收单元新获取的数据包是否为危害数据包。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
/>
请参阅图9所示,为了对不同数据包的流量特征具体选择合适的安全识别子模型或安全识别模型,上述的步骤S753在实施的过程中首先可以执行步骤S7531获取多个其它流量特征与对应目标危害流量特征的相似度的范围作为相似度范围。接下来可以执行步骤S7532获取流量特征与目标危害流量特征的相似度分别与相似度范围内最小值和最大值的差。接下来可以执行步骤S7533计算获取与最小值和与最大值的差的比值作为流量特征的模型选择系数。接下来可以执行步骤S7534获取系列安全识别子模型每个安全识别子模型与安全识别模型的参数量的比值作为每个安全识别子模型的模型匹配系数,其中安全识别模型的模型匹配系数是1。最后可以执行步骤S7535将模型选择系数对应数值最接近的模型匹配系数,得到流量特征对应输入的目标安全识别模型。
以下展示上述功能模块的部分可执行代码,在代码注释部分进行解释,受限于篇幅仅展示部分代码。
/>
/>
/>
在这个代码片段中,首先获取流量特征与目标危害流量特征的相似度,并计算出模型选择系数。然后计算出每个模型的模型匹配系数,并找出与模型选择系数最接近的模型。最后返回选择的模型。
综上所述,在本发明的执行过程中,通过对危害数据包进行特征分析和模型构建,以达到对新接入数据包进行模糊识别的目标,这有助于提升网络流量审计的全面性以及工控系统网络的安全水平。该系统主要包括接收单元、协议解析单元、模型训练单元以及审计单元。接收单元主要负责接收控制和调度工控设备的数据包。协议解析单元负责解码数据包并获取其流量特征。模型训练单元负责收集具有危害性的数据包并提取其流量特征,然后训练模型,使得危害等级与这些危害数据包的流量特征关联起来,从而构建安全识别模型,并通过蒸馏进一步得到一系列安全识别子模型。审计单元通过对比新收到的数据包和危害数据包的流量特征,或者利用安全识别模型进行判断,达到安全准确拦截或放行的技术效果。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件,例如电路或ASIC(专用集成电路,Application Specific Integrated Circuit)来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。