前有“程序员删库跑路”,后有 CTO 在网站后台引入 Bug,导致公司 1.5 万账户信息外泄。

整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

近日,据外媒报道,美国开源社交网络服务平台 Gab 受到黑客攻击,其中,包括一些知名人士在内的 1.5 万 Gab 账号及个人信息遭到泄露。

据悉,一位未透露姓名的黑客利用 SQL 注入漏洞入侵 Gab 后台,并从数据库中窃取了约 70 GB 数据提供给了爆料组织 Distributed Denial of Secrets(简称 DDOSecrets)。这些数据包括了 7 万多条信息、4000 多万条帖子,以及哈希密码、明文密码、用户个人资料等。

然而,在 Gab 公司审查并欲修复漏洞之际,竟然发现此 Bug 出自自家公司的 CTO 之手,而这究竟又是怎么一回事?

CTO 写的 Bug,后果很严重!

正如上文所述,Gab 公司在遭到黑客攻击后,爆料组织 DDOSecrets 团队公开发文表示,“正在将这些泄露的数据汇编成了一个 GabLeaks 的文件,同时将对外分发共享此数据集,记者、学者以及研究者可以通过公开渠道与其获得联系,对这些信息进行研究学习。”

在知晓这一消息之后,Gab 创始人 Andrew Torba 发表声明强烈谴责了相关的组织以及传播的记者。

不过,就在谴责泄露组织及相关人员之际,Gab 内部也对网站的整体安全进行了审查。然而万万没想到的是,在快速浏览了 Gab 的开放源代码之后,竟然发现关键漏洞(至少有一个非常类似的漏洞)是源自 Gab CTO 提交的代码。

据外媒报道,通过查看 Gab 公司提交的“Git commit”更改记录中发现,今年 2 月,有一个名为 Fosco Marotto 的软件开发者,提交了一份代码。在这份代码中存在一个很明显的错误类型,而这往往是新手才容易犯的错误,即第 23 行代码中,拆分了“reject”和“filter”代码,这两个 API 函数实现了防止 SQL 注入攻击的编程习惯。

这种惯用的方法可以帮助程序员能够以安全的方式编写 SQL 查询功能,且可以“清理”网站访问者在搜索框和其他 Web 网站中输入的字段,借此来确保在将文本传递给后端服务器之前,先清除掉所有恶意命令。

不过,开发者也需要向一个包含“find_by_sql” 方法的 Rails 函数添加了一个调用,这一方法直接在查询字符串中接受未经过滤的输入(Rails 是一种广泛使用的网站开发工具包)。

对此,Facebook 的前产品工程师 Dmitry Borodaenko 在一封电子邮件中写道,“ 或许 Rails 的官方文档没有警告过用户存在这个陷阱,但是,如果作为开发者,完全了解在 Web 应用程序中使用 SQL 数据库的任何知识,那么,相信你也听说过 SQL 注入,由此也不难发现“find_by_sql”方法不正确的警告。”

同时, Dmitry Borodaenko 指出,“现在并非能够 100% 确认这是在 Gab 数据泄露中使用的漏洞,但是不排除可能性,现在 Gab 团队已经将其在 GitLab 存储库中提交的最新代码恢复到了上一版本 。”

那么,要问 Fosco Marotto 是何许人也?

据悉,Fosco Marotto 此前在 Facebook 作为软件工程师任职 7 年,2020 年 11 月,正式加入 Gab 平台担任 CTO 一职。针对上面所犯的错误,也颇具有讽刺意义的是,Fosco 曾在 2012 年提醒过其他程序员,一定要使用参数化查询来防止 SQL 注入漏洞。

如今,Gab 已从其网站删除了 Git commit。

修正主义者的历史

然而又是这一举措,Gab 再次成为众矢之的。

作为一家创业型的开源社交网络服务平台,其支持言论自由,也一直被视为 Twitter 的最佳替代品,不过,Gab 此次在没有任何解释之下,直接删除提交的代码,引发业界不小争议。

对此,有批评人士称,此举违反了 Affero 通用公共许可的条款,该许可将规范 Gab 对 Mastodon(用于托管社交网络平台的开源软件包)的重用。

据公开资料显示,GNU Affero 通用公共许可协议是一个广泛被使用的自由软件许可协议,其改自 GNU 通用公共许可协议,并加入额外条款,其目的是为了 Copyleft 条款应用于在网络上运行的应用程序(如 Web 应用),从而避免有人以应用服务提供商方式逃避 GNU 通用公共许可协议。

批评人士表示,Gab 的删除行为违反了要求从网站直接链接到分叉源代码的条款。这些要求旨在提供公开、透明度,并使其他开放源代码开发者可以从 Gab 的同行中受益。

据报道,Gab 一直都是在 https://code.gab.com/ 上提交代码的。

但是,本星期一,Gab 突然删除了所有提交,包括那些创建并修复了严重 SQL 注入漏洞的提交。取而代之的是,Gab 使用了 Zip 存档文件的形式提供了源代码,该文件受密码“ JesusChristIsKingTrumpWonTheElection”的保护。

截止目前,据 Gab Git commit 显示,该公司的开发者也正在努力修复其易受攻击的代码。正如下图所示,一位用户名为“ developer”的开发者正在尝试完全修复包含 SQL 注入漏洞的代码,但最终并未成功。

网友:不足为奇

