独立审计:对Boxcryptor的源代码的见解

2021-01-09 02:45:49

2020年5月,安全公司Kudelski对Boxcryptor进行了全面的外部审核。整个结果都是肯定的。 Kudelski找不到任何严重的弱点,并且已经提出了一些改进建议。在下面的文章中,我们提供了对审核过程和结果的深入了解。

Boxcryptor确保没有人未经授权就可以访问数据。可靠地排除了云提供商及其员工以及潜在的黑客。对于私人用户而言,Boxcryptor是一种针对好奇的第三方进行数字自卫的手段,对于公司和组织而言,这是实现真正的GDPR合规性以及对业务数据进行完全控制的途径。使用与Boxcryptor一样与安全性相关的软件,可以理解的是,用户希望确保该软件能够正常运行,并且能够正确执行其应有的功能。

为了进行审核,我们使Kudelski可以访问Boxcryptor for Windows(我们使用最广泛的平台)的源代码以及内部文档。

所有这些组成部分在逻辑上都是正确的,并且在审查中没有显示任何明显的弱点。请务必注意,我们审核的代码库未显示任何恶意意图。 (Boxcryptor代码审核–最终报告)

审核的目的是使所有有关方面对软件都有间接的了解。这样,他们可以确保在代码中没有发现后门或安全漏洞。

我们选择由Kudelski Security进行审核。这家享誉世界的瑞士安全公司开发自己的安全软件,并已为许多大型公司提供建议和审计服务。 Kudelski的技术和漏洞评估在业界享有很高的声誉。在审核中,Kudelski的独立安全专家首先获得被测技术的软件体系结构的概述。第二步,他们确定需要解决的潜在漏洞。

我们本来想对Boxcryptor进行审核已经有一段时间了,但是出于各种原因,我们始终反对这样做。审核的最大问题始终是审核只是软件的快照。我们一直在开发该软件,并且-我们认为-随着下一次更新,审核将再次过时。此外,审计永远不能保证软件是安全的,因为安全领域中没有任何事物可以100%安全。库德尔斯基也将其记录在其报告中。

重要的是要注意,尽管我们尽了最大的努力进行分析,但没有代码审核评估本身就可以保证没有漏洞。 (Boxcryptor代码审核–最终报告)

我们认为,这也适用于开源模型。仅仅因为软件是公开可用的,并不意味着您可以依靠安全专家严格审查过的每项更改。对开源软件进行真正的安全性分析也是一个例外,因此原则上仍然存在相同的问题。由于审计也对财务产生重大影响,因此我们一直想知道潜在收益是否确实符合财务支出的要求,尤其是在刚成立的最初几年。

由于Boxcryptor在市场上已经存在了9年以上,并且已有成千上万的用户使用,因此我们决定进行审核。例如,审核软件的每个单一版本可能并不那么重要。能够评估三个基本问题是一个问题:1。该软件背后的公司2。总体上软件的质量3。安全相关的源代码(不会经常更改)积极的审核报告可帮助用户确保自己的质量。我们认为,它还显示了以下内容。

Boxcryptor背后的团队知道它在做什么。密码术很复杂,编写安全的软件需要大量的专业知识和才能。由于经过验证的专家检查了Boxcryptor并发现它是安全的,因此用户可以假定在将来的软件版本中不太可能发生严重的错误和安全问题。

如果在开发过程中没有充分考虑安全方面,那么最好的专业知识就没有用。例如,如果公司的安全专家甚至看不到新代码,那么即使具有加密传奇的公司也可能会团队开发不安全的产品。

我们一直非常公开地交流我们的加密协议。根据我们的技术概述以及在GitHub上用于加密的源代码的发布,Boxcryptor几乎可以在概念上进行复制。但是,大多数用户没有时间通过​​“手动”解密自己的文件来自己检查此信息。与Kudelski一起,一个著名的,能干的和独立的合作伙伴已经承担了这项任务,现在可以确认我们确实履行了我们的承诺。

