我想象着抢劫电影中的一幕。这家银行引以为豪的是它在锁、墙和激光中配备了新的终极安全部队。抢劫团伙想办法颠覆这个系统。我们能把我们的人塞进国防部队吗?用贿赂或威胁来收买守卫?要不找个粗心的后卫?
正如Red Canary的首席威胁研究员Matt Graeber在他的文章中所描述的那样,寻找一种技术来颠覆Windows中的早期发布反恶意软件(ELAM)系统黑帽简报,与此类似。
Graeber解释说,ELAM驱动程序是安全的,不会被篡改,它在引导过程的早期运行,可以评估其他引导时驱动程序,并有可能阻止任何恶意驱动程序。“要创建这个驱动程序,你不需要实现任何早期启动代码,”Graeber解释道。“你唯一需要的是一个二进制资源,它有规则说明哪些签名者可以作为反恶意软件轻服务运行。而且你必须是相当排外的一员微软病毒计划(在新窗口打开)程序。”
“我必须调查这些规则是如何执行的,”格雷伯说。然后他描述了他是如何分析的微软的后卫WdBoot。Sys来确定这些规则的预期结构。实际上,每条规则都说,任何使用特定数字证书签名的程序都可以作为反恶意软件轻服务运行,这为它提供了严格的保护。
不可能换入未经批准的驱动程序,因为每个驱动程序都必须经过微软批准。反篡改约束意味着同样不可能破坏现有的驱动程序。“ELAM是一个反恶意软件轻服务的允许列表,”Graber若有所思地说。“如果它过于宽容呢?是否存在一个ELAM驱动程序可能过于宽松?”
艰苦的搜索
格雷伯依靠许多资源来寻找一个松懈的司机,其中包括VirusTotal Intelligence。你们可能很熟悉VirusTotal的免费恶意软件检查(在新窗口打开),你可以提交一个文件或一个散列,让大约70个反病毒引擎检查它。VirusTotal情报(在新窗口打开)提供对几乎所有文件和程序的详细信息的更广泛的访问。
“在搜索ELAM司机时,我从VirusTotal上得到了886个结果,”格雷伯说。“我过滤了列表来验证结果,结果是766个。我发现了许多使用ELAM驱动的供应商,其中一些很奇怪。”在这里,格雷伯展示了一个列表,其中包括一个空白的供应商名称和几个看起来不完整的名称。“如果有些供应商是奇怪的,也许有一个规则集是奇怪的。”
最后,他发现了来自四家安全公司的五份证书,正如他所希望的那样,这些证书提供了一种颠覆ELAM的方法。在没有详细介绍证书链的情况下,他确定任何在其证书链中包含其中一个证书链的程序都可以在受保护的Antimalware Light模式下运行。他所要做的就是将这类程序的列表与VirusTotal的列表进行交叉恶意软件以获得流氓的恶意程序库,并有可能运行受保护。
如何利用这个弱点?
在这一点上,谈话脱离了技术深度。格雷伯描述了搜索LOLbins(在新窗口打开)对于一个可滥用的可执行文件,提出一个合适的版本微软建立(在新窗口打开)以及通过各种障碍让他运行任意代码。我敢肯定听众中聪明的程序员们都点头表示赞赏。
在现场演示后,格雷伯指出了各种有效载荷的可能性。“你自己的恶意软件是受保护的,你可以杀死其他受保护的进程,”他说。“我们在演示版中有效地扼杀了微软卫士引擎。”代码是公开的,尽管Graeber提到“我不得不改变一些文件名来保护无辜的供应商。”
如何检测和减轻这种攻击?
“这是在滥用ELAM的功能,而不是漏洞,”格雷伯说。“我无法开始推测为什么这些证书会被允许。微软真可耻!让我们期待未来能有一个强有力的解决方案。摊贩们,我不是在羞辱你们。我甚至不责怪供应商过于宽松的驱动程序,因为微软允许它们。我鼓励任何供应商审计您签署的ELAM驱动程序的规则集。你肯定不想成为那个破坏整个生态系统的人。”
格雷伯确实对解决问题抱有希望。“我在2021年12月向微软报告了这一点,”他说。“他们承认了这个问题,后卫队真的掌握了主动权。他们对此非常重视,并向微软病毒行动成员发送了通知。如果你是会员,你已经知道了。”
最后,他为其他研究人员提供了资源来复制他的工作。这听起来像是他在把武器交给恶意软件程序员,但不要害怕。格雷伯提供了框架为了进一步调查,但任何想要使用它的人都必须复制他的搜索结果寻找一个许可的驱动程序和一个可滥用的有效载荷。
尽管如此,恶意软件接管ELAM提供的安全掩体并杀死防御程序的情况仍然令人担忧。让我们希望安全社区,特别是微软,能尽快想出一个防御方案。