50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

评论 2 条评论

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

程序员崩溃的40个瞬间!最后一个是你意想不到的.....

模块三作业

king

spring,springboot,底层原理解析

java小李

NGINX社区线下Meetup第三期成功举办 感受成都开发者们的NGINX热情

爱极客侠

《面试八股文》之 Redis 16卷

moon聊技术

redis 面试

Go 语言的信号式抢占原理

Xargin

后端 Go 语言 系统编程

掌握这些核心算法,拿不到10+个offer你来找我,我锤飞你个不争气的

北游学Java

Java 算法

Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)

编程菌

Java 编程 程序员 后端 java技术宅

如何下载YouTube视频/影片(4K画质)

资源君

分享 经验分享 youtube视频下载 工具分享 教程分享

为什么双赞安卓ARM工控主板应用前景那么好?

双赞工控

Tensorflow for Java + Spark-Scala分布式机器学习计算框架的应用实践

Qunar技术沙龙

机器学习 tensorflow spark 后端 分布式计算

"开放数据,蔚然成林"—浪潮助力多地获得数据开放全国标杆

云计算

详细架构设计文档

刘丽

粉了!京东商城核心亿级流量并发Java系统架构设计方案手册

Java架构追梦

Java 架构 面试 高并发 京东

CODING 携手 CoDesign:让设计与开发更简单

CODING DevOps

DevOps 设计 开发工具 CoDesign

时序数据库助力安全监控

greatersecurity

PancakeSwap交易所做市机器人|交易所画K线机器人

Geek_23f0c3

交易所机器人 pancakeswap 做市机器人

加码物联网安全,熵核科技做终端安全的守护者

熵核科技

一种Vue应用程序错误/异常处理机制

devpoint

Vue 异常处理 vue2 7月日更

应届女生美团Java岗4面,一次性斩offfer,我受到了万点暴击

编程菌

程序员 面试 后端 计算机

别人都在谈爱琴海,凭什么程序员就“地中海”网友:还是太优秀!

Baetyl邀你来战EdgeX中国挑战赛!

百度开发者中心

人工智能 最佳实践 物联网

关于体验设计的十大重要定律

石云升

读书笔记 用户体验 商业洞察 7月日更 体验设计

程序员面试时自称字节跳动工作两年,被发现学历造假,结果蒙了!

程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬

网络攻防学习笔记 Day86

穿过生命散发芬芳

网络攻防 7月日更

2021- iOS开发者一份你一定会被问到的面试题(附参考答案)

iOSer

ios 面试 ios开发 iOS 知识体系

2021年FiL最新消息:fil值得投资吗?

区块链 IPFS fil fil矿机 fil行情

【云厂商】部分知名云服务商名单

行云管家

云计算 公有云 云服务 私有云 云厂商

学生管理系统详细架构设计文档

张文龙

#架构实战营

15年前的3篇论文,变成了万亿大生意

百度大脑

人工智能 论文

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