博客

COVID-19 接触者追踪:安全编码现状如何?

July 8, 2020
Pieter Danhieux

本文版本最初发表于 DevOps Digest。此处内容已更新并转载。

此时此刻,我相信大家对“在这个前所未有的时期”这句话已经感到有些厌倦了……但我们确实正处于一个前所未有的时期。谁能想到,去年年底时,我们今年会为了战胜一场全球性的毁灭性大流行病而争分夺秒,并倾尽所有力量去应对?这在当时听起来简直荒谬,更像是 Netflix 的一部科幻新剧,而不是我们现实世界的一部分。COVID-19 彻底改变了我们的社交生活、经济状况和就业保障,更不用说政治优先事项了。

科技是抗击 COVID-19 的手段之一,许多国家都推出了接触者追踪应用程序。澳大利亚的 COVIDSafe 是以新加坡的 TraceTogether 为蓝本开发的。中国香港、中国台湾、中国大陆、韩国、以色列和德国等国家和地区也已实施或正在筹备接触者追踪技术。英国是欧洲受灾最严重的地区,病毒相关死亡人数达数万,感染率居高不下,其应用程序即将发布。美国的情况同样严峻,许多人不幸丧生,虽然也在推广相关技术,但各州各自为政的追踪方式使局势变得相当复杂。

除了中国和中国台湾等政府管控程度较高的地区外,这些应用程序的使用均采取自愿原则,需要公民自行下载并使用。各地的采用率参差不齐;例如,新加坡的 TraceTogether 应用程序采用率仅为 25%,这使其难以达到预期的效果。

接触者追踪应用程序的初衷是好的。如果运行良好,这项技术能够确保快速发现疫情热点并进行全面检测,而这两者都是抗击传染病传播的关键环节。然而,“政府”和“追踪”这两个词听起来并不那么令人安心,人们对下载此类应用可能带来的后果持谨慎态度也是人之常情。

那么,用户的主要顾虑是什么?如果参考网络上的评论,一些疑虑包括:

  • 不信任政府会负责任地使用所收集的数据
  • 担心个人数据在网络攻击面前的防护能力
  • 不清楚到底收集了哪些数据、存储在哪里以及与谁共享
  • ……对于我们当中的开发者/极客来说,则是担心这些应用的底层构建是否稳固。

当应用程序被仓促开发时,总会让人有些担忧,而这些接触者追踪应用必须在创纪录的时间内推出。这对开发者、安全人员和政府机构来说简直是一场噩梦。

那么,不信任是一种合理的反应吗?在评估 COVID-19 接触者追踪应用和终端用户安全时,我们应该优先考虑什么?作为一名安全从业者,我的直觉当然是深入研究该程序的网络安全要素,即我们(出于好意)被敦促安装的应用程序,其代码库到底有多安全。

许多应用程序都是相互复制的(并继承了同样的问题)。

澳大利亚的 COVIDSafe 应用程序本质上是基于 OpenTrace 开发的,新加坡的 TraceTogether 软件也是如此。然而问题在于,TraceTogether 曾被曝出一系列问题,且普及率很低,只有 25% 的人口选择使用——远低于 实现有效追踪所需的 75%。用户对其整体性能(尤其是在 iOS 系统上)多有抱怨,包括电池消耗过快等。COVIDSafe 在 iOS 版本中存在一个 潜在的 UX 缺陷,即必须保持手机解锁且应用在前台运行才能正确记录所有数据。

虽然上述问题令人烦恼,但更紧迫的问题是蓝牙漏洞泛滥,而 TraceTogether 和澳大利亚的 COVIDSafe 都无法幸免。5 月 14 日,NIST 报告称 COVIDSafe 存在拒绝服务漏洞,攻击者如果处于蓝牙握手距离内,可以远程导致该应用崩溃。这可能被用于有组织的攻击,从而破坏人口密集地区(即最需要追踪的地方)的接触者追踪工作——安全研究员 Richard Nelson 对此进行了 详细解释。已知受影响的应用包括 COVIDSafe、TraceTogether、波兰的 ProteGO 和加拿大的 ABTraceTogether——它们都因继承了 OpenTrace 错误的 manuData.subdata 调用而存在该问题。

