1 月 31 日,流行的代码托管平台 GitHub 报告称,一名未经授权的用户于 2022 年 12 月 6 日获得对其系统的访问权限,并窃取了三份加密代码签名证书(一份 Apple Developer ID 证书和两份 DigiCert 颁发的证书)。一旦检测到,GitHub 立即撤销了未经授权的凭据。本周该公司宣布,作为额外的预防措施,它将在 2 月 2 日撤销证书。
代码签名证书是软件应用程序开发人员“签名”其代码以声明其来源的一种行之有效的方式,对于在软件供应链中建立信任至关重要。我们最近分享了代码签名攻击的严重性和频率都在增加,正如Nividia事件所表明的那样,并列出了确保代码签名安全的最佳实践。作为数字信任的领先提供商,DigiCert希望对此事有所了解,并就如何确保数字代码签名密钥的安全提供指导,以帮助防止这种情况再次发生。
GitHub被盗的代码签名密钥出了什么问题
根据 GitHub 的说法,“2022 年 12 月 6 日,我们的 atom、桌面和其他已弃用的 GitHub 拥有的组织的存储库被与机器帐户关联的受损个人访问令牌 (PAT) 克隆。”公司于12月7日撤销了未授权用户的访问权限,随后发现三份GitHub代码签名证书被盗;但是,没有证据表明攻击者能够解密和使用证书。第一个 DigiCert 证书于 1 月 4 日到期,第二个证书于 2 月 1 日到期。然而,Apple Developer ID 证书的有效期至 2027 年,因此 Apple 正在监控使用该证书签名的任何可执行文件。
代码签名密钥被盗的后果可能极具破坏性
代码签名密钥被盗的后果可能会极大地损害您公司的声誉和底线。使用被盗密钥签名的恶意软件可以快速、轻松地传播,因为用户更可能信任使用信誉良好的密钥签名的软件。这可能导致广泛的安全漏洞、数据盗窃,甚至损坏关键基础设施。代码签名密钥被盗的后果意味着现实世界的问题;因此,当美国最近发布一项改善国家网络安全的行政命令时,其中的关键步骤之一是使用代码签名来确保代码完整性。
在这种情况下,GitHub的调查发现,“这种未经授权的访问不会对GitHub.com服务造成风险,也不会对这些项目进行未授权的更改”。此外,“证书是受密码保护的,我们没有恶意使用的证据。”GitHub表示,撤销证书是一种预防措施,但如果证书没有受密码保护,损害可能会更严重。
如何保护代码签名证书和代码签名密钥
幸运的是,你可以采取一些措施来防止类似的事件发生在你身上。首先,组织保护和控制其代码签名密钥的使用至关重要。因此,控制和可见性是保护代码签名密钥的关键(双关语)。能够强制执行签名权限,控制谁有权访问签名密钥,并生成显示谁在何时何地签署了什么的报告,这提供了高级别的可见性,并使您能够快速解决可能出现的任何问题。此外,密钥需要安全存储,以减少威胁行为者窃取密钥的能力。在GitHub的案例中,他们的密钥是加密的,这是一种最佳实践。但是,我们也建议将密钥离线存储,只将它们联机进行签名。
此外,密钥轮换策略对于代码签名安全性至关重要。如果密钥被泄露,依赖一个密钥来签署所有内容可能会导致重大中断。通过实施强大而频繁的密钥轮换策略,使用唯一的密钥,并可以访问按需密钥,您可以限制安全漏洞造成的损害。
最后,尽管没有直接链接到密钥保护本身,但在签署代码之前,执行病毒扫描以确保代码没有恶意内容是很重要的。这将使人们安心,并有助于防止安全威胁。扫描可以在源代码级别(静态应用程序安全测试,简称SAST)和编译后的软件(动态应用程序安全检测,简称DAST)上进行,两者都是最佳实践。这些措施是对代码签名的补充,有助于确保软件供应链的安全。
托管软件签名解决方案可以帮助您检测和防范事件
托管签名解决方案提供了安全的代码签名实践,并有助于防止密钥被盗的风险。作为DigiCert®ONE平台的一部分,DigiCert拥有一个全面的解决方案DigiCert™软件信任管理器,旨在帮助组织遵循代码签署最佳实践并简化信任管理。软件信任管理器使公司能够执行云签名,从而将其密钥存储在离线HSM中,并仅在签名时带到网上,从而最大限度地减少密钥被盗的可能性。DigiCert还提供对与公共和私人信任相关的密钥的支持,而不考虑颁发者,因此我们可以支持用于从Apple Root签署Apple二进制文件和证书的密钥。
此外,软件信任管理器有助于保持对不断变化的法规的遵守,例如由CA/B论坛的代码签名工作组制定的对代码签名密钥保护的改进要求。使用像DigiCert Software Trust Manager这样的托管解决方案,您可以确保密钥的安全,集中管理密钥,强制执行策略,与CI/CD集成,并从灵活的部署选项中进行选择。
总之,GitHub的代码签名密钥被盗事件提醒我们保持数字代码签名密钥安全的重要性。通过采取必要的措施来保护您的密钥,您可以防止类似事件的发生,并确保您的软件的安全性和信任性。作为一家值得信赖的数字信任提供商,DigiCert致力于帮助我们的客户确保其代码签名密钥的安全。这就是为什么我们开发了软件信任管理器;以更容易地确保代码签名最佳实践。请与我们联系,了解有关我们的代码签名解决方案的更多信息。
关于DigiCert®软件信任管理器
DigiCert® Software Trust Manager 是一种数字信任解决方案,可保护整个软件供应链中软件的完整性,降低代码泄露的风险,执行公司和监管政策,并在代码签名中提供细粒度的密钥使用和访问控制。随着软件供应链攻击和政府法规的增加,公司需要投资一种解决方案,以最大限度地降低软件开发、构建和发布过程中安全漏洞和恶意软件传播的风险。
Software Trust Manager 支持代码签名最佳实践,例如用于私有签名的唯一密钥和每次签名证书、按需密钥和旋转密钥。它与主要平台和库兼容,如 Apple、Docker、Microsoft、Java、Android、连接设备软件/固件签名等。
使用 Software Trust Manager,企业可以降低风险、执行公司政策和法规遵从性并集中控制密钥使用和签名访问。作为 DigiCert® ONE 的一部分,Software Trust Manager 可以在几分钟内快速部署大量证书,并且可以灵活地在本地、国内或云端部署。
本文由 聚力诚信 根据 Digicert 博客
SETTING GLOBAL STANDARDS FOR SECURE EMAIL CERTIFICATES
编译整理,转载请注明出处。
厦门聚力诚信科技有限公司(BestCert.net)是网络安全领域的专业服务提供商,专注提供SSL证书,邮件安全证书,代码签名证书等国际、国密双算法的数字证书管理服务,
涵盖所有市场主流的SSL证书类型和品牌,从证书的申请,验证,安装,证书专家全程在线支持!公司同时为各行业客户提供电子签章,身份认证等电子认证服务解决方案。