2026年4月26日 2 分钟阅读

AI 工具绕过开源许可证:Malus.sh 引发的版权争议与开发者应对方案

tinyash 0 条评论

一个名为 Malus.sh 的 AI 工具正在引发开源社区的恐慌——它声称能用 AI 对任何开源软件进行”净室克隆”,生成不受原许可证约束的新版本。这究竟是技术创新,还是开源生态的噩梦?

什么是 Malus.sh

Malus.sh 是一个基于 AI 的在线服务,用户只需输入任意开源软件的代码仓库地址,它就能生成一个功能完全相同但”摆脱”了原有版权许可证的新版本。

官方页面描述得很直白:

“Liberate your software from existing copyright licenses.”

(将你软件从现有版权许可证中解放出来。)

这个工具声称自己是”讽刺作品”,但实际上:

  • 它是一个合法注册的 LLC(有限责任公司)
  • 它确实在收费运营
  • 它确实能生成可用的”净室克隆”代码

这种”半真半假”的定位让它游走在法律灰色地带。

它是怎么工作的?

Malus.sh 的核心流程可以概括为三步:

原始开源代码 → AI 理解逻辑 → 重新生成代码

具体来说:

  1. 代码解析:AI 读取目标仓库的所有源代码,理解其功能逻辑、API 接口和数据结构
  2. 净室重写:基于对功能的理解,从零开始重新编写代码,不直接复制任何原始代码行
  3. 许可证剥离:新生成的代码不附带原始许可证(如 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
    }

从法律角度看,这两段代码确实不同——变量名变了、结构微调了、注释也重写了。但从功能角度看,它们完全等价。

法律灰色地带

“净室实现”的传统定义

传统上,净室实现需要满足:

  1. 规格团队:阅读原始代码,编写功能规格文档
  2. 实现团队:只阅读规格文档,从零编写代码
  3. 团队隔离:两个团队之间不能有代码交流

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 许可证

如果你希望代码始终保持开源,使用 GPLv3AGPLv3

# 在你的项目 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. 社区监督

开源社区的力量在于集体监督。如果你的项目被克隆:

  1. 在相关社区发帖说明情况
  2. 联系克隆项目的托管平台(GitHub、GitLab 等)
  3. 考虑法律途径(DMCA 通知)

开源许可证速查表

许可证允许商业使用允许修改必须开源适用场景
MIT宽松,适合工具库
Apache 2.0企业友好,专利保护
GPL v3强 copyleft
AGPL v3✅(含网络服务)SaaS 场景
BSL 1.1有限制随时间变化开源核心 + 商业云

未来的法律走向

这个案例可能成为开源版权领域的”里程碑”。几个可能的走向:

  1. 法院认定 AI 净室克隆侵权:如果法院认为 AI 在”理解”阶段接触代码即构成衍生作品,那么 Malus.sh 的服务可能违法
  2. 法院认定合理使用:如果法院认为净室克隆不侵犯版权,开源社区可能需要新的保护机制
  3. 立法跟进:各国可能出台专门针对 AI 生成代码的法律法规

总结

Malus.sh 暴露了开源许可证在 AI 时代的脆弱性。虽然它自称是”讽刺作品”,但其实际功能足以对开源生态造成实质性威胁。

作为开发者,我们应该:

  • 了解你使用的许可证:不要盲目选择 MIT 或 GPL
  • 为你的代码添加保护:水印、CLA、监控
  • 关注法律动态:这个领域的判例正在形成中
  • 参与社区讨论:开源的未来需要每个人的声音

开源软件的自由,不应该成为 AI 随意复制的借口。


参考资料

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。