一种基于安全多方计算的工控入侵检测系统及方法

文档序号:29237018发布日期:2022-03-12 14:27阅读:259来源:国知局
一种基于安全多方计算的工控入侵检测系统及方法

1.本发明涉及网络安全的入侵检测领域,尤其涉及一种基于安全多方计算的工控入侵检测系统及方法。


背景技术:

2.随着大数据以及工业智能化时代的到来,工业控制系统(industrial control systems,ics)正朝着更加复杂和智能的方向演进。网络环境的巨大变迁,使得ics面临着更多的安全威胁,非法的入侵轻则影响单个企业的ics稳定运行,重则对于社会安全和国家核心造成严重的损失。
3.入侵检测是一种主动的信息安全防护技术,是对ics的流量、协议、主机采取的主动防御,是ics的第二道安全防线。
4.入侵检测技术,针对于入侵检测的原理方法,可以分为误用入侵检测和异常入侵检测;针对于入侵检测数据的来源,可以分为基于流量的入侵检测、基于设备的入侵能检测和基于主机的入侵检测。误用入侵检测又称基于特征的入侵检测,误用检测技术的特点是检测精度较高,能够识别攻击的类型。误用检测通过已知的攻击知识建立攻击特征库,通过用户或者系统行为于特征库中的数据进行比对,来确定是否入侵。异常入侵检测是检测变种攻击的另一重要途径,检测的对象是异常的行为。从数学意义上理解,即找到不是正常行为或与正常行为偏离较大的则定义为异常行为。该检测技术能够建立用户或系统的正常行为轮廓,在早期的异常检测系统中通常用统计模型或机器学习算法,通过模型计算出随机变量类别划分的概率,同时规定经验阈值,超过阈值则认为系统异常。
5.胡昌振等人在中国发明专利申请“一种基于集成机器学习算法的双模式入侵检测装置”(申请号为cn201910507257.9)中,提供了一种基于集成机器学习算法的双模式入侵检测系统,监控模块用于根据监控策略从网络流量中获取流量数据;对于规则库和在库威胁利用传统的检测方法,对于未知威胁的检测则利用多种机器学习方法进行检测。该系统利用多种机器学习算法进行训练,效率低,一次更新多个模型的成本更高,无法保证对于新型威胁的及时反应;同时,该系统仍然限于单一企业的数据孤岛,无法针对多样性的伪装度更高的入侵威胁。
6.孙运雷等人在中国发明专利申请“一种云计算环境入侵检测系统架构及其方法”(申请号为cn201710567135.x)中,在同一个云区域内的云入侵检测代理层将会进行信息共享来帮助其他虚机进行入侵威胁的预防,云机器学习引擎用机器学习的方式负责从警报﹑网络传输流、日志信息中学习正常模式和攻击模式的特征。该方法对于信息的共享没有提出任何客户隐私安全的解决方案,基于云机器学习引擎的样本集有可能来自于任何一方工控企业的工控数据收集,对于价值高的工控数据的确权问题无法解决。基于明文的共享,无论是训练样本、入侵检测数据和训练模型,都处于无保护状态,并不符合企业的安全保护理念。
7.因此,本领域的技术人员致力于开发一种基于安全多方计算的工控入侵检测系统
circuit、oblivious transfer、sha256协议、reconstruct协议。
21.本发明还提供了一种基于安全多方计算的工控入侵检测方法,基于权利要求3至7中任意一项所述的基于安全多方计算的工控入侵检测系统,所述方法包括以下步骤:
22.步骤1、各工控数据私有方商定数据训练网络结构拓扑和工控通讯协议;
23.步骤2、所述各工控数据私有方把各自本地入侵检测数据库的数据,包括异常数据和正常数据,使用所述数据处理模块进行处理并调用所述安全多方计算协议库模块中的secret share协议得到各自所述本地入侵检测数据库的数据的秘密分享值,并将所述秘密分享值送到所述sml平台中,形成用于建立所述检测模型的基础数据库;
24.步骤3、将所述sml平台调整至所述st模式,从所述机器学习算法库模块中的所述机器学习平台提供的若干所述机器学习算法中选择一种具体的算法,记为x-算法,并调用所述安全多方计算协议库模块,对选择的所述x-算法进行隐私机器学习算法搭建,然后在所述联合建模模块中建立所述检测模型,并将所述检测模型输送给所述入侵检测模块;
25.步骤4、将所述sml平台调整至所述si模式,所述各工控数据私有方在企业工控网络中获取数据包并进行数据包解码,再经过所述数据处理模块的处理之后,输入所述入侵检测模块中进行入侵检测;如果判别为异常数据,将给出异常攻击的类型并进行告警响应;如果判别为正常数据,则将所述数据包中数据的正常置信度与预先设定的阈值进行对比,再次进行判别;当所述正常置信度大于预先设定的所述阈值时,则通过检测,判别为正常数据;当所述正常置信度不大于预先设定的所述阈值时,则进行告警响应,并将所述数据包中的数据判别为未知风险数据;将检测后的异常数据、正常数据和未知风险数据进行数据整合和标定,包括:异常数据不同类别的属性序号、正常数据的属性序号和未知风险数据,并将各类别数据分别置于各类别数据集中;
26.步骤5、待完成所述数据整合和标定之后,检测后的异常数据、正常数据和未知风险数据进入所述各工控数据私有方的所述本地入侵检测数据库,进行库更新,实现增量学习。
27.进一步地,在所述步骤3所述联合建模模块中建立所述检测模型的过程中,可以根据模型训练的效率和结果,适配不同的所述安全多方计算协议库模块中的所述基础协议,并根据不同类型的工控场景,有选择的自主对来自所述机器学习平台提供的所述机器学习算法进行选择和主动性改造。
28.进一步地,在所述步骤3中,也可以根据所述工控数据私有方的数据价值,选择不将所述sml平台调整至所述st模式。
29.本发明提供的一种基于安全多方计算的工控入侵检测系统与方法至少具有以下技术效果:
30.在传统的入侵检测技术中,对于单一企业,只能检测基于自身特征库的已知攻击,对于未知攻击,检测的效果呈现滞后性,或者因为统计模型导致对训练正常工控操作系统入侵检测模型的过拟合现象;攻击特征库维护成本高,需要专家根据专业知识抽取攻击特征,更新特征库。总的来说,根本原因是单个企业防御入侵力量有限,入侵行为特征库的数据单一,又或者对于系统正常模型建立产生的过拟合现象导致误判,导致对于大范围新型攻击的防御力差。本发明所提供的技术方案提出一种建立基于安全多方计算的隐私机器学习平台,在对工控企业私有数据实现数据保护的基础上,实现多工控企业的入侵检测系统
的联合建模,最大程度地实现流通工控数据的价值,同时保证模型提供商的模型隐私安全,并且采取置信度分析进一步结合误用型入侵检测和异常入侵检测的优势特点,减少由于统计模型或机器学习模型过拟合导致的误判和由于基于特征库而导致的无法判别未知威胁的缺点。
31.以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
32.图1是本发明的一个较佳实施例的隐私保护机器学习系统的框架架构示意图;
33.图2是图1所示实施例提供的sml平台的联合建模与入侵检测的流程示意图。
具体实施方式
34.以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
35.在传统的入侵检测技术中,对于单一企业,只能检测基于自身特征库的已知攻击,对于未知攻击,检测的效果呈现滞后性,或者因为统计模型导致对训练正常工控操作系统入侵检测模型的过拟合现象;攻击特征库维护成本高,需要专家根据专业知识抽取攻击特征,更新特征库。总的来说,根本原因是单个企业防御入侵力量有限,入侵行为特征库的数据单一,又或者对于系统正常模型建立产生的过拟合现象导致误判,导致对于大范围新型攻击的防御力差。
36.隐私计算是面向隐私信息全生命周期保护的计算理论和方法,是隐私信息的所有权、管理权和使用权分离时隐私度量、隐私泄漏代价、隐私保护与隐私分析复杂性的可计算模型与公理化系统。目前的隐私计算主要分为基于协议的安全多方计算、基于现代密码学的联邦学习、和基于硬件的可信执行环境;本文所用到的方法是基于协议的安全多方计算。
37.安全多方计算(secure multi-party computation,mpc)是指无可信第三方的情况下,安全地计算一个约定函数的技术和系统。参与计算的各方通过输入私有数据,数据加密后共同参与计算,从而保证其他各方无法得到数据,保证各方数据的安全。mpc的发展,现如今有很多成熟的协议被证明安全性,通过代码实现,得到很多可以适配不同协议的mpc框架。
38.联合建模与安全推理,数据模型的准确性取决于数据量、数据种类和数据质量。使用安全多方计算技术将多方数据联合在一起,通过安全多方计算技术数据的隐私性,在多方数据基础上训练出的模型将更加准确,从而对未知情形提供更加合理的预测,安全推理则能保证预测模型服务商和企业的私有数据都能在正常推理的进行中保护隐私。
39.在本发明所提供的技术方案中,提出了一种建立基于安全多方计算的隐私机器学习平台,在对工控企业私有数据实现数据保护的基础上,实现多工控企业的入侵检测系统的联合建模,最大程度地实现流通工控数据的价值,同时保证模型提供商的模型隐私安全,并且采取置信度分析进一步结合误用型入侵检测和异常入侵检测的优势特点,减少由于统计模型或机器学习模型过拟合导致的误判和由于基于特征库而导致的无法判别未知威胁
的缺点。在隐私保护的前提下,联合建模的准确性和多样性会随着参与方的增多,准确度与入侵检测范围均获得提高。
40.具体来说,本发明提供了一种基于sml的工控网络入侵检测系统,在入侵检测的同时可实现工控网络数据全方位的安全。该系统主要包含一个作为数据的入口和出口的sml平台,其中,sml平台包括数据处理模块、机器学习算法库模块、安全多方计算协议库模块、联合建模模块和入侵检测模块。
41.如图1所示,该系统在私有数据方的待测数据经过数据处理模块之后,与调用安全多方计算协议框架的机器学习算法库模块经过联合建模模块输出的检测模型共同输送给入侵检测模块,对工控网络中获取的流量进行检测,从而实现数据的隐私保护与更完备的入侵检测。即机器学习算法库模块调用安全多方计算协议库模块中的基础协议搭建算法,在联合建模模块中建立检测模型,并将检测模型输送给入侵检测模块;用户本地的私有数据经过数据处理模块的处理之后,也输入入侵检测模块中接受检测模型的入侵检测。
42.为了提供数据的全方位安全,本发明实施例提供了一个sml平台来实现数据的全流程保护,该平台全方位调度本系统中的各个子模块,并且该平台是数据的入口和出口,sml平台具有两种模式,其中st(secure training)是模型安全训练模式,si(secure inference)是模型安全预测模式。两种模式分别为客户提供联合建模和安全推理服务。
43.在安全多方计算协议库模块中,在统一的sml平台内,实现安全多方计算的基础协议,包括secret share、private compare、relu、drelu、and、xor、matrix multiplication、convolution、type conversion、division、truncation、b2a、a2b,同时,该模块还包括gircuit circuit、oblivious transfer、sha256协议、reconstruct协议。上述基础协议的安全性提供了抵御半诚实攻击者的隐私保护能力,其它模块的安全性均由本模块提供。
44.机器学习算法库模块通过sml框架对安全多方计算协议库模块中的各个基础协议进行调用并组合,以实现机器学习算法库中的决策树算法、感知机模型、k-means算法以及极限学习机。
45.数据处理模块需要安全多方计算协议库模块中的secret share协议的支持,因此数据处理模块也通过sml框架实现所需隐私协议的调用。
46.入侵检测模块负责实时数据安全推理,若尚未经过联合建模建立预测模型,则需要调用机器学习算法库模块,机器学习算法库模块再通过调用安全多方计算协议库模块完成mpc机器学习算法搭建后,启用sml框架的st模式来进行多方联合建模。建模完成之后,用户启用sml框架的si模式来运行安全多方的入侵检测算法,进行入侵检测流程。
47.机器学习算法库模块的主要功能是为入侵检测模块提供机器学习算法支持,算法库中包括一个机器学习平台,平台提供决策树算法、感知机模型、k-means算法以及极限学习机、贝叶斯估计等经典机器学习算法,并且该平台具有可扩展性,即可以二次编程。
48.机器学习算法库模块的可扩展性,目前基于机器学习包括神经网络的入侵检测的方法不断更新,包括但不限于xgboost、lstm、cnn、autodecoder、convlstm等机器学习算法。机器学习算法库模块支持对机器学习算法库模块在调用安全多方计算协议模块支持下的扩展,其原理是根据运算流程将机器学习模块化,各自模块使用安全多方计算协议进行实现并封装,模块与模块之间利用secret share算法进行数据流的传输。
49.数据处理模块需要安全多方计算协议库模块中的secret share协议的支持。数据
处理模块实现对隐私数据的处理。隐私数据作为入侵检测系统的输入数据,必须经过数据处理模块转换为秘密分享。具体过程是首先将数据转换为定点数格式,接着执行secret share协议将定点数格式的数据转换为秘密分享值。
50.联合建模模块实现多方隐私输入下对机器学习算法的联合建模,并将训练后的模型交由机器学习算法库模块保存。在开始模型训练前,首先要进行数据处理,然后调用机器学习算法库模块生成所选算法。模型训练有两种模式,第一种是由安全多方计算提供数据和模型参数安全性的,称为st模式,相应的,sml平台需要启用st模式,并调用安全多方计算协议模块。第二种是一般的训练模式,不保护数据的安全性,因此无需开启st模式,这种模式启动的前提是数据是可允许共享的。
51.入侵检测模块是处理入侵检测的核心,实现隐私安全推理功能。入侵检测模块的主要任务是使用入侵检测对隐私数据进行判断。具体步骤如下:
52.首先,启用sml框架的si模式。对于监测端所获取数据包进行解包,然后在本地对解包后的数据进行预处理,处理的要求由具体选择的入侵检测算法的输入格式决定。
53.第二步,调用数据处理模块将预处理后的数据转换为秘密分享并上传到sml平台,sml平台将根据config文件中规定的算法来调用机器学习算法库模块中的算法,该算法的operation均由sml平台的安全多方计算协议模块提供。
54.第三步,运行入侵检测算法,用户在本地调用sml平台的reconstruct协议,得到预测结果并可以根据预测结果来判断生产环境是否遭遇攻击。
55.本发明实施例还提供了一种基于安全多方计算的工控入侵检测方法,包括以下步骤:
56.步骤1、各工控数据私有方商定数据训练网络结构拓扑和工控通讯协议;
57.步骤2、各工控数据私有方把各自本地入侵检测数据库的数据,包括异常数据和正常数据,使用数据处理模块进行处理并调用安全多方计算协议库模块中的secret share协议得到各自本地入侵检测数据库的数据的秘密分享值,并将秘密分享值送到sml平台中,形成用于建立检测模型的基础数据库;
58.步骤3、将sml平台调整至st模式,从机器学习算法库模块中的机器学习平台提供的若干机器学习算法中选择一种具体的算法,记为x-算法,并调用安全多方计算协议库模块,对选择的x-算法进行隐私机器学习算法搭建,然后在联合建模模块中建立检测模型,并将检测模型输送给入侵检测模块;
59.步骤4、将sml平台调整至si模式,各工控数据私有方在企业工控网络中获取数据包并进行数据包解码,再经过数据处理模块的处理之后,输入入侵检测模块中进行入侵检测;如果判别为异常数据,将给出异常攻击的类型并进行告警响应;如果判别为正常数据,则将数据包中数据的正常置信度与预先设定的阈值进行对比,再次进行判别;当正常置信度大于预先设定的阈值时,则通过检测,判别为正常数据;当正常置信度不大于预先设定的阈值时,则进行告警响应,并将数据包中的数据判别为未知风险数据;将检测后的异常数据、正常数据和未知风险数据进行数据整合和标定,包括:异常数据不同类别的属性序号、正常数据的属性序号和未知风险数据,并将各类别数据分别置于各类别数据集中;
60.步骤5、待完成数据整合和标定之后,检测后的异常数据、正常数据和未知风险数据进入各工控数据私有方的本地入侵检测数据库,进行库更新,实现增量学习。
61.其中,在所述步骤3所述联合建模模块中建立所述检测模型的过程中,可以根据模型训练的效率和结果,适配不同的所述安全多方计算协议库模块中的所述基础协议,并根据不同类型的工控场景,有选择的自主对来自所述机器学习平台提供的所述机器学习算法进行选择和主动性改造。
62.其中,在所述步骤3中,也可以根据所述工控数据私有方的数据价值,选择不将所述sml平台调整至所述st模式。
63.如图2所示,为本发明实施例提供的一种基于安全多方计算的工控入侵检测方法的具体实施步骤:
64.步骤1、数据训练网络结构拓扑和协议商定:各工控数据私有方,完成自己的网络拓扑结构,训练的主机的ip地址进行沟通,并沟通多方计算协议的密钥,共同商定训练的工控场景,具体的工控通讯协议(modbus、s7、profibus、cip等),方便进行数据联合建模之前的预处理;
65.步骤2、数据准备:参与sml平台的各方把各自本地入侵检测数据库的异常数据和正常数据进行处理得到数据的秘密分享值。
66.初始化阶段,初始化异常数据特征库基于企业的历史特征数据库;初始化正常数据库的形成需要对正常工况下的工控系统的行为数据进行采集,数据分析整合、数据清洗后使用数据处理模块进行数据转化,数据转换后调用安全多方计算协议模块的secret share协议使得数据变为秘密分享状态,作为本地入侵检测训练数据库并在训练模型前将秘密分享值发送到sml平台中。
67.库更新阶段,按照入侵检测模块所输出的数据特征选取规则统一的格式,把从上次模型训练到本次采集之间的所有异常数据和正常数据,经过数据分析整合、数据清洗后的数据同样需要经过数据转换和秘密分享,然后将秘密分享值放入各自参与训练的主机中含有网络拓扑结构文件和密钥文件的文件夹里,作为入侵检测训练数据集,和上次训练的模型一起,作为本次训练的模型,实现增量学习。
68.步骤3、联合建模(st模式):具体的模型训练的周期,可以依据工控行业以及具体场景的需求而定,可以设定为一定的时间间隔或者是一定的数据集收集量。
69.xgboost可以处理大规模数据;可以通过正则化或者其他的参数实现控制模型复杂度,减少模型过拟合;支持增量学习;对损失函数的二阶展开使得函数下降的速度更快,时间更少;考虑了训练数据为稀疏值的情况,可以为缺失值或者指定的值指定分支的默认方向,这能大大提升算法的效率。
70.以xgboost算法为例介绍模型训练过程。
71.首先,将sml平台调整至st模式。选择机器学习库模块中的决策树:xgboost算法,调用mpc模块,对xgboost进行隐私机器学习算法搭建,完成mpc-xgboost算法的构建之后,在各自(私有数据方1、2、3)工控主机端口上,输入命令行代码,运行mpc-xgboost的训练代码,并在输入命令中协商自定义各自端口号(注意不能有相同端口)。通过更改运行代码中的训练参数进行调优,更改lamda,alpha(正则化项系数),来模型控制复杂度,调用modelfit函数得到最优迭代次数,调用xgbclassifier类的fit函数得到最优树的最大深度和最小叶子节点权重。将参数'objective'设置为:'multi:softprob',并设置num_class的参数根据三方系统已知的攻击类型来确定。以上是mpc-xgboost联合建模模块。通过联合建
模得到最终训练模型,在已分好的测试机中对模型进行评估,当准确度达到预定期望时候可以停止训练,输出模型。特征规则的选取可以在每次加入数据集正式启动训练之前进行特征影响值排序,依据属性影响排序决定是否更新特征提取规则。此时,模型输出的是系统对样本分类的各个类别的置信概率,训练好的模型存入机器学习算法库模块中以待使用。
72.步骤4、数据入侵检测(si模式):首先,将sml平台调整至si模式,如果没有训练,则必需要先实现步骤3。以数据私有方1为例来介绍,数据私有方1在企业工控网络中对数据流量进行抓包,获取到数据包之后,通过对数据进行解包,标记数据协议,流量来源ip,用户名等,提取出应用层内容,将数据按照建模规则调整成统一的格式送入数据的安全推理si模块,经过模型检测之后输出结果,如果判别为异常,将给出异常攻击的类型并进行告警,如果通过了检测,作为非异常数据,通过观察非异常数据的置信度,与设定的经验阈值进行对比,再次进行判别,当置信度大于设定的阈值,则通过检测,当置信度小于设定的阈值时,则告警,待人工审查。将检测后的异常数据、正常数据、和未知风险(判别为非异常数据但是置信度测试不通过)数据进行标识,异常数据不同类别的属性序号、正常数据的属性序号和未知风险数据等。并将各类别数据分别置于各类别数据集中。待数据整合,标定之后,进入数据私有方1的入侵检测数据库,进行库更新,仍作为增量训练时的输入数据私有方1。
73.可选的,在步骤3中,根据训练效果,可以通过调节参数控制模型的过拟合程度,同时更改训练的目标属性,可以输出预测各个类别的置信度,来确定预测的可信程度和对未知异常行为进行预判。
74.可选的,在步骤3中,对于数据特征提取的规则可以进行规定,比如,当某种异常入侵行为满足一定攻击频率或者达到一定时限内的攻击次数阈值上限时,可以对数据特征规则进行一次更新。更新时间即在开始正式训练之前,已有数据集输入的时候。可以对特征属性进行影响值排序分析。
75.可选的,在步骤3中,根据训练的效率和结果,适配不同的安全多方计算协议,根据不同类型的工控场景,有选择的自主对机器学习算法进行选择和主动性改造,以期达到期望的最优训练效果。
76.可选的,可以在步骤3中,根据工控数据的价值,来选择是否使用隐私保护下的联合建模(st)模式,有数据参与方共同商定,明文的数据流通,可以提升训练的效率。
77.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1