前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中毒管道:安全研究人员探索 CI 环境中的攻击方法

中毒管道:安全研究人员探索 CI 环境中的攻击方法

作者头像
Khan安全团队
发布2022-02-17 09:55:47
3680
发布2022-02-17 09:55:47
举报
文章被收录于专栏:Khan安全团队

一位安全研究人员描述了在源代码管理 (SCM) 存储库中滥用权限如何导致 CI​​ 中毒或“中毒管道攻击”。

开发人员环境,包括持续集成 (CI) 和持续交付 (CD) 平台,是合并代码、自动化软件构建、测试和交付代码的基本构建块DevOps项目。

Cider Security 研究负责人 Omer Gil 在 2 月 8 日的一篇技术博客文章中表示,由于 CI 和 CD 环境发挥的关键功能,它们也是“当今攻击面的主要部分”,并且通常包含组织的机密和证书。

能够破坏CI/CD环境的攻击者可能能够访问生产区域或交付机制以进行更广泛的供应链攻击。最近的例子包括 SolarWinds 和 Codecov 提供的中毒软件更新,以及对Kaseya的入侵。

中毒管道执行

2021 年 7 月,欧盟网络安全局 (ENISA) 审查了 2020 年至 2021 年之间的供应链事件,并在一份报告中表示,大约 50% 的网络攻击归因于高级持续威胁 (APT) 组,但未知攻击属于负责报告的事件的 42%。

ENISA 补充说,超过 60% 的供应链攻击“利用”了客户对其供应商的信任,66% 的网络攻击针对供应商代码,进一步危害目标客户。

访问 CI 和执行供应链攻击的最简单方法是直接访问。然而,根据 Gil 的说法,本地技术也可用于篡改生产管道,而无需直接访问 CI 环境。

Gil 说,这项技术被称为中毒管道执行 (PPE),它专注于定义管道的通用方式,即使用托管在管道存储库中的 CI 配置文件。

这些文件——通常以标准格式找到,包括Jenkinsfile、.gitlab-ci.yml、.circleci/config.yml和 GitHub Actions YAML——包含在管道作业从开发人员源中提取代码时触发的命令。

如果攻击者能够篡改命令列表,他们或许能够在 CI 中执行代码。

这就是 PPE 的用武之地。

攻击 CI 管道

中毒管道攻击向量要求威胁参与者具有 SCM 权限,例如用户凭据或访问令牌,以操纵 CI 配置文件或类似内容,并执行管道活动。

攻击者还必须能够在不触发审查的情况下篡改这些文件。Gil 说,执行未经审查的代码的管道更容易受到 PPE 攻击。

PPE分为不同的类别:

  • 直接 (D-PPE) – 攻击者修改与目标项目一起定位的 CI 配置文件
  • 间接 (I-PPE) – 恶意代码被注入到由管道配置文件间接调用的文件中
  • 公共 (P-PPE/3PE) – 攻击者需要能够通过获取凭据和/或权限来访问托管管道配置文件的存储库。当未经审查的代码被接受并执行时,也有可能通过拉取请求破坏公共项目。

一旦建立了代码执行,攻击者就可以访问与 CI 相关的秘密、推送恶意作业、发送恶意代码、访问作业节点有权访问的外部资产,并且他们还可能能够访问其他主机或资产。

“攻击者始终可以访问 SCM 组织和存储库,”Gil 评论道。

“凭证、访问令牌和 SSH 密钥被任何经典攻击方法窃取,例如网络钓鱼、凭证填充或公司内部网络中的横向移动。”

他补充说:“PPE 是一种载体,允许攻击者利用这种访问权限在 CI 管道中执行恶意代码,从而在几分钟甚至几秒钟内就可以访问生产环境。”

在Reddit上,有人质疑这种攻击向量是否有任何新内容,以及权限的先决条件是否否定了 PPE 的整体风险。Synopsys Software Integrity Group 的首席安全顾问 Travis Biehn 告诉The Daily Swig

Omer Gil 对一个知之甚少的攻击向量提供了一种非危言耸听的观点。是不是夸大了?也许,但不是奥马尔。对于攻击者来说,这是一个不太可能的选择,方便或必要的场景很少。

“有人说,每家公司都是一家软件公司,”AT&T Business 网络安全宣传负责人 Theresa Lanowitz 补充道。“如果构成数字体验的应用程序不是以安全为先的方法构建的,那么漏洞将使其进入生产环境,并最终从收入、信任或一般安全角度对企业造成问题。

“因此,现在和未来创建的应用程序或小程序——我们不再编写单一的后台应用程序——不仅需要更加紧凑和目标驱动,而且还要考虑到安全性。”

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中毒管道执行
  • 攻击 CI 管道
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档