保护 CI/CD 免受勒索软件即服务的攻击
对于企业来说,代码库是其宝贵的资产。然而目前勒索软件即服务 (RaaS)攻击以 CI/CD 管道为目标,劫持或破坏代码已成为一种趋势。首先来看下典型的勒索软件生命周期。
感染:攻击者通常通过恶意依赖项、脚本漏洞或受损的构建服务器渗透到系统中。
横向移动:他们暗中探索网络,寻找关键资源和代码存储库。
加密:嵌入后,勒索软件有效载荷就会开始行动,加密文件和代码库。
勒索:勒索赎金,或者随着时间推移威胁要永久加密数据或进行曝光。
勒索软件即服务如何攻击CI/CD管道
这种脆弱性源于多种因素:
对第三方依赖项的依赖增加:现代软件开发严重依赖开源和商业第三方库的庞大生态系统,虽然方便,但这引入了关键的攻击面。恶意行为者可以将勒索软件有效载荷嵌入到看似合法的依赖项中,将其转化为木马病毒,渗透到整个开发人员社区中。
木马化程序包:攻击者将勒索软件有效载荷注入流行或广泛使用的开源或商业产品中。2023年的 SolarWinds 供应链攻击就是一个例子,攻击者入侵了软件构建服务器,将恶意代码注入更新。
不透明的依赖关系:现代应用程序中 80% 的代码是开源代码,据报道,95%的漏洞是在传递依赖关系中发现的。大多数安全威胁(包括已知漏洞)都潜伏在传递关系中。挑战在于,开发人员很少能够看到他们的依赖关系树,或者它有多深。Log4Shell 就是一个例子,这个问题影响了93%的企业云环境。
自动化漏洞:CI/CD 管道在自动化方面蓬勃发展,但自动化脚本和配置可能包含语法错误、不安全的配置参数和不充分的访问控制,可能为攻击者破坏构建过程和操纵代码提供立足点。
注入攻击:攻击者利用 CI/CD 脚本中的语法错误或不安全的配置参数来注入恶意代码或操纵构建。
权限提升:通过利用构建工具或底层基础设施中的漏洞,攻击者可以在管道内提升其权限,从而获得对敏感资源的访问权限。
有限的可见性和控制:CI/CD 部署的快速性质通常超过传统的安全监控和日志分析工具,这些工具难以跟上不断发展的构建流程,为攻击者创造了可利用的盲点。68% 的组织在构建和部署阶段遇到应用程序漏洞,为保护这些动态环境带来了挑战。
零日漏洞利用:攻击者利用构建服务器或 CI/CD 平台中的零日漏洞来获得未经授权的访问并部署勒索软件有效负载。
横向移动:一旦建立了立足点,攻击者就会在 CI/CD 基础设施内横向移动,从而破坏额外的资源和代码。
这些策略凸显了 RaaS 参与者不断发展的复杂性。其影响可能是毁灭性的,从数据加密和索要赎金到声誉损害和运营瘫痪。
构建防勒索CI/CD管道
通过采用主动的 DevSecOps 思维方式,可以有效防范 RaaS 攻击并保护代码。
安全左移:在整个软件开发生命周期(SDLC)中集成安全性。利用静态应用程序安全检测工具(SAST)、动态应用程序安全检测工具(DAST)、软件组合分析(SCA)和软件物料清单(SBOM)创建,检查漏洞及依赖关系,保持对管道中每个软件组件透明。
持续警惕:管道不是静态实体,需要不断利用工具来实施管道活动的持续监控和记录。查找异常、可疑行为和未经授权的访问尝试。
访问控制:尽量减少对CI/CD环境的不必要访问。实施严格的基于角色的访问控制和最小权限利用访问控制工具严格管理用户角色和权限,确保只有授权用户才能访问敏感资源。
参读链接:
https://devops.com/breaking-free-from-ransomware-securing-your-ci-cd-against-raas