摘要:CWE今年的第一个版本在5/1前发布了,做为软件安全的重要分类标准,我们来看下这个版本有那些变化。

本文分享自华为云社区《CWE 4.7中的新视图 -- 工业控制系统的安全漏洞类别》,作者:Uncle_Tom 。

1. CWE 4.7的变化

CWE今年的第一个版本在5/1前发布了,做为软件安全的重要分类标准,我们来看下这个版本有那些变化。

从汇总图可以看出,新增了3个弱点,废弃了一个弱点;新增1个视图,25分类。 从这些数字的变化,我们不难看到,又有新视图了,到底这个新视图是关于什么的方面的缺陷呢?

下面我们来的看下具体弱点的变动。

1.1. 新增的CWE弱点

1.1.1. CWE-1357: 依赖不受控制的组件

  • 弱点类型:类(Class)
    这个弱点的类型是类(Class)。具体的弱点的类型介绍可参见《话说CWE 4.2的新视图》中关于弱点类型的介绍部分。
  • 弱点的描述
    许多硬件和软件产品是通过多个较小的组件组​​合成一个较大的实体来构建的。这些组件可能由外部供货商提供或无法修改,即这里指出的的“不受控制”。例如,硬件组件可能由单独的制造商构建,或者产品可能使用由与产品供应商没有正式合同的人开发的开源库。或者,组件的供应商由于不再营业,导致无法提供组件的更新或更改。
    这种对“不受控制”组件的依赖,意味着如果在不受控制的组件中发现安全风险,产品供应商不一定能够修复它们。
  • 弱点间的关系
    在研究者视图(CWE-1000)中,此弱点被放在编程规范违背(CWE-710)下,并包含已有的两个CWE:使用未维护的第三方组件( CWE-1104)和
    依赖不可更新的组件(CWE-1329)进行了归类。
  • 缺陷举例
    • CVE-2020-9054
      IoT设备在发生命令注入问题后,因为产品已经终止服务而不能及时完成补丁的修复。
  • 消减措施
    通过维护软件物料清单(SBOM), 掌握软件组件和依赖项清单、以及有关这些组件的信息以及它们的层次关系。持续监控每个产品组件的变化,特别是当出现新的漏洞、服务终止 (EOL) 时,及早采取措施。

1.1.2. CWE-1384: 极端物理环境条件处理不当

  • 弱点的描述
    在极端物理环境下,产品无法正确检测和处理,例如温度、辐射、湿度、功率或其他物理现象。

  • 属于硬件导致的问题,不做过多的分析。

1.1.3. CWE-1385: WebSockets 中缺少来源验证

  • 弱点的描述
    WebSockets在客户端和服务器之间提供双向低延迟通信(接近实时)。 WebSockets 与 HTTP 的不同之处在于连接是长期存在的,因为通道将保持打开状态,直到客户端或服务器准备好发送消息,而在 HTTP 中,一旦发生响应(通常立即发生),事务完成。

WebSocket可以在端口80和443上利用现有的HTTP协议(不限于 HTTP)。 WebSockets可以发出不受基于浏览器的保护机制限制的跨域请求,例如同源策略(SOP)或跨域资源共享(CORS)。如果没有明确的来源验证,这会使 CSRF攻击的危害更大。

  • 弱点间的关系
    在研究者视图(CWE-1000)中,此弱点被放在访问控制不恰当(CWE-284),以及保护机制失效(CWE-693)下的对数据真实性的验证不充分(CWE-345) 下的源验证错误(CWE-346)下面。
  • 缺陷举例
    • CVE-2020-25095
      LogRhythm 的管理平台(PM) 7.4.9的Web 界面如果登录PM的用户在同一浏览器会话中访问恶意站点,则该站点可以执行 CSRF 攻击以创建从受害者客户端到易受攻击的PM服务器的WebSocket。一旦创建了套接字,恶意站点就可以在登录用户的上下文中与易受攻击的Web 服务器进行交互。这可以包括导致​​命令执行的 WebSocket,从而造成跨站点 WebSocket劫持(CSWH)。
  • 消减措施
    • 通过在 WebSocket 握手期间验证“Origin”标头来保护类似跨域资源共享(CORS)的访问限制;
    • 在建立 WebSocket 连接之前对用户身份验证。例如使用WS库中的“verifyClient”函数。

