本文是一篇工程硕士论文,本文主要在上位机和PLC上部署可信计算环境,进行完整性度量研究,设计了完整性校验算法和身份认证机制。尽管取得了一定成效,但在许多方面还存在着不足。
1 绪论
1.1研究背景
工业控制系统(Industrial Control Systems,ICS)广泛应用于能源、交通、水利、冶金、水泥、航空等国家关键基础设施中,在自动化作业方面发挥着不可替代的作用。由于工业网络的独立性和相对封闭性,初期工业控制系统的安全性借助设备物理层面的隔离得以保证。随着互联网技术的高速发展,大量新技术竞相涌现,改变人们生活的同时,驱使着工业系统进行信息化和数字化转型。人工智能、云计算、大数据、边缘计算、5G、物联网、虚拟现实等技术已经应用在工业生产的各环节中。原本独立、封闭的工业控制系统设备与互联网的广泛互联,优化了企业的生产管控过程、提高了生产效率、推动了节能减排进程。然而,互联网中存在的木马、病毒等攻击手段也大量涌入工业控制系统,对控制器老旧、边界防护措施不足、安全管理薄弱以及通信协议存在固有安全漏洞的工业控制系统产生严重威胁,影响正常生产流程,严重时甚至会发生停工、设备损毁、爆炸等恶劣安全事故。
2010年,震网(Stuxnet)病毒[1]被用于攻击伊朗布什尔核电站的关键核设施,使得其离心机大量损毁、核计划被显著拖延。震网病毒是第一个针对真实物理世界的关键基础设施发起攻击的病毒,使得全世界安全研究者开始聚焦工业控制系统及工控设备安全。2015年,乌克兰电力公司遭遇黑暗力量病毒(BlackEnergy[2])入侵,使得全国一半地区停电数小时,影响了140万居民。该病毒及其变种病毒在之后的安全事件中持续活跃。
表1.1中列出了2018-2022年的典型工控系统安全事件,并总结了它们的共同特征。表格中可信网络指系统是否具有身份认证和数据加密传输等安全功能的网络连接。数据保护指系统是否具有例如数据加密和隔离存储等机制的数据保护措施。程序校验指系统是否能确保程序的完整性未被恶意软件破坏。
1.2研究目的及意义
工业控制系统的典型架构如图1.1所示,共分为五层,包括管理端的企业资源层和生产管理层,以及现场端的过程监控层、现场控制层和现场设备层,层与层之间通过防火墙隔离。攻击者通常首先通过网络服务或邮件服务渗透到企业层,然后利用打印设备或计算机设备的漏洞绕过防火墙。攻击者在获得对过程监控层的访问权限后,可以窃取监控数据或篡改控制指令。在传统的信息系统中,机密性的保障优先于完整性和可用性,保护用户信息不被泄露是首要任务。而对于工业控制系统,可用性是最优先的安全属性,其次是完整性和机密性。可用性代表对工业控制系统能够正常完成生产任务的期望。在工业控制系统中,与生产直接相关的是过程监控层、现场控制层和现场设备层。其中现场控制层的可编程控制器(Programmable Logic Controller,PLC)对生产流程的影响至关重要,它们的正常运行保证了系统的可用性。破坏PLC自身系统的安全性、监控其工作的上位机工控软件的安全性以及两者通信协议的安全性,将直接导致PLC工作异常,引发生产停顿和安全事故。这些攻击往往利用了软件漏洞,破坏了数据和程序的完整性和机密性。
在研究PLC漏洞时,由于PLC通信协议中缺少身份验证机制和数据加密机制,我们编写的攻击脚本绕过了上位机编程软件Autothink,远程控制了和利时LE5106 PLC的启动、停止、复位和冷复位。部分攻击脚本如图1.2所示。
1. 在其他安全工作者的研究中也存在着类似的通信协议漏洞。Langner等[3]指出,S7协议是西门子S7系列PLC采用的通信协议,可利用该协议的漏洞注入恶意代码并终止合法程序。Meixell等[4]指出,利用Modbus协议的漏洞,可以构建基于IP的控制数据包,从而篡改控制命令。Tzokatziou等[5]也指出,ABB公司PLC采用的TCP/IP通信协议中缺乏通信对象认证过程。因此,攻击者可以用CoDeSys绕过上位机编程软件连接PLC,获取PLC和上位机之间的通信数据包,然后向PLC发送攻击脚本,以篡改控制指令并任意启停PLC。
2 相关理论与技术
2.2 可信根和可信链
绪论中提到可信计算2.0属于被动可信体系,其基本理念是:从硬件可信根出发,逐级度量系统的BIOS、操作系统和应用程序,上一级度量通过后再将控制权移交下一级,从而在计算环境中构建出完整的可信链。这一理念为可信计算技术的落地起到奠基性的作用,也被可信计算3.0体系继承。其中存在着两个关键点:可信根和可信链。
2.2.1可信根
系统的可信根是独立具备安全和可信功能,且不需要其他机制来提供支撑的底层机制[38]。根据可信计算组织TCG的定义,系统的可信根由BIOS启动块和可信平台模块TPM共同组成[39]。了解可信平台模块的硬件结构和运行原理,对理解可信计算3.0体系的可信部件具有重要借鉴意义,其硬件结构如图2.1所示。其中,非易失性和易失性存储提供了安全的物理运算和存储空间,RSA、SHA-1、HMAC引擎和密钥生成提供了密码算法引擎和密钥来源,随机数生成器则顾名思义,提供了内置的随机源。这三者是可信根的基本要素,是实现对系统可信度量的基础。
可信平台模块主要负责度量系统正常启动过程,包括系统硬件配置文件、BIOS引导块和操作系统启动块及内核文件,保证系统初始运行环境的可信。度量结果和日志通过密钥加密存储在可信平台模块内部寄存器中,提供标准参照。此外,可信平台模块还可以通过身份证明密钥(Attestation Identity Key,AIK)向管理者证明自己的身份和平台可信状态。
2.3可信计算3.0
2.3.1双系统体系架构
可信计算3.0相对于2.0标志性的特征是提出了“宿主-可信”双节点的可信免疫架构,其结构如图2.4所示。该体系结构在原始计算部件之外创建逻辑上独立的可信部件。其中的可信软件基通过控制计算部件中的宿主操作系统中的监控点,实时度量操作系统中的应用程序,并阻止未经授权或未定义的访问。与在计算部件中运行的标准应用程序不同,可信部件允许可信应用软件管理和控制计算机部件。此外,多宿主系统和可信系统都可以通过网络通信,形成同构分布式网络系统。通过使用双系统架构,可信计算3.0将可信链从系统启动过程扩展到应用程序和网络空间,从而形成一个整体可信系统。
我国的可信计算密码标准与国际标准不同,以国内商用密码算法为基础,并且采用双证书体系(平台证书和用户证书)。对称密码算法采用SM4分组算法,分组长度和密钥长度均为128位。非对称密码算法采用SM2椭圆曲线密码算法,包括数字签名算法、密钥交换协议和公钥加密算法。除对称密码算法和非对称密码算法之外,可信密码模块还使用SM3算法作为摘要算法,输出结果为256位的哈希值。
与可信平台模块TPM相同的是,每一块可信密码模块TCM在初始化时,都设置了背书密钥EK和存储根密钥SRK。管理员通过EK生成的认证密钥接收关于TCM内部状态的可信报告。SRK负责封装TCM内部的各种密钥,防止密钥明文被窃取。
3 基于TPCM的可信工控上位机 ............................ 23
3.1 引言 ........................................ 23
3.2 工控上位机可信计算环境搭建 .................................. 23
4 基于国密算法的可信嵌入式控制装置............................ 42
4.1 引言 ............................................ 42
4.2 基于嵌入式平台的PLC ............................... 42
5 实验与评估..................................... 55
5.1 引言 ..................................... 55
5.2 实验对象与环境 ..................................... 55
5 实验与评估
5.2 实验对象与环境
5.2.1 实验环境
工业控制系统层次复杂,涉及工作站、服务器、控制设备、网络交互设备和现场被控设备等多种硬件,以及操作系统、常用应用程序、工业控制编程和组态软件、监控软件等多种软件。为简化系统结构,同时贴合真实工业生产场景,本文选取典型工业控制架构,建立仿真实验环境,如图5.1所示。
可信上位机作为过程监控层设备,负责控制程序编写和下装,其软硬件配置如下:
CPU:四核G4560@3.50GHz
内存:7.5GB
操作系统及内核版本:CentOS7.6系统,内核版本为3.10.0-957.el7.x86_64 工控软件:OpenPLC Editor(Python3开发分支) GmSSL:3.0.0 Alpha
信任根:PCIE接口的TPCM 在主机断电的状态下,将PCIE卡形式的TPCM安装到主板上空闲的PCIE插槽中,如图5.2所示。要使TPCM功能能够正常运转,还需安装可信计算模块驱动、可信软件栈和可信服务接口库。在系统终端中执行指令:chmod +x trust_module_pcie-tpm_centos7.6.bin,即可完成centos7.6版本的可信计算模块驱动及可信软件栈的安装。然后执行指令:source /etc/profile,使能新的PATH环境变量。
6 总结与展望
6.1 研究总结
随着信息物理系统的融合,建立工业控制设备数据和控制程序的完整性校验机制,以及相关数据的加密和隔离存储机制显