漏洞预警
近日,固件和硬件安全公司Eclypsium的安全研究人员发现了一个被称为“BootHole”的缓冲区溢出漏洞(CVE-2020-10713),该漏洞位于GRUB2引导加载程序中,如果被利用,它可能会使攻击者绕过安全启动功能,并获得对目标系统的高特权持久性和匿名访问权限。该漏洞影响全球数十亿设备,其中包括几乎所有的Linux发行版或Windows系统的服务器和工作站、笔记本电脑、台式机和IoT系统。
影响版本
grub2 < 2.06
该漏洞是解析grub.cfg文件时在GRUB2中发生的缓冲区溢出。此配置文件是通常位于EFI系统分区中的外部文件,因此可以由具有管理员特权的攻击者修改,而无需更改已签名供应商shim和GRUB2 bootloader可执行文件的完整性。缓冲区溢出使攻击者可以在UEFI执行环境中获得任意代码执行权限,该代码可以用于运行恶意软件,更改启动过程,直接修补OS内核或执行许多其他恶意操作。
为了处理来自外部配置文件的命令,GRUB2使用flex和bison从语言描述文件和帮助器函数生成用于特定于域的语言(DSL)的解析引擎。为每个DSL手动编写自定义解析器相比,通常认为这是一种更好的方法。但是GRUB2、flex和bison都是复杂的软件包,具有自己的设计假设,很容易被忽略。这些不匹配的设计假设可能会导致易受攻击的代码。
以下为flex生成的解析器引擎将此定义包含为令牌处理代码的一部分:
在此宏中,生成的代码检测到它遇到的令牌太大而无法放入flex的内部解析缓冲区并调用YY_FATAL_ERROR(),这是使用flex生成的解析器的软件提供的帮助函数。但是,YY_FATAL_ERROR() GRUB2软件包中提供的实现是:
它不会停止执行或退出,而只是将错误输出到控制台并返回到调用函数。不幸的是,在编写flex代码时就达到了YY_FATAL_ERROR()不会再返回任何调用的目的。这导致yy_flex_strncpy()被调用,并将源字符串从配置文件复制到一个太小而无法容纳它的缓冲区中。
除了这个特定的路径之外,在flex生成的代码中还有许多其他地方也存在约束,YY_FATAL_ERROR()一旦打破约束,任何调用都将永远不会返回并执行不安全的操作。API的生产者和使用者之间不正确的假设是漏洞的非常普遍的来源。
最终,通过为配置文件提供输入令牌,这些令牌太长而无法由解析器处理,此缓冲区溢出将覆盖堆中的关键结构。这些被覆盖的字段包括内部解析器结构元素,这些元素可以用作任意在哪里写的原语,以获取任意代码执行并劫持引导过程。
还要注意的是,UEFI执行环境没有地址空间布局随机化(ASLR)或数据执行保护(DEP / NX)或其他现代操作系统中常见的缓解漏洞的技术,因此,针对此类漏洞创建漏洞很容易。堆是完全可执行的,无需构建ROP链。
最后,此漏洞不是特定于体系结构的,而是在通用的代码路径中,并且已使用签名的ARM64版本的GRUB2进行了确认。近几个月来,Claroty研究人员发现了影响虚拟专用网(VPN)实施的远程代码执行漏洞,这些漏洞主要用于提供对运营技术(OT)网络的远程访问。这些专用的远程访问解决方案主要集中于工业控制系统(ICS)行业,其主要用例是为现场控制器和设备(包括可编程逻辑控制器(PLC)和输入/输出(IO)设备)提供维护和监视。这种解决方案通常部署在Purdue模型级别5的网络的外层边界,并提供对位于级别1/0的现场控制器和设备的访问。利用这些漏洞可以使攻击者直接访问现场设备,并造成一定程度的物理损坏。
易受攻击的产品包括Secomea GateManager M2M Server,Moxa EDR-G902和EDR-G903以及HMS Networks eWon的eCatcher VPN客户端。这些产品广泛用于基于现场的行业,例如石油和天然气、自来水公司和电力公司,在这些行业中,到远程站点的安全连接至关重要。除了站点之间的连通性之外,这些解决方案还用于使远程操作员和第三方供应商能够拨入客户站点并为PLC和其他1/0级设备提供维护和监视。今年由于COVID-19的出现,近几个月来这种访问已成为特别优先事项。
影响版本
Moxa EDR-G902和EDR-G903 < v5.5
HMS Networks eWon的eCatcher VPN客户端 < 6.5.5
漏洞分析
在Moxa EDR-G902和EDR-G903工业VPN服务器中,研究人员在系统Web服务器中发现了基于堆栈的缓冲区溢出错误(CVE-2020-14511),只需发送特制HTTP请求即可触发该错误,最终使攻击者可以使用无需任何凭据即可执行远程代码执行。
Claroty的研究人员还测试了HMS Networks的eCatcher,这是连接到公司eWon VPN设备的专有VPN客户端,发现该产品容易受到基于堆栈的关键缓冲区溢出(CVE-2020-14498)的攻击,可以利用该漏洞来实现远程执行代码。攻击者所需要做的就是诱骗受害者访问恶意网站或打开包含特制HTML元素的恶意电子邮件,这些元素触发eCatcher中的漏洞,最终使攻击者能够完全控制目标计算机。
本周安全态势分析
1
BootHole漏洞(CVE-2020-10713),影响全球几乎所有的Linux发行版或Windows系统的服务器和工作站、笔记本电脑、台式机和IoT系统。该漏洞是由于解析grub.cfg文件时在GRUB2中发生的缓冲区溢出。以此种方式入侵系统授予该恶意软件最高的权限,并使得该恶意软件实际上无法被检测到,因为当操作系统上的安全解决方案启动时,该恶意软件已经在运行了。且目前没有良好的解决方案,因为签名和部署新的bootloaders,和废除脆弱的bootloader不是那么容易完成的事情。
2
vpn安全缺陷问题是近期频频发生态势分析中关注度较高的问题,由于今年疫情影响使用vpn远程办公人员迅速增加,导致vpn安全备受安全研究者关注。此处易受攻击的产品包括Secomea GateManager M2M Server,Moxa EDR-G902和EDR-G903以及HMS Networks eWon的eCatcher VPN客户端。这些产品广泛用于基于现场的行业,例如石油和天然气、自来水公司和电力公司等工业控制系统(ICS)行业其主要用例是为现场控制器和设备(包括可编程逻辑控制器(PLC)和输入/输出(IO)设备)提供维护和监视。这种解决方案通常部署在Purdue模型级别5的网络的外层边界,并提供对位于级别1/0的现场控制器和设备的访问。利用这些漏洞可以使攻击者直接访问现场设备,并造成一定程度的物理损坏。
已完成
数据加载中