“安全左移”早已成为软件安全领域的buzzword,企业应该如何将“安全左移”嵌入CICD流水线并借助其获得竞争性优势?
敏捷和灵活是现代云原生技术的标志,它可以处理从构建到生产的复杂数字化转型计划。随着市场变化和疫情常态化,优化软件开发生命周期(SDLC)已逐渐成为公司密切关注的焦点,特别是管理 CI/CD 流水线和 SDLC 后期生产阶段的安全风险。
借助合适的云技术,开发团队能够与 DevOps 及安全运营团队一起安全地构建和测试应用程序的代码,并最终实现更高效运行,同时减少生产过程中的安全问题。
2020年,在已知漏洞中,90%涉及到Web 应用程序,这是黑客攻击的主要目标。而消费者则是最直接受害者,因为他们的个人身份信息(PII)正在被曝光并在暗网上出售。将安全代码更快地投入生产环境意味着更少的安全漏洞。同时用户隐私和安全对消费者来说十分重要,而企业以因提供更安全的服务给消费者能够获得更多青睐和收入。
恶意攻击者在对漏洞进行攻击时也在调整策略、技术和程序,其攻击速度比以往任何时候都要快,因此在没有 DevSecOps 技术以及 DevOps 流程和团队的情况下开发软件并不可取。而构建强大的 DevOps 基础,需要对团队成员、工具和组织架构投入精力和金钱。
CI/CD 流水线是开发人员的必经之路。任何步骤的故障都会触发向对应开发人员发送的通知。
以下是 CI/CD 流水线中的三个基本阶段:
在这个阶段,代码从源代码中获取并与其依赖项相结合。随后对代码进行编译以在生产服务器上部署最终的应用程序。容器镜像和 IaC 模板在本地进行扫描,或作为 CI/CD 工作流的一部分进行扫描。随后执行自动化测试来验证代码的真实性和质量。
镜像仓库会受到持续监控,以确保应用程序镜像在部署之前是安全的,同时具有防护策略来阻止不安全部署。一旦源代码通过了所有测试,就会部署到各种环境中,如生产环境。
通过环境警报和风险优先级与通知工具的集成,以此来监控生产环境中的风险。CI/CD 流水线加了严格的法规来保护个人身份信息。
在 DevOps 中使用 CI/CD 流水线让开发人员无需破坏代码就能够轻松识别缺陷和软件/应用程序质量问题。当“安全左移”概念被加入到 SLDC 时,CI/CD 流水线可以得到进一步强化。安全防护左移将 DevSecOps 原则和工具自动化作为动态集成应用,以在构建-测试-运行周期中强化安全。
当安全左移嵌入到 CI/CD 流水线中时,企业可获得以下四个优势:
1. 提高应用程序的安全状况
合适的云平台可以扫描容器镜像,并在 IaC 模板中帮助识别 SDLC 中的漏洞或错误配置。寻找能够为安全运营团队提供左移扫描结果的云安全功能,并深入了解生产环境,如果潜在的攻击路径与现有风险相结合,这些功能帮助DevOps 和开发团队高效解决问题。
在相比之下,早期的代码问题更容易修复,且修复成本更低。而当代码进入生产环境并出现问题时,修复成本极高。
安全不再是开发结束后才进行的工作。将安全更早地集成到 CI/CD 流水线中,能够避免在生产环境出现相关问题无法快速解决,而导致应用程序无法按时在生产环境中部署的情况。
通过将安全集成到 CI/CD 流水线中,并使开发人员和 DevOps 能够在使用与安全团队相同的平台的同时,能够自行进行扫描流程,团队能够很好地协作,各部门从开发到运行时能够主动管理安全风险。
协作对于安全和开发团队至关重要。安全运营中心 (SOC) 团队可能需要接受云技术相关培训,而云团队则需要了解企业如何执行风险管理。
了解团队的角色和职责以及各团队履行的安全责任,对于管理安全风险至关重要。安全团队可以引导开发和 DevOps 团队如何充分执行威胁建模演习,同时在安全事件期间提供充分支持。安全团队也可以操作底层平台或库,为云工程团队提供支持(如 IAC 扫描功能、用于身份验证和监控的共享库)以及对工作负载结构进行支持(如安全服务网格)。
随着技术的发展,安全管理人员比以往任何时候都有更多的选择,通过专门构建的 SDLC 功能来推进云安全,而这些功能提供了从开发到运行时的环境可视性。这可以将跨职能团队聚集在一起,以统一工作流程和管理安全风险。