网络设备系统固件常见安全隐患和应对措施
中国保密协会 http://zgbmxh.cn 发布日期:2022-03-08

来源:保密科学技术公众号


网络设备系统固件的安全性对设备及其所在网络具有重要的影响。今天我们主要对网络设备系统固件的系统配置、沙箱环境、关键接口和服务、升级维护操作等方面可能存在的常见安全隐患进行了分析,并从设备厂商和用户单位等角度提出了相应的应对措施。


网络设备系统固件常见安全隐患

网络设备系统固件中的安全隐患类型多样,影响范围和危害程度也各不相同。本节将从系统配置、沙箱环境、关键接口和服务、升级维护操作4个方面对系统固件中常见的安全隐患进行简要分析。

1. 系统配置安全

系统配置的安全直接关系着网络设备的安全。根据系统固件中操作系统形态的差异,可以将固件大致分为3类:一是进行了深度精简的系统固件,这类固件中的系统通常是定制的、专用的,受通用漏洞的影响较小,具有较好的安全性,典型的网络设备包括路由器和交换机等;二是以开源操作系统为母本进行了较多裁减的系统固件,这类固件通常使用了最小化模式安装的Linux操作系统,裁减了与网络设备正常运行无关的组件,一定程度上减少了通用漏洞的影响,典型的网络设备包括网络审计系统、网络接入控制系统等;三是与开源操作系统基本一致的系统固件,这类固件通常直接使用了Linux操作系统,有的保留了Gnome、KDE等桌面环境,甚至保留了GCC、GDB等开发调试环境,这在部分网络设备原型系统和样机中比较常见。这类系统固件与普通的服务器或终端中的操作系统没有太大差异,更容易受到各类组件漏洞的影响,攻击者甚至可以利用开发环境编译和执行有针对性的漏洞利用程序,安全风险隐患较大。

系统固件内的安全策略配置对网络设备的安全影响也非常显著。例如,除了根用户等系统用户外,厂商可能还在系统中设置了其他的用户和用户组,用于运行不同的系统服务。这种做法对不同服务之间的数据隔离、防止系统服务以较高权限运行等具有重要意义。但是,如果没有禁用这些用户的终端登录权限,就可能使攻击者更容易入侵底层系统。类似的,系统的引导程序、自动启动项、计划任务等方面的配置也都可能对系统安全产生较大的影响,需要加强防范。

2. 沙箱环境安全

沙箱是一种特殊的运行环境。与正常的运行环境相比,沙箱通常具有更多的安全策略限制,如仅允许运行授权列表中的程序和命令等。有的沙箱还具有监控功能,可以获取程序在运行中的各种行为,再根据这些行为是否符合预设的安全策略来决定拦截还是放行。沙箱技术在程序测试工具、浏览器和Java虚拟机等领域中得到了较为广泛的应用,对拦截恶意代码执行、保护系统安全起到了重要的作用。

在基于Linux的网络设备底层系统中,BusyBox是最常用的沙箱之一。BusyBox是由Bruce Perens编写的一个微型操作系统,最初主要用于Linux类系统的引导和安装。BusyBox虽然非常微小,却具有最基础的命令行环境,而且集成了系统中上百个最常使用的命令和工具,可以实现文件管理和系统配置等功能。很多主流的Linux发行版都将BusyBox作为系统启动失败或发生崩溃时的急救环境。基于BusyBox的上述特性,一些网络设备将BusyBox作为面向用户的终端命令行环境。当用户通过串口等方式连接网络设备时,直接进入BusyBox环境,将底层系统原始的Bash等Shell环境隐藏了起来。由于BusyBox是开源的,一些厂商还会将BusyBox进行裁减,进一步限制沙箱的功能。这种方式很好地限制了用户的执行权限,防止攻击者直接执行特权指令和恶意程序,提高了设备的安全性。但是另一方面,BusyBox自身的安全性也直接关系着设备的抗攻击能力。近年来,BusyBox被曝出存在多个中高危漏洞。2021年11月,Claroty和JFrog团队在BusyBox中发现了14个安全漏洞,攻击者可在特定条件下利用这些漏洞实现拒绝服务、信息泄露和远程代码执行等攻击行为,对大量使用BusyBox沙箱的网络设备造成了影响。

