SupportAssist是一款功能强大的支持应用程序,有助于确保用户的系统始终以最佳状态运行、主动发现问题并可让您运行诊断程序和驱动程序更新扫描。
不过最近,有研究人员发现这款工具软件存在一个DLL劫持漏洞。庆幸的是,目前戴尔官方已经发布了更新后的版本,在此我们建议所有受影响的客户立即下载安装更新。
问题在于,该漏洞不仅影响使用SupportAssist工具软件的戴尔计算机,还会波及到第三方。戴尔和其他原始设备制造商生产的数百万台PC容易受到预装SupportAssist软件中的组件漏洞的影响,该漏洞可能使远程攻击者完全接管受影响的设备。
高严重性漏洞(CVE-2019-12280)源自SupportAssist中的一个组件,这是一种预先安装在PC上的主动监控软件,可自动检测故障并为Dell设备发送通知。该组件由一家名为PC-Doctor的公司制造,该公司为各种PC和笔记本电脑原始设备制造商(OEM)开发硬件诊断软件。
SafeBreach实验室的安全研究员Peleg Hadar表示:PHP大马
大多数运行Windows的戴尔设备都预装了SupportAssist,这意味着只要该软件没有打补丁,这个漏洞可能会影响到许多戴尔用户。
PC-Doctor已发布补丁,用于修复受影响的设备。受影响的客户可以点击这里找到最新版本的SupportAssist(适用于单个PC用户)或点击这里(适用于IT管理员)。
目前戴尔表示,他们已经要求用户打开自动更新或手动更新他们的SupportAssist软件。戴尔发言人表示,由于大多数客户都启用了自动更新,目前约有90%的客户已收到该补丁。
SafeBreach发现的漏洞是PC Doctor漏洞,是Dell SupportAssist for Business PC和Dell SupportAssist for Home PC附带的第三方组件。 漏洞出现后,PC Doctor迅速向戴尔发布修复程序,戴尔在2019年5月28日为受影响的SupportAssist版本实施并发布了更新。
漏洞解构
该漏洞源自SupportAssist中的一个组件,该组件检查系统硬件和软件的运行状况并需要高权限。易受攻击的PC-Doctor组件是SupportAssist中安装的签名驱动程序,这允许SupportAssist访问硬件(例如物理内存或PCI)。
该组件具有动态链接库(DLL)加载漏洞故障,可能允许恶意攻击者将任意未签名的DLL加载到服务中。 DLL是用于保存Windows程序的多个进程的文件格式。
将DLL加载到程序中时,由于没有针对二进制文件进行数字证书验证。该程序不会验证它将加载的DLL是否已签名,因此,它会毫不犹豫地加载任意未签名的DLL。
因为PC-Doctor组件已经签署了Microsoft的内核模式和SYSTEM访问证书,如果一个坏的actor能够加载DLL,他们将实现权限提升和持久性:包括对包括物理内存在内的低级组件的读/写访问,系统管理BIOS等。奇热影视
Hadar表示:
远程攻击者可以利用这个漏洞,攻击者需要做的就是诱骗(使用社会工程或其他策略)受害者将恶意文件下载到某个文件夹。所需的权限取决于用户的'PATH env'变量,如果攻击者有一个常规用户可以写入的文件夹,则不需要高级权限。攻击者利用该漏洞获得后在签名服务中作为SYSTEM执行,基本上他可以做任何他想做的事情,包括使用PC-Doctor签名的内核驱动程序来读写物理内存。
更糟糕的是,SupportAssist中的组件也影响了一系列正在使用其重新命名版本的OEM :这意味着其他未命名的OEM设备也容易受到攻击。
PC-Doctor没有透露其他受影响的OEM,但表示已发布补丁以解决“所有受影响的产品”。
PC-Doctor发言人告诉研究人员,PC-Doctor开始意识到PC-Doctor的戴尔硬件支持服务和PC-Doctor Toolbox for Windows中存在一个不受控制的搜索路径元素漏洞。此漏洞允许本地用户通过位于不安全目录中的木马DLL获取权限并进行DLL劫持攻击,该目录已由运行具有管理权限的用户或进程添加到PATH环境变量中。
也就是说,具有常规用户权限的攻击者可以通过在特定位置植入特制DLL文件来利用提升的权限执行任意代码,从而利用该漏洞。
检测到问题时,SupportAssist用于检查系统硬件和软件的运行状况,它会向Dell发送必要的系统状态信息,以便开始进行故障排除。显然,这些检查需要提升权限,因为许多服务使用SYSTEM权限运行。
据专家介绍,SupportAssist利用PC-Doctor公司开发的组件来访问敏感的低级硬件(包括物理内存,PCI和SMBios)。
专家发现,在Dell硬件支持服务启动后,它会执行DSAPI.exe,而DSAPI.exe又执行pcdrwi.exe。两个可执行文件都以SYSTEM权限运行,然后,该服务执行多个PC-Doctor可执行文件以收集系统信息。可执行文件是使用扩展名为“p5x”的常规PE文件。
其中三个p5x可执行文件尝试在用户PATH环境变量上找到以下DLL文件:LenovoInfo.dll,AlienFX.dll,atiadlxx.dll,atiadlxy.dll。
专家们发现,在他们的测试环境中,路径c:\python27有一个ACL,允许任何经过身份验证的用户将文件写入ACL。这意味着可以升级权限并允许常规用户编写缺少的DLL文件并实现代码执行为SYSTEM,该漏洞使攻击者能够通过签名服务加载和执行恶意负载。这种能力可能被攻击者用于不同目的,例如执行和逃避:
· 应用白名单绕过;
· 签名验证绕过;
漏洞的根本原因是,缺乏安全的DLL加载以及缺少针对二进制文件的数字证书验证。
漏洞发现时间轴
· 04/29/19:报告漏洞;
· 04/29/19:戴尔的初步回复;
· 05/08/19:戴尔确认该漏洞;
· 05/21/19:戴尔将此问题发送给PC-Doctor;
· 05/21/19:PC-Doctor计划在6月中旬发布修复程序;
· 05/22/19:PC-Doctor正式发布漏洞公告(CVE-2019-12280);
· 05/28/19:戴尔发布受PC-Doctor受影响的SupportAssist的修复补丁;
· 06/12/19:披露日期延长至6月19日;
· 06/19/2019:漏洞披露;
后续影响
考虑到PC-Doctor在全球的装机量超过1亿台,漏洞的影响范围可能更加深远。SafeBreach的安全研究人员发现,存在漏洞的组件还用在了CORSAIR Diagnostics、Staples EasyTech Diagnostics、Tobii I-Series和Tobii Dynavox等诊断工具中。