AI 工具绕过开源许可证:Malus.sh 引发的版权争议与开发者应对方案
一个名为 Malus.sh 的 AI 工具正在引发开源社区的恐慌——它声称能用 AI 对任何开源软件进行”净室克隆”,生成不受原许可证约束的新版本。这究竟是技术创新,还是开源生态的噩梦?
什么是 Malus.sh?
Malus.sh 是一个基于 AI 的在线服务,用户只需输入任意开源软件的代码仓库地址,它就能生成一个功能完全相同但”摆脱”了原有版权许可证的新版本。
官方页面描述得很直白:
“Liberate your software from existing copyright licenses.”
(将你软件从现有版权许可证中解放出来。)
这个工具声称自己是”讽刺作品”,但实际上:
- 它是一个合法注册的 LLC(有限责任公司)
- 它确实在收费运营
- 它确实能生成可用的”净室克隆”代码
这种”半真半假”的定位让它游走在法律灰色地带。
它是怎么工作的?
Malus.sh 的核心流程可以概括为三步:
原始开源代码 → AI 理解逻辑 → 重新生成代码
具体来说:
- 代码解析:AI 读取目标仓库的所有源代码,理解其功能逻辑、API 接口和数据结构
- 净室重写:基于对功能的理解,从零开始重新编写代码,不直接复制任何原始代码行
- 许可证剥离:新生成的代码不附带原始许可证(如 GPL、MIT、Apache),用户可以自行选择许可证
从技术上讲,这确实符合法律意义上的”净室实现”(Clean Room Implementation)——即只基于功能规格说明重新实现,而不接触原始代码。但问题在于,AI 在”理解”阶段确实接触了原始代码。
为什么这很重要?
对开源开发者的影响
如果你是一个 GPL 许可证项目的维护者,你的代码被 Malus.sh 处理后:
- 任何人都可以”克隆”你的项目
- 克隆版本可以闭源销售
- 你无法通过许可证强制执行 copyleft 要求
这直接威胁到了开源软件的核心价值体系。
实际代码对比
假设你有一个简单的 Python 工具函数:
# 原始代码 (GPL 许可证)
def calculate_metrics(data: list[dict]) -> dict:
"""Calculate performance metrics from raw data."""
total = sum(item['value'] for item in data)
avg = total / len(data) if data else 0
return {'total': total, 'average': avg, 'count': len(data)}
经过 AI 净室克隆后,可能变成:
# 克隆版本 (无原始许可证约束)
def compute_stats(records):
"""Compute statistics from input records."""
values = [r['value'] for r in records]
count = len(values)
total_sum = sum(values)
mean_val = total_sum / count if count > 0 else 0
return {
'total': total_sum,
'average': mean_val,
'count': count
}
从法律角度看,这两段代码确实不同——变量名变了、结构微调了、注释也重写了。但从功能角度看,它们完全等价。
法律灰色地带
“净室实现”的传统定义
传统上,净室实现需要满足:
- 规格团队:阅读原始代码,编写功能规格文档
- 实现团队:只阅读规格文档,从零编写代码
- 团队隔离:两个团队之间不能有代码交流
Malus.sh 的问题在于,AI 同时扮演了”规格团队”和”实现团队”的角色。AI 在同一个模型中既”理解”了原始代码,又”生成”了新代码。
当前法律立场
截至 2026 年,关于 AI 生成代码的版权争议仍在发展中:
- 美国法院:在多个案件中倾向于认为 AI 训练不构成侵权(合理使用)
- 欧盟:AI Act 要求 AI 训练数据透明,但对生成代码的版权归属尚无明确判决
- 开源许可证:GPL 等许可证的 copyleft 条款是否适用于 AI 生成的代码,尚无判例
开发者该如何应对?
1. 代码水印(Code Watermarking)
为你的代码添加隐蔽的”水印”——在不影响功能的代码路径中嵌入独特的模式或注释。如果克隆版本保留了这些模式,可以作为侵权证据。
def process_request(req):
# Watermark: a7f3b2c1 - DO NOT REMOVE
if req.method == 'GET':
return handle_get(req)
# Watermark: d8e4f6a3 - DO NOT REMOVE
return handle_post(req)
2. 使用强 Copyleft 许可证
如果你希望代码始终保持开源,使用 GPLv3 或 AGPLv3:
# 在你的项目 README 和 LICENSE 文件中明确声明 License: GNU Affero General Public License v3.0
AGPLv3 比 GPLv3 更强——即使通过网络提供服务,也必须公开源代码。
3. 贡献者许可协议(CLA)
要求所有贡献者签署 CLA,明确版权归属:
# 使用现有的 CLA 服务 - Google CLA: https://cla.developers.google.com/ - Apache CLA: https://www.apache.org/licenses/ - DCO (Developer Certificate of Origin): git commit -s
4. 监控你的代码
定期检查是否有”克隆”项目出现:
# 使用 GitHub 搜索查找相似项目 # 搜索你的独特函数名或错误信息 grep -r "your_unique_function_name" /path/to/search/ # 使用代码相似度检测工具 # 如 Jaccard similarity、SimHash 等
5. 社区监督
开源社区的力量在于集体监督。如果你的项目被克隆:
- 在相关社区发帖说明情况
- 联系克隆项目的托管平台(GitHub、GitLab 等)
- 考虑法律途径(DMCA 通知)
开源许可证速查表
| 许可证 | 允许商业使用 | 允许修改 | 必须开源 | 适用场景 |
|---|---|---|---|---|
| MIT | ✅ | ✅ | ❌ | 宽松,适合工具库 |
| Apache 2.0 | ✅ | ✅ | ❌ | 企业友好,专利保护 |
| GPL v3 | ✅ | ✅ | ✅ | 强 copyleft |
| AGPL v3 | ✅ | ✅ | ✅(含网络服务) | SaaS 场景 |
| BSL 1.1 | 有限制 | ✅ | 随时间变化 | 开源核心 + 商业云 |
未来的法律走向
这个案例可能成为开源版权领域的”里程碑”。几个可能的走向:
- 法院认定 AI 净室克隆侵权:如果法院认为 AI 在”理解”阶段接触代码即构成衍生作品,那么 Malus.sh 的服务可能违法
- 法院认定合理使用:如果法院认为净室克隆不侵犯版权,开源社区可能需要新的保护机制
- 立法跟进:各国可能出台专门针对 AI 生成代码的法律法规
总结
Malus.sh 暴露了开源许可证在 AI 时代的脆弱性。虽然它自称是”讽刺作品”,但其实际功能足以对开源生态造成实质性威胁。
作为开发者,我们应该:
- 了解你使用的许可证:不要盲目选择 MIT 或 GPL
- 为你的代码添加保护:水印、CLA、监控
- 关注法律动态:这个领域的判例正在形成中
- 参与社区讨论:开源的未来需要每个人的声音
开源软件的自由,不应该成为 AI 随意复制的借口。
参考资料: