写点什么

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

  • 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:4711239

评论 2 条评论

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

应用瓴羊Quick BI数据分析,实时掌控企业运营数据

对不起该用户已成仙‖

腾讯发布数字政务核心产品体系,多方位助力政府数字化转型

科技热闻

干货 | 企业如何快速采集分析日志?

嘉为蓝鲸

运维 嘉为蓝鲸

嘉为蓝鲸IT服务管理中心V3.0正式发布,实现IT服务管理体系新升级!

嘉为蓝鲸

运维 嘉为蓝鲸 IT服务

MySQL更新锁表超时 Lock wait timeout exceeded

Jeremy Lai

事务隔离 Mysql死锁

深入理解Redis 数据结构—字典

Jeremy Lai

字典 redis 底层原理

2022腾讯Techo前沿技术论坛召开,六位科学家分享前沿科学成果

科技热闻

友元、异常和其他

Maybe_fl

EMQ助力阿里云飞天洛神云网络构建新一代“亿级并发、百万级吞吐”NLB网络型负载均衡系统

EMQ映云科技

阿里云 物联网 IoT mqtt 12 月 PK 榜

Web3时代到来,腾讯云助力产业提效和互联网创新

科技热闻

超简单的CDH6部署和体验(单机版)

程序员欣宸

大数据 hadoop CDH 12月月更

干货 | 五大关键点,帮助企业快速构建可落地的IT服务管理体系

嘉为蓝鲸

运维 嘉为蓝鲸 IT服务

Seata 环境搭建

Jeremy Lai

分布式事务 seata

PID和TID的区别

源字节1号

软件开发 前端开发 后端开发 小程序开发

商务部研究院信用所、启信宝联合发布《中国商务信用发展指数报告(2022)》

合合技术团队

人工智能 大数据 商业

后端程序员实现一个IP归属地的小程序

Jeremy Lai

阿里云ECS后台CPU占用100%,top却找不到

Jeremy Lai

cpu 100% 阿里云;

手把手教你用Java获取IP归属地

Jeremy Lai

IP地址

Centos7安装Nginx教程,一步安装http和https

Jeremy Lai

nginx Linux安装

Spring Cloud 整合 nacos 实现动态配置中心

Jeremy Lai

nacos 动态配置

嘉为蓝鲸WeOps荣获“2022年度行业科技创新产品”

嘉为蓝鲸

运维 嘉为蓝鲸 #WeOps

AI 作画领域中的“神笔马良”是怎样炼成的?

行者AI

MySQL索引的底层数据结构原理剖析(二叉树、 红黑树、Hash、B-Tree、B+Tree)

C++后台开发

MySQL 数据结构 后端开发 底层原理 C++开发

小程序正式版报错600002 url not in domain list

Jeremy Lai

小程序

详解MySQL隔离级别

Jeremy Lai

隔离级别

字节一面:说说TCP的三次握手

Jeremy Lai

三次握手 TCP协议

中国视频云进入“出海”时代,腾讯云音视频发布海外专门品牌及新产品

科技热闻

腾讯云升级云端 IDE Cloud Studio,助力开发“化繁为简”

科技热闻

融云&艾瑞发布《政企数智办公平台行业研究报告》,解读数智化时代的办公新趋势

融云 RongCloud

即时通讯 办公 数智化

CleanMyMac X2023第三方mac系统清理软件

茶色酒

CleanMyMac X CleanMyMac X2023

详解ConCurrentHashMap源码(jdk1.8)

Jeremy Lai

ConcurrentHashMap 源码阅读

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