重新定义DevSecOps:从软件Security到软件Safety

告别无效的 DevOps + 安全!拥抱平台工程,重塑 DevSecOps,实现软件安全保障。通过 Infrastructure as Code、AI 代码重构、安全 Sidecar 等技术,结合 SAST/DAST/SCA 工具,将安全融入 CI/CD 流程。关注软件供应链安全,打造更安全、高效的云原生应用!

译自:Reframing DevSecOps: Software Security to Software Safety

作者:Josh Lemos

十多年来,DevSecOps 一直承诺通过消除开发、安全和运维团队之间的孤岛来提高安全性。如果做得正确,这种方法会将安全性集成到整个开发生命周期中,从而提高速度、降低成本并减少安全事件。

然而,组织常常认为他们正在“做 DevSecOps”,而实际上他们只是创建了新的团队(开发、安全和运维),并附加了新的安全工具,这些工具未能实现集成、受治理的流程。一长串安全工具(SAST、DAST、SCA、CSPM)产生了大量的漏洞发现,需要整个安全团队来管理。同样,开发人员也在筛选大量令人沮丧的噪音。

组织不应受到责备。安全行业正在推广更多的问题识别工具,而没有提高组织流程或工作流程的质量以获得更好的结果。表面上添加到现有流程中的安全性,而不是真正集成的安全性,会在开发工作流程中造成重大的运营负担。这是 DevOps + 安全性——而不是真正的 DevSecOps。

结果是,更有价值的开发人员时间被消耗在理解和修复问题上,而漏洞(有意或无意地)通过管道进入生产环境。这种低效且在很大程度上无效的安全实践循环,加上开发速度和安全要求之间的持续紧张关系,导致安全和开发团队都感到倦怠。

为什么软件供应链安全保障很重要

相反,组织应该将平台工程和产品安全工程团队整合到共享流程中,以此作为前进的方向。这可以促进更紧密的协作和对整个系统生命周期的共同理解,使团队能够以一种以开发人员为中心且对他们所服务的团队来说是有机的方式,将安全性作为一种实践直接集成到这些共享流程中。随着安全性融入到组织的结构中,工具在采用安全实践后充当保证机制和问题识别辅助工具,而不是被依赖为主要的安全控制。

一种模板化、可重复、以流程为主导的方法,由平台和安全团队之间的协作驱动,会导致团队思考其目标的方式发生根本性转变。他们从安全的角度出发,安全承诺一种免受危险或威胁的状态,转变为安全保障,安全保障侧重于创建受到保护且不太可能造成危险的系统。这种转变强调通过深思熟虑、可重用的设计模式和实施来进行主动的风险缓解,而不是被动的威胁缓解。

供应链安全保障构建块

以下流程(独立于工具)是构建系统的基石,这些系统可以提高基础设施和第一方应用程序的安全保障。虽然这些控制措施不能保证零安全问题,但它们通过提高代码和基础设施安全标准大大降低了可能性。

  • 基础设施防护措施: 平台工程实践为部署安全的基础设施组件提供了标准化模板,使开发人员能够专注于应用程序开发。这些模板强制执行安全措施,例如加密和日志记录,防止常见的云错误配置并确保安全可观测性。
  • 语言特性和框架: 现代编程语言提供了内置的安全特性,如果使用得当,有助于减少漏洞。启用诸如自动内存管理和严格类型检查之类的特性可以防止许多潜在的安全问题。
  • 通过代码生成和重构减少繁琐工作: 自动化工具可以识别易受攻击的库和依赖项,从而可以通过模板和最小的基础镜像更轻松地进行修复。通过使用 AI 进行代码分析和重构,开发人员可以消除不必要的依赖项,从而减少攻击面和维护负担。
  • 抽象安全功能: 安全 Sidecar 代理处理跨应用程序的身份验证和授权,确保只有授权的服务才能通信。服务网格控制平面可用于集中管理访问控制,从而降低应用程序代码的复杂性,同时一致地执行安全性。
  • 软件治理: 可以以编程方式强制执行诸如分支保护和双重批准之类的规则,以确保多个团队成员在合并代码之前审查更改。这些以机器可读格式定义的策略应由 CI 平台强制执行,以保持跨项目的一致安全性。
  • 人为因素: 成功的 DevSecOps 需要协调激励机制并将安全性集成到开发工作流程中。通过培训、共享指标和定期的跨团队会议来促进协作,团队可以减轻运营负担并共同提高软件弹性。

战略工具实施

以上建议侧重于改进的工程实践,这是 DevSecOps 价值的基础。一旦团队投入到这些基础知识中,工具就可以作为安全功能提供保证检查。例如,组织可以利用依赖代理来创建受控环境,在该环境中,所有第三方软件包在到达开发环境之前都会被自动扫描、验证和缓存。

安全工具还应以战略方式集成到 CI 管道中,使用分层扫描方法来平衡速度和彻底性。高保真、快速运行的检查,例如密钥检测、软件成分分析 (SCA) 和针对安全反模式的定制规则,应在每次提交时运行,并由 CI 系统强制执行。

以流程为主导的未来成功路线图

安全产品和产品安全之间的结果差异很大,后者产生更大的价值。开发团队不应继续转移责任,而应拥抱平台安全工程范式。通过将安全性直接构建到共享流程和操作中,开发团队可以扩展规模以满足他们今天和未来的需求。

只有在建立了这些强大的基础之后,团队才应该分层运行常规的安全工具,以进行保证和问题识别。这种方法,结合一致的激励机制和团队之间真正的协作,可以创建一条更可持续的安全软件开发道路,从而实现大规模工作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注