关于github:GitHub-Actions-被曝存在严重安全漏洞Google-Project-Zero-披露详情

67次阅读

共计 1625 个字符,预计需要花费 5 分钟才能阅读完成。

对开发者来说,在 GitHub 上创立了一个我的项目筹备运行,并不代表这个我的项目曾经真正实现了,还有很多部署测试工作须要手动操作。

GitHub 的 Action 性能能够简化这一步,对我的项目的代码进行自动化的测试,当初曾经有很多人应用它来继续集成 / 间断部署(CI/CD),但最近 Actions 中被发现暗藏了一个安全漏洞。

Google Project Zero 的钻研人员发现,GitHub Action 的一个设计缺点能够使黑客可能写入开发者的存储库,甚至能够显示加密的机密文件。

GitHub Actions 中存在重大安全漏洞

Google Project Zero 研究员 Felix Wilhelm 发现,GitHub Actions 工作流命令性能充当 Action Runner 和执行的动作之间的通信渠道。这意味着工作流命令通过解析所有已执行操作的 STDOUT 来工作,STDOUT 携带的那些命令之一是“set-env”。

Set-env 能够将任意环境变量定义为工作流的一部分,极易受到注入攻打。当运行程序解析每个 STDOUT 行以查找工作流命令时,每个“在执行过程中打印不受信赖的内容的 Github Action 都将受到攻打”。

Felix Wilhelm 钻研了一些受欢迎的 Github 存储库,他发现简直所有具备某些简单 GitHub Actions 的我的项目都可能受到攻打,即便 Github 本身的行为也容易受到此问题的影响。

Google Project Zero 早已向 GitHub 通报此破绽

据理解,Google Project Zero 在为 GitHub 提供的 90 天修复期的根底上还将这个工夫缩短了 14 天,在 GitHub 再次提出缩短宽限期后,Google Project Zero 回绝了这个申请,并披露了破绽的详细情况。

Google Project Zero 是谷歌于 2014 年发表的互联网安全我的项目,整个团队由谷歌外部顶尖的平安工程师组成,发现、跟踪和修复尚未被公开的软件安全漏洞。

Google Project Zero 所解决的安全漏洞通常都属于“零日破绽”,此类安全漏洞通常都尚未被公开,用户不能在第一工夫对其进行修复。为了阻止黑客利用零日破绽发动攻打,谷歌推出了 Project Zero 打算。

据理解,Google Project Zero 发现破绽后会首先与受影响的机构分割,给出 90 天的修复期,破绽修复实现后才会公开相干信息。往年 7 月,Project Zero 团队已向 GitHub 收回了破绽正告。

GitHub Action 中暗藏着更多麻烦

Felix Wilhelm 坦言,暗藏在 GitHub Action 工作流命令中可能会遇到更多麻烦,他抵赖他没有思考其余工作区命令的平安影响。

Felix Wilhelm 认为,“实现工作流命令的形式基本上是不平安的。破除 v1 命令语法并应用 allowlist 增强 set-env 可能不利于间接的 RCE [近程代码执行] 向量。然而,即便可能笼罩前面步骤应用的‘失常’环境变量,也可能足以利用最简单的操作。”

当然,也有一劳永逸解决这个问题的办法。Felix Wilhelm 倡议将工作流命令挪动到某个不受约束的通道(例如一个新的文件描述符),以防止解析 STDOUT。但这样做也存在一个小问题,它会毁坏许多现有的代码操作。

GitHub 的开发人员正在从 Runner 中删除两个最易受攻击的命令。将来 Runner 将公布一个更新,该更新将会禁用 set-env 和 add-path 工作流命令。

同时,GitHub 倡议开发者“应该降级到 @actions/core v1.2.6 或更高版本,并用新的 Environment File Syntax 替换工作流中的 set-env 或 add-path 命令的任何实例。”

如果持续应用旧命令或旧工具包版本的工作流和操作,那么 GitHub 会收回正告,如果持续尝试应用旧的不平安命令,工作流执行过程将会出错。

就像平安问题常常产生的那样,是时候开始修补和清理代码了。开发人员的平安工作永远不会实现……

正文完
 0