就在几周前,每个安全分析师都在谈论一个名为 Lapsus$ 的勒索组织:他们窃取并泄露了一些大型科技公司的源代码,其中包括来自三星的近200GB 源代码和微软必应、必应地图以及 Cortana 项目的部分源代码。而就在几个月之前,流媒体平台Twitch也遭遇了同样的命运。
过去几年中,我们目睹了企业数据库在线泄露事件的激增。虽然所有提到的泄密都属于恶意行为——黑客的动机是通过表明他已经入侵了公司并可以访问数据来向公司施加压力——但我们不要忘记,错误发生的频率确实比我们想象的要多,而且悄无声息:当开发人员以为在私有环境中工作却无意中推送到公共数据库就足够了。
不幸的是,除了明显的声誉损害之外,源代码泄露的问题有时会被误解。因此,本文将总结源代码泄漏导致的风险,但最重要的是,为您提供了解您的公司是否成为受害者的方法。今天将邀请您使用专用的免费工具来评估您的 GitHub 足迹。
源代码和知识产权
在一个95% 的 IT 部门都会以某种方式依赖开源软件的世界里,人们很容易忘记,从编写第一行代码的那一刻起,源代码就被视为知识产权,它受版权保护。事实上,包含说明版权所有者和权限的源代码文件很常见。
从本质上讲,源代码是一种有漏洞的资产。分布式版本控制系统和代码共享平台极大地促进了整个代码库在互联网上的扩展和应用。与此同时,这又推动了开源社区的发展,并取得了巨大的成就。但对于越来越多将源代码作为核心价值资产的公司来说仍然存在问题。因此,确保在全球范围内尊重源代码版权已成为一项几乎不可能完成的任务。
源代码还可能包含版权、专利或商标无法保护的商业秘密。在一个创新和速度至关重要的行业中,如果不能对这些信息保密,对于一些初创公司来说可能就是游戏的终结。而对于较大的企业来说,更好地监控和控制源代码的哪些部分已共享以及与谁共享的目的则是为了避免诉讼费。
另一个层面,公开的源代码让黑客可以深入了解生产环境中部署的工作负载,有时会服务于数百万用户。这也可能是个问题的。
源代码中的潜在威胁
代码相当于实物产品的模型。对于精通技术的人来说,完全了解大型系统或软件的内部工作原理意味着他们可以轻松地发现硬编码凭据等漏洞。例如,GitGuardian 在扫描三星代码时发现了 6600 多个密钥:
“在三星源代码中发现的 6,600 多个密钥中,大约 90% 用于三星的内部服务和基础设施,而另外 10% 至关重要的是,可以授予对三星外部服务或工具(如 AWS、GitHub、Artifactory 和 Google)的访问权限。”GitGuardian 的开发者权益倡导者 Mackenzie Jackson 说。
这并不一定意味着黑客可以在泄漏后立即利用机密、访问控制缺陷和其他安全漏洞。但是,它仍然是他们工具箱中的另一项资产。对于攻击者来说,一些微弱的信号甚至可能比业务逻辑本身更有价值,例如开发人员的个人身份信息 (PII)、习惯、语言,以及更全球化的公司文化。数千行代码可以揭示比我们想象的更多的信息。
如何确定您的源代码是否泄露?
如前所述,无论您的企业过去是否遭受过数据泄露,您的专有代码都可能在您不知情的情况下公开出现在 GitHub 上。即使您的企业在该平台上没有正式亮相,您的开发人员也有可能参与开源项目或使用个人存储库来共享代码。
因此,应该认真对待您公司在 GitHub 上的信息。威胁情报应该可以解答以下问题:互联网上可以公开哪些资产?它们包括用户数据吗?它们是否提供了攻击者可以利用的关键且有效的信息?是否仍然可以控制泄露的资产(例如,通过启动 DMCA 删除流程)?
从技术层面讲,识别源代码泄漏的唯一解决办法是对专有代码进行指纹识别,并将其与公共文件数据库进行比较。这正是 HasMyCodeLeaked 的目的,这是GitGuardian提供的免费工具,可帮助任何人快速识别与知识产权相关的最关键匹配项。该工具的工作原理就是在 GitHub 的公共历史记录中精确查找您的代码指纹(识别文件的校验和,包括所有修订版本)。
它将为您生成包含源代码的所有存储库的可搜索报告,并通过智能过滤来识别高风险存储库。
结论
源代码泄漏需要被认真对待。它们正在损害您的品牌声誉,还可能使公司的核心资产面临风险。虽然 DMCA 删除请求可以确保从公共平台撤回受版权保护的内容,但商业机密仍有可能被泄露,并危及您业务中的创新点。在安全方面,它们提供了攻击者最重视的东西:一个软件内部工作的完整图景,包括它的缺陷、流程和所涉及的人员。
随着代码共享平台 GitHub 的爆发式发展,监控一个公司的公共足迹已成为威胁情报分析师最具挑战的任务之一。这也是HasMyCodeLeaked的由来,专门用于帮助您确定知识产权是否已泄露的免费工具。