Safebreach Labs使用Dell SupportAssist测试了该漏洞,它发现它使用了各种不同的PC-Doctor可执行文件来收集系统信息。这本身并不是问题:这些可执行文件是如何收集信息的。
PC-Doctor使用许多不同的DLL库来收集来自不同来源的信息并将它们呈现给SupportAssist。在测试DLL看到了什么时,SafeBreach发现有几个信息收集模块在寻找位于PATH环境变量目录中的DLL。
PATH环境变量目录通常是经过身份验证的计算机用户的可写目录,这意味着攻击者理论上可以将恶意DLL放入其中并由PC-Doctor软件执行,这正是Safebreach Labs的Peleg Hadar发现的。
Hadar将未签名的DLL加载到目标目录中,并且PC-Doctor无需再考虑就执行了它们。这样做有两个原因:
PC-Doctor未执行安全的DLL加载。它使用一个命令加载DLL,该命令不允许程序标记仅从已知安全位置加载的DLL。
PC-Doctor在加载DLL之前不会检查有效的数字证书。换句话说,它将加载任何未签名的DLL。
如果攻击者能够利用此漏洞,他们将能够为自己提供持久的提升权限,并且能够绕过应用程序白名单和签名验证。
该漏洞还允许攻击者绕过驱动程序签名强制执行,如果加载了未签名的内核模式驱动程序,则会导致Windows崩溃。如果成功完成,攻击者将具有完全读/写原语访问权限。
所有配备SupportAssist的戴尔PC都存在风险,但问题远大于此:PC-Doctor软件安装在各种OEM机器上。
不幸的是,PC-Doctor尚未透露这些OEM是什么,并且由于其软件通常更名为与OEM相匹配,因此几乎不可能知道受感染PC的全部数量。
幸运的是,没有已知的这种漏洞被用于野外的例子 - 它仅仅是向戴尔和PC-Doctor提供的概念证明,后者表示它将在2019年6月的某个时候发布安全更新以解决问题。
在发布补丁之前,Dell用户应考虑禁用SupportAssist以防止其运行恶意DLL。其他OEM PC和IT团队的用户应遵循良好的安全实践,例如安装所有系统更新,不打开来自未知来源的附件,将可接受的软件列入白名单,以及确保防火墙在线。