开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

我的开源代码被大公司盗用后:有人承认,有人让我滚

  • 2022-08-12
    北京
  • 本文字数:2734 字

    阅读完需:约 9 分钟

我的开源代码被大公司盗用后:有人承认,有人让我滚

自己辛辛苦苦写的代码被他人不声不响拿去商用卖钱,这对很多人来说都是非常恼火的事情。最近,业界资深网络安全专家 Patrick Wardle 在 Black Hat 的分享中讲述了自己的开源代码在不被告知的情况下被至少三家独立公司使用的事情。

至少被三个不同的公司“盗取”代码

 

Patrick Wardle 是非常优秀的 macOS 安全研究人员,也是苹果公司重点关注的 OBTS 安全会议组织者。他还是专为 macOS 创建开源安全工具的非营利组织 Objective-See 基金会的创始人,这意味着 Wardle 的许多软件代码现在可以免费下载和修改,但这也使自己的代码未被允许就被一些科技公司拿去了,他也是在多年后才发现的。

 

Wardle 以 Mac 恶意软件专家而闻名,曾在国家安全局担任恶意软件分析师一职。在此期间,他分析了攻击国防部计算机系统的代码,并创建了可以查看摄像头和麦克风是否被恶意软件操纵的 macOS 工具OverSight,并通过 Objective-See 免费发布了该工具。

 

当时是 2016 年,媒体曝出网络犯罪分子使用恶意软件通过用户的 macOS 网络摄像头和麦克风秘密监视人们。其中,一名黑客使用了一款名为“Fruitfly”的恶意软件劫持了笔记本电脑的网络摄像头,目的是监视儿童。在对新病毒进行了数月的分析后,Patrick Wardle 解密了部分代码并设置了一个服务器来拦截来自受感染计算机的流量。

 

然而几年后,Wardle 为客户分析可疑代码时,在客户自己设备上的一个工具中发现了问题。该工具由一家大型科技公司开发,提供了与 OverSight 类似的功能,包括监控 macOS 网络摄像头和麦克风。

 

通过筛选程序,Wardle 找到了他非常熟悉的代码,他的整个“监督”算法,包括他未删除的 bug,都包含在这个程序中。他终于意识到,某个开发人员对他的工具进行了逆向工程,窃取了他的成果,并将其重新用在了一个名字不同但功能几乎相同的产品中。

 

“就像有人抄了你写的东西,还把你的拼写和语法错误也抄了过去。”Wardle 说道。后来,Wardle 的客户立即联系了该公司,提醒了他们的开发人员窃取了 Wardle 的代码。



这并不是 Wardle 最后一次发现有公司使用他的代码。后来, Wardle 发现还有两家大公司也分别在自己的产品中使用了他的算法。Wardle 没有透露这些公司的名字。

 

“你联系到这些公司,并说:‘嘿,你们这些家伙,大部分都是偷的我的东西。你对我的工具进行了逆向工程并重新实现了算法——这在法律上非常......呃,是灰色的。但在欧盟,有一条规定你这样做是违法的。我有一个非营利组织,你实际上是从非营利组织中窃取了信息,并将其放到了你自己的商业代码中,然后从中获利。这十分不合适。”Wardle 说道,“但这些公司回应的态度都不一样。”

 

“有的回复很友好,我有次收到了一个 CEO 的回复邮件,承认了这一点并询问如何解决这个问题。但有人先是回复我说需要三周的内部调查,之后便向我表示没有看到任何相同的代码,让我滚。”Wardle 说道。遇到后者时,Wardle 不得不需要更多证据。

证明盗窃代码很难

 

但实际上,证明对方代码是盗窃来的非常难。Wardle 表示,他必须使用自己的闭源软件并采用逆向工程来了解那些公司的代码是如何工作的,并证明那些代码与自己的相似。此外,Wardle 还与为独立安全研究人员提供无偿法律服务的非营利性电子前沿基金会 (EFF) 合作。

 