1.2. 删除的CWE弱点

1.2.1. CWE-365: 废弃: Switch中的条件竞争

  • 删除原因
    此条目可能最初是基于对原始源材料的误解而创建的。最初的来源旨在解释在使用线程时,switch控制表达式使用的数据或变量可能会在不同线程的执行之间发生变化,那么切换是如何不可预测的。 另外CWE-367 已经涵盖了这个弱点。

注:CWE 一样会出现理解歧义,随着认识的统一会形成新的统一,所以不纠结,这是人类认知的进化过程。

2. CWE的新视图

2.1. CWE-1358视图: 安全能源基础设施执行工作组(SEI EFT)给出的工业控制系统(ICS)中存在的安全缺陷分类

该视图中的CWE条目是参照美国安全能源基础设施执行工作组(Securing Energy Infrastructure Executive Task Force (SEI ETF))在2022年3月发布的《工业控制系统(ICS)中存在安全缺陷类别(Categories of Security Vulnerabilities in ICS)》。 可见该视图聚焦在工业控制系统(ICS)中存在弱点问题上。但由于CWE以前一直强调的是企业IT软件的弱点,并未涵盖工业控制中的弱点问题,所以该视图中的弱点是基于“相近的IT弱点”的方式建立的,在未来的CWE版本中,这些关系可能会发生变化。

该视图包含5个大类,20个小类。

2.2. 背景介绍

制造商一直在寻找提高生产效率、降低成本、提升监控质量以确保符合标准的方法。因此,全球的制造工厂采用和部署了越来越多的资产和设备连接到网络的技术,用于收集生产过程的数据,并通过分析这些数据来发现生产流程趋势或者对设备故障能够进行预测。

2.2.1. 工业控制系统(IndustrialControl Systems(ICS))

工业控制系统通常用于描述硬件和软件与网络连接的集成,以支持关键基础设施。ICS技术包括但不限于监控和数据采集(SCADA)和分布式控制系统(DCS)、工业自动化和控制系统(IACS)、可编程逻辑控制器(PLC)、可编程自动化控制器(PAC)、远程终端单元(RTU)、控制服务器、智能电子设备(IED)和传感器。通常出现在工业部门和关键基础设施中。

ICS主要用于电力,水利,石油,天然气和数据等行业。基于从远程站点获取的数据,自动化或者操作者驱动的监控命令可以推送到远程站点的控制设备,这种设备通常被称为现场设备。现场设备控制诸如开闭阀和断路器的本地操作,从传感器系统收集数据,并监测本地环境的报警条件。

2.2.2. 运营技术(Operational Technology(OT))

运营技术可定义为:对企业的各类终端、流程和事件进行监控或控制的软硬件技术,含数据采集和自动控制技术。OT 既包括硬件设施(如机器人、电机、阀门、数控机床等),也包括对这些设施进行控制的各种软件技术。运营技术实质为电子、信息、软件与控制技术的综合运用。

OT安全主要是由Gartner提出并推广,Gartner 将OT 安全定义为, 借助实践和技术来:

  • (a) 保护人员、资产和信息;
  • (b) 监视和/或控制物理设备、流程和事件;
  • 发起企业 OT 系统状态更改。
    使用软硬件来监视和控制物理流程、物理设备和基础设施。运营技术系统存在于许多资产密集型产业中,可以执行从监视关键基础设施 (CI) 到控制生产车间机器人等各种任务。

OT 应用于各种行业,包括制造业、石油和天然气、发电和配电、航空、海事、铁路和公共事业。

2.2.3. ICS/OT和IT安全的差别

2.3. 对ICS/OT的攻击

