增强代码签名安全性的 8 个策略

增强代码签名安全性的 8 个策略

增强代码签名安全性的 8 项策略 PlatoBlockchain 数据智能。垂直搜索。人工智能。

评论

最近有消息称黑客入侵了远程访问解决方案公司 AnyDesk 严厉地强调了公司需要长期、认真地审视代码签名实践,以帮助确保更安全的软件供应链。  

代码签名向软件、固件或应用程序添加数字签名,以确保用户代码来自受信任的来源,并且自上次签名以来未被篡改。但代码签名的好坏取决于其执行的好坏,实践不足可能会导致恶意软件注入、篡改代码和软件以及冒充攻击。 

私钥必须受到保护,但许多开发人员(主要是出于方便的原因)维护自己的私钥并将其存储在本地计算机或构建服务器中。这使得它们容易被盗窃和滥用,并为安全团队造成盲点。  

继 SolarWinds骇客 2020年,证书颁发机构/浏览器(CA/B)论坛发布了一套新的 基线要求 用于维护代码签名证书,该证书强制使用硬件安全模块 (HSM)、维护和保护加密密钥的设备以及保护私钥的其他措施。 

HSM 提供最高级别的安全性,但它们也增加了成本、复杂性和维护需求。除非它们可以集成到 DevOps 团队使用的代码签名工具中,否则断开连接会使代码签名访问变得复杂并减慢进程。  

迁移到云使安全性变得更加重要,但云还提供了代码签名的解决方案。云代码签名和 HSM 可以提供开发人员所需的速度和敏捷性,以及支持分布式开发团队的集中控制、集成到开发流程中,并且可以更轻松地受到安全监控。 

集成代码签名之旅 

随着最近的变化 CA / B论坛,现在是组织踏上现代化代码签名之旅的时候了,通过集中控制来支持开发团队。许多公司仍处于“临时”阶段,密钥在本地维护,开发人员使用各种代码签名流程和工具。其他人通过使用 HSM 来保护密钥来进行集中控制,为安全团队提供可见性和治理,但使用单独的代码签名工具仍然会影响软件开发的速度。 

理想、成熟的结构需要集成关键安全性、代码签名工具和开发工作流程,以使所有构建、容器、工件和可执行文件之间的流程无缝且简化。安全团队管理 HSM 并获得代码签名的完整可见性,而开发人员现在拥有灵活、快速的开发管道。 

一些最佳实践可以帮助为这一旅程铺平道路: 

  • 保护您的密钥: 将代码签名密钥存储在安全位置,例如符合 CA/B 论坛加密要求(FIPS 140-2 2 级或通用标准 EAL 4+)的 HSM。 HSM 具有防篡改功能,可防止私钥被导出。

  • 控制访问: 通过基于角色的访问控制来限制访问,最大限度地降低未经授权的访问和滥用私钥的风险。定义审批工作流程并实施安全策略,以限制仅对必要的人员进行访问,并维护审核日志,记录谁触发了签名请求、谁访问了密钥以及原因。 

  • 旋转键: 如果一个密钥被泄露,则用它签名的所有版本都面临被泄露的风险。定期轮换代码签名密钥,并使用唯一且单独的密钥跨多个 DevOps 团队签署不同版本。 

  • 时间戳代码:  代码签名证书的寿命有限——一到三年,并且会缩短。即使在证书过期或被撤销后,在对代码进行签名时添加时间戳也可以验证签名的合法性,从而扩展了签名代码和软件的信任。

  • 检查代码完整性: 在签署和发布最终版本之前,通过将构建服务器中的代码与源代码存储库进行比较来执行完整的代码审查,并验证所有开发人员签名以确保它们不被篡改。 

  • 集中管理: 当今的企业是全球化的。集中式代码签名流程可以帮助监控整个企业的签名活动和证书,无论开发人员位于何处。它提高了可见性,建立了问责制,并消除了安全漏洞。

  • 执行政策: 通过定义和映射策略(包括密钥使用权限、批准、密钥过期、CA 类型、密钥大小、签名算法类型等)来标准化代码签名流程。自动执行策略,确保所有代码、文件和软件都根据策略进行签名并符合行业标准。 

  • 简化代码签名: 使用 CI/CD 工具集成和自动化代码签名可以简化 DevOps 流程,同时不会影响安全性,同时提高速度和敏捷性。

在持续集成和持续部署的世界中,强大的代码签名最佳实践提供了一种在开发过程中建立信任并实现更安全的软件供应链的宝贵方法。

时间戳记:

更多来自 暗读