Wardle 能够弄清楚是否为盗窃代码是因为他自己既编写工具又编写逆向工程软件,同时掌握这两门专业知识让他更容易找到证据。但像 Wardle 一样拥有这种技术背景,同时在社区还有一定影响力的开发者并不多,在维护权益方面常常处于弱势。

 

在去年,一位名叫 Brendan Gregg 开发者公开了自己写的 DTrace 项目相关开源代码被 Sun 公司“偷走”的往事。那是更早的 2005 年,Gregg 忙着编写和发布 DTrace 相关的高级性能工具,然后发现 Sun 公司发布的相关工具竟然比自己发布的还少。

 

Gregg 不是 Sun 的员工,不清楚公司内部运作,但他还负责为 Sun 提供培训与咨询支持。有一次,Sun 为其演示了基于 DTrace 打造的新产品,也就是在这个过程中,Gregg 发现其中一些工具是自己编写的脚本,而且这些工具非常不成熟,是自己当年随手写了就对外开源的,里面有很多奇怪的组合,个人风格强烈。Gregg 还发现,Sun 还把他作为作者的名字删掉了。但最后 Gregg 也没有得到什么补偿。

 

相比 Sun 公司的行为,苹果和甲骨文的做法就让 Gregg 舒服很多。Gregg 表示,几年后,苹果把他几十款工具添加进了 OS X 系统中,并完整保留了作者的姓名、版权以及 CDDL 开源许可证,甚至还对功能进行了改进与增强。多年之后,甲骨文在 Oracle Solaris 11、BSD 社区在 FereBSD 上也采取了同样的开源成果吸纳方式。

 

事实上,这样盗用他人开源代码为自己谋利的案例有很多。去年,特朗普支持的社交媒体平台 Truth被 Mastodon 创始人告上法庭。Mastodon 的创始人 Eugen Rochko 称,该应用程序称从自己的开源项目中提取了大量代码。当时,网友们发现 Truth 测试版的界面与 Mastodon 基本相同,而且该网站的部分代码与其他社交网络的代码没有任何差异。

 

特朗普媒体与技术集团 (TMTG)此前还称 Truth 为“专有软件”,并试图隐藏 Truth 基于 Mastodon 的事实。这件事情被曝光后,其相关股价随之大跌。

 

结束语

 

事实上,开源软件本身允许其他平台使用自己的代码,但开源软件的许可证要求使用者将他们的源代码和做的任何修改提供给公众。但很多公司在使用了代码之后没有任何说明。

 

Wardle 认为,导致这种现象的本质是开发人员的任务就是找到某种解决方法,比如监控麦克风和摄像头,然后他们就找到相应的工具进行逆向工程并窃取算法,而公司的目的就要解决方案,并不会追问代码的来处。

 

“我相信这是一个系统性问题,因为当我开始寻找时,我不是只找到了一个,而是好几个,这些公司还都完全不相关。”Wardle 认为代码盗窃的做法非常普遍。

 

对此,Wardle 建议,对于软件开发人员来说,任何编写代码(无论是开源代码还是闭源代码)的人都应该假设它会被盗,并学习有助于他们发现这种情况的技术。对于公司而言,管理者应该教育员工或开发人员不要偷窃,并让他们认真了解围绕对一个产品逆向工程以获取商业利益的法律规范,否则将整个组织将面临法律风险。

 

此类事件的发生也在不断提醒人们,一定要规范使用开源软件的代码,否则对公司名誉、实际利益都没有好处。

 

参考链接:

https://gizmodo.com/black-hat-what-to-do-big-tech-company-steals-your-code-1849378076

https://www.theverge.com/2021/10/29/22752850/mastodon-trump-truth-social-network-open-source-gab-legal-notice

https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651083118&idx=1&sn=d42542f5c8ad7bb6caad49c21d637711&chksm=bdb9a93d8ace202b16aca5fa85b6fcc29401badb132bc442ec40b4bd785db58f7f4ea514455d&scene=27#wechat_redirect

