在 DuckDuckGo 和 VikingVPN 的资助下,QuarksLab 最近对开源加密软件 VeraCrypt 进行了安全审计。此次审计发现了8个高危漏洞和10多个中低级别的漏洞。
关于VeraCrypt
VeraCrypt是一款非常流行的磁盘加密软件,它基于TrueCrypt 7.1a开发(在2014年TrueCrypt突然关闭之后才启动的这个项目),因此可以把它看成是TrueCrypt的分支 。在TrueCrypt停用之后,VeraCrypt接过了TrueCrypt的钢枪,迅速成为了一款十分受欢迎的加密软件。其开发者为法国的 Mounir Idrassi,现在是由IDRIX团队在负责维护,相比TrueCrypt ,VeraCryp在防暴力破解方面造诣更深。
VeraCrypt有着十分庞大的用户群,记者、安全从业人员以及很多其他用户,他们都是VeraCrypt的忠实粉丝。正是因为用户数量庞大(本身也存在一些漏洞),OSTIF(一个开源技术改进基金)才同意独立审计VeraCrypt,并于今年8月聘请了QuarksLab研究人员主导这次审计。
发现数个高危漏洞
这次安全审计的源代码来自VeraCrypt 1.18版本和VeraCrypt DCS EFI Bootloader 1.18版本,重点聚焦在上次审查后,这款应用引入的新特性上。另外此次安全审计仅针对windows版本,OS X 和Linux不在审计范围之内。另外,使用的SHA-2值为:
1.VeraCrypt_1.18_Source.zip :
12c1438a9d2467dcfa9fa1440c3e4f9bd5e886a038231d7931aa2117fef3a5c5
2.VeraCrypt-DCS-EFI-LGPL_1.18_Source.zip :
2e8655b3b14ee427320891c08cc7f52239378ee650eb28bad9531371e7c64ae3
这次审计牵扯到方方面面,既要熟悉操作系统,Windows内核,系统启动链,又要对密码学有了解。总之,就是对参与人员的素质要求非常高。安全专家们对VeraCrypt平台1.18版本和UEFI 1.18版本进行了一个月的分析后,总结了一份长达42页的审计报告(下载链接见文末)。
在VeraCrypt1.8版本中,UEFI支持是其最重要的功能之一,这部分代码存储在一个名为VeraCrypt-DCS的单独库中。但跟其他功能比起来,由于某些功能的欠缺,这个特性还是显得不够成熟。
研究人员发现,黑客能够在UEFI模式下轻松获取到启动密码——在用户变更密码的时候,VeraCrypt未能正确将其擦除。
bootloader处理的数据一般不会被擦除。一般来说,启动时用户密码会被正确清除。但在用户修改密码时,包含新密码的密码结构则不会被擦除。实际上,TrueCrypt和VeraCrypt的开发人员有仔细检查内存中的数据是否被正确清除。但DCS模块显然没有被纳入到检查范围内。
除此之外,还有一些高危的漏洞也被检查出来。其余的高危漏洞和GOST 28147-89对称分组密码的实施过程相关。
在VeraCrypt发布的1.19版本中,修复了报告披露的部分漏洞,而部分漏洞因为其复杂性尚未修复。已经修复的漏洞包括:VeraCrypt使用了旧版本的zlib库,1.19版移除了旧版本用新版本替换;移除GOST 28147-89加密选项,原因是其实现不安全;修复了多个UEFI支持问题。
值得一提的是,James Forshaw在TrueCrypt驱动中发现的一个漏洞也被修复,该漏洞可以实现提权,而在OCAP审计报告中并没有提及到该漏洞。对于需要大量修改代码或架构的漏洞,VeraCrypt暂时还没有修复。包括:
TC_IOCTL_OPEN_TEST,multiple issues
EncryptDataUnits() lacks error handling
AES implementation susceptible to cache-timing attacks
另外,涉及到密码机制的相关漏洞也未修复,包括:
Keyfile mixing is not cryptographically sound
Unauthenticated ciphertext in volume headers
毫无疑问,这种类型的审计不仅对用户安全非常重要,而且也加快了bug的发现和修复进程。现在我们更关注的是,其他的bug何时能修复?
QuarksLab报告全文链接:报告全文
来自:FreeBuff