PLC信息安全防护技术研究(上篇)
作者:网友投稿 时间:2018-09-27 16:24
大量的遗留设备、专用的软硬件、有限的处理能力以及地域上分布的广泛性,极大的阻碍了传统计算机体系中低廉且高效的安全防护方案的推广应用。《GB/T 33008.1-2016 工业自动化和控制系统网络安全可编程序控制器(PLC)第1部分:系统要求》[1]给出了系统能力等级(CL)如下:
(1)CL1:提供机制保护控制系统防范偶然的、轻度的攻击;
(2)CL2:提供机制保护控制系统防范有意的、利用较少资源的和一般技术的简单手段可以达到较小破坏后果的攻击;
(3)CL3:提供机制保护控制系统防范恶意的、利用中等资源、PLC特殊技术的复杂手段可能达到较大破坏后果的攻击;
(4)CL4:提供机制保护控制系统防范恶意的、使用扩展资源、PLC特殊技术的复杂手段与工具可能达到重大破坏后果的攻击。
基于《GB/T 33008.1-2016》的安全要求,我们从硬件设备、通信及协议、执行行为、网络隔离、控制组态等方面对PLC的安全防御技术进行了归类整理。在上篇部分,我们将着重介绍基于硬件设备、通信及协议和执行行为的PLC安全防护技术。
基于硬件设备的PLC安全防护
对于PLC设备的安全防护主要包括:
1)验证固件的完整性,对固件的修改进行及时感知。Adelstein等[2]引入基于固件签名的检测方法,包含一个固件“验证编译器”,允许固件在运行时接受检验,通过检测确定的执行流特性、内存及队长完整性。Zhang等[3]提出IOCheck框架,在运行时验证固件完整性和IO配置,在假设可信的BIOS启动之后,IOCheck利用X86 CPU架构下的系统管理模式来运行完整性校验。Duflot等[4]提出NAVIS框架,来检测网卡固件的完整性。
2)采用可信计算等技术,提高底层数据传输的可信性。Stephen McLaughlin等[5]提出应该在PLC中配备可信计算基(TCB,Trusted Computing Base)。可信计算基由一组可信软硬件组成,用来保证PLC对安全策略的执行。如图1。

图1是一个基于TCB的安全策略的执行过程
基于通信及协议的PLC安全防护
由于原来的PLC控制协议没有加密、认证等机制,导致攻击者只要能和PLC通信,简单的构造畸形数据包就可以达到实施破坏的目的,因此可以从协议及通信的角度对PLC进行安全防护。Spenneberg等[6]指出,他们设计出的专门针对PLC的蠕虫防护非常有效,但是在遭受感染期的过程中,PLC大概有10秒钟是不工作的,在此期间原始用户的程序也不会运行,而且会产生大量的不正常流量。而且在扫描和感染阶段,会发送很多可疑的数据包。这些都是可以被基于流量的检测机制发现。Malchow等[7]引入一款PLC Guard安全防护设备,分析PLC和工程师站之间的通信流量。当工程师站向PLC传输代码时,PLC Guard分析代码的传递,并和以前版本进行比较(如图2所示),包括不同层次上的图形抽象和概括。操作员可以选择接受或拒绝代码传输,所以此设备很难被攻破。Nelson等[8]提出使用MAC地址绑定来保证物理上连接的端口安全,对PLC和工程师站之间的通信进行加密,从而增加逆向分析控制协议的难度。Bestak等[9]提出对PLC等设备使用一种加密算法来对测量的数据进行加密,保证通信过程中不被攻击者恶意篡改,从而达到数据完整性的目标。Heo等[10]提出,可以对自动化控制中的PLC通信网络进行加密,从而保证数据真实性。Bestak等[11]指出可以尝试在PLC网络中使用加密算法,从而保证通信安全性。Andrew Clark等[12]提出了一种新型的防御框架,利用一组随机化的加密密钥对系统操作员发送给PLC的控制命令进行认证。框架利用加密分析、控制理论、博弈论的方法来对恶意控制指令造成的影响进行量化分析,如图3所示,在过程控制网络(PCN,Porocess Control Network)与控制系统网络(CSN,Control System Network)交互过程中加入了主动加密机制,用来对发送的控制命令进行认证。

图2 PLC Gurad防护过程示意图

图3 PLC主动加密机制
Haroon Wardak等[13]指出目前报道的大多数针对PLC的攻击都是基于PLC以一种未授权的方式建立通信,并对PLC访问控制问题进行了研究,分析了通常采用的是基于密码的访问控制机制的脆弱性,指出可以在PLC和其他设备之间配置工业自动化环境下的数据安全模块(Scalance S)的问题得到解决。Stanislav Ponomarev等[14]提出了一种通过测量和验证通过网络传输的数据来检测入侵网络的ICS的方法。
基于执行行为的PLC安全防护