审计表明,我们的加密概念是安全的。经过Kudelski的独立审核,用户可以更加放心,因为专家们在Boxcryptor中没有发现任何对安全至关重要的漏洞。

总体而言,所使用的密码原语和系统架构足以实现我们提出的安全目标。 (Boxcryptor代码审核–最终报告)

当然,在审核过程中有可能忽略了薄弱环节。但是,重大问题被忽视的可能性很小。我们认为此声明在将来的版本中将保持正确。我们始终坚信,过去我们与Boxcryptor进行了出色而可靠的工作。审核结果证实了这一假设,您将来可以期望我们也这样做。

如前所述,安全一直是我们软件中的头等大事,我们始终非常重视安全问题。但是,从我们的角度来看,我们只能看到Boxcryptor,并且冒着一定程度的操作盲目性。仅出于这个原因,向外部公司提供有关代码的见解是有意义的。这样,外部专家可以在必要时向我们指出问题领域。

对我们而言重要的一点是对我们的安全软件开发生命周期(SSDL)的验证。在开发之前,之中和之后,我们都有定义好的过程来测试软件的安全性。该SSDL的目标之一是确定尽可能多的问题区域,与安全相关的方案和攻击可能性。 Kudelski的外部审核现在使我们能够将此过程与发现的问题相匹配。问题出现时我们可以问自己以下问题:什么类型的问题?原则上,我们可以使用SSDL流程发现问题吗?报告是否涵盖了我们尚未考虑的整个领域?为什么以前发现的问题是我们以前没有发现的?审核可以给我们提供输入,使我们能够适应和改进SSDL。

幸运的是,我们的SSDL已经证明了自己,因此无需更改过程。然而,我们能够在这里和那里采取新的思路,以便我们自己寻找弱点。

在审核过程中,我们修订了完整的内部文档,以便Kudelski可以轻松地找到解决方法。这使我们的内部文件再次得到了最后的完善。因此,我们现在拥有易于理解,结构合理且清晰易懂的文档,可在一个位置提供给公司的新员工。

在审核开始时,我们讨论并定义了审核目标,Boxcryptor必须针对其保护用户的威胁模型以及相关代码部分。首先,我们必须明确要审核的内容以及我们期望的攻击者。

例如,Boxcryptor员工是否也应被视为潜在的攻击者?我们是否还想保护自己免受云提供商的理论攻击?在这两种情况下,我们审核期间的答案都是肯定的。在目标的第一步中,使审计公司可以访问我们的外部和内部文档,源代码及其简介。

Kudelski于5月初启动了审核流程,并始终与Boxcryptor团队的开发人员和管理人员保持简短的沟通渠道。我们很快注意到了Kudelski的日常工作方式,因为他们无需任何长时间的培训就能掌握我们(对他们而言,对他们而言)的外国代码。这对我们来说是令人愉快的,因为开发人员监督审核所需的工作量非常少。这对我们非常重要,因为在考虑审计成本时,如果员工要一天24小时被审计公司占用,则必须始终牢记员工损失的时间成本。

重要提示:如果Kudelski发现了严重的安全漏洞,则他们不会等到最终报告后才将其推迟,但会立即报告此问题。这清楚地告诉我们,Kudelski的优先级与Boxcryptor和我们的用户的优先级相同:客户数据的安全性始终是头等大事。

在我们的案例中,审核包括两个部分。我们不仅要验证软件及其代码,还想审核Boxcryptor协议(您可以随时在技术概述中查看该协议。由于建筑物只能像设计的那样稳定) ,我们想确保我们的协议(Boxcryptor的基础)稳定。

库德尔斯基完成审核后,便草拟了初步报告。在此基础上,讨论了发现的问题,我们有机会对这些问题进行了修复。库德尔斯基随后重新审查了所采取的措施,并草拟了最终报告。

在下文中,我们为您简要总结了结果及其解释和评估。您可以在此处查看整个审核报告。

总体而言,没有什么惊喜。没有严重的漏洞,只有一个漏洞被评为“中级”。这关系到软件,而不是底层的加密技术。因此,可以迅速解决问题,我们对结果完全满意。

