什么阻止我编写使用已识别的 UEFI 密钥的启动工具包?

什么阻止我编写使用已识别的 UEFI 密钥的启动工具包?

据我所知,UEFI 安全启动大致是这样工作的:某些操作系统要启动,必须​​使用 UEFI 在每次启动时检查的密钥对它们进行签名。如果 bootkit 替换了操作系统,则检查将失败,并且 bootkit 安装的系统将永远不会运行。

但是,如果我编写一个针对 Windows 8 的启动套件,并且将 Windows 8 的密钥插入启动套件中,启动套件会起作用吗?如果会,为什么安全启动被认为是安全的?如果不是,为什么?

答案1

恶意软件作者(我们称他为 Mel)不能直接复制现有引导加载程序中的密钥;他必须使用 Microsoft 持有的私钥对自己的二进制文件进行签名。也就是说,Microsoft 正在为第三方(操作系统开发商(Red Hat、Canonical 等))签名二进制文件,甚至个人也在为二进制文件签名。为此,您必须提交文件并向 Verisign 支付 99 美元的费用。此后,Microsoft 将对您提供的二进制文件进行签名。不过,我不知道他们是否对这些文件进行过任何类型的病毒扫描;如果是这样,那么可以想象,一些恶意软件在分发之前就会被捕获。

不过,让我们假设 Mel 获得了一个签名的恶意软件二进制文件并开始分发它。最终,它会被安全研究人员发现或被用户检测到,有人会注意到它是用微软的密钥签名的。到那时,微软将收到通知并发布 Windows 更新,将该特定二进制文件添加到黑名单中,这样它就不会再在任何收到定期安全更新的机器上启动。微软也会知道 Mel 是作者,因为他们可能会保留他们签名的所有内容的副本以防出现此类问题。会有书面记录,包括用于支付服务的信用卡号和用于通信的蜗牛邮件地址等信息。微软可能会将所有这些交给当局,而 Mel 最终将被警方拜访。

当然,我们可以想象,如果某个个人或犯罪组织有足够的动机,他们就可以避免遭受这样的后果——他们可以使用偷来的信用卡向 Verisign 付款,使用不容易追踪到他们的临时地址等。美国国家间谍机构(如 NSA 或 CIA)也可能能够进行干预,让间谍软件或 Flame 等破坏软件获得签名。我预计,随着时间的推移,我们会看到这两件事都发生。

底线:安全启动为恶意软件作者设置了一个需要克服的障碍,但并非不可逾越。这只是恶意软件作者和操作系统供应商(主要是微软)之间长期博弈中的一步。它有可能提高安全性,但效果如何仍有待观察。

相关内容