ITPub博客

首页 > IT基础架构 > 网络安全 > 高效DevSecOps实践的五个原则

高效DevSecOps实践的五个原则

翻译 网络安全 作者:zktq2021 时间:2024-05-24 11:39:55 0 删除 编辑

构建和运行 DevSecOps 实践意味着组织能够运行安全交付平台、测试软件漏洞、确定漏洞优先级并修复漏洞、防止发布不安全代码,并确保软件及其所有组件的完整性。构建高效的DevSecOps 实践不仅要保证开发速度,而且还要统筹开发人员更好地合作,以下五个指导原则会有些帮助。

原则 1:建立协作、具有安全意识的文化

让安全成为共同的责任

DevSecOps的核心是一种责任共担的文化,以共同的面向安全的思维方式运作决定了DevSecOps流程的合适程度,并在选择DevOps平台、工具和个人安全解决方案时推动更好的决策。可以通过以下方式实现一致性和安全责任感:

  • 定期进行内部安全培训(为DevSecOps量身定制),包括开发人员、DevOps工程师和安全工程师。

  • 开发人员采用安全编码方法和资源

  • 安全工程有助于应用程序和环境体系结构以及设计审查。在软件开发生命周期的早期识别和修复安全问题。

打破职能孤岛,持续协作

作为一个有凝聚力的DevSecOps团队,推动协作和运营包括:

定义并商定一组可衡量的安全目标,例如:

  • 减少应用程序安全事件

  • 减少审计时间

  • 增加部署频率

  • 降低变更失败率

  • 减少部署到生产环境的漏洞

  • 使用 SBOM/SLSA 部署到生产环境的组件

  • 缩短0day漏洞修复的准备时间

  • 软件开发人员和DevOps团队参与新安全工具的整个评估和采购流程

  • 迭代优化工具选择和安全实践,以提高开发人员的工作效率和速度

原则 2:将安全信息左移,而不是将安全工作负载左移

左移安全性基于这样一种行之有效的想法,即在软件开发管道的早期(而不是在生产之前)执行应用程序安全测试,可以更好地捕获已知代码和工件漏洞并及时修复它们。但是,如果开发人员独自承担运行测试、收集扫描程序输出以及在修复漏洞之上确定漏洞优先级的全部负担,那么由此产生的精神负荷和辛劳肯定会影响生产速度。相反,最好的方法在于遵循以下准则:

左移安全性基于一个已被证明的思想,即在软件开发管道中更早地执行应用程序安全性测试(而不是在生产之前),可以更好地发现已知代码和组件漏洞,并及时进行修复。然而,如果开发人员独自承担运行测试、收集扫描程序输出以及在修复漏洞的基础上对漏洞进行优先级排序的全部工作,那么肯定会影响到生产的速度。可以遵循以下指导方针:

  • 安全性应该在整个CI和CD管道中拥有应用程序安全性测试的编排和自动化

  • 减轻开发人员对检测到的漏洞进行重复数据删除和优先级排序的工作。安全性应该确保开发人员及时获得经过全面处理的漏洞列表

  • 通过为理解和解决每个漏洞生成可操作的面向开发人员的指导来加快修复速度

原则 3:维护适当的治理和护栏

即使是很小的错误或遗漏,例如遗漏CVE (Common Vulnerabilities and Exposures)或开发管道中未经授权的配置更改,也可能带来巨大的安全性和合规性风险。因此,在整个开发环境中全面治理和严格防护的价值怎么估计都不为过。如果DevSecOps实践是有效的,那么将会指导相关人员做高效和正确的事。可以通过以下指导来实现:

  • 在整个开发环境中实施细粒度的基于角色的访问控制(RBAC),以确保正确的使用和操作。一般的RBAC通常基于单个属性(角色),但是细粒度的RBAC通过考虑多个属性(如时间、用户组、组织层次结构等)来实现更强的安全性。

  • 将策略叠加在管道之上,使开发人员能够控制其管道,并使安全和合规性团队能够要求进行安全检查。

  • 尽可能使用模板来消除导致安全性和合规性风险的非强制错误。

原则 4:专注于保护软件供应链(而不仅仅是源代码)

由于软件开发组织用来构建应用程序使用大量的开源软件(OSS)组件和其他第三方组件,保护现代应用程序的挑战已经变得越来越复杂。这些组件中的任何一个都可能在最终产品中引入新的潜在漏洞,从而使软件的客户和消费者处于危险之中。因此,DevSecOps的重点需要从组织的源代码安全扩展到整个软件供应链,这是所有代码、人员、系统和过程的总和。

为了确保组织生产的软件的完整性,DevSecOps团队要采用符合SLSA框架和合规的安全实践。保护软件供应链需要 DevSecOps 团队:

  • 在整个CI和CD管道中管理开源软件组件的使用。

  • 采用全面的功能来生成、管理和分析软件组件的软件物料清单 (SBOM)。SBOM对于理解应用程序中的组件和依赖关系至关重要,这反过来又使组织能够有效地管理软件风险。

  • 生成并验证超出级别1的最低要求的SLSA遵从性。SLSA框架是一种有效的防止组件篡改的方法。它允许在整个供应链中创建可验证的记录,其中包含将身份和系统与软件相关联的信息。这些信息可以在整个软件开发生命周期中进行验证和签名。级别越高完整性保证越强。

  • 为所有软件工件建立一个完整的监管链。在软件领域,监管链是整个开发管道中发生在软件工件上的所有事情的详细证据,包括谁构建或修改了工件,它经历了哪些安全测试,以及测试结果是什么。实现完整的监管链在很大程度上是底层CI/CD平台加上集成管道工具的功能,它对于维护软件从开发到部署的可靠性至关重要。

原则 5:通过自动化和人工智能实现“持续安全”

DevSecOps成功的很大一部分是能够跟上(甚至超越)应用程序开发速度。虽然新兴的DevSecOps项目总是需要时间来构建敏捷性和有效性,但加速DevSecOps成熟可以通过使用智能自动化和人工智能。以下是一些关于如何以及在何处应用它们的建议:

在整个管道中编排安全扫描。这是通过平台方法容易实现,即底层 DevOps 平台与各种 SAST、SCA、容器和 DAST 扫描工具集成,并在管道运行时执行扫描。

为开发人员自动执行漏洞列表重复数据删除和优先级排序。

通过使用AI指导生成修复指南,提高修复速度并减少开发人员工作量。


参读链接:

https://thehackernews.com/2024/05/five-core-tenets-of-highly-effective.html


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-3016539/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
中科天齐软件源代码安全缺陷检测平台(WuKong)是一款B/S 架构的国产信创静态软件安全测试工具,为客户在软件开发过程中查找、识别、追踪绝大部分主流编码中的技术漏洞与逻辑漏洞,帮助用户提升抵御网络攻击、防止数据泄露等安全问题的能力。

注册时间:2021-05-14

  • 博文量
    533
  • 访问量
    358713