Gab遭到入侵之前,新手编码错误来自网站的CTO

整个周末,有消息称黑客入侵了最右边的社交媒体网站Gab,并利用了各种称为SQL注入的花园式安全漏洞下载了70 GB的数据。 快速浏览一下Gab的开放源代码,可以发现该关键漏洞(或至少一个非常类似的漏洞)是由该公司的首席技术官介绍的。

这项更改在软件开发中被称为“ git commit”,是在2月某个时候从前Facebook软件工程师Fosco Marotto的帐户进行的,Fosco Marotto在11月成为Gab的CTO。 周一,Gab从其网站上删除了git commit。 下面的图像显示了2月的软件更改,如提供保存的提交快照的站点所示。

存档

该提交显示了一个使用Fosco Marotto命名的软件开发人员,准确地介绍了可能导致本周末报告的违规行为的菜鸟错误类型。 具体来说,第23行去除了“ reject”和“ filter”的代码,它们是API函数,实现了防止SQL注入攻击的编程习惯。

开发人员:清理用户输入

该惯用语使程序员能够以安全的方式编写SQL查询,以“清理”网站访问者在搜索框和其他Web字段中输入的输入,以确保在将文本传递给后端服务器之前,先清除掉所有恶意命令。 取而代之的是,开发人员向Rails函数添加了一个包含“ find_by_sql”方法的调用,该方法直接在查询字符串中接受未经过滤的输入。 Rails是一种广泛使用的网站开发工具包。

“ Sadly Rails文档没有警告你这个陷阱,但是,如果你完全了解在Web应用程序中使用SQL数据库的任何知识,你就会听说过SQL注入,并且不难发现警告,指出find_by_sql方法不正确。安全,” Facebook的前生产工程师Dmitry Borodaenko在电子邮件中写道。 “没有100%确认这是Gab数据泄露中使用的漏洞,但确实可以做到这一点,并且此代码更改已在其GitLab存储库中使用之前的最新提交中恢复。离线。”

广告

具有讽刺意味的是,Fosco在2012年警告其他程序员,请使用参数化查询来防止SQL注入漏洞。 Marotto没有回复一封电子邮件,希望对此帖子发表评论。 尝试直接联系Gab失败。

修正主义者的历史

除了提交有关Gab开发安全代码的过程的问题外,社交媒体网站还面临着从其网站删除提交问题的批评。 批评人士说,此举违反了Affero通用公共许可的条款,该许可规范Gab对Mastodon的重用,Mastodon是用于托管社交网络平台的开源软件包。

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

Gab长期以来在https://code.gab.com/上提供提交。 然后,在星期一,该站点突然删除了所有提交,包括那些创建并修复了严重SQL注入漏洞的提交。 Gab代替了他们,以Zip存档文件的形式提供了源代码,该文件受加密货币“ JesusChristIsKingTrumpWonTheElection”(减去引号)保护。

Mastodon项目的代表没有立即回复电子邮件,询问他们是否同意批评者的担忧。

除了有关安全编码和许可证合规性的问题外,Gab git提交似乎还表明公司开发人员正在努力修复其易受攻击的代码。 下图显示了使用用户名“ developer”的用户尝试完全修复包含SQL注入漏洞的代码,但未成功。

线程参与者通过讽刺地指出开发人员似乎遇到的困难来回应。

Gab的安全漏洞和事件前后的幕后代码处理为开发人员提供了一个案例研究,说明如何不维护网站的安全性和代码透明性。 鉴于提交的内容使用了Gab的CTO的帐户,因此该价格更为重要,他在所有人中应该都了解得更多。


资讯来源:由0x资讯编译自ARSTECHNICA,版权归作者Dan Goodin所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