Voatz移动投票平台完整报告 - Trail of Bits博客
Dan Guido
2020年3月13日
区块链, 政策, 新闻稿
Voatz允许选民在支持的移动设备上从任何地理位置投出选票。其移动投票平台因可能存在使选举无效的安全漏洞而受到越来越多的公众审查。问题严重到足以引起国土安全部和国会的质询。
然而,迄今为止还没有全面的安全报告提供Voatz漏洞的详细信息和修复建议。
Trail of Bits首次对该平台进行了"白盒"安全评估,获得了Voatz核心服务器和后端软件的访问权限。我们的评估确认了MIT和其他机构先前报告中标记的问题,发现了更多问题,并提出了修复问题和防止漏洞损害投票安全的建议。Trail of Bits凭借行业领先的区块链安全、密码学、DARPA研究和逆向工程团队,以及先前评估其他移动区块链投票平台的经验,在此次评估中具有独特资格。
我们的安全审查共发现七十九(79)个问题。其中三分之一为高严重性,另外三分之一为中严重性,其余为低严重性、未确定严重性和信息性严重性的组合。
阅读我们的Voatz安全报告和威胁模型获取完整详情。
为什么Voatz重要
移动投票的承诺很吸引人——为残障人士提供更好的可访问性、简化缺席投票流程,以及为所有选民提供速度和便利。如果移动平台能够保证安全投票,它将彻底改变这一过程。这是一个宏伟的目标——但仍有工作要做。
Voatz已经在美国西弗吉尼亚州、科罗拉多州丹佛市、犹他州犹他县以及俄勒冈州的杰克逊县和乌马蒂拉县进行了移动投票应用的试点。根据Voatz自己的FAQ,自2016年6月以来,Voatz平台已在50多次选举中投出了超过80,000张选票。
然而,在我们之前进行的四次安全评估未能平息对Voatz实施和安全保证的大量不确定性和公众猜测。
2019年5月,劳伦斯利弗莫尔国家实验室、南卡罗来纳大学、更好选举公民组织、Free & Fair和美国投票基金会的研究人员在《我们对Voatz"区块链"互联网投票系统不了解的内容》中列举了一系列关于Voatz安全性的问题。他们提出了诸如"Voatz是否收集选民的位置数据?如果是,为什么?“以及"我们如何知道选民数据不能被追溯去匿名化?“等问题。
2019年11月,参议员Ron Wyden开始向国家安全局和美国国防部、俄勒冈州国务卿Bev Clarno以及ShiftState Security发送信件。另一封致Voatz并由五名国会议员(包括Klobuchar、Peters、Wyden、Lofgren和Thompson)签署的信件表达了对"有关贵公司移动投票应用可能存在重大网络安全漏洞的报道的严重关切”。
2020年2月5日——在我们的审查期间——Trail of Bits收到了一份向DHS CISA外部报告的Voatz Android移动应用中安全问题的匿名摘要报告。描述了六个漏洞,主要与Android移动应用(版本1.1.60,约2019年9月24日)相关。一周后,完整报告公开,Voatz发布了反驳,纽约时报发表了一篇关于围绕Voatz的安全"辩论"的报道。
Trail of Bits加入战局…
2019年12月,Trail of Bits被Voatz和Tusk Philanthropies(一个为Voatz试点资助市政选举费用的组织)聘请,进行迄今为止最完整的平台安全评估。
据我们所知,在我们之前的评估都没有包括发现Voatz核心服务器和后端软件漏洞的范围。
Trail of Bits获得了超过168,000行纯源代码,分布在约2,100个文件中。这甚至不构成整个Voatz系统,因为某些组件(如审计门户)的代码从未提供。该系统异常复杂,自定义代码量比我们评估过的类似移动投票系统多一个数量级。
我们的发现亮点
我们的Voatz安全报告分为两卷:
- 安全评估的技术发现(第一卷)
- 包含架构和操作发现的威胁模型(第二卷)
我们的安全审查共发现七十九(79)个问题:四十八(48)个技术问题和三十一(31)个威胁模型问题。其中三分之一为高严重性,另外三分之一为中严重性,其余为低严重性、未确定严重性和信息性严重性的组合。高严重性发现涉及:
- 密码学,例如不当使用密码算法以及临时密码协议。
- 数据暴露,例如Voatz开发人员可访问的敏感凭据以及可能泄露给攻击者的个人身份信息。
- 数据验证,例如依赖客户端提供的未验证数据。
- 审计日志记录和问责控制,例如无法跟踪管理员发出的命令。
- 安全评估和授权控制,例如持续监控、文档化程序和文档化连接不足。
- 配置管理控制,例如缺乏基线配置和安全影响分析。
- 应急计划,例如灾难恢复和业务连续性计划不足。
- 事件响应、组件互连、维护和风险评估计划和协议不足。
我们的技术报告包括附录B,其中不仅包含对MIT报告的独立分析,还包括对Voatz的五次先前评估的分析。报告的"安全属性和问题"部分还尽可能回答了《我们对Voatz不了解的内容》论文中的问题。例如,我们描述了"匿名ID"如何分配给选票,SIM交换是否足以窃取选民账户,以及选民在请求收据时如何被唯一识别。
已修复的内容
2020年2月26日,Trail of Bits审查了Voatz针对技术报告(第一卷)中提出的问题提出的修复方案。每个发现都经过Trail of Bits重新检查和验证。我们发现Voatz已解决八(8)个问题,部分解决六(6)个问题;截至撰写时,三十四(34)个技术问题仍未修复。
在技术报告的附录E:修复日志中查看每个问题当前状态的详细审查。修复日志于3月11日进一步更新,包含Voatz的回应,表明他们计划解决其他发现。
那么,这一切意味着什么?
Voatz的代码,无论是后端还是移动客户端,都写得清晰明了,并清楚地理解了软件工程原则。代码几乎避免了所有常见的安全缺陷,如密码学不安全的随机数生成、HTTP GET信息泄漏和不适当的Web请求清理。然而,很明显,Voatz代码库是多年快速开发的产物。它缺乏测试覆盖和文档。特定选举的逻辑检查被硬编码到后端和客户端中。基础设施是手动配置的,没有基础设施即代码工具的帮助。代码包含计划删除但尚未删除的残留功能(TOB-VOATZ-009)。验证和密码代码在代码库中重复和重新实现,常常是错误的(TOB-VOATZ-014)。移动客户端忽略了使用Android和iOS的最新安全功能(TOB-VOATZ-034和TOB-VOATZ-042)。敏感的API凭据存储在git仓库中(TOB-VOATZ-001)。其许多密码协议是非标准的(TOB-VOATZ-012)。
在此次评估中发现的问题数量、系统的复杂性以及无法访问运行的测试环境和某些代码库,使我们相信其他漏洞是潜在的。
下一步是什么?
总的来说,我们认为选举官员本身应该资助对这些系统的合格、公开审查,并指定这些审查以非技术受众能够理解的方式描述问题和解决方案。很容易被非委托报告混淆;例如,国家网络安全中心(NCC)2019年8月的一份报告似乎解决了平台的安全问题,但NCC没有雇用任何安全专家。他们的报告验证了Voatz的功能和操作满足用户需求,而不是Voatz系统是安全的。
我们希望我们的评估能改善Voatz系统的整体安全状况,但实现这一目标仍有大量工作要做。大门敞开,继续帮助Voatz修复我们发现的问题。
同时,在我们继续从事选举安全工作的过程中,我们主动帮助公司将更多安全知识更早地纳入开发过程。
与我们共同选择安全
看到您需要的东西?我们拥有专门研究选举安全问题的员工,包括密码学、区块链和技术安全专家。联系我们,了解我们如何提供帮助。
查看Tusk Philanthropies和Voatz对此报告发布的回应。
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News
页面内容
- 为什么Voatz重要
- Trail of Bits加入战局…
- 我们的发现亮点
- 已修复的内容
- 那么,这一切意味着什么?
- 下一步是什么?
- 与我们共同选择安全
近期文章
- 构建安全消息传递很难:对Bitchat安全辩论的细致看法
- 使用Deptective调查您的依赖项
- 系好安全带,Buttercup,AIxCC的评分回合正在进行中!
- 使您的智能合约超越私钥风险
- Go解析器中意外的安全隐患
© 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。