您当前的位置:   首页 > 新闻中心
通过代码签名加强软件安全
发布时间:2023-06-17 11:19:27   阅读次数:

image.png


代码签名是建立真实性和信任的重要机制,可确保软件在分发过程中不会受到损害。但是,不正确的代码签名做法可能会带来重大风险。在此,我们探讨了代码签名的重要性,并深入研究了代码签名过程受损的潜在后果。


代码签名失败的破坏性影响

以下是由于代码签名泄露或失败而发生的一些值得注意的攻击:

  1. NotPetya 攻击

    2017 年 6 月,全球航运集团 AP Moller-Maersk 成为 NotPetya 恶意软件攻击的受害者。此次攻击源自一家小型乌克兰软件公司,该公司已成为国家支持的黑客的受害者。利用公司安全基础设施中的漏洞,黑客获得了代码签名密钥的访问权限,从而使他们能够将恶意软件注入合法的软件更新中。此恶意更新随后分发给包括 AP Moller-Maersk 在内的客户,导致广泛感染和严重中断。


  2. ShadowPad供应链攻击

    2017 年,一次复杂的供应链攻击针对的是流行的乌克兰会计软件 MeDoc 的软件更新机制。攻击者破坏了代码签名过程,允许他们向 MeDoc 用户分发带有后门的软件更新。此恶意更新最终导致 ShadowPad 恶意软件的传播,危及全球众多组织。


  3. 华硕实时更新破解

    2019 年,黑客渗透了华硕的网络更新服务器,并将恶意软件注入到合法的华硕驱动程序更新中。泄露的代码签名密钥使恶意更新看起来是真实的,导致超过一百万台华硕电脑受到感染。这次攻击凸显了软件供应链的脆弱性和强大的代码签名实践的重要性。


  4. CCleaner后门

    2017 年,流行的系统优化工具 CCleaner 在黑客将恶意软件注入其官方软件更新之一时遭到破坏。攻击者使用有效的代码签名证书对恶意更新进行签名,诱使用户相信这是一个合法的更新。该事件影响了数百万用户,并强调了代码签名完整性的重要性。


这些攻击清楚地提醒人们代码签名在确保软件的可信度和真实性方面发挥的关键作用。


评估软件信任和审查流程

鉴于此类事件,质疑我们对安装和使用的软件的信任程度至关重要。企业依赖大量外部软件包来支持其日常运营。然而,这些软件包缺乏严格的审查程序可能会带来重大风险。为增强软件安全性,请考虑以下措施:

  1. 审查和白名单

    在允许用户安装软件之前,实施稳健的流程来审查和批准软件。考虑建立受信任软件的白名单,并将安装限制为仅那些批准的应用程序。


  2. 内部软件制作

    认识到保护公司软件的重要性。将您的私人代码签名密钥视为您企业王国的钥匙。实施严格的访问控制、加密和监控机制,以保护这些密钥免遭盗窃或滥用。考虑使用硬件安全模块 (HSM) 来存储和保护您的代码签名密钥,因为它们提供高安全性和防篡改能力。


  3. 供应链完整性

    确保您从外部来源收到的软件经过彻底的安全检查。实施机制以在安装前验证软件更新的完整性和真实性。


了解代码签名问题

代码签名在保护软件供应链方面的功效在过去三十年中得到了证明。然而,某些挑战阻碍了它的有效性。组织通常难以有效地管理私人代码签名密钥,从而导致漏洞和潜在的危害。让我们探讨一些常见问题:

  1. 缺乏集中式密钥管理

    许多全球性组织都拥有分散在各地的软件开发团队。这些团队需要访问私有代码签名密钥来签署他们的软件。但是,当密钥存储在开发人员的笔记本电脑、构建服务器或 Web 更新服务器上时,它们很容易被盗或被滥用。


  2. 未能认识到关键重要性

    私有代码签名密钥应被视为您业务的主密钥。不幸的是,组织经常忽视它们的重要性,并且未能实施足够的安全措施来保护它们。


  3. 安全措施不足

    不充分的安全实践,例如薄弱的密码管理、缺乏加密和不充分的访问控制,进一步助长了代码签名漏洞。


稳健代码签名的最佳实践

为了增强软件基础架构的安全性和完整性,实施代码签名的最佳实践势在必行。考虑以下建议:


  1. 实施硬件安全模块 (HSM)

    HSM为密钥存储和加密操作提供专用且安全的环境。通过利用 HSM,组织可以保护其私钥免受物理和逻辑攻击,从而确保代码签名过程的完整性。


  2. 定期轮换密钥

    定期轮换代码签名密钥以减轻潜在密钥泄露的影响。通过定期更新密钥,组织可以最大限度地降低未经授权访问的风险并保持其签名软件的可信度。


  3. 采用代码签名政策和程序

    制定全面的代码签名政策和程序,为代码签名过程定义角色、职责和工作流。确保员工接受适当的培训并遵守这些政策,以维护安全的代码签名环境。


  4. 持续监控和审计

    实施强大的监控和审计机制,以检测和调查与代码签名相关的任何可疑活动。定期查看日志并执行审计,以识别潜在的安全漏洞并及时采取纠正措施。


  5. 扫描病毒

    虽然代码签名提供了身份验证,但它并不能保证代码本身的安全性。因此,强烈建议在发布和使用数字证书签名之前对代码进行彻底的病毒和恶意软件扫描。执行这些扫描可以提高代码的整体质量,并有助于识别和减轻潜在的安全风险


揽阁信息在代码签名方面的价值

作为Thales的合作伙伴,揽阁信息多年来为客户提供满足CA/B对于代码签名要求的产品,包括:eToken 5110+ CC 和 Luna Network HSM,其中:

  • eToken 5110+ CC产品是一款轻量级的USB设备,拥有CC EAL5+ / PP QSCD, eIDAS 同时获得eSignature 和eSeal 资格,并通过法国ANSSI 认证,支持RSA 4096签名算法,适合本地化代码签名使用场景。

  • Luna Network HSM产品是一款网络型产品,拥有FIPS 140-2 Level 3 Password&多因素(PED)、CC EAL4+ (AVA_VAN;5和ALC_FLR.2)符合防护配置文件EN 419221 -5、符合eIDAS的合格签名或印章创建设备(QSCD)列表、新加坡NITES通用标准计划 等多项认证。支持分区管理,权责分离。


使用揽阁信息提供的相关产品,可有效解决您在面对代码签名时的安全问题,欢迎与我们联系,探讨您的问题和需求。


揽阁信息可提供的部分安全产品和解决方案信息

联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:


您还可以得到揽阁信息所提供的优质服务。

揽阁信息 · 值得您信赖的信息安全顾问!


相关阅读

购买咨询电话
021-54410609