2020年9月17日

微软、华为海思、高通等 50 家公司源代码被泄露!

作者 管理员

一个木桶的盛水量,是由最短的那块板决定的。在安全领域,什么才是那条短板?亦或是人,亦或是工具。

整理 | 屠敏
出品 | CSDN(ID:CSDNnews)

一场场代码泄露事件的发生将安全问题再次推进大众视野中,而安全向来无小事。

近日,知名游戏厂商任天堂被爆大批游戏的源代码遭到泄露,对此,业界甚至以“Gigaleak”一词形容其泄露的代码量之大。而追根溯源,这或许今年 5 月份任天堂遭到史上最大规模的黑客攻击有关,本次泄露的源代码包含了 Super NES、Game Boy 和 N64 平台的 Mario、Mario Kart、Zelda、F-Zero 等游戏的可编译代码和素材。这些代码中还隐藏着许多从未发布过的预发行游戏艺术和声音文件,以及一些游戏的完全可玩的原型版本。对此,任天堂拒绝置评,不过,泄露的巨大规模及代码的复杂性暗示了该事件的真实性。

然而,一波未平一波又起,在安全领域,继任天堂之后,据外媒报道,全球有超过 50 家企业的源代码遭到泄露,其中覆盖科技、金融、零售、食品、电子商务、制造业等领域,涉及微软、Adobe、联想、AMD、Qualcomm、摩托罗拉、华为海思、联发科技、GE等诸多知名公司。值得注意的是,与任天堂遭到黑客攻击的泄露方式有所不同,这些企业的源代码泄露部分原因或源于技术设施配置操作不正确引起。

大批源代码被公开在 GitLab 上

据外媒 Bleeping Computer 报道,相关的漏洞是由一位名为 Tillie Kottmann 的瑞士软件开发者兼逆向工程师收集完成的,他通过各种现有的第三方来源以及从配置错误的 DevOps 应用程序中积累了大量的源代码,并将这些漏洞以“机密”和“机密/专有”的名称发布在任何人都可以访问的 GitLab 存储库中。

目前从 Kottmann 的服务器中可以看到,部分代码来自金融科技公司(Fiserv、Buczy Payments、Mercury 贸易融资解决方案)、银行(Banca Nazionale del Lavoro)、身份和访问管理开发人员(Pirean Access:One)和游戏。

对此,Kottmann 表示,他们在易于访问的代码存储库中找到了硬编码的凭证,同时,在发布源代码之前,他们试图尽可能地删除这些凭据,以防止对相关的企业带来直接伤害,避免造成任何更大的安全漏洞及攻击。

硬编码凭证是创建后门的一种流行方式。硬编码凭证通常在配置文件和帐户枚举命令输出中不可见,并且无法轻松更改(无需从源重建,如果源可用或逆向工程,二进制修改和完整性检查(数字签名,防篡改)和反作弊)旁路(可以通过EULA禁止)。
不过,Kottmann 也承认,在发布源代码之前,他并不是和所有受影响的公司都有联系,同时其也努力将发布所产生的负面影响降至最低。至于是否有其他人参与这个项目,他们也不清楚。

截止目前,Tillie Kottmann 在接受外媒采访时表示,因为不安全的 DevOps 应用程序导致公司专有信息暴露,他已经撤回源代码。

而一位专注于银行威胁和欺诈的匿名安全研究人员 @Bank_Security 透露,“来自 50 多家公司相关的源代码已泄露并发布在公共存储库中。在某些情况下,存在硬编码的凭据。”

与此同时,他们在 Pastebin(https://pastebin.com/aAnaLgS8)上发布了受影响公司的列表:
在这里插入图片描述

安全问题仍然存在

在安全层面,Tillie Kottmann 表示,他们愿意遵守撤销源代码上线的请求,也乐意提供信息,用以加强相关公司基础设施的安全性。

不过,从收到的 DMCA 通知数量(估计最多 7 份)和来自法律或其他企业代表的直接联系来看,许多公司可能不知道该泄漏的存在。

同时也有一些源代码被公开的企业懒得去删除或修复。据外媒报道,在一个实例中,有一家公司的几位开发者只想知道 Kottmann 是如何得到代码的,而并没有要求将源代码下线。

源代码泄露的背后

从 Kottmann 在 GitLab 服务器上公布的部分代码显示,我们发现一些项目是由其原始开发者公开的,亦或是上一次该项目的更新早已是很久以前的事情。

不过,Kottmann 表示,仍有不少公司使用错误配置的 Devops 工具公开源代码。此外,他们也正仍在研究及探索运行着 SonarQube 的服务器,SonarQube 是一个用于自动代码审核和静态分析的开源平台,以发现 Bug 和安全漏洞。Kottmann 认为,目前有成千上万的公司由于未能正确使用及防护 SonarQube 而导致自己的私有代码泄露。

除此之外,在深入研究源代码泄露事件时,Synopsys 网络安全研究中心首席安全策略师 Tim Mackey 表示:“ DevOps、DevSecOps 和 Configuration as Code,仅举几个较为流行的术语,它们都有一个共同特点,即这些工具都将源和潜在的配置信息存储在代码存储库中。许多存储库中使用的基础技术旨在促进分布式团队之间的协作,这些在开源社区中很常见。”

对此,Tim Mackey 进一步解释道,为了避免泄露关键信息,开发者需要对代码存储库的使用进行适当地管理。他表示,:“例如,开发一套 QA 测试工具,相关的开发者可能会将他们的代码放在存储库中。如果该代码作为原型,那么他们在正确管理密码或访问令牌之类的机密信息时,可能不会采取预防措施。如果员工在发布其原型代码时采取捷径,而相关员工和公司老板的身份是已知的(例如通过LinkedIn),并且可以映射到一个存储库(例如 GitHub),那么黑客就可以发起有针对性的攻击以寻找错误的判断。”

基于以上,也有不少网友担心泄露的代码会被用于不正规的用途,而其会带来的后果也正如安全专家对《Tom’s Guide》所述,“失去对互联网源代码的控制就像是将银行的蓝图交给抢劫犯一样。”

针对这一观点,众人看法不一。网络安全公司 ImmuniWeb 的创始人兼首席执行官 Ilia Kolochenko 表示:“从技术角度来看,这些泄漏并不是那么严重。除非你拥有其他技术,而且具备复杂系统正常运行的人员的权限,否则大多数源代码都是毫无价值。而且,源代码如果没有每天的支持与迭代会迅速失效。因此,不道德的竞争者不太可能从中获得很大的价值,除非他们正在寻找非常特定的软件。”

对此,你怎么看?