据外媒 BleepingComputer 报道,俄罗斯科技巨头 Yandex 源代码存储库惨遭泄露,在一个主流的黑客论坛上,该源代码库被以 Torrent 磁链的方式对外呈现。

不过,Yandex 在一份声明中表示,自家公司并不是遭到了黑客攻击,而是一名员工从中作梗,最终这名员工也变成了“前任”。

1、Yandex 所有主要服务的源码遭泄露

Yandex 这家公司,想必不少人也并不陌生,它是俄罗斯最大的 IT 公司之一。其提供的服务要比国外的 Google、国内的百度或阿里腾讯要多得多,对此,也有人评价道,可以想象一下,一家公司可以取代 Google、Uber、亚马逊、Netflix 和 Spotify 是什么概念。

在黑客网站上,泄密者标注了一个名为 Yandex git sources 的文件,其中暗藏 Yandex 多款服务的源代码,具体包括了 2022 年 7 月泄露者从该公司窃取的 44.7GB 的文件,而这些代码库覆盖除了 Yandex 反垃圾邮件规则外的所有源代码。

对此,国外一位软件工程师 Arseniy Shestakov 综合了所有公开信息,进一步分析了 Yandex 服务源代码内容,最终有了一些新的发现。其表示,“看起来至少 Yandex 所有主要服务的源代码都被泄露了。”

具体包括:

  • Yandex 搜索引擎和索引机器人
  • Yandex 地图
  • Alice(AI 语音助手)
  • Yandex 出租车服务
  • Yandex 定向(广告服务)
  • Yandex 邮件
  • Yandex Disk(云存储服务)
  • Yandex 市场服务(有些类似于亚马逊)
  • Yandex 旅行服务(旅游预订平台)
  • Yandex360(工作空间服务)
  • Yandex 云服务
  • Yandex Pay(支付处理服务)
  • Yandex Metrika(互联网分析服务)

此次数据泄露的规模有些超乎想象。与此同时,据 Arseniy Shestakov 深挖发现,所有泄露文件的日期都可以追溯到 2022 年 2 月 24 日。

2、代码解析

稍微值得庆幸的是,这些文件主要是存储库的内容,不包含 git 历史记录,且大多数软件没有预构建的二进制文件,只有少数例外。因此,这次泄露的信息没有个人数据,此外,没有内部工具的代码本身也不太可能完全重现出一些 Yandex 的服务。

不过,有一些开发者倒是从泄露的源码中发现了一些不同之处。来自加拿大的一名黑客 Aubrey Cottle 注意到,通过 Yandex 泄露的代码文件显示,该搜索平台包容种族主义,通过一些代码就可以显而易见。

3、Yandex 紧急回应

据网友统计,Yandex 此次泄露的文件包含了公司 79 个服务和项目的代码。面对如此大规模的泄露事件,Yandex 也快速地进行了回应,其发言人 Polina Pestova 表示:

Yandex 没有被黑客入侵。我们的安全服务发现了公开可用的内部存储代码片段,但是它们的内容与 Yandex 服务中使用的当前存储库版本不同。
存储库是用于存储和处理代码的工具,大多数公司在内部都是以这种方式使用代码。存储库是处理代码所必需的方式,而不是用于存储个人用户数据。我们正在对向公众发布源代码片段的原因进行内部调查,但我们没有看到对用户数据或平台性能的任何威胁。

不过据 BleepingComputer 报道,Yandex 前高级系统管理员、开发副主管兼传播技术总监 Grigory Bakunov 在探讨这一次的泄漏事件时表示,数据泄露的动机是政治性的,好在此次涉及数据泄露的 Yandex 员工并没有试图将代码出售给竞争对手。

这位前高管补充道,泄漏不包含任何客户数据,因此不会对 Yandex 用户的隐私或安全构成直接风险,也不会直接威胁泄漏专有技术。

Yandex 使用一种名为为“Arcadia”的单存储库结构,但并非所有公司的服务都使用它。此外,即使只是为了构建服务,开发者也需要大量的内部工具和专业知识,因为标准的构建过程不适用。
泄露的存储库仅包含代码;另一个重要部分是数据。关键部分,如神经网络的模型权重等,都不存在,所以它几乎没用。
尽管如此,还是有很多有趣的文件,如一个名为“blacklist.txt”的文件,可能会暴露 Yandex 的工作服务。

当然,不容忽视的是,黑客还是可以利用这些源码来寻找 Yandex 服务的漏洞等。

4、科技公司如何防止内部员工背后的“小动作”?

此次由内部员工引发的泄露事件一经披露,也引发了不少科技公司的警觉。毕竟近几年来,内部员工“删库跑路”早已屡见不鲜,一旦遇上,虽然可以追责,但对公司自身的发展带来的伤害和损失在一定层面已经无法挽回,因此,如何从内部尽可能地减少此类事件的发生,也成为各家企业颇为关注的问题。

在此,一位开发者 Frank Forte 也从安全性限制方面总结了几点建议,希望对大家有所裨益:

一、限制工程师、运维等岗位员工对代码的访问。

企业可以设置单独的代码存储库,只允许员工访问他们需要查看和处理的部分代码。或许也可以为此使用 Bitbucket(基于 Web 的版本库托管服务)之类的东西,然后在每个 repo 上设置权限。

然后企业可以编写脚本将不同的存储库组合成最终产品。

这将方便企业便于管理,能够使敏感代码远离新员工或外包人才。

不幸的是,如果公司的代码是紧密耦合的,这几乎是不可能的,因为大部分代码需要成为正在构建或测试的项目的一部分。

分割代码并不能防止代码泄露,但它确实在一定程度上到限制作用。

二、拟定强有力的员工合同

通过一份完善的员工合同,可以阻止员工泄露代码。因为一旦涉及到泄密,可能会被抓捕、起诉,还可能会限制未来的工作前景,因为没有公司会希望自己招聘的新员工被波及到一些因专有代码而被起诉的案件中。

三、有明确的员工政策

让公司内部员工清楚地了解什么是“泄漏代码”。在 Stack Overflow 等论坛上发布大量代码以获得帮助可能会无意中泄露信息。告诉他们不要这样做,并对这样做的处罚。

四、登录并维护权限和访问权限

企业内部管理层应该及时了解工程师谁有权访问以及他们何时有权访问一些系统。当工程师不再需要相关系统权限时,应立即删除访问权限。

当然,以上仅是从一些大的维度来分享一些防御措施,更为关键的是还是需要企业自身学会识人、用人,对此,你还有什么样的防御建议,欢迎留言分享~~

参考链接:

https://www.quora.com/How-do-tech-companies-make-sure-that-employees-can-t-steal-or-leak-their-source-code

https://www.bleepingcomputer.com/news/security/yandex-denies-hack-blames-source-code-leak-on-former-employee/

https://arseniyshestakov.com/2023/01/26/yandex-services-source-code-leak/