★ 楚兵宁波和利时信息安全研究院有限公司
摘要:本文针对工业嵌入式控制系统网络安全现状、安全威胁与防护需求展开了深入研究,分析了面临的安全挑战,研究了工业嵌入式控制系统可信计算3.0技术应用现状,提出了基于可信计算3.0技术解决工业嵌入式系统内生安全主动防御的建设思路,并展望工业嵌入式控制系统内生安全防御技术的发展趋势。
关键词:工业嵌入式控制系统;可信计算3.0;内生安全;主动防御
1 引言
随着工业互联网、5G等新基建的快速发展,工业嵌入式控制系统面临各种高级别持续性未知威胁,任意单一薄弱环节即可成为入侵突破口,将带来巨大的风险影响。传统的安全防护措施多数作用在边界且以隔离方式为主,对于渗透到嵌入式系统内部的未知威胁防御效果差、资源消耗大,不适用于工业嵌入式控制系统防护。
可信计算技术为解决工业嵌入式控制系统内生安全问题提供了新的思路。目前,可信计算在我国网络安全等级保护制度体系有了明确的要求,与可信计算相关的多项技术标准也已陆续发布,此举措对于推动嵌入式可信计算的技术应用和提升嵌入式设备和系统的安全运行能力具有重大意义。本文从可信计算技术应用出发,分析了硬件和系统底层安全本质。该项技术具备免疫恶意代码攻击的能力,适合多样化的软硬件结构,是从根源解决工业嵌入式控制系统信息安全问题的重要技术手段。
2 工业嵌入式控制系统特点及安全挑战
2.1 工业嵌入式控制系统特点
典型工业控制系统如图1所示,包含现场设备层常用工业嵌入式仪表、传感器等设备,现场控制层设备为工业嵌入式控制器PLC和DCS,在过程监控层通常部署工程师站、操作员站、历史服务等上位机设备实现工程组态下装、变量更新、实时监控等功能。
图1 工业控制系统典型拓扑结构
工业嵌入式控制系统的特点是由“嵌入性”“专用性”与“计算机系统”三个基本要素衍生出来的,不同的嵌入式系统其特点会有所差异。与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
2.2 网络安全面临的挑战
(1)解决低资源高实时安全需求问题
嵌入式系统使用场景,通常要求实时多任务很强的支持能力,从而使内部的代码和实时内核的执行时间减少到最低限度,完成高实时的运算。如何在低资源、高实时的系统中,不影响既有业务运行,尽量小地占用嵌入式系统资源,构建嵌入式系统启动和设备运行全生命周期安全防护机制,提供低成本、高可靠、高实时的嵌入式系统内生安全解决方案,是急迫解决的挑战之一。
(2)解决主动防御安全需求问题
当前针对嵌入式系统的信息安全防护,由于欠缺对内生安全的防护设计,仅仅在边界外围进行防护,近年来也多次受到了安全研究者以及黑客的挑战与攻击。为了解决边界防护手段效果不理想问题,在嵌入式系统中构建基于嵌入式系统内生安全的机制,可主动对系统运行主体、客体、操作、环境等关键因素进行主动度量,从嵌入式系统内部深层次保障系统安全,成为待解决的一个关键问题。
(3)解决系统异构难于统一问题
嵌入式系统硬件结构差异显著,软件架构缺乏统一标准,既可能采用无操作系统的循环轮询系统和前后台系统,也有可能采用专用的实时操作系统,嵌入式系统很难形成一个统一的安全方案。基于异构系统,形成统一的内生安全解决方案,也成为一个待解决的难题。
3 可信计算技术发展现状
可信计算概念在不断更新,其发展大体可分为可信计算1.0→可信计算2.0→可信计算3.0三个层级,如图2所示。可信计算1.0是20世纪70年代以世界容错组织为代表,用容错算法及时发现和处理故障,降低故障的风险,以提高系统的安全性和可靠性。采用故障排除、冗余备份等手段应对软硬件工程性故障、物理干扰、设计错误等影响系统正常运行的各种问题,此阶段并未形成国际性组织,因此也就没有相应的标准诞生。
图2 可信计算技术发展层级
众多学术研究者从可信计算体系架构、可信启动、可信运行环境等多方面做了深入研究,在嵌入式系统的主动防御安全机制、安全体系架构、嵌入式系统可信计算应用要求等方面,并未给出合理性建议。因此针对以上问题,笔者将对关于嵌入式可信计算技术进行分析研究,解决先前研究所遗留的问题,并提出我们的解决方案。
3.1 嵌入式可信计算体系架构
基于硬件可信根构建的成本较高,对于轻量级的嵌入式设备缺乏实用性,Defrawy等人提出了SMART((Secure and Minimal Architecture for Root of Trust)架构[1]。这是第一个基于硬件和软件代码签名来构建轻量级信任根的设计方案,该架构可以在远程嵌入式设备中建立信任根,只需对微控制器单元进行简单的修改。SMART在执行时,任何可以直接访问内存的外设都会被禁用,本质上是一种动态的信任根,能够保证关键代码的执行,对系统性能的影响较小。
TrustLite[2]是英特尔安全计算研究所开发的低成本嵌入式系统的通用PMA(被保护的内存区域)。Trustlet能够隔离软件组件,为其代码和数据提供机密性和完整性保证,该体系结构提供了与操作系统无关的Trustlet隔离、证明以及可信的进程间通信。当TrustLite设备启动时,首先执行存储在SoC(Systemon-a-Chip)中的安全加载程序,安全加载程序负责将所有的Trustlet及其数据区域加载到片上存储器中。此外,它还配置了一个微控制器单元来强制隔离每个Trustlet的内存区域,包括内存映射IO、外设等。
易平[3]在国产龙芯芯片中也提出了相应的双内核架构,该架构严格依照TCG提出的静态信任链建立过程,将引导部分的FLASH划分成两部分,一部分放精简操作系统的镜像,另一部分放配置寄存器,可以存放信任根的完整性度量值。这样不仅实现了自省机制,而且可以提高系统的可信度。
3.2 嵌入式可信启动研究
当前的可信计算技术,大多针对PC平台,无法直接移植到资源匮乏、结构差异大的嵌入式平台。目前比较典型的适用于嵌入式平台的可信计算技术是TCG的TPM技术和ARM的TrustZone技术。
武汉大学张焕国等人[4]通过在TCG可信平台模块的基础上增加对称密码引擎、总线仲裁模块以及备份恢复模块,设计了一款嵌入式可信平台模块(ETPM)作为对TPM的改进。与TCG定义的TPM相比,它主要增加了两项新功能,一是增加了模块的主动度量能力,另外增加了模块对对称密码的支持。平台中增加了独有的备份恢复模块,当系统中检测到不安全性,ETPM将会发现异常并恢复原始数据。由于ETPM有了更强的控制能力与计算能力,它可以用作星型度量的可信根,在系统的不同层级均可以直接调用ETPM进行可信度量。这种设计会带来一个问题就是系统的拓展性较为不方便,每当系统更新之后就需要同时更新ETPM中的度量数据。另一个问题是ETPM需要有较好的性能以保证系统运行效率。
王镇道等人[5]提出了一种嵌入式可信设备双启动方案,可以在不同的模式下选择由板载FLASH存储器中的Bootloader启动或者由SD卡中的Bootloader启动。这种方式提供了一种可信链的灵活性设计,但是启动选择是由硬件上的拨片手动选择的,这也带来了许多不确定因素。
Raj[6]提出了一种基于ARMTrustZone的虚拟TPM设计,研究了TPM芯片的纯软件实现。应用程序级更改或对OS组件(驱动程序除外)的更改。研究给出了在智能手机和平板电脑中使用的虚拟TPM2.0的实现参考,证明了可以克服基于CPU的安全体系结构(如ARMTrustZone)的局限性,以构建具有类似于专用可信硬件的安全性保证的软件系统。
3.3 嵌入式可信运行环境研究
Deng等人提出了一种基于双核leon3的嵌入式可信计算环境构建方案[7],该方案在一个软核处理器上耦合AHB接口,使其中一个处理器作为应用处理器,另一个作为“安全”的协处理器,将安全协处理器与只读存储器合成为度量的可信根,“安全”的协处理器运行TPM使应用处理器在启动和运行不同的软件时根据权限保护相应的密钥及数据。该方案虽然提供了有效的嵌入式可信系统构建方案,但仅针对特定的处理器架构,不具备兼容性,且增加可信启动功能后使得启动时间开销增加约25%,对性能影响较大。使用可信计算基,如可信平台模块和移动可信模块,作为嵌入式系统如手机、安全隐私设备及智能传感器和执行器的信任根,能有效保障嵌入式移动设备的安全性。
张英骏等人[8]利用ARM架构中的TrustZone硬件隔离技术构建了可信执行环境,重写修改页表项、禁用存储管理单元、篡改TTBR寄存器等语句及加入smc语句,这样当内核执行关键操作前就会转入到安全模式中运行,保证了监控代码不会被绕过和篡改。作者同时还设置了可执行代码执行流、可执行代码数据流和可执行代码完整性三种白名单机制。如果内核关键操作与白名单不匹配,就可以拒绝执行,实现了内核监控和完整性保护的任务。
通过可信执行环境或可信运行环境(Trusted Execution Environment,TEE)来构建可信嵌入式系统的方法得到了更为广泛的研究和支持[9]。宾夕法尼亚州立大学的LeGuan等人基于TrustZone技术提出了可信运行环境框架TrustShadow,通过TrustShadow可以在安全世界中执行未经修改的Linux应用,并且通过页表完整性校验以及可执行程序完整性校验等方式来保证应用的安全性,以应对网络空间和物理空间的攻击[10,11]。
4 技术合规性与可行性分析
4.1 合规性分析
从法律法规层面,《网络安全法》第十六条“国务院和省、自治区、直辖市人民政府应当统筹规划,加大投入,扶持重点网络安全技术产业和项目,支持网络安全技术的研究开发和应用,推广安全可信的网络产品和服务”。
GB/T22239网络安全等级保护基本要求,从第一级到四级均在“安全通信网络”“安全区域边界”和“安全计算环境”中增加了“可信验证”控制点,包括可基于可信根对通信设备的系统引导程序、系统程序、重要配置参数和通信应用程序等进行可信验证,并在应用程序的所有执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心,并进行动态关联感知。《关键信息基础设施安全保护条例》第十九条明确要求应当优先采购全面使用安全可信的产品和服务来构建关键基础设施安全保障体系。
GB/T39204关键信息基础设施安全保护要求中已明确规定,在安全防护技术中要求应对安全通信网络、安全计算环境等环节,采用主动防御技术确保关键信息基础设备的运行安全。
4.2 可行性分析
(1)高适应性:可信计算技术满足嵌入式系统特点和应用需求,双体系架构,实现“运算+防御”无扰并行。基于TPCM硬件可信根结合轻量化TSB软件基,首先构建一个信任根,随之建立一条信任链,从信任根开始到硬件平台、操作系统,再到应用,逐级度量、逐级信任。把这种信任扩展到整个计算机系统,从而确保整个计算机系统的可信,实现系统全生命周期可信度量,满足低资源、高实时性嵌入式系统要求。
(2)高确定性:大多数嵌入式系统为定制化的专用系统,应用运行环境、业务运行周期、设备接入方式等相对明确,其内部功能相对固定,更容易通过可信计算技术制定可信策略并构建安全基线,对嵌入式系统进行动态防护。定制化程度高能够以更灵活的设计实现可信根,有利于用可信计算构建“白名单”机制,形成“主体、客体、操作、环境”的安全基线,在安全可信策略管控下,确保嵌入式系统运行环境的完整可信。
(3)高可用性:嵌入式可信计算产品化应用已有积累,可信计算技术在嵌入式系统产品化应用已取得一定进展。在产品应用中可信计算技术发挥了较好的安全防护效果,可信计算在国内已具有相对完整的标准体系。
5 工业嵌入式控制系统可信技术应用架构
5.1 可信双体系架构设计
将可信计算3.0技术理念,设计并实施到工业嵌入式控制系统中,要克服嵌入式系统实时性要求高、系统资源紧张等问题。工业嵌入式控制系统可信计算体系架构如图3所示。
(1)TPCM:支撑策略管理等为TSB提供运行环境,TPCM应支持对业务功能主动监控的能力;应保证存储根密钥存放在可信根内部,外部无法获取;应保证对关键业务数据、密钥等信息采用TPCM组件提供的密码服务进行加密处理。
(2)TSB:保护宿主软件和应用安全,实现主动免疫防御的安全能力,TSB应具备轻量化环境度量策略;TSB可具备业务行为的度量策略;应具备对被保护系统的运行阶段的访问控制功能;应达到主体为用户级或进程级访问控制的粒度,客体为进程、文件的粒度。
(3)TCM:提供密码计算、身份认证等功能,支持国SM2/3/4算法。
图3 工业嵌入式控制系统可信计算体系架构
设计要求:针对嵌入式系统,可信计算应满足业务场景使用需求,增加的可信启动时间,对系统正常工作不造成影响;依托宿主的系统资源情况下,增加可信启动所占用的资源,应满足系统整体资源使用率要求。针对实时性要求高的场景,应在启动阶段完成主动度量,可在运行过程中不触发主动度量功能。应满足对依托宿主的系统资源情况下,针对度量性能要求较高的场景,可加大动态度量周期以减少对系统资源的占用(例如:动态度量周期可设置为最小周期任务的5~10倍)。
5.2 全生命周期可信设计
(1)可信启动设计:基于可信计算3.0技术,在双体系架构设计基础上,考虑到隔离、并行性的设计特点,将系统分为计算部件和防护部件两部分,并提出了一种可信链实现方法。该实现方法构建了国产化双核处理器的可信链。
(2)可信升级设计:安全可信PLC通过安全可信工程师站进行固件远程升级,为防止待升级的固件被恶意篡改,基于数字证书技术,设计一种固件可信升级方案。
(3)动态可信度量:基于可信计算3.0的嵌入式动态度量技术,包括轻量化环境度量、系统行为可信度量和业务行为度量,定制轻量化的度量策略,对操作系统代码环境、业务代码环境及关键业务行为,在可信软件基的判定机制中给出度量结果。
6 工业嵌入式控制系统内生安全技术展望
工业嵌入式系统所涵盖的范围很广,由于涉及的组件多且结构复杂,不同行业嵌入式系统暴露出的攻击面迥异。行业场景化安全问题千差万别,导致可信计算技术不能解决嵌入式系统面临的所有安全问题。如何解决极低资源、小型嵌入式系统内生安全问题,是嵌入式可信计算需要继续深入攻关的技术方向。另外在冶金水利、智能制造、石油石化等行业,国外工业嵌入式控制系统存量较大,安全性问题不容忽视。以嵌入式可信计算技术为依托,提供低成本、易于改造的内生安全方案,解决现场存量嵌入式系统的信息安全,是今后值得持续研究和深化的问题。
综上所述,解决嵌入式系统信息安全问题,是一个复杂的系统工程,并不是依靠单一技术和方案能够完美解决的。后续研究将嵌入式系统可信计算技术结合协议分析技术、事件关联分析技术、溯源分析技术,构建全面的嵌入式系统风险监测、预警和处置体系,进一步提升嵌入式系统自身免疫的安全防御能力。
作者简介:
楚 兵(1982-),男,北京人,中级工程师,硕士,现就职于宁波和利时信息安全研究院有限公司,研究方向为工控信息安全、网络通信和嵌入式系统。
参考文献:
[1] Defrawy K E, Perito D, Tsudik G. SMART: secure and minimal architecture for (establishing a dynamic) root of trust[J]. Isoc, 2017.
[2] Koeberl P, Schulz S, Sadeghi A R, et al. TrustLite: a security architecture for tiny embedded devices[C]. European Conference on Computer Systems, 2014 : 10.
[3] 易平. 基于龙芯处理器的嵌入式可信系统的设计与实现[D]. 南京: 南京航空航天大学, 2018.
[4] 张焕国, 李晶, 潘丹铃, 赵波. 嵌入式系统可信平台模块研究[J]. 计算机研究与发展, 2011, 48 (07) : 1269 - 1278.
[5] 王镇道, 郑荣浩, 张立军, 鲁辉 . 一种适用于嵌入式终端的可信安全方案[J]. 计算机应用与软件, 2016, 33 (01) : 230 - 234 、258.
[6] Raj H, Himanshu, et al. fTPM: A software-only implementation of a TPM chip[C]. 25th USENIXSecurity Symposium (USENIX Security 16), 2016.
[7] 张英骏, 冯登国, 秦宇, 等. 基于Trustzone的强安全需求环境下可信代码执行方案[J]. 计算机研究与发展, 2015, 52 (10) : 2224 - 2238.
[8] Abera T, Asokan N, Davi L, et al. C-FLAT: control-flow attestation for embedded systems software[C]. Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, 2016 : 743 - 754.
[9] L. Guan, C. Cao, P. Liu, et al. Building a trustworthy execution environment to defeat exploits from both Cyber Space and Physical Space for ARM[J]. IEEE Transactions on Dependable and Secure Computing, 2015, 14 (8) : 1 - 16.
[10] L. Guan, P. Liu, X. Xing, et al. Trustshadow: secure execution of unmodified applications with arm trustzone[C]. Proceedings of the 15th Annual International Conference on Mobile Systems, Applications, and Services, Niagara Falls, 2017, 488 - 501.
[11] H. Sun, K. Sun, Y. Wang, et al. Reliable and trustworthy memory acquisition on smartphones[J]. IEEE Transactions on Information Forensics and Security, 2015, 10 (12) : 2547 - 2561.
《自动化博览》2023年1月刊暨《工业控制系统信息安全专刊(第九辑)》