互联网带动着各行各业的快速发展。万物互联乃至智能化的发展对工业领域也带来了极大的便捷,与之伴随的则是互联网的传统弊病,网络安全问题。工业领域由闭塞的环境走向互联,因为攻击面的增加,更容易发生网络安全问题。

2.3.1. 震网事件

2006-2010年美、以情报和军情领域的软件和网络专家,工业控制和核武器的专家编制震网病毒,经历了5年的持续开发和改进,对伊朗纳坦兹铀离心设施的可编程逻辑控制器(PLC)控制系统进行攻击,修改了离心机压力参数、离心机转子转速参数,导致大量离心机瘫痪,铀无法满足武器要求,几乎永久性迟滞了伊朗核武器计划。
震网被认为是第一个以现实世界中的关键工业基础设施为目标的恶意代码,并达到了预设的攻击目标,这是第一个“网络空间”意义上的重大攻击事件,而非传统的网络攻击事件。

2.3.2. 乌克兰电力部门遭受到恶意代码攻击

2015年12月23日,乌克兰电力部门遭受到恶意代码攻击,乌克兰新闻媒体TSN在24日报道称:至少有三个电力区域被攻击,并于当地时间15时左右导致了数小时的停电事故; 攻击者入侵了监控管理系统,超过一半的地区和部分伊万诺-弗兰科夫斯克地区断电几个小时。因遭到入侵,导致7个110KV的变电站和23个35KV的变电站出现故障,导致80000用户断电。

2.3.3. 奥尔德斯马水处理设施安全事故

2021年2月5日,有黑客未经授权远程访问了位于佛罗里达州奥尔德斯马的Bruce T. Haddock水处理厂的操作员工作站,该工厂位于佛罗里达州坦帕市西北约15英里处。根据皮涅拉斯县警长办公室描述,身份不明的网络攻击者当天在两个不同的场合访问了操作员工作站,时间相隔大约五小时。

  • 在当天上午大约 8 点的第一次非法入侵期间,工厂操作员观察到鼠标光标在操作员站的屏幕上移动,并认为可能是管理员正在监视系统(因为过去发生过这种情况)。
  • 当天下午 1 点半左右,操作员观察到有人再次访问了系统,这次操作员终于可以确定异常。攻击者操控了鼠标,将指针挪到了控制水处理的软件上,并展开了持续 3~5 分钟的操作。网络攻击者将氢氧化钠(碱液)的设定值从100 ppm更改成11,100 ppm,然后退出系统。操作员看到了变化,立即将氢氧化钠的设定值改回了100 ppm。

2.3.4. Claroty的《ICS风险及漏洞报告 2H:2021》

Claroty被著名的研究机构和咨询公司FORRESTER评为2021年第四季度工业控制系统安全解决方案(Industrial Control Systems (ICS) Security Solutions)的领导者。Claroty研究部门最近发布的2021下半年《ICS风险及漏洞报告》,报告全面分析了2021年下半年公开披露的工业控制系统漏洞,包括供应商、安全研究人员、以及其他组织的专家发现的漏洞。

  • 2021年共计披露了1439个ICS漏洞,比2020年的942个增加了53%。

  • 2021年漏洞影响147家ICS供应商,比2020年的102家增加了44%。

2.4. NIST SP800-82 OT网络安全指南

美国国家标准与技术研究院 (NIST)4月26日发布了NIST SP 800-82和3版的一份初步公开草案,该草案指导如何提高运营技术(OT) 系统的安全性,同时满足其性能、可靠性和安全要求。更新后的NIST SP 800-82文档提供了OT和典型系统拓扑的概述,识别了OT支持的组织使命和业务功能的典型威胁,描述了OT中的典型漏洞,并提供了推荐的安全保护措施和应对措施来管理相关风险。

  • OT 中典型的漏洞:
    • 表 15:体系结构和设计漏洞
    • 表 16:配置和维护漏洞
    • 表 17:物理漏洞
    • 表 18:软件开发漏洞
    • 表 19:通信和网络配置漏洞
    • 表 20:传感器、最终元件和资产管理漏洞
  • 其中软件开发造成的漏洞,如下:

  • 注:这些漏洞,也是目前软件安全危害最大的漏洞类型。

