大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
堂堂一家公司的CTO,到底能水到什么程度?
因为一个低级错误,70GB大小的信息数据被泄露,公司还被黑客敲诈了50万美元。
而被发现后,他为了隐藏证据,竟还删掉了代码…
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s5.51cto.com/oss/202103/08/794167873ca24cc8d11d7a948caaa514.jpg)
这就是最近在一个社交媒体网站Gab上发生的真实事件。
上周末,黑客通过SQL注入漏洞入侵他们的官网,并窃取了15000位用户的数据。
这其中还包括特朗普。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s3.51cto.com/oss/202103/08/917685e9667e432455b7d778037ac89a.jpg)
后经媒体调查发现,关键漏洞竟是由该公司的CTO造成的。
而这位CTO是一位入职不到半年,但有着23年开发经验的工程师。
其前东家更是名牌“大厂”——Facebook。
于是就有网友质疑,这是公司眼瞎了?还是CTO太水了?
大厂“毕业”CTO,犯下致命低级错误
而事件的起因,是一位黑客利用SQL注入漏洞入侵了公司后台,窃取了数据。
这其中包含用户公开、私人的帖子、哈希密码以及私人资料,共涉及70000条信息。
不光如此,黑客还将此事透露给了一个爆料网站DDoSecrets,与维基解密类似,从事披露黑客窃取的数据和机密信息等工作。
在事件公开之前,该网站的记者还在社交网络上挑衅Gab的CEOAndrew Torba:
DDoSecrets甚至都没有宣布任何消息,Gab就已经害怕了。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s6.51cto.com/oss/202103/08/ee503842d28042f32ddcdfeedeba7a23.jpg)
随后,不少媒体、专家在调查了这家公司的git commit记录之后发现,是一个名叫“Fosco Marotto”账户,更改了后台的代码,才让黑客有机可乘。
而Fosco Marotto,正是公司的CTO。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s3.51cto.com/oss/202103/08/d6343f43aa49b1b1c142a88ee6a987a9.jpg)
不过目前,提交代码已经被删除。
但还是被有心人找出了当时的网站快照。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s6.51cto.com/oss/202103/08/5bd62c9a776efa8fd50690592efb007a.jpg)
快照上显示,代码中存在明显的低级错误,第23行中的“reject”和“filter”被删除了。
这两个API函数,原本用于拦截SQL注入漏洞的攻击。
具体而言,就是当SQL指令传送到后端数据库服务器时,确保其中的恶意命令已经被清除。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s6.51cto.com/oss/202103/08/7b508810635088818d6c6146e30ec027.jpg)
但他们没有采取这种做法,而是在Rails函数中,添加了一个包含 “find_by_sql”方法的调用,导致查询字符串中的输入未经过滤,而被直接接受。
(Rails是一个网站开发工具包)
一位Facebook 的前产品工程师Dmitry Borodaenko表示:
如果对SQL数据库有任何了解的话,就应该听说过SQL注入攻击。
虽然现在还不能百分百确定是由这个漏洞所引起的,但也是极有可能的。
还有不少专家批评了公司事后删除git commit的行为。
这种删除违反了“分支源代码必须公开透明”的条款。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s2.51cto.com/oss/202103/08/a851fde04d326adb67016e64169e1933.jpg)
讽刺的是,早在2012年,这位CTO还在StackOverFlow上警告过其他程序员别犯这样的错误:
应该使用参数化查询,防止被SQL注入攻击。
因此就不免让部分网友怀疑,这次他是故意泄露数据的。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s5.51cto.com/oss/202103/08/005b070929207dc8d4f82a8f7e6d8d71.jpg)
CTO:生平第一次受到死亡威胁
事情还没有公开报道的时候,Gab就立刻回应了此事,应该是因为一些记者收到了该公司的泄露数据。
2月26日,Gab CEOAndrew Torba就发表官方声明,否认了这一入侵行为。
我们发现了这一漏洞,并在上周已经进行了修补,还将着手进行全面的安全审核。
并表示就个人信息而言,Gab从用户那里收集的信息非常少。因此一旦发生泄漏,对用户的影响也会降至最低。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s4.51cto.com/oss/202103/08/0739588029a9a804de18b857004edb27.jpg)
但这件事被ArsTechnica报道、事态更加严重之后,Gab选择了与CTO站在一起一致对外。
CEOAndrew Torba连发两条声明,承认了官网被入侵这一事实。
他还表示公司正受到黑客的勒索,赎金为近500000美元的比特币,并且此事已经向执法部门报告。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s2.51cto.com/oss/202103/08/e1942d9606a9a600234569b350595c00.jpg)
而当事人——CTOFosco Marotto,也在HackerNews发表了个人声明。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s5.51cto.com/oss/202103/08/5a42bc06c2169ff5ed089eadc7963f1b.jpg)
当中显示“自己生平第一次受到了死亡威胁”,“目前没有任何证据显示,那次代码提交与这次黑客入侵有任何直接联系”,“向ArsTechnica提供消息的那个人,跟我有个人恩怨”。
还给出了一些辩驳的理由:
我过去写了很多年的SQL,当然清楚用户输入的重要性。我还曾用各种语言写过很多用户输入的代码。
我并不是一个Rails开发者,我对Rails和ActiveRecord是持否定态度的。
网友:CTO还自己写代码?
事件一出,不少网友直接将矛头指向CTO:为什么C级高管还要亲自写代码?
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s4.51cto.com/oss/202103/08/1abddf74170b9926d968843c8e3f5e6e.jpg)
有人认为,CTO应该有更重要的职责,比如战略制定和决策,而不是关注细节,更不会亲自写代码。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s4.51cto.com/oss/202103/08/bf5f9f84772e60a352affa3f468f31b5.jpg)
对此,也有人提出不同观点:
这并不是通用法则,在不同的公司,CTO的工作内容可能会大不相同。
在Gab这样的小型初创公司,CTO作为技术水准最高的人,亲自写代码,并非是不可能的。即便不是亲自写代码,也需要为项目的交付流程负责。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s5.51cto.com/oss/202103/08/57f8eec6847491e21e7e1c299c25a807.jpg)
不过,让黑客利用SQL注入攻击,还发生在一位前Facebook工程师身上,这实在让很多网友感到难以置信。
一位网友直言道:如果CTO审查后还出现这种错误,他就是个白痴,要么就是工程师们在欺骗白痴。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s4.51cto.com/oss/202103/08/e7c2c9bc73519338bdd4ba60fc0c38b1.jpg)
也有网友为他鸣不平
部分网友表示:任何人都可能犯菜鸟错误,这就是为什么即使是老板,也要进行代码审查的原因。
曾在Facebook担任高级软件工程师的一名网友,对此一点都不觉得惊讶:“没有听说过快速行动并解决问题吗?重点是代码速度,而不是质量。”
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s2.51cto.com/oss/202103/08/b41c7a345deff4f23823bee3424aa911.jpg)
也有网友认为,前Facebook工程师不会犯菜鸟编码错误,帐户可能是被盗了。
不过随即被网友回复:“被盗也只是另一个新手错误。”
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s3.51cto.com/oss/202103/08/8a6352d65a16357fc88bf8b7340f0216.jpg)
还有网友指出,Gab也许没有静态分析安全测试工具(SAST),要么就是故意忽略了系统反馈。
现有的任何一个代码静态分析工具都会告诉你,这样编写SQL是一个非常糟糕的做法。CI管道甚至会直接拒绝代码,拒绝合并代码。
也就是说,即使开发人员忽略了这个明显的漏洞,系统本身也能阻止它。
毫无疑问的是,无论过程如何,作为CTO的Fosco都要为这次事件承担责任。
![大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码](https://s4.51cto.com/oss/202103/08/f4bbe23397da48bc9a1baaab565ed97a.jpg)
CTO们请注意!
那么问题来了:如何避免重蹈Fosco的覆辙?
这里有一份5.6K星的免费清单。
几乎关于CTO的一切,都能在里面找到,简直是CTO培养的保姆级指南。
不过这份指南,将重点针对初创公司和高速增长型企业的CTO和研发副总裁。
内容涵盖了从录用到管理、技术、营销等方面。
大致包括:角色定位、录用流程、管理方法、员工手册、开发过程、软件架构、技术学习、初创企业、产品、营销,以及其他相关资源的链接。
好了,就剩最后一个问题了。
首先你得是一个CTO。(手动狗头)
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的