论文部分内容阅读
当前网络安全问题已经从传统的互联网范围延伸到了工业控制领域。随着工业4.0进程的不断推进,工业控制网络这种最初被设计成相对封闭环境的网络结构与互联网的连接愈加紧密。但是由于工业控制系统强调实时性、可用性与运行效率,没有完善的安全设计规范,这就会导致脆弱不堪的工业控制系统受到来自互联网的威胁攻击。近几年来的工控攻击事件层出不穷:“震网”、“Duqu”、“火焰”以及最近的“Havex”,给许多国家的工业系统造成了严重的破坏。在传统的信息系统中,安全问题一般分为主机安全和网络安全两大类。依此思路,工业控制环境的安全问题也可以分为工业控制环境计算节点的安全问题和工业控制网络的安全问题。本文主要研究计算节点安全问题,首先将工控环境中的计算节点分为上位机和下位机,接着以震网病毒为例详细分析了该病毒是如何影响上位机和下位机工作的,并针对这两种计算节点的安全缺陷设计了基于可信计算的上位机安全检测方法和工控可编程逻辑控制器安全检测方法。上位机安全检测方法以可信计算技术为基础,整个方法包括了Windows系统安全检测方法和工控软件的安全检测方法。Windows系统安全检测方法是为了保证操作系统的安全可信,以内核态通过Hook关键API函数实现开机启动过程中Windows系统模块的可信度量,保证工控软件所在平台的可信性;工控软件安全检测方法实现了静态度量和动态度量两部分:静态度量通过对工控软件的可执行文件和其导入的所有DLL进行可信度量来保证软件启动前的可信,动态度量在工控软件进程启动并在内存中执行第一条指令的时获取所有代码页内容,并对代码页内容进行可信度量,实现工控软件的动态可信度量。在系统和软件运行过程中,检测方法还对系统关键数据结构SSDT进行度量,保证Windows系统API的可信性。安全检测方法从系统启动到工控软件运行,构成了一条完整的可信链。下位机安全检测方法以西门子S7-200可编程逻辑控制器为例,创新性地提出了一种PLC模拟仿真与实时监控相结合的安全检测方法,能够在第一时间检测到远程PLC的异常运行状态。模拟运行模块能够完整地模拟物理PLC的运行,并记录下虚拟PLC的输出映象寄存器的时间序列,同时远程监控模块利用LIBNODAVE库对远程PLC实时监控,记录下输出映象寄存器的时间序列,并利用安全检测算法对比两个时间序列,检测到异常时向用户告警。安全检测算法分为基于相似度的时间序列匹配算法和基于时间窗的时间序列完全匹配算法,分别适用于低安全级别和高安全级别工控环境。