首页 > 其他分享 >量化界狠人,离职前埋了700处bug,公司惨亏近千万

量化界狠人,离职前埋了700处bug,公司惨亏近千万

时间:2024-07-04 23:00:55浏览次数:3  
标签:他俩 Zeus 700 Kronos 惨亏 模块 bug 公司 界狠人

前段时间看了一部大火的台湾电影《周处除三害》,快结尾的时候有这么一个片段,就是陈桂林在灵修礼堂里面,将执迷不悔的邪教信徒们一个个爆头干掉,让人看得热血沸腾,直呼过瘾,着实一狠人也。

这不禁也让我联想起之前看到过的一宗与量化相关的台湾刑事案件,有两个宽客不满公司未按承诺发奖金,于是就在离职前,在公司的量化系统里面埋了700多处bug,导致公司短时间里亏损了140w美元,按当时的汇率换算,接近1000w人民币。

我之所以印象深刻,那是因为他俩在量化界算是妥妥的狠人了,一般咱听到的离职Quant与前公司的爱恨纠葛,不是公司不当人变态压榨员工,或背信弃义不按承诺发奖金,要么是Quant偷公司的核心机密/代码,或是不遵守竞业/保密协议加入友商,双方基本都是靠对簿公堂走民事诉讼解决,像这种将公司核心量化系统“爆头”,上升到刑事案件的,至少我是头一回听说。

整个事情到底是怎么样的呢?咱今天得空唠唠~

这次故事的两个主角,一个是陈某圣,另一个是许某轩,他俩在2018年9~10月先后入职了一家名为Kronos Research的公司,Kronos Research是台湾省的一家量化交易公司,中文名称是“麒点科技”,在上海和波兰都有分公司,主要活跃在数字货币领域,除了有自营盘外,还是某B圈交易所最大的流通性提供者(做市商),在全球范围内也是数得上号的。

图片

他俩入职后,就加入到了Kronos公司代号为『Zeus』的量化交易系统的开发小组当中,Zeus(宙斯)是古希腊神话中的第三代神王、统治世间万物至高无上的天神、奥林匹斯十二主神之首,从这代号当中就看出了这个量化系统的重要性,陈担任软件工程师和量化交易员,负责软件开发和自动化交易,许担任系统工程师,负责软件开发和系统安全维护。

Zeus系统开发好后,就部署到了Kronos开曼公司(Kronos Holdings)的服务器进行数字货币自动化交易,期间相安无事,直到2020年的5月份,根据台北地方法院的判决书显示,陈许两人是因为Kronos公司未依承诺发放奖金而心生不满,然后对Zeus系统下狠手了,只用了两招,都打在了七寸上。

Zeus系统在做投资决策时,有两个核心模块,一个是reconciliation模块,负责根据喂进去的数据,选择出当前时间点最优的投资组合,另一个是improve模块,负责Zeus系统的自我进化,如果近期的投资组合出现了亏损,那就自动删除本次的交易模式,然后从历史备份库当中选择之前盈利较好的交易模式进行自学习,提升自己的投资决策能力。

陈许两人的作案手法就是针对这两个模块,对于reconciliation模块,将原程序当中的x:x[1]改为x:-x[1],就加了一个负号,本意是选得分最高的投资组合,现在就刚好反过来了,选的是得分最低的投资组合,直接是最优变最差了。

图片

对于improve模块,手法也是类似的,只不过是在历史备份库当中,随机给那些历史样本随机改动正负号,大概影响了700多个历史样本文件,这样一来,正常的数据样本受到污染,Zeus系统学习一番过后,投资决策能力反而下降了,大概只有原来的90%。

图片

为了隐藏自己的行踪,埋下这些bug后,立即删除了生成这些bug的源文件,并且盗用其他同组同事的账号将这些改动推送到服务器里面生效。

可想而知,潜藏着700多处bug的Zeus系统接连出现亏损,但亏损并不是导致他俩落网的直接原因,实际的原因却是他俩的自我满足感。

2020年5月1日开始埋bug,5月12日陈许两人离职,但他们跟很多犯罪分子一样,喜欢在作案之后重返犯罪现场,5月26日~28日期间,陈许分别又以公司法人Jack和另一名同事的公司账号登录Kronos服务器,浏览投资策略的盈亏资料,判断自己的改动手法生效没有。

图片

这次没那么好运,那天晚上公司的另一名合伙人发现本应休假的Jack的公司账号远程登录了公司服务器,便感觉可能有黑客入侵,便开始调查。

于是乎,就发现了一批奇怪的文件,明明这些文件都是不同交易日期生成的,但却有着相同的时间戳,没错,这就是那improve模块当中受随机正负号影响的700多个历史样本文件,接着他们从别的电脑里面找到了其中一些文件的原始备份拷贝,经过对比,确认当中有37个历史样本文件一定是经过人为修改的,进而顺藤摸瓜,定位到了陈许两人。

如果不是他俩重返作案现场,公司都可能没有这么快能找到他俩,因为Zeus系统开始亏损的时候,Kronos公司还可能以为是行情不好,还在等着improve模块进行自我学习自我纠偏,要不是他俩登入公司系统被发现,Kronos公司不会那么快意识到系统被动了手脚,这期间,Zeus系统已经累计亏损140w美元,接近1000w人民币。

