很多人都在讲工控系统安全与互联网安全或者办公网的安全又很大的不同。 具体有哪些不同呢? 其实NIST的SP800-82的工控系统安全指南里面讲了10大类。 作为目前我们看到的比较系统的工控系统安全的标准或者指南来说。 NIST的这个文件概括的还是比较全面的。 不过, 在实践中,有些重要的不同点NIST并没有提到或者没有强调 而有些NIST的指南则未免有些纸上谈兵。 这里我举几个例子。
安全实施与设备管理在不同部门导致的责任问题
在互联网或者企业网里, 所保护的对象比如服务器,存储,网络设备等的管理一般属于IT部门。 而实施网络安全方案的也是IT部门。 而在工控系统的安全里, 一般来说安全也是由IT部门主导, 而设备则是由另外的部门来管理。 比如在电网有所谓的OT部门。 在化工企业可能是设备处等等。 总之, 工控系统设备不归IT部门管。 有很多时候, IT部门的人员甚至都进不了工控机房。
这样带来了工控系统安全产品开发和销售中的一个很大的挑战。
首先是责任划分问题, 也就是说出了事谁负责的问题。 IT系统安全很简单, 出了事就是IT部门的事。 而在工控系统安全中,就存在责任划分问题。 “要是装了你的安全方案后出了问题算谁的?”设备部门的第一个问题往往就是这个。 如果没有一个很好的技术和管理结合的解决方案,控安全的方案就很难在企业真正大规模推广开。
其次, 在工控系统安全方案中, 客户对于生产系统的可持续性(continuity)的要求要大大高于IT安全的方案。 对一些大型工控系统,停一次机的损失就得几千万人民币或者几百万美元, 客户的生产部门对于由于安全方案需要的停机就特别反感, 尤其是在没有现实的威胁的情况下, 很难说服客户去做大规模的停机升级。 那么, 很多针对IT系统安全的方案比如升级或者补丁等就不一定合适。 且不说很多工控系统出于系统稳定性的考虑, 根本不允许进行补丁升级。 这样就要求我们不得不在网络层根据流量模式进行相应的防御。
工控系统的“纵深防御“存在很大困难, 边界安全非常重要
“纵深防御”是互联网和企业安全的一个很重要的策略。 在NIST的指南里也提到要采用“纵深防御“的策略。 不过, 从实践上来看, 在现阶段工控系统架构和设计不能做出重大改变的情况下,”纵深防御“很难实施,而边界安全其实更加重要。
首先是工控系统的主机防御有很大困难, 很多主机系统非常老旧,漏洞非常多。 我们甚至在客户的工控系统中看到过Windows98的系统。 而由于存在升级的困难(事实上, 很多主机系统运行了超过10年, 都找不到相应的升级补丁)。
其次, 工控系统从设计上不是一个通用计算系统, 设计的资源余量很少, 除了干工控系统本身的事之外, 从主机到网络都很少有冗余的资源进行其他工作。 不要说病毒, 就是一个扫描程序都可能导致工控系统的资源枯竭而导致问题。
在此情况下, 工控系统内部其实是一个资源紧张, 漏洞百出的系统。 而且是短时间内无法改变的状况。 在此种情况下进行工控系统安全的防御, 只能从边界安全上做文章。
而边界安全来说, 传统企业安全的防火墙等方案并不能解决问题。 因为很多客户提出的所谓“安全隔离”, 其实并不能真正的隔离工控系统与外界的通信。 有很多工控系统的运行需要与办公网进行数据交流。 比如很多生产调度是要在办公网进行的。 有些办公系统应用需要从工控系统中或者实时数据库中取数据(比如商业分析, 生产优化等)。 目前普遍采用的OPC协议采用的动态端口分配的方式, 使得传统防火墙很难简单的通过规则制定来进行防护。 事实上, 我们看到不少客户买了由互联网防火墙改成的所谓“工控网防火墙“后, 发现无法适应生产的要求而弃之不用的情况。 我们的实践发现, 目前阶段工控系统边界安全的比较有效的方案是通过针对网络流量的分析, 利用人工智能的方式建立行为模式的白名单, 以及持续进行非主动的流量监测。
工控系统的数据安全需要格外重视
工控系统的数据风险有两个方面的威胁:
一个是网络攻击的威胁, 我们通过对一些客户网络中的攻击分析发现, 目前对工控系统的攻击主要还是在系统信息收集以及工控数据篡改(事实上“震网“在最后实施攻击的那一步就是篡改了仪表数据进行的)。 另外一个是对于客户工控系统的经营和管理数据的窃取, 这里面包括可能有价值的工艺流程等情报。
而在实践中, 数据也是工控系统与外界通信的最主要原因。 大量的不同应用要去工控系统上取数据, 这也带来了工控系统一个主要的攻击面。 因此, 对于工控系统来说, 需要比企业网或者互联网要有更多的对数据安全的重视。
在进行数据安全的方案中, 一个需要注意的问题就是信息安全不能影响到工控系统的正常经营。 由于工控系统的资源冗余度很低, 数据安全的解决方案要考虑到资源占用的问题, 同时也要考虑到满足数据应用的大量需求, 这个矛盾需要认真解决。