12月19日, 上海工业控制系统安全创新功能型平台 (上海控安)主办网络安全创新峰会。会上,技术总监刘虹从考虑工业安全的角度出发,分享了如何进行安全的工业互联网平台技术部署。作者:刘虹,上海工业控制安全创新科技有限公司CTO,主要研究方向包括边缘计算安全、工业控制系统安全等。
工业互联网是链接链接工业全系统、全产业链、全价值链,支撑工业智能化发展的关键基础设施。根据2017年11月27日国务院发布的《关于深化“互联网+先进制造业”发展工业互联网的指导意见》,工业互联网包括网络、平台、安全三大功能体系,其中工业互联网平台是工业互联网的核心。工业互联网平台是指面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析和服务体系,支撑制造资源泛在连接、弹性供给、高效配置的工业云平台。
如图显示了工业互联网平台的基本层次架构,即“数据+模型=应用”。最底层是边缘层,大量的工业传感器采集到的数据将在此层次进行汇聚,这是平台的基础;在此之上是提供服务器、储存、网络等云基础设施的工业IaaS层,是平台的支撑;工业PaaS层是核心,通过数据挖掘和构建开放式的操作系统,从而帮助用户快速构建定制化的工业APP;最顶层是面向客户,提供以业务形态作为服务方式最终APP应用的工业SaaS层。
工业互联网平台安全是整个工业互联网安全的关键重点,因此,通过安全的视角解析上述各个层次框架,具体分析各层将面对的安全问题及对策。
第一,最底层的边缘层。这一层是数据采集并向云端集成的层级,本质上是通过各类通信手段接入物理空间中的设备、系统和产品,来采集涉及工业领域的数据;进而依托协议转换技术,实现多源异构的复杂数据归一化处理;最后利用边缘计算设备,实现数据由底层向云端平台集成,即“在物理空间中隐性数据在信息空间的显性化”。
在这个过程的三个主要环节,数据采集、协议转换和边缘计算,分别对应着三个问题,数据不足、数据杂乱和数据无效。首先,数据采集能力的有限造成了数据不足和数据上传难度大,使得平台无法充分集聚数据,从而影响到整个系统的运作,即“数据上传难”;工业领域涉及大量的工业协议,私有专用协议解析和转化能力尚待提高,使得数据在流转过程中存在着“不能传”的问题;边缘智能与云计算结合背景下,一部分计算能力的下沉,使得这一层的数据可以进行本地处理而无需上传云端,即“数据不必传”。
面对数据“难上传、不能传、不必传”问题,主要安全对策是建立对工业嵌入式系统基础软硬件系统可靠的安全测试和有效的漏洞发现机制。具体边缘层而言,是实现该层次的操作系统和核心器件(芯片、控制器)安全、可信、实时验证。这意味着要对底层嵌入式系统的代码进行非常严格的测试,以自动化驾驶、航空航天等这些安全标准十分苛刻的行业为例,其要求代码语句分支覆盖率达到百分之百才能落地应用。同时,在这些系统的研发过程中,可能会存在一些代码运行时的动态缺陷,而这些缺陷是简单直观的静态分析工具难以发现的。
第二,工业IaaS层(Infrastructure-as-a-Service),即将计算、网络、存储等资源虚拟化并集聚的系统资源池。用于支撑工业数据“采集、存储、应用、共享”全生命周期和数据聚合与基础设施的复用,这意味着传统烟囱式分散式的平台向融合式集中式的演进。在这样的背景下,其安全策略应基于零信任和微分段的软件来定义。我们提出“安全叠加”的防护思路,主要信息安全的产品形态包括隔离、以隔离作为代表式的并行和在中心化服务中分布式节点的相应防护机制。
但是Google建立了不同的防护机制。以BeyondCorp计划为例,其主要理念是打通内外网边界,不在内部建立防火墙,而是通过限制并严格执行访问控制、接入验证所有数据来源和监控审计网络流量日志来保障安全。Google这种去除边界防护的理念,在实际产业界中非常著名的实践案例就是安卓系统。其基于Linux良好的操作系统,将访问控制在用户侧进行落地。这表明这一层次的安全应该向软件定义的方向,并以更灵活的方式进行演进。
第三,工业PaaS层(Platform-as-a-Service)。是指基于云基础设施的开放式工业互联网操作系统,这是工业互联网平台的核心。这一层级以灵活变动的方式,向下可以调度底层的工业设备、业务系统等各种软硬件资源,向上承载着工业领域的实际业务系统和具体应用服务,其核心要素是基于微服务架构的数字化模型,即功能分布在不同进程中,并按需配置扩展。
工业PasS层的目的是为工业APP创建、测试和部署提供安全的开发环境。这样架构下的安全策略与传统的网络安全有非常强的相关性,目前主流的安全措施(黑白名单、身份认证、审计、安全路由等防护机制)都会在这一层次有效地实现应用效果。同时,工业PaaS层中涉及的虚拟机安全需要被特别重视,包括虚拟机篡改、跳跃、逃逸、隐匿(rootki)和拒绝服务等各种安全问题。
第四,最上层的是工业SaaS层(Software-as-a-Service),通过创造满足不同行业、不同场景的软件、APP和解决方案,形成工业互联网平台的最终价值,服务于研发、生产、管理、服务全过程,覆盖全产业链和产品全生命周期。
目前,工业APP大概有两种类型:一是云化APP,对传统的工业开发软件进行改造和升级,使其更好地服务于研发涉及、经营管理、生产制造;二是云生APP,其伴随着工业互联网演进产生,包括状态监控、故障诊断、故障预警等。随着工业互联网的不断发展,工业APP在深度上从单位层向系统、平台层不断深化,在广度上也逐步覆盖开发周期的分析、决策、落地、反馈等各个环节。SaaS层的安全策略主要是支持代码审计的已知漏洞分析和未知漏洞挖掘,包括对软件代码、成分的深入分析、源代码和二进制文件扫描、漏洞扫描、开源许可的规范等等。
针对上述工业互联网平台的安全问题,(我们)在技术方面做的主要安全实践有以下三点。
第一,研发了面向嵌入式系统的智能测试工具来进行代码测试。利用动态符号执行技术,自动对代码进行预处理及插桩,生成满足所选覆盖准则(语句、分支、边界及MC/DC覆盖)的测试用例。工具是基于航空航天场景的极高安全标准下,对于代码的覆盖率、分支语句严格的要求研发出的。
第二,研发了面向源代码和二进制文件的漏洞和软件成分分析工具,利用深度学习和人工经验,来处理TB级开源与封闭源漏洞数据,同时利用第三方数据库与开源组件独有的特性,提升扫描结果的准确率。可以将代码动态运行时的错误有效地体现出来,同时对源代码和二进制文件的漏洞进行有效地分析、挖掘。
第三,研发了面向工业嵌入式系统的安全访问控制实现系统固化,其可以支持ARM架构、Linux等嵌入式操作系统和网络协议、应用进程、外设访问控制等各种功能,实现异常行为的入侵检测。通过引入Google访问控制的理念,在嵌入式操作系统的顶层实现安全工作达到系统安全加固的目的。
工业互联网安全的最终趋势,上海控安致力于联合企业构建端到端信任、动静检测监测的内生式工业级安全体系,主要包括四方面:一是标准体系,构建通用基础设施安全模型和标准框架体系,保障最终用户企业数据的可用性、完整性、安全性;二是系统固化,部署系统固化机制,裁剪不必要的服务、应用和网络协议,适当配置操作系统的用户身份验证与资源控制;三是安全应用,采用静态和动态的自动化测试相结合机制,结合代码本身将安全纳入到产品研发过程,保障软件代码安全性和可靠性;四是持续监控,对每个层级进行连续监控,对应用或微服务的连续监控,提供数据保护机制,阻断来自于外部网络的恶意攻击。