CICD(持续集成/持续交付)作为一种关键的软件开发和部署实践,其目标是通过自动化工具链提高软件质量和效率。然而,随着CI/CD的普及和广泛应用,这一过程也成为了潜在的安全威胁焦点,即所谓的CICD攻击。这类攻击利用了CI/CD流程的自动化特性,通过多种途径入侵和破坏软件开发和部署环境。
首先,演讲者mx7krshell在讨论中指出,CI/CD安全背景经历了从传统的瀑布模型到敏捷开发模式,再到DevOps模式的发展变迁。瀑布模型强调顺序执行,而敏捷模型注重迭代和反馈,DevOps则强调团队协作和持续交付。随着云原生应用的兴起,DevOps架构进一步促进了CI/CD的自动化程度,但也暴露了供应链安全问题,特别是近年来供应链攻击的增多,如PHP源代码后门插入和供应链级的SLSA框架。
在攻击路径方面,CI/CD攻击可以分为客户端、服务端和供应链三个层次。客户端攻击通常通过钓鱼邮件或社会工程学手段获取开发人员和运维人员的凭证,进而控制开发环境。信息收集可能涉及敏感数据如浏览器凭据、Git、SSH、远程连接配置等。攻击者可能利用恶意代码如D-PPE和I-PPE进行代码提交,甚至窃取浏览器数据,如微信聊天记录。
服务端攻击主要瞄准服务器漏洞,如中间件、Web应用和容器环境,如Kubernetes的漏洞,通过SQL注入、RCE( Remote Code Execution)、弱密码攻击等方式侵入。此外,CI/CD基础设施如GitLab、Jenkins等也是攻击者觊觎的目标。
供应链攻击则聚焦于攻击第三方工具和应用程序依赖性,上游供应商的安全性对于整个开发链路至关重要。攻击者可能会针对这些环节进行攻击,以控制整个软件生命周期。
随着攻击手段的升级,传统的防护措施已不足以抵挡供应链攻击、社工攻击和0day攻击,这些已经成为企业网络防御的关键挑战。企业不仅需要技术层面的防护策略,还要深入了解自身业务逻辑、架构和数据流动,以发现并弥补薄弱环节。
CICD攻击场景复杂且不断演变,要求企业和安全专业人员不仅要关注技术防护,还要适应业务层面上的攻防博弈,提升整体的安全意识和防御能力。同时,现有的安全框架和指南在生产环境中的适用性和全面性也需要进一步评估和优化。