当前,漏洞已经成为网络空间安全领域的国家战略资源。网络安全漏洞是开发恶意软件检测与防范工具、开展主动反制的基础,开展漏洞研究、加强漏洞管理有助于提升整体网络安全防护能力。
我国发布的国家标准《信息安全技术 网络安全漏洞标识与描述规范》(GB/T28458—2020)将网络安全漏洞定义为“网络产品和服务在需求分析、设计、实现、配置、测试、运行、维护等过程中,无意或有意产生的、有可能被利用的缺陷或薄弱点”。工业信息安全漏洞作为网络安全漏洞的细分项,可被攻击者用于破坏工业生产安全和社会稳定。因此,加强工业信息安全漏洞管理是保护关键信息基础设施的重要内容。
漏洞分类是漏洞研究的基础,《信息安全技术 网络安全漏洞分类分级指南》(GB/T30279—2020)基于漏洞产生或触发的技术原因将漏洞划分为代码问题、配置错误、环境问题与其他四大类;在分级方面,主要从被利用性、影响程度、环境因素3个方面,将漏洞划分为超危、高危、中危、低危4个级别。通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)作为被广泛应用于漏洞管理领域的行业公开标准,对漏洞类别进行了更加细致的划分。CVSS主要包含基准类、时间类和环境类 3 类评估指标,其中时间类、环境类评估指标需结合实际情况进行调整,基准类评估指标包括可利用性、影响性和范围3个指标集。
工业信息安全漏洞也可从相似的维度进行划分,通常按照漏洞的技术成因(被利用的方式)、漏洞的利用方法(攻击向量)、漏洞造成的直接影响、漏洞影响的指标、漏洞影响的产品等进行分类。漏洞造成的直接影响取决于攻击者所获取的权限、受害者所属行业性质等多方面因素,这里不进行详细的描述,仅介绍按照其他4个维度进行划分的方法。
《信息安全技术 网络安全漏洞分类分级指南》(GB/T30279—2020)中关于网络安全漏洞的分类共包括四大类26个小类。在工业信息安全领域,同样可按照技术成因将漏洞分为四大类26个小类,下面重点介绍该领域中5类常见的漏洞产生原因。
(1)内存破坏
内存破坏漏洞主要是某种非预期的内存越界访问,可能导致命令执行、拒绝服务或信息泄露,如堆栈缓冲区溢出、内存越界访问、释放后重用等都可归为此类漏洞。
(2)逻辑错误
逻辑错误漏洞主要是程序在进行安全检查的过程中存在逻辑缺陷而导致设计的安全机制被绕过,从而实现访问控制等。
(3)输入验证
输入验证漏洞主要是由于程序未对用户输入进行充分的检查和过滤就将其用于后续操作。大多数的结构查询语言(Structure Query Language,SQL)注入、目录遍历或针对公共网关接口(Common Gateway Interface,CGI)类漏洞都可归为此类漏洞。
(4)配置错误
配置错误漏洞主要是由于系统或应用运维过程中使用了默认不安全的配置参数、策略等,大多涉及访问验证方面,如人机交互界面、工业交换机的登录界面弱口令未修改等都可归为此类漏洞。
(5)设计错误
设计错误漏洞的范围较为广泛,它在整个信息系统全生命周期中都可能存在,主要是由于在设计阶段对安全机制考虑不足而引入的安全漏洞。
基于攻击向量的漏洞分类是指按照攻击者发起网络攻击的攻击机器与目标靶机的物理位置进行分类,主要包括以下4类。
(1)本地接入
脆弱组件未与网络协议栈绑定,攻击者需利用读/写/执行功能进行攻击。例如,攻击者通过本地(如键盘、控制台)或远程[如SSH(Secure Shell,安全外壳)]访问目标系统来利用漏洞;攻击者依赖与他人的交互来执行利用漏洞所需的操作(如使用社会工程学方法欺骗合法用户打开恶意文档)。
(2)远程利用
脆弱组件与网络协议栈绑定,对脆弱组件可能的攻击源涵盖整个互联网。此类漏洞通常被称为“可远程利用”,攻击者可通过一个或多个网络跳跃(例如,跨越一个或多个路由器)进行协议层面的攻击。
(3)相邻网络
脆弱组件与网络协议栈绑定,但攻击只受限于逻辑上相邻的拓扑进行协议层面的攻击。因此,攻击者必须位于相同的物理网络或逻辑网络中,或者其他有限的管理域中。
(4)实际接入
攻击者需物理接触或操纵脆弱组件,物理交互可能是短暂的,也可能是持久的。此类攻击的一个示例是冷启动攻击,攻击者通过物理访问目标系统获得对磁盘加密密钥的访问权。
根据信息系统的机密性、完整性和可用性3个要素,可按照漏洞攻击的目标不同将漏洞分为信息获取、接管控制和服务中断3种类型。CVSS采用基本属性(Base)、时间(Temporal)和环境(Environmental)3个指标集描述软件漏洞的特征和严重性。其中,Base代表长期存在的、本质的、基本的脆弱性;Temporal代表随时间改变但不随用户环境改变的脆弱性;Environmental代表与用户环境直接相关的脆弱性。基于影响指标的漏洞分类主要使用标识漏洞成功利用后对受影响组件所造成影响的Base指标集。
(1)机密性
该指标用于描述漏洞成功利用对组件管理的信息资源造成的机密性影响。机密性是指仅向授权用户给予限制信息的访问和披露权限,防止未授权用户的访问。受影响组件的损失最大时,该指标取值最大。
(2)完整性
该指标用于衡量成功利用漏洞对完整性的影响程度。完整性包括信息的可靠性和准确性。
(3)可用性
可用性是指信息资源的可访问性,该指标用于衡量成功利用漏洞对受影响组件可访问性的影响程度。其中,消耗网络带宽、处理器周期或磁盘空间的攻击都会损害受影响组件的可用性。可用性影响的是组件本身,而非组件使用的数据,例如网络服务(Web、数据库、电子邮件等)的可访问性受影响。
工业信息安全漏洞影响的产品(或组件)可细分为8类:工业生产控制设备、工业网络通信设备、工业主机设备和软件、工业生产信息系统、工业网络安全设备、物联网智能设备、智能楼宇自动化系统、其他通用产品和组件。
(1)工业生产控制设备
包含分布式控制系统(Distributed Control System,DCS)、可编程逻辑控制器(Programmable Logic Controller,PLC)、可编程自动化控制器、远程终端单元等。
(2)工业网络通信设备
包含工业用交换机、路由器、网关、无线接入点等。
(3)工业主机设备和软件
包含监控与数据采集(Supervisory Control And Data Acquisition,SCADA)系统、操作员面板、工业主机、工业数据库等。
(4)工业生产信息系统
包含制造执行系统(Manufacturing Execution System,MES)、企业资源规划(Enterprise Resource Planning,ERP)系统、产品生命周期管理(Product Lifecycle Management,PLM)系统、工业App等。
(5)工业网络安全设备
包含工业防火墙、工业网闸、工业主机安全防护设备等。
(6)物联网智能设备
包含安防监控设备、智能穿戴设备、智能医疗设备等。
(7)智能楼宇自动化系统
包含数字控制器、给排水监控系统、消防监控系统、综合安保系统等。
(8)其他通用产品和组件
包含服务器、通信设备、驱动程序、应用软件等。