游戏行业是一个高度依赖技术和创意资产的行业。一款中大型网络游戏的开发往往需要数年时间和数千万元的投入,核心代码和美术资源构成了这家游戏公司最核心的商业秘密。一旦这些代码流出,不仅会出现私服和盗版,还会让竞品公司快速复刻游戏玩法,彻底摧毁公司的竞争优势。

一家专注于客户端网络游戏的研发公司就经历过这样的噩梦。公司的主力产品是一款运营了五年多的MMORPG在线角色扮演类游戏,在线玩家数量稳定,月流水超过千万元。由于服务器端和客户端的源代码性质不同,项目组对服务器端的代码保护比较严格,只有核心架构组的几名工程师有访问权限。而客户端代码因为需要频繁地更新和维护,权限控制相对较松,客户端团队的十几名成员都有代码仓库的完整读权限。

团队的客户端主程之一方某在这家公司工作了三年多,参与了客户端核心战斗系统和社交系统的主要开发工作,对整套代码非常熟悉。后来方某因为个人发展和薪资问题与公司产生了矛盾,在谈判未果之后选择了离职。在离职前的最后两周,他以"整理技术文档和代码交接"为名,将客户端完整的项目仓库整体克隆到了自己的个人笔记本电脑上。由于这个操作被包装在工作交接的正当理由之下,公司和团队的其他成员都没有发现任何异常。

方某离职后不久就把这份源代码上传到了境外的一个代码托管平台。他设置了一个不公开的仓库,本意是想留着作为自己未来项目开发的技术参考。但他在设置仓库权限的时候操作失误,将仓库设置成了可以通过网址直接访问的状态。几个月后,有一些技术爱好者通过搜索引擎的代码检索功能发现了这个仓库,并将代码链接分享到了游戏技术的讨论社区中。

事态从此一发不可收拾。大量技术开发者和游戏玩家下载了这份源代码。很快有人利用这套客户端代码搭建了私服,免费提供给了大量的玩家。私服因为可以随意修改游戏数据和掉落率,在玩家群体中迅速传播开来。官服在一个月内流失了将近三成的活跃玩家,月流水腰斩。更严重的是,有几家竞争游戏公司拿到了源代码后,迅速推出了玩法高度相似的换皮游戏,在市场上对原游戏形成了直接的产品替代效应。

公司发现代码泄露后紧急采取措施,向代码托管平台提交了版权投诉要求下架仓库,并对市场上的私服和换皮游戏展开了法律维权。但代码一旦流出,想要完全封堵已经不可能。这些源代码在此后相当长的时间里在互联网上以各种方式传播和分享,已经彻底脱离了公司的控制。

这起案件给游戏公司和所有以软件资产为核心的高科技企业提供了一个警示。第一是源代码的访问权限应该按照最小必要原则进行严格划分,即使是团队内部的资深工程师也不应该拥有完整的代码仓库读取权限。比较安全的做法是将核心代码拆分成多个模块,每个模块设置独立的访问权限,不同模块之间的对接通过API实现而不暴露内部实现。第二是代码仓库的异常操作必须被实时监控。当一个账号在短时间内大量克隆和下载代码时,系统必须自动告警并要求主管确认。第三,离职员工的权限回收必须全面彻底,包括所有的代码仓库、内部系统和VPN访问权限,在正式离职之前就要全部收回,而不能等离职手续办完才做。