2020年6月24日,当地警察拘捕了这两人,在搜查住所的时候,在手机和笔记本电脑当中看到了陈许二人报复公司的全部聊天记录,至此真相大白、水落石出。他俩还在聊天中开玩笑说道,“看到公司亏钱,太爽了”,“放进的错误参数不够低,太仁慈了”。

最终以妨害电脑使用罪等罪名,陈被判有期徒刑1年4个月,许被判有期徒刑10个月,可以通过缴纳罚金减少坐牢时间(易科罚金),但不得缓刑。陈桂林式爆头狠人,也迎来了陈桂林式结局,故事说完了,下期见~

参考资料:

台北地方法院,2023.8,《台湾台北地方法院刑事判决(2022年度诉字第400号)》

刘昌松,2022.1,《「台湾虚币之光」惨亏140万美元,2工程师离职前搞鬼:太爽了》

REBECA MOEN,2023.8,《Quant Firm Kronos Research Loses $1.4M: Code Tampered by Disgruntled Engineers》

标签:他俩,Zeus,700,Kronos,惨亏,模块,bug,公司,界狠人
From: https://blog.csdn.net/iamquantman/article/details/140138451

相关文章

  • 代码随想录算法训练营第18天 | 、98验证二叉树、700. 二叉搜索树中的搜索
    代码随想录算法训练营第20天|654.最大二叉树https://leetcode.cn/problems/maximum-binary-tree/654.最大二叉树代码随想录https://programmercarl.com/0654.最大二叉树.html617.合并二叉树https://leetcode.cn/problems/merge-two-binary-trees/description/617.合并二......
  • zynq-7000 7Z020 双网卡调试
    zynq-70007Z020双网卡调试网卡芯片采用两片RTL8201FMII模式注意:图中R920需要去掉。设备树添加&gem0{compatible=“cdns,zynq-gem”;status=“okay”;phy-mode=“mii”;clock-frequency=<25000000>;xlnx,ptp-enet-clock=<0x69f6bcb>;phy-handle......
  • 华为 无线控制器 AirEngine9700-M1 AirEngine5760-51 AP供电降档问题
    1故障现象,一台HuaweiSwitchS5720-28TP-PWR-LI-ACpoe交换机接入ap(5760-51)20个,其中一个网口灯不亮,随机拔掉一个AP网线,之前不亮的网口,正常闪亮启动。#AirEngine5760-51满载功率28.8wHuaweiSwitchS5720-28TP-PWR-LI-AC交换机满载功率369w,那明显超载造成的2控制......
  • 借助ServiceDesk Plus,更接近ISO 27001变更管理标准
    如果实施不当,变更支持可能会中断业务流程并导致停机。许多组织尚未建立不同的阶段来记录整个变更过程。这通常会导致IT环境,在这种环境中,实施变更的成功依赖于单个主题专家。这并不高效,并且对IT团队来说可能难以管理和压力。 让我们看看Zylker的IT部门,该部门开发了一个新......
  • GitHub狂揽6700 Star,Python进阶必备的案例、技巧与工程实践
    当下是Python急剧发展的时代,越来越多的人开始学习和使用Pyhon,而大家也遇到了各种问题。这份手册清晰、细致地介绍了Python代码应该遵循的编程风格,并解释了背后的原理和机制。入门Python语言相对简单,但写出优雅的代码并非易事。这份手册深入讲解了Python进阶知识的方方......
  • [email protected]].2700勒索病毒
     该病毒具有持续性威胁,可加密文件并窃取敏感信息。继续潜伏在计算机系统中,构成一种持续的威胁。受害者即使支付了赎金,也可能无法完全摆脱病毒的困扰。支付了赎金并获得了解密密钥,也不能保证病毒已经完全清除。病毒可能仍然隐藏在系统的某个角落,等待合适的时机再次发作。 ......
  • QOJ 7008 另解
    文中符号:\(\operatorname{Period}(s)\):字符串\(s\)的周期集合。\(\operatorname{Per}(s)\):字符串\(s\)的最小周期。循环节:\(x\in\operatorname{Period}(s)\)且\(x|\operatorname{len}(S)\)。\(\operatorname{Cyc}(s)\):\(s\)的最小循环节。\(\operatorname{endpos}(......
  • 进程间通信(27000字超详解)
    ......
  • 代码随想录算法训练营第第20天 | 654.最大二叉树 、617.合并二叉树 、700.二叉搜索
    654.最大二叉树又是构造二叉树,昨天大家刚刚做完中序后序确定二叉树,今天做这个应该会容易一些,先看视频,好好体会一下为什么构造二叉树都是前序遍历题目链接/文章讲解:https://programmercarl.com/0654.最大二叉树.html视频讲解:https://www.bilibili.com/video/BV1MG411G7ox......
  • 在华为,请假一天的代价是3700…
    大家好,我是赵老师。最近,一篇「在华为,请假一天的代价是3700」的帖子引发网友热议原来,在华为请假会影响每个月的奖金和年终,所以很多人都会选择拿周末的加班来调。在华为周末加班是双倍工资,请假一天相当于扣除双倍的日工资,倒推一下,小编盲猜每月基础工资大概是3700/2*20=......