凌晨三点十七分,无处程序员林跃的遁形GitHub账号最后一次提交代码,commit message写着“fix: 内存泄漏”。全网十二小时后,公敌他坠亡在公司楼下。程序警方调取监控时发现,无处他死前半小时还在工位上修改一段关于用户数据爬取的遁形代码。
这不是全网一起简单的自杀案。林跃所在的公敌公司做的是“全网信息聚合”业务,说白了就是程序爬虫抓取社交平台、电商、无处招聘网站上的遁形公开数据,再卖给征信机构做风控。全网他负责的公敌模块叫“身份穿透”——输入一个手机号,能关联出这个人的程序社交关系、消费习惯、甚至常去的地点。系统上线那天,产品经理拍着他的肩膀说:“老林,你这套东西,比FBI还厉害。”
出事前一周,林跃发现系统里有个漏洞。某个接口没有做权限校验,意味着任何拿到内部token的人,都能直接查询指定手机号的全维度数据。他连夜写了修复补丁,但运维那边排期要等两周。他给技术总监发了三封邮件,抄送CTO,措辞从“建议尽快修复”升级到“存在严重合规风险”。总监回复:“先上线,客户等着用。”
林跃的同事后来告诉我,他死前两天状态很反常。平时话不多,但那两天反复念叨“数据会咬人”。他删掉了自己电脑上所有个人浏览记录,甚至把微信聊天记录清空了。最诡异的是,他在代码注释里留了一段话:“If you're reading this, I'm probably dead. The real bug is not in the code, it's in the business model.”
警方调取服务器日志发现,林跃死前两小时,有人用他的账号登录了生产环境,批量导出了大约两百万条用户数据。导出记录被删了,但云存储的账单显示,那天凌晨产生了一笔异常流量费。公司对外说这是“内部测试”,但林跃的妻子在整理遗物时,发现他笔记本里夹着一张手写纸条,上面列了一串名字——全是这家公司的高管。
那个漏洞最终在事故报告里被定性为“因程序员操作失误导致的数据泄露”。林跃的死因是“高空坠落,排除他杀”。公司赔了家属一笔钱,签了保密协议。
但我总忍不住想,一个能写出“身份穿透”模块的程序员,真的会犯“操作失误”这种低级错误吗?他留下的那句注释,更像是在说:真正的致命漏洞,从来不在代码里,而在那些把数据当商品、把人当透明人的生意里。林跃不是第一个发现这个“漏洞”的人,但他可能是唯一一个试图用命来修复它的人。
那个凌晨的commit,成了他职业生涯的绝唱。内存泄漏可以修复,但有些泄漏,一旦发生,就再也补不上了。