3. 结论

  • 随着供应链攻击的加剧,人们已经提高了对供应链问题的防范, CWE以加入了相关的缺陷分类;
  • 随着IT和OT的融合,企业在数字化转型中,需要对工业控制中可能造成的网络攻击引起足够的重视和防范;
  • OT的安全会对基础设施造成影响更为广泛的灾害,特别是供电、供水、运输等基础设施的破坏;
  • 美国通过SP800-82 OT网络安全指南来提升运营技术(OT) 系统的性能、可靠性和安全要求;
  • CWE 4.7版本的工业控制系统(ICS)中存在的安全缺陷分类,为我们提供了发现OT领域的安全问题和防范提供了系统的视角。

4. 参考

  • Differences between Version 4.6 and Version 4.7
  • OT安全的定义及特点:https://www.freebuf.com/articles/ics-articles/213474.html
  • 面向“互联网 +”的 OT 与 IT 融合发展研究: https://www.engineering.org.cn/ch/10.15302/J-SSCAE-2020.04.015
  • SEI-ETF-NCSV-TPT-Categories-of-Security-Vulnerabilities-ICS-v1_03-09-22: https://inl.gov/wp-content/uploads/2022/03/SEI-ETF-NCSV-TPT-Categories-of-Security-Vulnerabilities-ICS-v1_03-09-22.pdf
  • The Differences Between ICS/OT and IT Security : https://www.sans.org/posters/the-differences-between-ics-ot-and-it-security/
  • Operational Technology Security – Focus on Securing Industrial Control and Automation Systems: https://blogs.gartner.com/earl-perkins/2014/03/14/operational-technology-security-focus-on-securing-industrial-control-and-automation-systems/
  • NIST SP800-82 Guide to Operational Technology (OT) Security v3: https://csrc.nist.gov/publications/detail/sp/800-82/rev-3/draft
  • 乌克兰电力系统遭受攻击事件综合分析报告: https://www.antiy.cn/research/notice&report/research_report/20160323.html
  • Florida water hack highlights risks of remote access work without proper security: https://edition.cnn.com/2021/02/13/us/florida-hack-remote-access/index.html

点击关注,第一时间了解华为云新鲜技术~

