GitHub Actions 遭利用,14个热门开源项目令牌泄露风险激增

近日,有攻击者通过 CI/CD 工作流中的 GitHub Actions 工具窃取了谷歌、微软、AWS 和 Red Hat 等多个知名开源项目的 GitHub 身份验证令牌。

窃取这些令牌的攻击者可在未经授权的情况下访问私有存储库、窃取源代码或向项目中注入恶意代码。

Palo Alto Networks  Unit 42 发现这个情况后,立刻敦促所有受到影响的企业立刻采取行动。但由于 GitHub 暂未对此有所行动,因此根本问题仍未解决。

鉴于这种情况,GitHub 用户需要了解风险,评估自己所面临的风险,并采取措施防止未来发生泄密事件。

1723689245_66bd691d3c3612bfa8867.png!small

GitHub 操作生成的工件,来源:GitHub Unit 42

GitHub 令牌泄露

Unit 42 的报告强调了一系列因素,包括不安全的默认设置、用户错误配置和不充分的安全检查,这些都可能导致 GitHub 令牌泄漏,他们称之为 “ArtiPACKED ”攻击。

第一个风险点是 “actions/checkout ”操作,该操作通常用于 GitHub 工作流,以克隆版本库代码,使其在工作流运行期间可用。

默认情况下,该操作会将 GitHub 标记持久化到本地 .git 目录(隐藏)中,这是工作流中验证操作所必需的。

如果用户误将整个签出目录作为工件的一部分上传,git 文件夹内的 GitHub 标记现在就会暴露。

1723689283_66bd6943989e70e88fc52.png!small

公开暴露的 GitHub 令牌,来源:GitHub Unit 42

该文件夹中可能包含的其他敏感信息包括 API 密钥、云服务访问令牌和各种账户凭据。

在 CI/CD 过程中生成的工件(如构建输出和测试结果)也会因错误的工件上传而发生类似的暴露,这些工件的存储和访问时间长达三个月。

另一个故障点是使用环境变量存储 GitHub 标记的 CI/CD 管道。如果工作流中的操作或脚本有意或无意记录了这些变量,这些记录就会作为人工制品上传。

Unit 42指出,当 “CREATE_LOG_FILE ”属性设置为 “True ”时,“super-linter ”操作可以创建包含环境变量的详细日志。

最终,攻击者会在短暂的 GitHub 令牌过期前从日志中提取并使用这些令牌。GitHub 令牌在工作流作业持续期间保持有效,因此其利用潜力因情况而异。

GitHub 内部用于缓存和管理工件的 “Actions_Runtime_Token ”有效期通常为 6 小时,利用窗口很小。

而自定义秘密和令牌(如 API 密钥或云服务的访问令牌)的生命周期各不相同,从几分钟到永不过期不等。

Unit 42介绍了一种攻击方案,该方案可识别使用 GitHub Actions 的项目或公共源,并使用自动脚本扫描它们,以确定可提高工件生成可能性的标准。

另一套脚本可以自动从目标软件仓库的 CI/CD 管道中下载工件,对于公共软件仓库来说这个过程并不复杂。

1723689357_66bd698da50dd1d027432.png!small

攻击流,资料来源:Unit 42

缓解措施

Unit 42 发现了以下 14 个可能受到影响的大型开源项目,并建议它们立即采取补救措施:

  • Firebase(谷歌)
  • OpenSearch Security(AWS)
  • 克莱尔(红帽)
  • 活动目录系统(Adsys)(Canonical)
  • JSON 模式(微软)
  • TypeScript Repos 自动化、TypeScript Bot 测试触发器、Azure Draft(微软)
  • CycloneDX SBOM(OWASP)
  • 鳕鱼
  • Libevent
  • 用于 Apache Kafka 的 Guardian(Aiven-Open)
  • Git 附件(Datalad)
  • Penrose
  • Deckhouse
  • Concrete-ML (Zama AI)

Unit 42建议 GitHub 用户应尽量避免在上传的工件中包含整个目录,对日志进行消毒,并定期检查 CI/CD 管道配置。同时,应调整 “actions/checkout ”等危险操作的默认设置,以避免凭证持久化。此外,工作流中使用的令牌权限应设置为必要的最低权限,以限制它们被暴露时造成的损害。

参考来源:https://www.bleepingcomputer.com/news/security/github-actions-artifacts-found-leaking-auth-tokens-in-popular-projects/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401713.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker部署redis

1.搜索镜像 docker search redis 2.拉取镜像 可省略第二步,直接执行第三步 docker pull redis 3.创建Redis容器并设置密码 也可以不设置密码 不设置密码: docker run -d -p 6379:6379 \ -v /Users/hal/DevelopmentToolkit/redis/redis.conf:/etc/red…

【漏洞复现】某骋BPM系统——Handler.ashx——sql注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 某骋BPM系统是一款功能全面的商业流程管理平台,旨在帮助企业实现…

SpringCloud Sleuth2

继SpringCloud Sleuth-CSDN博客 使用RabbitMQ收集链路数据 引导 通过Spring Cloud Sleuth整合Zipkin,已经实现了通过HTTP方式收集链路跟踪信息,除了使用HTTP方式之外,还可以使用RabbitMQ消息中间件异步收集链路跟踪信息。本节讲解如何通过R…

STM32cubemxide v1.0.0开发烧录