此外,蓝牙功能本身还存在其他隐私和安全问题。事实上,这项技术通过唯一标识符 (TempID) 来追踪人类活动并收集有意义的数据,必然会引起攻击者对测试其弱点的浓厚兴趣。届时,到底收集了什么、存储在哪里以及存储多久,都必须受到严格审查。

一些应用程序已经显露出简单的错误,而这些错误正导致复杂的安全隐患。

澳大利亚软件工程师 Geoffrey Huntley 一直在研究 COVIDSafe 的源代码,遗憾的是,其中存在一些并未向我们这些终端用户明确指出的问题。

一个典型的例子是导致隐私泄露的逻辑错误,它允许攻击者对设备进行长期追踪;这不仅违背了应用程序自身的隐私政策,还给弱势用户带来了巨大的风险。

需要注意的是,这些逻辑漏洞已于 5 月 14 日修复,但更紧迫的问题是,在 Huntley 先生报告后的 17 天里,这些漏洞一直未得到修复,处于暴露状态。他和安全社区的其他成员正在 此处 追踪与 COVIDSafe 应用程序相关的 CVE。

Huntley 指 出,即便是在补丁发布后,修复方案本身也显露出某种“无能”。他在公开的 日志 中提到,该补丁采用了增加逻辑的方式,而非直接删除有缺陷的缓存——后者本应是更稳妥的补救措施。虽然两者都能奏效,但这种线上解决方案缺乏精妙之处,对于如此重要的应用而言,这确实令人担忧。

尽管社会上有热心人士利用业余时间和专业知识深入研究源代码并指出问题,但如果代码从一开始就是开源的,他们的工作会轻松得多。目前,仍有 28 款应用 对安全研究人员关闭了大门。

安全编码始终是我们临门一脚时的绊脚石。

虽然我非常同情那些超负荷工作的开发人员,也理解在疫情期间被迫赶制出一款救命应用的情况实属罕见,但上述事实足以说明,在一个本质上属于公共的代码库中,几个简单的漏洞就可能给数百万用户带来严重问题。

我愿意相信大多数人都希望成为好公民,支持这款应用,并为每个人提供最好的机会,通过接触者追踪来控制这种可怕病毒的爆发。我也支持利用技术来实现这一目标,但在许多方面,这件事也揭示了全球开发人员普遍缺乏安全编码原则的现状。

在任何需要快速开发软件的情况下,出现错误都在所难免。然而,像逻辑缺陷、配置错误和代码注入这类常见的安全漏洞,本应在编写代码时就加以预防,而不是等到志愿者“白帽”黑客将代码库拆解分析后才去修补。

顺便说一句,这并不是开发人员的错。他们从高等教育中获得的关于安全编码的技能寥寥无几,而在职业生涯中,他们的关键绩效指标(KPI)几乎总是与功能实现和交付速度挂钩——安全问题通常被视为他们完成工作后由他人处理的事。我们需要实现“快速安全编码”的最终目标。虽然现在并非在开发这些应用的部门中进行剧烈文化变革的时机,但这及时提醒我们,数字风险领域正在扩大。如果能获得相应的工具和知识来共同承担安全最佳实践的责任,他们完全有能力发挥关键作用。

下载这款应用安全吗?

关键在于:作为一名安全从业者,我的结论是这款应用利大于弊。虽然上述漏洞存在(或曾经存在)于软件中并不理想,但这些漏洞被恶意利用的情况属于最坏的假设。目前,接触者追踪是协助全球医护英雄控制病毒传播、减少住院人数并尽可能保障彼此安全的重要手段。

这凸显出我们在软件构建中默认实施安全最佳实践方面还有 很长 的路要走,同时,确保公众获得必要信息以做出明智决策也至关重要。

我和我的家人将继续使用它,但我们也会保持警惕,及时更新 Android 系统补丁,这也是我们每个人都应该做的。

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。