论文部分内容阅读
近年来,由于工业控制系统中安全事件频繁发生,工控系统的安全问题引起了各行业广泛关注,人们迫切需求对系统安全进行有效的监控。现有研究工作显示对工业控制系统进行异常检测是应对各类安全问题的有效方法,而深度包检测又是其中最为全面、有效的一种异常检测方法。然而,现有的检测方法大多基于特定的系统环境及攻击行为进行设计,当系统通信协议发生变化或攻击目标从使设备宕机、篡改被控对象设定值进一步拓展为修改请求-响应行为、切换设备工作模式、篡改控制程序和参数等高隐蔽性攻击以及更多未知的攻击方式时,现有方法很难保证检测的有效性,而工控系统环境下异常数据集及测试平台的缺乏也导致了研究工作难以进一步开展。基于以上背景,本文对目前国内外工业控制系统深度包检测方法及工控协议测试平台进行了全面调研,分析了现有检测方法的局限性,提出了一种基于语义特征的深度包检测方法,并搭建了典型工控协议测试平台对检测方法进行验证。本文针对工控系统中的异常检测问题展开研究,主要贡献如下:1.解决了现有工控环境数据集与测试平台中缺乏被控对象信息及多类型异常行为数据的问题,通过搭建典型工控协议测试平台提供包含真实生产过程信息的控制网络数据流与异常行为测试环境,并给出了对通信过程、控制设备或被控对象中一个或多个目标造成影响的四种异常样本。本文选取工控系统中的IEC 60870-5-104、Modbus/TCP、BACnet/IP、Ethernet/IP、CC-LINK 五种典型协议,搭建了以过程监控层和现场层为基础的工控系统平台模拟工控系统环境下的交互行为,采集包含五种协议报文在内的混合协议网络数据流,在此基础上,通过协议脆弱性的研究对报文有效载荷中各字段的功能和特点进行分析,并基于报文变异模拟了控制信息异常、数据单元标识异常、重置指令异常和被控过程参数异常四种异常行为。2.弥补了现有深度包检测研究中报文应用层解析不完全和应用于多协议场景时报文底层重复解析的缺点,提出了一种利用封装过程相似性的混合协议深度包解析方法来提高报文解析效率,并通过按位解析报文应用层深度挖掘报文语义信息。本文基于工控协议的封装过程,分析不同协议底层结构的相似性,对报文物理层到传输层依次进行拆分、解析,减少报文底层解析过程的重复性,进一步以bit为单位对应用层数据进行解析并根据标识字段识别协议类型。针对本文的五种典型工控协议,该方法均达到了 100%的协议识别准确率。3.克服了现有基于状态迁移模型的检测方法无法适用被控对象异常场景,以及基于时序预测模型的检测方法无法处理通信过程、控制设备异常场景的困难,解决了多异常复合场景下检测效果下降的问题,提出了一种基于语义特征的深度包检测方法。本文结合工控系统的先验知识对报文字段的语义信息进行分析,采用包含通信功能字段、控制功能字段和过程变量字段三种类型字段的特征向量描述样本数据,通过选取不同类型的朴素贝叶斯模型处理不同类型字段,并融合模型结果进行异常检测,以实现不同场景中检测模型的适用性。针对上述控制信息异常、数据单元标识异常、重置指令异常和被控过程参数异常四种异常行为,该方法能保持90%以上的准确率与召回率。