敏捷与安全:塑造软件供应链的新格局

这种复杂性意味着攻击者有多种途径,包括开源软件存储库。根据 GitHub 的说法, 85-97% enterprise 代码库来自开源存储库. 过去四年中,Npm 和 PyPI 存储库遭受的攻击增加了 300%。 

例如, IconBurst 是当今流行的软件供应链攻击的一个典型例子。下载次数超过 17,000 次,这是去年发生的一次强大攻击,涉及 npm 上超过 24 个域名抢注包。因此,组织必须了解软件供应链攻击并采取措施保护其 DevOps 生态系统。

 

新方法

寻求保护软件供应链安全的组织必须选择适当的工具。然而,大多数安全开发和应用程序安全测试 (AST) 技术并不能全面覆盖所有供应链威胁。 

虽然动态或静态应用程序安全测试(DAST/SAST)对于 SDLC,它无法解决软件篡改或受破坏的开源和第三方库带来的风险。同样,软件组成分析(SCA) 可以审查开源组件,但经常会遗漏恶意模块并且无法提供完整的安全覆盖。 

因此,像 西吉尼 必须考虑超越这些能力的人才,为开发人员提供成功所需的资源。专家们一致认为,变革是必不可少的,因为当前的开发团队需要为成功做好准备。

从软件开发的初始阶段就应该实施制衡体系,以确保 software supply chain security甚至在编写第一行代码之前,考虑以下预防措施至关重要:

  • 确定谁有权访问代码,包括内部和外部各方
  • 定义代码批准的所有权
  • 建立保管链和版本控制
  • 实施基本安全措施以防止恶意代码注入
  • 创建机制来应对恶意行为者的代码更改

未能实施这些步骤可能会导致毁灭性的攻击,例如影响您的组织、合作伙伴和客户的勒索软件要求。

 

敏捷方法论

敏捷方法通过强调协作、灵活性和客户满意度,彻底改变了软件开发。这种方法使开发团队能够快速响应不断变化的需求并及时交付高质量的软件。在敏捷环境中,开发团队以短冲刺周期工作,持续时间为几周到一个月。在每个冲刺结束时,团队都会交付一个可用的产品增量。

敏捷方法还促进团队成员之间的协作和沟通,打破孤岛并提高透明度。它有助于尽早识别和解决潜在的安全风险,确保安全性融入软件开发过程的每个阶段。 敏捷团队可以利用整个过程中的安全测试和自动安全扫描 SDLC 立即发现并解决问题,实现了如下非常相关的好处:

  • 节约成本:在开发过程的早期阶段修复安全问题比在产品发布并投入使用后修复成本更低。安全问题发现得越晚,修复成本就越高。
  • 降低安全漏洞风险:通过尽早解决潜在的安全风险,可以降低安全漏洞成功发生的可能性,从而保护敏感信息并防止代价高昂的安全事故。
  • 合规:许多行业都受监管合规性要求的约束,例如 SOC2、PCI 和 ISO。将安全性集成到软件开发过程中有助于确保遵守这些法规。
  • 客户信任:客户期望软件产品安全可靠。将安全性融入开发流程并展示这一做法可提高客户对产品的信任和信心。
  • 声誉管理:通过尽早解决潜在的安全风险并确保将安全性融入到开发过程的每个阶段,公司可以避免损害其声誉的安全事件,从而管理其声誉并维护客户信任和收入。
 

安全防护措施

结合 software supply chain security 最佳实践 并在整个软件开发生命周期中自动进行安全扫描(SDLC) 对于敏捷团队及时发现和解决安全问题至关重要。敏捷团队可以使用一些方法来将安全测试集成到他们的开发过程中,这些方法包括:

  1. 管理整个软件供应链的控制点 对于实现法规遵从性和确保适当的安全性至关重要。组织应该实施 standard 为实现这一目标,需要采取多种控制措施,例如身份和访问权限审批、配置管理、访问限制、审计和安全测试。组织必须设置控制措施,以控制哪些人可以更改代码和配置、批准合并请求以及扫描应用程序中的漏洞。受保护的分支和环境以及许可的代码使用也至关重要。在审计期间,您应该能够了解在整个软件开发生命周期中,谁在何时何地更改了什么,以及谁审查、批准和合并了这些更改。
  2. 盘点开发团队使用的所有工具和接入点,包括基础设施即代码(IaC) 模板、代码存储库、 pipelines,并构建工具。这一步至关重要,因为你只能保护你所了解的东西。一旦你有了一份全面的工具和访问点列表,就该重新评估你的访问控制了。首先, 检查软件供应链上的所有入口点。例如,考虑谁有权更改 IaC 模板,因为这些模板可能成为潜在的攻击面。此外,扫描容器是否存在安全漏洞,并监控 API 和编排器是否存在异常行为。 Standard例如国家研究所 StandardS(NIST) 和安全软件开发框架 (SSDF)帮助您获得有关保护软件供应链的想法。
  3. 在每个 Sprint 中进行安全测试:敏捷团队可以通过在每个冲刺期间运行常规安全测试,将安全测试纳入其冲刺周期。这可以包括手动测试、自动测试和代码审查。通过在每个冲刺中进行安全测试,团队可以在开发过程的早期识别和解决潜在的安全问题,从而降低在软件中引入漏洞的风险。
  4. 使用自动安全扫描:敏捷团队可以使用自动化安全扫描工具来识别代码库中的安全问题。这些工具可以扫描代码存储库以查找机密或恶意软件、检测开源库中的漏洞以及识别基础架构中的错误配置。通过使用自动化安全扫描,团队可以快速识别安全问题并确定其修复的优先级。
  5. 实施持续集成和部署(CI/CD):敏捷团队可以利用 CI/CD pipeline自动化构建、测试和部署流程。通过将安全测试和自动化安全扫描集成到 CI/CD pipeline,团队可以确保对每个代码更改进行安全漏洞测试。这可以包括静态代码分析、动态安全测试和漏洞扫描。
  6. 自动生成软件物料清单(SBOM) 涉及创建代码库中所有组件的列表。自动化此过程可消除耗时的手动检查以确保代码中没有恶意软件的需要。自动化 SBOM 生成提供了跨临时结构(包括包管理器和容器)的依赖关系的可见性。开发人员可以通过显示 SBOM 用户界面中的漏洞。 SBOM更加用户友好和易于访问,最大限度地减少审查和处理它们所需的工具数量至关重要。 SBOM 纳入安全的端到端平台可以防范各种攻击,包括针对内部代码、外部来源和构建过程的攻击。

     

 

结语

组织可以且应该通过将敏捷方法与安全措施相结合来创建敏捷且安全的软件供应链。这种方法使公司能够快速响应不断变化的需求,同时确保尽早发现和解决安全风险。 

在敏捷安全的供应链中,安全性并不是事后才考虑的问题。它仍然融入到软件开发流程的每个阶段,按时交付高质量的软件,同时防止网络威胁和数据泄露。 

将安全性融入软件开发过程的每个阶段并促进团队成员之间的协作和沟通至关重要。通过这样做,公司可以保持领先地位,以最小的努力和极高的成本效益占据有利地位。

了解有关 Xygeni 平台的更多信息,下载 Xygeni 平台数据表

sca-tools-软件-成分分析工具
确定软件风险的优先级、进行补救并加以保护
注册免费账号。
不需要信用卡。

保护您的软件开发和交付

使用 Xygeni 产品套件