CWE 4.7中的新视图:工业控制系统的安全漏洞类别的更多相关文章

  1. 工业网络安全 智能电网,SCADA和其他工业控制系统等关键基础设施的网络安全(总结)

    1.工业网络的安全势必是未来安全方向必须要做的一个重要的方面 工业网络的概念:简单的说就是控制控制系统的网络,其可以进行基于网络的数字通信. 关键的基础设施:包括直接操作任何系统的设施 了解工业网络的 ...

  2. Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式

    Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 > ...

  3. 渗透测试中遇到的Adminer任意文件读取漏洞

    渗透测试中遇到的Adminer任意文件读取漏洞 免责声明: 软件简介 漏洞原理 漏洞复现 字典脚本 直接输入文件读取脚本 直接输入文件绝对路径读取脚本使用方法 字典脚本使用方法 免责声明: 免责声明: ...

  4. Apparmor——Linux内核中的强制访问控制系统

      AppArmor 因为最近在研究OJ(oline judge)后台的安全模块的实现,所以一直在研究Linux下沙箱的东西,同时发现了Apparmor可以提供访问控制. AppArmor(Appli ...

  5. 工业控制系统USB存储设备可信管理方案的(ICICS2015)论文PPT:TMSUI: A Trust Management Scheme

    本PPT是发表在ICICS2015 大会的论文 TMSUI: A Trust Management Scheme of USB Storage Devices for Industrial Contr ...

  6. 工业控制系统PLC、DCS、ESD

    PLC:可编程逻辑控制系统.PLC是一种专为在工业环境应用而设计的数字运算电子系统. DCS:集散控制系统. ESD:紧急停车系统.

  7. 输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。

    因为是一批考生,所以先创建一个字符数组存放一组准考证号. 此外这个程序涉及到包装类与基本数据类型的互相转换. string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第 ...

  8. PHP中双引号引起的命令执行漏洞

    前言 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出现安全问题. 正文 举个简单例子 <?php $a = 1; $b = ...

  9. TransactionScope事务处理方法介绍及.NET Core中的注意事项 SQL Server数据库漏洞评估了解一下 预热ASP.NET MVC 的VIEW [AUTOMAPPER]反射自动注册AUTOMAPPER PROFILE

    TransactionScope事务处理方法介绍及.NET Core中的注意事项   作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.ht ...

  10. 关于java中ArrayList的快速失败机制的漏洞——使用迭代器循环时删除倒数第二个元素不会报错

    一.问题描述 话不多说,先上代码: public static void main(String[] args) throws InterruptedException { List<Strin ...

随机推荐

  1. log4j漏洞CVE-2021-44228复现-排雷篇

    一.环境搭建(用相同的环境才能保证一定成功) 下载vulhub,其他环境可能存在GET请求无效问题: git clone https://github.com/vulhub/vulhub.git 切换 ...

  2. SNN_文献阅读_Text Classification in Memristor-based Spiking Neural Networks

    SNN中局部学习和非局部学习,基于梯度的规则都需要对用于表示单个连续值的脉冲训练窗口上的累积误差进行平均,这种方法在更新权重时考虑了每一个脉冲的影响.在计算速度和空间效率等方面,特别是当代表单个数值的 ...

  3. AdaBoost算法解密:从基础到应用的全面解析

    本文全面而深入地探讨了AdaBoost算法,从其基础概念和原理到Python实战应用.文章不仅详细解析了AdaBoost的优缺点,还通过实例展示了如何在Python中实现该算法. 关注TechLead ...

  4. Numpy理解

    目录 什么是numpy numpy的安装 numpy数组 定义numpy数组 numpy数组的相关功能 基本操作 0数组和1数组 随机数组 二维数组 numpy的数组操作 我们再平常学习python和 ...

  5. 关于fstream对象的open方法报错183的问题

    当使用fstream,ifstream,ofstream,这几种对象打开文件, 但文件已经存在的时候, 调用GetLastError()函数,会返回错误代码183, 这个代码代表该文件已经存在,是正常 ...

  6. IIS安装与配置

    一.环境介绍 Windows Server 2019 64位 标准版 二.IIS安装 2.1.打开服务器管理器,单击添加角色和功能 在Windows Server 2019 服务器管理中,点击角色和功 ...

  7. jmeter-逻辑处理器while

    测试工具:jmeter 业务逻辑:A接口上传文件,B接口查询文件上传状态,如果状态不为4,需要再次查询(上传文件后,需要有短暂时间的识别,压测时并发大导致识别时间不可控)当为4时,跳出循环, 思路:增 ...

  8. 【译】使用 GitHub Copilot 编写 Git 提交

    在花费数小时修复 bug 或更新特性之后,我们开发人员最不愿意做的事情往往是仔细说明 Git 提交的内容.最新的 Visual Studio 预览版可以帮到您.使用新的生成 Git 提交消息特性来帮助 ...

  9. [编程] AI助力软件项目正向生成,注释编写的革命

    引言 软件项目质量直接影响着用户体验和企业效益.随着软件的应用范围不断扩大,提高软件质量的重要性也日益凸显.传统上,软件工程师通常采用自下而上的开发模式,自行设计实现代码并进行测试,这给质量把控带来一 ...

  10. 踩坑:nacos启动报错提示需要设置JDK环境 ,报错:ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!

    换了个Windows11的新电脑,因为个人工作.学习需要,就重新下载了Nacos并解压使用,结果就踩了个坑,使用下面命令启动Nacos服务端时: startup.cmd -m standalone 直 ...