2022-08-12 14:4711130

评论 2 条评论

发布
用户头像
既然开源就该默认代码会被随意抄袭。不过抄袭者应该完整保留作者的姓名、版权以及 CDDL 开源许可证,这是做人的道德。
2022-08-13 08:43 · 浙江
回复
每个开源项目遵循的license都是不一样的,要求也不尽相同
2022-08-21 17:31 · 北京
回复
没有更多了
发现更多内容

生成式AI:全球传媒软件市场的璀璨新星

百度开发者中心

人工智能 媒体 生成式AI 文心一言

一篇文章看懂 JavaScript 如何实现继承

树上有只程序猿

JavaScript proto

The difference between PCBA and bottom plate + SOM

wifi6-yiyi

wifi6 wifi5 PCBA SOM

大数据平台数据脱敏是什么意思?有哪些方案?

行云管家

大数据 数据安全 大数据平台 等保合规

英语学习工具分享 Eudic欧路词典 for Mac激活中文

mac大玩家j

Mac软件 英语学习工具 学习软件

7 个使用生成式 AI 构建的项目

3D建模设计

生成式AI

云密一体,京东云密码资源池实力守护安全防线

京东科技开发者

云原生 网络安全 密码安全 企业号 8 月 PK 榜

点对点传输技术可实现更大的文件传输

镭速

大文件传输 点对点传输

高清视频动态壁纸 Dynamic Wallpaper 免激活中文

胖墩儿不胖y

动态壁纸 Mac软件 高清动态壁纸软件

明年起,企业数据将作为资产被纳入会计报表

行云管家

数据 数据安全 数据安全中心 数据资源

生成式人工智能能否使数字孪生在能源和公用事业行业成为现实?

3D建模设计

数字孪生 生成式AI

PoseiSwap 开启“Poseidon”池,治理体系或将全面开启

威廉META

生成式AI艺术创新

百度开发者中心

人工智能 生成式AI 文心一言

什么是数字孪生?

3D建模设计

数字孪生

Java单元测试及常用语句 | 京东物流技术团队

京东科技开发者

Mockito 测试 单元测试 企业号 8 月 PK 榜 Java单元测试

生成式AI:提高生产力,重塑未来行业

百度开发者中心

人工智能 ChatGPT 生成式AI 文心一言

本文介绍如何使用 Three.js 库在边界框和球体之间实现冲突检测。假设在阅读本文之前,您已经先阅读了我们的 3D 碰撞检测介绍性文章,并了解了 Three.js 的基本知识。

3D建模设计

3D

揭秘ChatGPT,如何打造自己的自定义指令 | 京东云技术团队

京东科技开发者

自定义指令 大语言模型 chatgpt app 企业号 8 月 PK 榜

一文带你了解跨境数据传输和隐私

镭速

跨境数据传输

Comparing WiFi Performance: IPQ5018 vs IPQ4019/IPQ4029 SoMs

wallyslilly

IPQ4019 ipq4029 ipq5018

人工智能改善生活:不同受众的定制化应用

测吧(北京)科技有限公司

深入MaxCompute -第十一弹 -QUALIFY

阿里云大数据AI技术

大数据

【稳定性】揭秘团队快速排查问题的三字经,你学会了吗? | 京东物流技术团队

京东科技开发者

团队 线上故障 故障排查 企业号 8 月 PK 榜

软件测试 | 人工智能:优势与挑战

测吧(北京)科技有限公司

测试

浅析Java - SPI机制 | 京东云技术团队

京东科技开发者

Java 后端 spi 企业号 8 月 PK 榜

使用 THREE.js 进行边界体积碰撞检测

3D建模设计

three.js 碰撞检测

开源图形驱动在OpenHarmony上的使用和落地

OpenHarmony开发者

OpenHarmony

我的开源代码被大公司盗用后:有人承认,有人让我滚_开源_褚杏娟_InfoQ精选文章