此外,有些网络设备使用了厂商自行设计和开发的沙箱。例如,有的设备通过文本菜单界面为用户提供基础配置和备份还原功能,有的设备使用极简的命令行环境支持有限的配置命令。这类沙箱的主要工作原理是接受并解析用户输入的命令和参数,并将符合安全策略的命令和参数交由底层系统执行,最后将执行结果经过必要的解析处理后展示给用户。这种沙箱最常遇到的安全问题是沙箱穿透,即沙箱没有对用户输入的命令和参数进行必要的安全检查,攻击者可以构造特定的命令和参数,绕过沙箱的防护机制,以沙箱自身通常具有的root权限直接操作底层系统。对于某些不直接展示执行结果的沙箱,攻击者也可能通过将标准输出和错误输出之间进行重定向等方式,将不可见的后台执行结果映射到可见的前台,通过分析执行结果来判断攻击操作是否成功。

3. 关键接口和服务安全

网络设备的外观通常比较简洁,除业务功能所需的网络接口外,一般只保留了用于系统配置、升级维护的管理网口和串口。业务网口用于对外提供常规的网络服务;管理网口用于运维人员远程访问网络设备;串口通常也用于运维工作,但需要在设备旁连接和使用。如果系统固件中支撑这些接口的服务存在安全漏洞,攻击者又能够访问和使用这些接口,就可能对网络设备及其所在的网络进行攻击。

在业务网口和管理网口中,最常见的服务就是Web服务。为了增强服务的安全性,大部分Web服务都使用了HTTPS协议。HTTPS是一种通过SSL协议加密保护的HTTP协议,在连接时需要首先导入证书或协商生成密钥,然后通过加密方式进行传输,具有更好的安全性。但是,如果使用的SSL协议存在漏洞,或者使用的密钥算法存在缺陷,都会显著影响HTTPS协议的安全性。目前,SSL的主要版本有SSL 2.0~3.0、TLS 1.0~1.3,其中的TLS 1.0是在SSL 3.0之后的演进版本。SSL协议能够支持AES、RSA等加密算法以及用户自行设计的加密算法。在客户端与服务端建立会话连接时,客户端首先向服务端告知自己支持的SSL协议版本和加密算法,服务端再根据自己的配置确定合适的SSL协议版本和加密算法,并用于后续双方间的通信。如果客户端优先选择了较低版本的SSL协议、不安全的加密算法或较短的密钥长度,而服务端也支持使用这些设置,就可能导致最终的会话并不安全。同时,SSL协议实现方式存在的漏洞同样可能导致严重的安全问题。例如,著名的“心脏滴血”漏洞就是利用OpenSSL组件中的心跳扩展机制的缺陷,通过构造特殊的心跳数据包远程获取服务端内存中的数据,从而获取密钥等敏感信息,成为互联网安全领域最严重的漏洞之一。

SSH也是管理网口经常提供的服务之一。运维人员可以通过SSH协议远程访问设备底层系统的命令行或前文所述的沙箱环境,对设备进行调试和维护。SSH协议支持口令认证、密钥认证等认证方式。在口令认证中,用户直接输入自己的用户名和口令信息,验证通过后即可登录到用户的命令行环境。在密钥认证中,需要首先初始化生成一个密钥对,并将公钥文件存放到登录用户的SSH配置目录下,将私钥文件交由用户保存。在登录认证时,用户通过私钥文件即可直接登录,无需输入口令。网络设备大都是量产的,如果出厂时就在设备中内置了公钥文件,那么所有同型号的设备都可能使用了同样的公私钥对。一旦私钥文件被泄露,攻击者就可能直接登录所有同型号设备的底层系统。此外,与SSL类似,SSH协议也通过加密方式传输,同样可能存在加密算法不安全、密钥长度较短等安全配置问题。作为网络设备最常使用的SSH服务端组件之一,OpenSSH也经常被曝出存在很多中高危漏洞,可能导致用户枚举、命令注入、提权等安全问题。

