Voatz移动投票平台完整报告 - Trail of Bits博客
概述
Voatz允许选民在支持的移动设备上从任何地理位置投出选票。其移动投票平台因可能存在使选举无效的安全漏洞而受到越来越多的公众关注。这些问题严重到足以引起国土安全部和国会的调查。
然而,直到现在,还没有全面的安全报告提供Voatz漏洞的详细信息和修复建议。
评估背景
Trail of Bits对该平台进行了首次"白盒"安全评估,获得了Voatz核心服务器和后端软件的访问权限。我们的评估确认了MIT等机构先前报告中标记的问题,发现了更多问题,并提出了修复问题和防止漏洞影响投票安全的建议。
Trail of Bits在此次评估中具有独特优势,拥有行业领先的区块链安全、密码学、DARPA研究和逆向工程团队,并曾评估过其他移动区块链投票平台。
评估结果
我们的安全审查共发现79个问题。其中三分之一为高风险,另外三分之一为中风险,其余为低风险、未确定和信息性风险。
为什么Voatz重要
移动投票的承诺很吸引人——为残障人士提供更好的可访问性、简化缺席投票流程,以及为所有选民提供速度和便利。如果移动平台能够保证安全投票,这将彻底改变投票过程。这是一个宏伟的目标——但仍有工作要做。
Voatz已在西弗吉尼亚州、科罗拉多州丹佛市、犹他州犹他县以及俄勒冈州的杰克逊县和乌马蒂拉县进行了移动投票应用的试点。根据Voatz自己的FAQ,自2016年6月以来,Voatz平台已在50多次选举中投出了超过80,000张选票。
然而,在我们之前进行的四次安全评估未能平息关于Voatz实施和安全保证的大量不确定性和公众猜测。
评估过程
2019年12月,Trail of Bits受Voatz和Tusk Philanthropies(一个为Voatz试点资助市政选举费用的组织)委托,进行了迄今为止最完整的平台安全评估。
据我们所知,在我们之前的评估都没有包含发现Voatz核心服务器和后端软件漏洞的范围。
Trail of Bits获得了超过168,000行纯源代码,分布在约2,100个文件中。这甚至不构成完整的Voatz系统,因为某些组件(如审计门户)的代码从未提供。该系统异常复杂,其自定义代码量比我们评估过的类似移动投票系统多一个数量级。
主要发现亮点
我们的Voatz安全报告分为两卷:
- 安全评估的技术发现(第一卷)
- 包含架构和操作发现的威胁模型(第二卷)
高风险发现涉及:
- 密码学问题,如密码算法使用不当以及临时密码协议
- 数据暴露,如Voatz开发人员可访问的敏感凭证以及可能泄露给攻击者的个人身份信息
- 数据验证,如依赖客户端提供的未验证数据
- 审计日志和问责控制,如无法跟踪管理员发出的命令
修复情况
2020年2月26日,Trail of Bits审查了Voatz针对技术报告(第一卷)中提出的问题提出的修复方案。每个发现都经过Trail of Bits重新检查和验证。我们发现Voatz已解决了8个问题,部分解决了6个问题;在撰写本文时,仍有34个技术问题未修复。
系统现状分析
Voatz的代码,无论是在后端还是移动客户端,都写得清晰易懂,明显理解软件工程原则。代码几乎避免了所有常见的安全缺陷,如密码学不安全的随机数生成、HTTP GET信息泄漏和不正确的Web请求清理。
然而,很明显Voatz代码库是多年快速开发的产物。它缺乏测试覆盖和文档。特定选举的逻辑检查被硬编码到后端和客户端中。基础设施是手动配置的,没有使用基础设施即代码工具。
后续建议
总体而言,我们认为选举官员本身应该资助对这些系统的合格公开审查,并指定这些审查以非技术受众能够理解的方式描述问题和解决方案。
我们希望我们的评估能够改善Voatz系统的整体安全状况,但要实现这一目标仍有许多工作要做。我们愿意继续帮助Voatz修复我们发现的问题。
联系我们
需要相关服务?我们拥有专门研究选举安全问题的员工,包括密码学、区块链和技术安全专家。联系我们了解我们如何提供帮助。