在审核中发现以下问题:•被评为“中”的事件•被分类为“低”的2个问题•被视为“ 6”的“观察”

说明:等级为中的问题是影响与使用WebDAV协议的云提供商的连接的代码的一部分。从理论上讲,此类云存储提供商的运营商可能曾试图将代码注入Boxcryptor for Windows。然而,实际上,Boxcryptor从未使用过这部分代码,因此Boxcryptor用户在任何时候都没有危险。

解决方案:作为对审计的回应,我们现在已经完全删除了代码的冗余部分。

说明:对我们来说,最有趣的问题(被评为“低”)与Boxcryptor对用户密码的处理有关。 Boxcryptor使用多个密码哈希来为用户提供最高的安全性,即使用户使用实际上不安全的密码也是如此。在此过程中,密码链接到每个用户唯一的字节,然后进行多次哈希处理。散列是密码的一种“指纹”,无法将其计算回密码中。随机数据的目的是确保使用相同密码的两个用户仍然生成不同的指纹。此过程有两个目标:通过在传输之前对密码进行哈希处理,永远不会将用户密码发送到服务器(当然,我们也将在传输之后再次对指纹进行哈希处理)。多重哈希也减少了攻击者可以在给定时间内测试的密码数量:因为生成如此多的指纹需要时间,这会使攻击者放慢速度。毕竟,他或她必须为每次尝试重新执行此计算。

哈希通过次数为5,000,而在其他地方,我们使用10,000的哈希值。库德尔斯基批评我们在这里仍然“低于我们的标准”以及他们通常会建议100,000次通过这一事实。此外,库德尔斯基(Kudelski)建议您在选择用户密码时更严格地考虑,例如,不要接受太短的密码。

解决方案:如果您是Boxcryptor用户,并且选择了安全密码,则此问题与您无关。对于选择了不安全密码的用户,我们将哈希的迭代次数增加到10,000。如果将数量增加到100,000,可能会大大降低旧版浏览器或设备的速度,因此我们决定将数量保留为10,000。从现在开始,新创建的密码还有一个最小密码长度。

说明:评定为低的第二个问题是Boxcryptor配置的读取。拥有对配置文件的写访问权的攻击者可能试图将代码注入那里。但是,这个问题纯粹是理论上的。为了利用此漏洞,必须满足当前版本或过去任何Boxcryptor版本中不存在的其他约束。在将来的版本中可能会创建一个实际的安全漏洞,因此注意到了这一观点。

解决方案:我们已经调整了相应的代码位置,以便将来也不会出现安全漏洞。

描述:对我们来说最有趣的发现是Boxcryptor不会向云提供商隐藏用户刚刚修改过的文件。如果用户更改了文件,Boxcryptor将对其加密并在云提供商的文件夹中对其进行更新。根据访问模式,云提供商现在可以得出有关文件的结论,例如它是什么类型的文件。

解决方案:目前尚没有避免这种情况的实用解决方案。确实存在针对该问题的学术解决方案,但是在实践中,在没有给用户带来副作用的情况下,实现起来并不容易。因此,在这种情况下,我们会遵循Kudelski的建议:密切关注该领域的研究进展,并相应地尽快调整Boxcryptor。

其余的观察结果可以归纳为两类:未使用的代码以及我们随后删除的代码,以及对代码结构的误导性命名。后者本身不是问题,但是将来可能会被开发人员误解,然后以不安全的方式使用。我们通过重命名或记录代码位置来减少这种风险。

我们对软件质量的验证感到非常满意,并非常感谢Kudelski提出的一些改进建议。审核是我们了解Boxcryptor的绝佳机会。我们希望审核及其结果也能为我们的用户确认Boxcryptor是保护您数据的正确选择。

为了给您最好的见解,我们在此处为您提供完整的审核报告。

在我们的社交资料上与我们联系并注册我们的新闻通讯,以获取最新的Boxcryptor新闻,产品更新和最新行业新闻。