4. 固件升级维护安全

很多网络设备都内置了固件升级维护功能,主要用于为产品增加新的功能、修复产品中可能存在的安全漏洞等。厂商为了减少其售后运营成本,大都通过网络发布固件升级文件,让用户特别是运维人员自行下载升级。固件升级维护方式可分为2类:一类只更新系统中的部分数据和文件,类似于补丁包。这种固件升级文件一般只包含需要更新的数据文件,通常比较小。另一类是替换整个存储系统中的数据和文件,类似于“刷机”。这种固件一般包含了整个文件系统的镜像,通常比较大。不论哪种方式,固件升级维护操作都涉及设备底层存储系统的写入,有的还需要执行特定的脚本或程序以完成必要的初始化操作。因此,固件升级维护过程通常需要非常高的执行权限,这一过程的安全性非常重要。

为了保护知识产权,同时防止非授权升级包可能对设备造成的破坏,很多厂商都会对固件升级包文件进行加密并添加数字签名,在升级过程中对升级包进行解密和验签,这些方法通常能够保证升级包的来源是可靠的。但有些厂商未充分考虑升级过程可能存在的安全风险,使用了存在缺陷的固件升级程序,或在加密和签名中使用了安全性较弱的密码算法或密钥,甚至未使用加密与签名等保护措施。在这种情况下,用户就可能下载和使用经攻击者篡改的固件升级包。这将导致网络设备内文件的完整性被破坏,不仅可能使网络设备无法实现应有的功能,还可能因此而被植入恶意后门,使整个网络的安全受到严重威胁。

 

应对措施

由于系统固件较为封闭,用户通常无法通过自行修改系统固件的方法修复可能存在的安全隐患,因此网络设备厂商在系统固件安全中应当承担更大的责任。针对上述安全隐患,厂商可以通过以下5个方面增强系统固件的安全性:

(1)对系统固件进行必要的裁减,仅保留系统正常运行所需的功能组件,从根源上减少通用漏洞可能造成的影响;

(2)跟踪系统固件中各类组件的公开漏洞和补丁发布情况,特别是可能使用到的沙箱环境和SSH、HTTPS等组件,及时将补丁集成到系统固件中;

(3)按照相关安全规范编写代码,加强对外部输入参数的安全判断,并通过代码审计系统全面检查自研代码中可能存在的缺陷;

(4)使用TLS 1.2以上版本的SSL协议,选择更为安全的密码算法和密钥,并按照系统安全防护的有关基线要求优化系统固件内的安全策略配置,提高系统的防护能力;

(5)加强固件升级维护操作的安全防护,防止被篡改的固件升级包可能对系统产生的影响。

网络设备的用户和运维人员应当定期关注系统固件的更新情况,联系厂商进行升级维护。自行升级时,应当从官方网站等正常渠道下载固件升级包并验证文件的完整性。在升级前,还应当评估系统固件升级可能对业务系统产生的影响,防止中断关键业务。如果使用的是定制开发的、非量产的网络设备,可以督促研制单位及时关注并修复系统固件中可能存在的安全隐患。在出现重大安全漏洞且尚无有效的固件升级包时,可以根据漏洞修复或缓解方案,从外部采取必要的加固和防护措施,在保持业务系统正常运行的同时减小漏洞可能造成的影响。


 
设为首页
加入收藏
联系我们
法律声明
后台管理
主办单位:中国保密协会  京ICP备14000164号-1   技术支持:国防科工局信息中心
地址:北京市朝阳区利泽东二路3号 邮政编码:100102 电话:010-64399819 传真:010-64399819