STM32cubemxide v1.0.0开发烧录 1.介绍2.烧录 1.介绍 使用STM32cubemxide v1.0.0是因为他自带的freertos版本是10.0.1版本,虽然里面也有做更改而且也加入了亚马逊的代码,但是比较接近未被修改的freertos9版本的代码,也可以去官网下载。 STM32Cubemxide …

day 26网络编程—协议

1、协议:通信双方约定的一套标准 2、国际网络通信协议标准: 1.OSI协议: 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 数据传输的…

Processing用多方形绘制代码

案例代码如下: import processing.pdf.*; import java.util.Calendar; boolean recordPDF false; void setup(){ size(720,720); smooth(); noFill(); background(255); } void draw(){ if(mousePressed){ translate(width/2,height/2); int c…

超越GPT-4 ,金融分析新突破:FinTral多模态大模型

人工智能咨询培训老师叶梓 转载标明出处 在金融领域,对大量非结构化数据的处理和分析一直是行业面临的重要挑战。为了解决这一问题,由不列颠哥伦比亚大学和Invertible AI的研究团队共同提出了一套名为FinTral的先进多模态大模型(LLMs&#xf…

C#中的多线程案例

使用Task写一个进度条 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.For…

Docker——常用命令

1.Docker是做什么的? Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。它可以帮助我们下载应用镜像,创建并运行镜…

Spring DI 简单演示三层架构——Setter 注入

Spring IOC 的常见注入方法有3种:Setter注入、构造注入和属性注入。想了解更多可点击链接:Spring 注入、注解以及相关内容补充 属性注入 不推荐。原因:使用私有的成员属性变量,依靠反射实现,破坏封装,只能依…

opencv 控制鼠标键盘实现功能setMouseCallback

鼠标事件类型 OpenCV 支持多种鼠标事件类型,常见的包括: cv2.EVENT_LBUTTONDOWN:左键按下 cv2.EVENT_RBUTTONDOWN:右键按下 cv2.EVENT_MBUTTONDOWN:中键按下 cv2.EVENT_LBUTTONUP:左键释放 cv2.EVENT_RBUTT…

HOW - 用腾讯蓝盾部署一个 Web 应用

目录 一、介绍二、项目、流水线和 Stage1. 项目(Project)2. 流水线(Pipeline)3. Stage(阶段)示例:配置一个简单的 CI/CD 流程的基本步骤总结 三、一条完整的流水线包括什么 Stage1. 源代码管理&…

数据库-DML语言-数据操作语言

定义 DML是对表中数据进行操作的语言,涉及的关键字:INSERT UPDATE DELETE INSERT:向表中插入新数据的语句UPDATE:修改表中数据的语句DELETE:删除表中数据的语句 准备工作 USE mydb; 使用mydb库 CREATE TABLE person( 创建表personname VARCHAR(30),age INT…

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

系统版本: ky10.x86_64 下载安装包并上传 openssh下载地址 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable openssl下载地址 https://openssl-library.org/source/index.html zlib下载地址 https://zlib.net/fossils/ 上传安装包 备份配置文件 cp -r /etc/ssh /et…

高德地图SDK Android版开发 5 地图交互操作

高德地图SDK Android版开发 5 地图交互操作 前言控件控件介绍接口UiSettingsAMapOptions 示例代码Logo指南针比例尺缩放按钮 效果图 地图手势地图手势方法说明地图手势开关指定屏幕中心点的手势操作 地图手势事件地图点击事件监听接口地图长按事件监听接口地图触摸事件监听接口…

Python 6行代码写北京时间时钟(10帧 可调) 天地良心

今天看到别的大佬用Python写时钟 我密集恐惧症都犯了 十来个定义函数 我看也看不懂 代码还有整整78行 还是在我改良后的 改良前有98行 我删注释 优化函数名(比如把penup改成pu) 这个文件照样有5KB 并且在帧数取决于电脑性能 我运行了一下 电脑都卡出蓝屏了 于是我连夜赶…

云动态摘要 2024-08-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 全球加速 GA - 新增“巴西(圣保罗)”、“沙特(利雅得)”接入点 华为云 2024-08-12 全球加速服务新增开通“巴西(圣保罗)”、“沙特&a…

CAN总线-----帧格式

目录 前言 一、CAN总线帧格式分类 1.数据帧(重点) 2.遥控帧 3.错误帧 4.过载帧 5.间隔帧 二、位填充 三、波形实例 前言 本期我们就开始学习CAN总线的帧格式,对应帧格式的话,在前面我们学习I2C协议和SPI协议等协议的时候…

使用功率器件比如MOSFET瞬态热阻曲线计算参数

使用功率器件比如MOSFET瞬态热阻曲线计算参数 1.概述2.查看 ZθJC 图3.使用 ZθJC 图估算结温升4.应用案例5.使用 ZθJC 图估算 MOSFET 峰值电流能力6.应用实例 资料来自网络,仅供学习使用 1.概述 功率 MOSFET 数据表包括归一化瞬态热阻抗图:结至外壳 …

怎么将pdf转为ppt文件?pdf转ppt的8个方法

在诸多职场与学术交流的场合中,我们时常面临将详尽的PDF文件转化为生动且易于编辑的PPT演示文稿的需求。这一转换不仅是为了满足演示时的灵活性,更是为了提升信息传递的效率与观众的理解度。从简单的在线工具到功能全面的专业软件,我们拥有多…