工业控制系统信息安全风险分析及漏洞检测
摘 要:工业控制系统(ICS)是国家关键基础设施的重要组成部分,随着工业信息化进程的快速推进,信息、网络技术在工业控制领域得到了广泛应用,同时工业控制系统所面临的网络安全风险也日益加剧。本文从工业控制系统自身固有的属性和应用特点出发,对工控系统的信息安全隐患和当前主流应对策略进行了分析,重点对工控系统漏洞和安全测评认证进行了阐述,最后对如何提升工控系统安全性做了简要总结,并对下一步工作进行了展望。
工业控制系统广泛应用于电力、能源、交通、水利、航空航天等诸多领域,超过80% 的涉及国计民生的关键基础设施依靠工控系统实现自动化作业。随着“两化”融合的不断深入,大量通用软硬件技术和网络协议被工业系统所采用,越来越多的工控系统开始同生产管理网、ERP 系统等相连,原有封闭、专用的网络环境被打破。尤其“互联网+”、“中国制造2025”国家战略的提出,大数据、云计算等新一代信息技术不断向工业领域渗透,工业控制系统的自动化和智能化程度将越来越高。
与此同时,工业控制系统所面临的网络安全威胁也日益严峻,从2010年伊朗布什尔核电站遭到“震网”病毒攻击,到2015年乌克兰电网被黑客攻陷造成70万户家庭断电[1],各种工控网络安全事件层出不穷。随着工控系统的开放及其与新技术的融合,近年来工控安全事件呈逐年递增趋势,覆盖面也越来越广泛。仅2016年,美国ICS-CERT[2]收录的针对工业控制系统的网络攻击事件就高达290起(如图1所示),包括电网、水利设施和交通系统在内的关键基础设施均成为攻击目标。
2 工业企业网络及工业控制系统简介
典型的工业企业网络可分为3层:企业管理层、制造执行层和工业控制层。企业管理层是指以ERP为代表的企业管理信息系统,主要负责企业的财务管理、销售管理、人事管理、供应链管理等。制造执行层即MES(manufacture executive system),位于企业管理信息系统和工业自动化系统之间,主要负责车间生产管理和调度执行,具有生产调度、产品跟踪、质量控制、制造数据分析等管理功能。工业控制层即工业控制系统,由各种自动化控制组件和实时数据采集、监测的过程控制组件共同构成;其核心组件包括数据采集与监控系统(SCADA)、分布式控制系统(DCS)、安全仪表控制系统(SIS)、可编程逻辑控制器(PLC)、远程终端(RTU)、智能电子设备(IED),以及确保各组件通信的接口技术[3]。考虑到工控系统的重要性,通常工业控制层和MES层之间需要部署防火墙或单向隔离装置来进行访问控制。工业控制系统内部又可细分为3层:过程监控层、现场控制层和现场设备层[4],如图2所示。
过程监控层主要由监控中心、实时数据库、OPC服务器、操作员站、工程师站等组成,实现对工业现场的实时监控和数据采集。现场控制层主要由PLC、DCS、SIS等控制设备组成,实现对各类现场仪表的自动化控制,同时与过程监控层进行通信。现场设备层包括监测压力、温度、液位、流量等参数的现场仪表以及控制阀、电动阀等执行单元。
3 工控系统信息安全风险与策略分析
工业控制系统由于自身的一些固有属性、应用特点和历史原因,主要面临以下几方面信息安全风险。
1) 补丁升级问题——外围加固
工业系统更新换代周期很长,一套系统普遍使用十年以上,考虑到工控软件与补丁程序之间的潜在兼容性问题以及补丁升级所带来的停工成本和运营风险,工业企业一般在系统上线后不会对其升级补丁,导致系统长期积累了大量安全漏洞。从CNCERT前期参与的工业企业信息安全检查情况看,很多企业的工控主机至今运行着早期的Windows XP操作系统,有些控制设备的固件版本可以追溯到5~10年前。工控系统在漏洞风险下运行成为常态。
补丁升级问题是工控系统自身固有的应用特点造成的,目前业界并无完善的解决方案,一种变通的解决思路是通过外围加固方式来替代补丁程序防止漏洞被利用。例如,通过在核心控制区域部署工业防火墙,过滤恶意特征数据或只允许白名单数据通过,来防止漏洞被触发。由于工业防火墙需串接在网络中对数据进行实时检测,对于一些特殊应用场景,如系统实时性要求非常高、或工业用户无法确认哪些数据需要过滤或通过,应用此种外围加固方式仍存在一定风险。
2) 杀毒软件兼容性问题——白名单防护
考虑到工控软件与杀毒软件的兼容性问题,工控主机(工程师站、操作员站等)通常不安装杀毒软件,这为病毒与恶意代码的传染与扩散留下了空间。有些工控主机虽然安装了杀毒软件,但限于内网的封闭环境,病毒库很少更新或常年不更新,实际作用非常有限。
针对工控主机的信息安全防护,目前工控安全厂商主推的一种解决方案是白名单机制,即通过安装白名单防护软件只允许白名单中的软件被执行(授权的组态软件、办公软件等),其他未授权的软件和进程禁止运行。相对大多数杀毒软件的黑名单机制,白名单防护软件在理论上与工控软件具有更好的兼容性。
3) 工控协议信息安全问题——加密认证
明文传输和无身份认证是工业控制协议普遍存在的两个信息安全问题。由于工控网络的专网特性,工控协议在最初设计时更强调功能和实时性,对安全性考虑不足,大多采用明文传输,无加密机制,有些协议甚至没有数据一致性验证,导致协议数据在网络传输过程很容易被窃听和篡改。同时,工控协议大多没有身份认证机制,无论是谁,只要按照协议规约向控制单元发送指令,指令都会被执行。尤其对于组态协议,通常包含重启设备、启停控制程序、上传下载组态程序等关键指令,一旦在生产环境下被黑客利用,后果可能非常严重。
一些主流厂商已经意识到工控协议的安全性问题,并给出了相应的解决方案,如西门子在新的组态协议S7+中增加了认证和会话控制。但对于一些公开通用的工控协议,如广泛使用的Modbus TCP、DNP3等,目前只在学术上有一些安全加固方案,在实际应用中未见大规模使用,原因可能是缺少统一标准或与现有协议兼容性方面的顾虑。
4) 网络访问控制问题——网络隔离&最小权限
随着“两化”融合的深入,工控网络开始同生产管理网、企业办公网等相连,这无疑增加了网络运行风险。尽管很多工业企业已经意识到控制网络与信息网络之间的访问需要加以限制,但在具体安全策略设计和防护手段实施中仍很难真正做到完美的访问控制。有些工业企业虽然部署了防火墙或隔离装置,信息安全隐患仍随处可见。
工控网络的访问控制问题需要从技术和管理2方面入手,我国电力系统推行的16字方针(安全分区、网络专用、纵向认证、横向隔离)具有较好的参考价值。当然,各工业领域具有很大的差异性,工业企业需根据的自身行业特点和安全需求设计相应的安全控制规程,细化访问控制权限。
5)信息安全管理问题——完善管理制度&提升安全意识
“保生产”是工业企业的第一要务,而安全方面,传统工业企业更重视物理安全和功能安全,信息安全往往排在末位。远程维护、违规外联、U盘等移动介质随意使用等行为在很多工业企业非常常见,这为黑客和病毒的入侵提供了便利条件。而一旦病毒入侵成功,工控网络内部大量存在的漏洞和不必要开放的服务端口,将为病毒传播提供肥沃的土壤。有专家预言,工业系统将成为勒索软件的下一个重要目标。
近年来工业信息安全逐渐得到国家重视,相关政策法规陆续出台,一些重要工业领域已经建立起了相对完善的信息安全管理制度,但仍有很多工业领域的安全状况令人堪忧。安全的核心在于人,只有不断加强人的管理和提升人的安全意识,才能真正提高工业系统的整体安全性。
6) 工控系统自身软硬件脆弱性问题——安全检测认证
工控系统在设计之初较少考虑信息安全问题,也没有经历过互联网开放式环境考验,系统自身的软硬件普遍存在安全隐患。根据我国国家信息安全漏洞共享平台(CNVD)工控行业漏洞库(ICS-CNVD)的数据[5],自2010年“震网”事件后,工控漏洞上报数量显著增长,其中2016年新增漏洞167个,较上一年度同比增长54.6%,如图3所示。
安全测评与认证是减少工控漏洞、提升工控软硬件自身健壮性的重要手段。在工控产品发布或上线之前,对其进行全方位的安全检测和健壮性测试,可提前发现产品潜在的安全隐患和漏洞,减少漏洞发现代价,有效提升工业系统的安全性[6]。
4 工控安全漏洞分析与检测认证
4.1 ICS-CNVD工控漏洞分析
国家信息安全漏洞共享平台(CNVD, China National Vulnerability Database)是由国家互联应急中心(CNCERT)联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的信息安全漏洞信息共享知识库,覆盖电信、移动互联网、工控系统、电子政务、金融等行业。
截至目前,国家信息安全漏洞共享平台工控行业漏洞库(ICS-CNVD)共收录了1 033个工控漏洞。从漏洞数量看,工控漏洞仅占CNVD漏洞总数的1%,相对其他行业少很多,分析原因主要有以下3方面:1)工业系统相对封闭、大多数系统无法通过互联网直接访问,而系统本身的用户并不多,所以公开漏洞也少;2)工业系统往往价格昂贵,一般安全研究人员和组织接触不到真实的工控设备和系统;3)工控安全事件一般影响较大,有可能造成生产事故、甚至人员伤亡,考虑到法律风险,除非国家背景或特殊利益驱使,一般黑客不会主动攻击工业系统。在收录的工控漏洞中高危漏洞占比较高,约占总量一半,这可能与工业行业的特点有关,在传统信息行业中影响有限的漏洞类型,在工业生产场景下既有可能造成物理损害。
在ICS-CNVD收录的漏洞中约有85%为国外产品漏洞,这与我国工控系统严重依赖进口有关。截至目前,在收录的漏洞中,漏洞数量排名前五的产品厂商为西门子(Siemens)、研华(Advantech)、施耐德(Schneider)、罗克韦尔(Rockwell)、燚加华(Ecava),如图4所示。这里需要说明的是,各厂商公开的漏洞数量,受到众多因素的影响,不仅与其产品自身安全性有关,还与厂商产品的种类、市场份额、覆盖区域和用户对象,以及研究人员关注程度等因素有关。因此,不能简单地认为厂商的公开漏洞数量越多,其产品就越不安全。
在ICS-CNVD收录的漏洞中约有75%为软件漏洞。为便于统计分析,此处将工控组件分为3大类:工控设备(含PLC、DCS、RTU、数控设备等)、组态和数据采集类软件(含上位机软件、SCADA软件、OPC软件)、用于生产决策支撑等目的的应用类软件。漏洞分类统计信息如下,其中组态和数据采集类软件漏洞占比较高,达到56%,如图5所示。
在ICS-CNVD收录的漏洞中按照类型排名前三的漏洞为:缓冲区溢出、拒绝服务和信息泄露。根据漏洞成因及造成影响不同,漏洞分类统计信息如图6所示。
4.2 工控漏洞检测技术浅析
工控系统安全漏洞按组件划分可分为工控设备类漏洞、组态和数据采集类软件漏洞,以及应用类软件漏洞,其中后两类漏洞的检测手段[7]与传统软件漏洞并无本质区别,本文主要针对工控设备类漏洞的检测技术进行分析。
工控设备主要指PLC、DCS、RTU等控制类硬件设备。工控设备大多是封闭的嵌入式系统,采用专用操作系统(如定制VxWorks、嵌入式Linux等)和特定应用软件,通常对外提供网络接口或串口,不提供任何调试功能。作为一个黑盒系统,工控设备的漏洞检测技术主要有2种:模糊测试和固件分析。
模糊测试是一种通过向目标系统输入大量非预期数据,并监测异常结果来发现安全漏洞的技术,在漏洞挖掘领域有广泛应用。工控设备的模糊测试主要是对设备所使用的网络通信协议进行健壮性测试,以此来发现工控设备的协议组件和功能组件在软件实现中存在的安全隐患和漏洞。工控设备的通信协议可分为3类:基础通信协议(ARP、IP、ICMP、TCP、UDP等)、通用服务协议(HTTP、FTP、SNMP等)和工业控制协议(Modbus TCP、Ethernet/IP、S7等)。对于基础通信协议和通用服务协议的测试,可采用传统的网络协议模糊测试工具,如Peach、Sulley等。由于工控设备自身的脆弱性,往往在基础通信协议和通用协议测试中就能发现不少问题。
针对工控协议的测试可分为2种情况:对于标准公开的工控协议主要采用基于生成的模糊测试方法,测试人员可根据协议标准和规约,基于特定模糊测试框架开发测试脚本,通过对协议字段进行错误注入、对报文结构进行变异、对报文序列(标识上下文状态)进行变换来检测设备在处理各种异常时可能存在的漏洞。此种方式下,模糊测试的效率和代码覆盖率取决于测试脚本编制人员对工控协议的理解程度以及所使用模糊测试框架的优劣。
对于私有工控协议,一般采用基于变异的模糊测试方法,以捕获的私有协议正常交互数据作为样本,在其基础上进行变异,使生成的测试数据充分不同于有效数据从而导致异常问题的出现。但如果测试数据过于失效,会导致大部分测试数据被系统的浅层逻辑所丢弃,达不到深入测试的目的。基于变异的模糊测试不需要对协议规约有很深了解,其效率主要取决于测试样本的丰富程度以及所选用的变异算法[8]。
在模糊测试过程中,应尽量从不同维度对被测系统进行监测,以期发现测试数据所导致的任何系统异常。对于工控设备,通常需要同时监测被测设备的网络状态和IO输出状态。在网络状态监测中,除了使用ARP/ICMP/TCP/UDP等协议对被测设备的基础网络状态进行监测外,一般还建议同时对被测设备开启的所有应用层服务进行监测,以期发现各服务之间的相互影响。IO输出状态监测是指对工控设备IO模块输出的数字信号或模拟信号的波形进行实时监测(注:测试前需对被测设备组态以输出指定波形),判断IO模块输出波形是否与预期一致、抖动和延迟是否超出正常范围。IO输出监测主要用于发现以下异常:工控设备的网络服务仍然正常,但IO输出已经错乱。
固件分析是一种针对嵌入式设备的后门和漏洞检测技术。由于硬件上的特殊性,工控固件通常无法进行动态调试,只能采用静态分析方式。通常使用Binwalk等工具将设备的文件系统、操作系统内核、Bootloader、Web服务器等从固件中提取出来,对其进行逆向分析,检测有无后门和漏洞。一种常用的方法是分析设备固件都使用了哪些通用组件,根据组件名称、版本或特征,查询CVE、CVND等权威漏洞库,确认这些组件是否含有已知漏洞,然后编写PoC进行漏洞验证。
模糊测试和固件分析两种漏洞检测技术各有侧重、互为补充。其中模糊测试主要用于发现设备的未知漏洞,具有通用性好、自动化程度高的优点,但是模糊测试无法发现设备后门、鉴权绕过等逻辑漏洞。固件分析主要用于发现设备存在的已知漏洞和一些后门类漏洞,固件分析对测试人员的技术要求比较高,只在设备固件可被逆向的情况下可用。有些工控设备采用特殊的CPU和指令集,有些厂商出于安全考虑将设备固件加密,这些都极大的增加了固件分析的难度。
4.3 工控安全测评认证
在产品发布或上线前,对其进行全方位的安全检测可有效提升产品健壮性、减少安全漏洞。安全测评与认证在传统信息安全领域一直发挥着重要作用,但在工控领域我国尚没有建立起一个普遍认可的安全认证体系。目前,在国际上权威的工控安全认证有2个:ISASecure认证和Achilles认证。
ISASecure认证是国际自动化协会(ISA)基于IEC 62443标准推出的工控安全认证体系,其中包括针对嵌入式设备的EDSA认证、针对工控系统的SSA认证和针对工控产品研发生命周期的SDLA认证。作为一个由非盈利性国际组织依据国际标准推出的安全认证,ISASecure认证具有更好的权威性,但可能是认证要求过于严格或服务响应不够迅速等原因,ISASecure认证的实际推广并不理想。
Achilles认证是加拿大WurldTech公司基于其安全测试平台Achilles推出的安全认证,包括通信认证(ACC)和实践认证(APC),其中ACC认证相对简单,市场推广效果很好,国际上主流的工控设备厂商大多通过了ACC认证。但随着2014年WurldTech公司被GE收购,失去了第三方独立安全机构的地位,Achilles认证也开始受到一些企业的质疑。
当前,在工控网络安全威胁日益严峻的背景下,我国亟需建立自主可控的工控安全测评认证体系,以提升我国工业控制系统的整体安全性。
苏州卡欧智能设备,西门子电动阀,苏州西门子控制器 ,苏州霍尼韦尔电动阀, 苏州恒温恒湿控制, 苏州空调自控系统,苏州控制配电箱,昆山西门子电动阀,昆山西门子控制器,昆山霍尼韦尔电动阀, 昆山恒温恒湿控制,昆山空调自控系统,