针对这样的错误,也引发了不少网友的讨论:

  • 一点都不足为奇。在某一时刻,当他们有一个 API 时,我可以跟踪和看到在网站上看不到的"锁定"帐户中的信息。我对他们网站反馈了这一问题,他们回复说:“哦, 是的, 我们现在正在做很多改变,”然后从来没有修复过这一 Bug。

  • 对于企业而言,CTO 应该专注于战略层面,手里下应该会有 1-2 位开发者来领导日常的开发工作,并针对此类基本问题(或使用代码分析器)进行代码审查,以检测 sql、xss、xsrf、会话管理、基于密码的用户数据加密、消息加密和其他琐事。这并不是说我喜欢 Gab 这家公司,但我不知道有多少这样的新手错误,然后最终会被归咎于"外包公司"。

  • 这是糟糕的代码, 有点让我吃惊的是, 一个前 Facebook 工程师写了它 (后来成为 CTO),显然,Gab 并没有雇佣到一位最优秀、最聪明的 CTO。

对此,你怎么看?

参考链接:

  • https://ddosecrets.substack.com/p/release-gableaks-70gb

  • https://arstechnica.com/gadgets/2021/03/rookie-coding-mistake-prior-to-gab-hack-came-from-sites-cto/?comments=1

  • https://www.knowpia.cn/pages/affero%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81

CTO 写低级 Bug,致公司 70 GB 数据遭泄露!相关推荐

  1. 实力坑队友! CTO 写出低级 Bug,致公司 70 GB 数据遭泄露!

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘转载自CSDN(ID:CSDNnews) 整理:苏宓 近日,据外媒报道,美国 ...

  2. CTO 写低级 Bug,致公司 70 GB 数据泄露!

    点击

  3. 大厂来的水货CTO:低级bug被敲诈50万美元,事后删代码隐藏证据,最后收到死亡威胁...

    转载自:量子位 堂堂一家公司的CTO,到底能水到什么程度? 因为一个低级错误,70GB大小的信息数据被泄露,公司还被黑客敲诈了50万美元. 而被发现后,他为了隐藏证据,竟还删掉了代码- 这就是最近在一 ...

  4. Git 仓库配置不当 日产北美公司的源代码遭泄露

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士团队 日产北美公司所开发和使用的移动应用及内部工具的源代码遭泄露,原因是该公司的其中一个 Git 服务器配置不当. 瑞士软件工程师 Tillie ...

  5. 某大厂来的水货CTO,写出了新手都不会犯的低级 Bug,被骗300W!就里就不点名了!...

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 转载自CSDN(ID:CSDNnews) 整理:苏宓 近日, ...

  6. CTO 写的低级 Bug 再致网站被黑,CEO 的号都被盗了!

    ‍‍ 整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 上周,美国开源社交网络服务平台 Gab ,因其 CTO 写的低级 Bug 受到黑客攻击,导致约 70GB 的数据被窃取. 可该公司 ...

  7. 阿里程序员写了一个新手都写不出的低级bug,被骂惨了。

    你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和 ...

  8. 程序bug致损失400亿,判程序员坐牢? 搞笑我们是认真的

    号外!号外!走过,路过,不要错过!日本 IT 业的狗血八卦继续独家放送啦!! 2015 年 9 月 3 日,随着东京最高法院驳回瑞穗证券的上诉,维持二审的原判结果,一个长达 10 年的诉讼终于画下了句 ...

  9. 由苹果的低级Bug想到的

    前段时间的问题,本来想写篇文章说说代码规范,code review相关的,不过看到果壳已经有篇很棒的文章,借来放在这里,也是对自己的指导.果壳很好,里面的文章都很有很有含金量,建议大家都收藏起来 原文 ...

最新文章

  1. nginx启动报错:Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' fo
  2. Android中SearchView修改字体颜色
  3. 中国农业大学计算机专业在陕西录取分数线,陕西考生,400多分被985大学录取,分不高的考生“捡漏“注意这几点...
  4. 手把手教你 Spark 性能调优
  5. leetcode面试题 17.15. 最长单词
  6. WPF动态改变主题颜色
  7. 二叉树的遍历实验报告C语言,数据结构-二叉树的遍历(类C语言描写叙述)
  8. 手动卸载McAfee
  9. vue中使用快递鸟打印订单
  10. Windows10创建系统还原点
  11. iphone访问限制在哪 苹果手机设置访问限制方法
  12. mt4的服务器在哪个文件,mt4的服务器地址
  13. 通过拼多多根据ID获取商品详情数据简易操作
  14. 三国志战略版:三势贾的另类搭配,也可以这么强?
  15. ThinkRock简介
  16. 疾病研究:重症肌无力
  17. 机器学习 | MATLAB实现BP神经网络newff参数设定(上)
  18. echarts中的地图与Axure交互
  19. 研二非科班研究生如何备战秋招
  20. ​第3大品牌「鞋王」沦陷,看历史王者的产品史

热门文章

  1. 火星人敏捷接开发手册 2011-09-12
  2. 浅析SVM中的对偶问题
  3. Redis笔记5-redis高可用方案
  4. mysql 密码忘记
  5. Struts2的文件上传
  6. 用深度GHOST XP SP3在虚拟机下的安装发表于 : 2009-06-21 17:02
  7. C#操作数据库,分页、执行存储过程等 [二] - ADO.NET入门之中
  8. 自己写的Point类
  9. 微软公司2008新技术预览大会
  10. 《SQL高级应用和数据仓库基础(MySQL版)》作业 ·005