TikTok、特朗普和开源监控的未来

2020-08-27 00:41:37

TikTok一直出现在新闻中,但没有充分的理由。TikTok的中国母公司ByteDance一直在使用广受欢迎的社交媒体视频分享应用程序ByteDance收集其在美国、加拿大、澳大利亚和欧洲数亿用户中的大多数人的位置、浏览行为和搜索历史。

这一担忧已经成为一个关系到国家安全的问题。特朗普总统向字节跳动和中国社交通讯应用微信的中国母公司腾讯控股发布了多项行政命令,要求他们在90天内剥离美国业务的权益。微软宣布了它的意图(甲骨文和Twitter都表达了兴趣),作为其主要美国实体的子公司,收购并完全保护TikTok、其数据和算法。

在TikTok的案例中,美国的爱国实际上意味着什么,还有悬而未决的问题,因为它的大部分业务运营、管理人员、收入和用户(特别是TikTok在中国不可用)已经是美国人-但我暂时保留猜测。无论如何,TikTok目前的设置对监控的影响是令人担忧的,因为它的大部分失控成功源于ByteDance的算法,这些算法推动了推荐、参与度和广告印象,这些推荐、参与度和广告印象依赖于来自多个中国来源的丰富数据,因此,中华人民共和国中央政府有可能获得这些数据。

但是,除了流入中国专有应用和设备(如华为和中兴制造的应用)的美国用户数据的已知之外,还有几乎所有西方开发的软件都使用的外国源码的已知未知。特朗普总统认定中国拥有的软件是安全威胁,这对其他软件以及依赖它的企业和用户意味着什么?特别是,这些事件引发了一系列关于开放源码软件和整个开放源码社区的问题。你知道你的开源软件是从哪里来的吗?这有关系吗?

自由和开放源码软件(OSS)的概念几乎和软件本身一样久远。早期的软件是由学者编写的,他们合作创建了软件,并自然地分享了源代码。

随着时间的推移,公司开始将源代码视为专有的--一种收入来源。然后是限制性的许可协议,单一的软件开发,以及像诺克斯堡那样被封锁的源代码。

Linux的引入重新点燃了即将熄灭的OSS火焰。1998年提出了开放源码计划,现在OSS是一个由专业和业余工程师组成的蓬勃发展的社区,致力于使软件变得更好。仅GitHub一家就号称在全球拥有超过5000万名开发人员和1亿个存储库,其中大部分包含开放源代码。根据Gartner《2019年软件构成分析报告》,高达90%的每件软件都来自开源,构建任何类型软件的公司中,90%都在代码中包含了OSS。

但这就是问题所在。开放源码软件已经催生了一个全球性的社区。开放源码项目包括对来自世界上任何地方潜在的任何人的无数其他开放源码贡献的依赖。而且许多开放源码项目依靠完全分布式代码提交的精英管理而蓬勃发展。管理所有那些在生产中交互的依赖项的许可和治理的特殊性本身就是一项挑战,更不用说地理来源的影响了。

公司依赖OSS来快速发布、迭代和更新他们的数字产品。但是,要了解开源依赖关系是很有挑战性的,更不用说完全了解它们包含什么代码了。您知道您每天依赖的OSS代码来自哪里吗?

要做到这一点,需要付出巨大的努力。Git等代码库提供了项目内所有代码更改的无与伦比的历史记录。这样您就可以知道是谁签入了什么代码,以及他们是何时签入的。但话说回来,这只是开发人员选择进入系统的姓名的历史记录。而且,除非存储库和所有贡献存储库都存在于诸如GitHub这样的公共论坛中(请记住,GitHub也提供私有存储库并将其货币化),否则贡献的完整列表并不总是可用。

实时审计开放源码软件所有贡献的地理来源的任何承诺的理论范围都是巨大的。要彻底跟踪应用程序中所有代码的来源,您必须:

毫无疑问,大多数公司不敢以这种方式花费所需的金钱、时间和精力来挖掘90%的软件,特别是因为在几乎所有的情况下,这个过程都是完全手动的。

最终,迫使私营企业担心这一问题的全面政府监管将具有巨大的破坏性,不太可能获得通过。更有可能的是,政策将以规则、报告要求和基于软件对国家安全的敏感性的一些限制的形式采取稳步入侵的形式。这有三种形式:关键的公共基础设施和全面的无处不在。帮助运行电网、军事系统和运输平台的开源组件就是关键基础设施的例子。TikTok和微信就是无处不在的例子。在这两个类别之外,最有可能成为额外政策目标的是:高度监管的私人领域,如通信网络、医疗系统和金融服务运营。

但也许比必须询问的方式和对象更重要的问题是:我们应该知道代码从何而来吗?

人们对来自世界特定地区(如中国或俄罗斯)的软件的担忧正在迅速增加,并获得越来越多的关注。公司、客户和政府都必须认真对待安全和隐私威胁。

从理论上讲,屏蔽源自某些国家的开放源码软件的想法可以被认为是一种选择。所有开放源码组件都可以作为CI/CD过程的一部分进行审查,策略之外的贡献可能会阻止发布构建,而来自受限制地区的贡献最终将不会在生产代码中使用。

不过,我们还是退一步谈吧。如果开放源码软件社区是全球性的,任何人都可以为任何项目做出贡献,那么地理过滤的想法很容易成为滑坡的顶峰。毕竟,到目前为止,开源实际上是解决某些外国软件安全控制问题的解决方案。

禁止一个国家的软件是很容易的。但是,如果一件软件可以由世界各地的开发人员编写代码,情况会怎样呢?一个项目可以由一名美国开发商与一名来自英国、俄罗斯、中国、日本、阿根廷、埃及、以色列和许多其他国家的开发商一起贡献。这最终就是开放源码精神的全部本质,而且可以说,这也是开放源码软件更好的安全性、可扩展性、互操作性和可伸缩性的好处之源。

更引人注目的是,选址可以说是一面虚假的旗帜,因为任何看过冷战后间谍电影的人都知道,身份和忠诚度很少与地理、国籍或传统完全一致。

那么,政府何时才有理由强迫公司深入研究每一份开放源码软件贡献的人口统计数据呢?我们在哪里决定划清界限呢?我们如何理解感知到的和真实的安全威胁之间的平衡,更不用说研究每一位曾经贡献过一行代码或修复的开发人员的成本和收益?

你的预算会在网络侦察的重压下崩溃吗?或者,就像安全和治理的许多其他要素一样,自动化是唯一可行的解决方案吗?

我们在这里提出了很多问题。现在,这就是这个行业的全部。问题是找到解决方案的第一步。但我们现在该怎么办呢?

我们可以忽略正在发生的一切。仅仅因为几家中国公司在美国消费者中获得了吸引力,目前还不清楚联邦政府的决定是由实际的非中立安全威胁还是另一种强硬的贸易政策推动的。

另一方面,一些专家认为,邪恶的外国数据访问是对世界上最富有的民主国家安全的最大生存威胁。可以说,这将使外国对开放源码软件的贡献成为不遵守未来安全政策的主要表面区。

我们可以保持现状,执行标准的安全审查,增强我们选择的开放源码基础设施,并信任我们的实践和流程来审查它。

完全封锁是第二种选择。在这样一个时代,中国政府获取外国消费者数据是国营监控项目的有案可查的来源,毫不掩饰地使用开源组件可能真的很危险。

第三种选择是分叉开源项目,并且只在美国和合作伙伴国家维护它们。这是一个可行的短期解决方案,尤其是对关键基础设施而言。但大叉可能会变得难以维护,落后于目前的创新。

但软件的国籍在未来不太可能完全不受监管,或者我们不太可能回到自己构建每一块软件的工作中,即使我们知道代码是安全的。解决方案当然介于两者之间。而且,可能更重要的是,有效的治理几乎肯定依赖于自动化,这有助于每家公司扩大其政策执行规模,以保持开放源码的步伐。

目前还没有解决方案。但我们可以也应该开始思考开源软件起源的含义,联邦政策的变化方向,以及我们维护客户隐私和国家安全的责任。