GitHub 令牌泄漏, Python 核心资源库面临潜在攻击

news/2024/8/26 11:38:12 标签: github, python, 开发语言

TheHackerNews网站消息,软件供应链安全公司 JFrog 的网络安全研究人员称,他们发现了一个意外泄露的 GitHub 令牌,可授予 Python 语言 GitHub 存储库、Python 软件包索引(PyPI)和 Python 软件基金会(PSF)存储库的高级访问权限。

该令牌属于 Python 软件基金会的基础设施主管,并且意外地包含在一个编译的二进制文件中,该文件作为容器镜像的一部分发布在 Docker Hub 上。

JFrog 的研究人员在一份报告中写道:“这次的情况比较特殊,如果令牌落入不法分子之手,他们可能向 PyPI 软件包甚至 Python 语言本身注入恶意代码(类似于用恶意软件包替换所有 Python 软件包),其潜在后果难以估量。”

因此,理论上攻击者可以利用管理员权限,通过毒化与 Python 编程语言核心或 PyPI 软件包管理器相关的源代码,策划大规模的供应链攻击。

这一事件表明,仅从源代码中清除访问令牌(某些开发工具会自动这样做)不足以防止潜在的安全漏洞。由于自动构建过程和开发人员的失误,敏感凭据也可能被包含在环境变量、配置文件甚至二进制文件中。

令牌泄漏

PyPI 管理员兼 Python 软件基金会 (PSF) 基础设施主管 Ee Durbin 撰写了一份事件报告,解释了泄露事件发生的原因。该事件涉及 Durbin 自己账户的访问令牌,由于他在组织中的角色,该账户拥有管理权限。

2023 年初,Durbin 正在开发 cabotage-app,这是 PSF 开发的一款基于 Docker 的工具,用于在 Kubernetes 集群上部署 PyPI 和相关服务。在开发代码库的构建部分时,他不断遇到 GitHub 对匿名访问实施的 API 速率限制。

在Durbin 所谓的 "偷懒行为 "中,他决定在本地修改源代码,为自己的账户添加一个访问令牌,以绕过默认的速率限制,更快地完成工作。这是一个快速解决方案,是配置本地主机 GitHub 应用程序来完成构建而不是使用 GitHub API 的替代方案。

Durbin 知道在源代码中添加个人访问令牌 (PAT) 并不安全,但这种更改只是针对他的本地代码库副本,从未打算远程推送。事实上,自动构建和部署脚本应该恢复本地变更,从而清除令牌。

但 Durbin 没有意识到的是,作为构建过程的一部分而生成的 .pyc(Python 编译字节码)文件中也包含了令牌,而这些存储在 __pycache__ 文件夹中的文件并未配置为从上传到 Docker Hub 的最终 Docker 镜像中排除。

PyPI 安全团队在 6 月下旬收到 JFrog 的通知后,撤销了该令牌,并审查了所有 GitHub 审计日志和账户活动,以查找该令牌可能被恶意使用的迹象。目前,没有发现恶意使用的证据。包含令牌的 cabotage-app 版本于 2023 年 3 月 3 日发布在 Docker Hub 上,并于 2024 年 6 月 21 日(即 15 个月后)被移除。

Durbin 写道:" Cabotage 现在完全是自托管的,这意味着 cabotage-app 的构建不再使用公共注册表,部署构建仅从源代码的清洁检查中启动。这减少了本地编辑进入开发环境之外的镜像构建的情况,同时也消除了发布到公共注册表的需要。”

Durbin 表示,除非万不得已,他今后将避免为自己的账户创建个人访问令牌。除了这一案例之外,这种长效令牌并没有在其他任何情况发挥作用。

关于此次事件,Durbin 认为这是一个很好的提醒,要为 API 令牌设置严格的过期日期(如果需要的话),像对待源代码一样对待 .pyc 文件,并在自动化系统上只从干净的源代码执行构建。

参考来源:

https://www.csoonline.com/article/2515722/python-github-token-leak-shows-binary-files-can-burn-developers-too.html

https://thehackernews.com/2024/07/github-token-leak-exposes-pythons-core.html


http://www.niftyadmin.cn/n/5558121.html

相关文章

解决 Vscode不支持c++11的语法

问题: 解决方案: 1、按 CtrlShiftP 调出命令面板,输入 C/C: Edit Configurations (UI) 并选择它。这将打开 C/C 配置界面 2、打开 c_cpp_properties.json 文件 3、编辑 c_cpp_properties.json 4、保存 c_cpp_properties.json 文件。 关闭并…

硅纪元视角 | 微软开发全新AI模型,革新电子表格处理效率!

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

使用Micronaut进行无服务器应用开发

随着云计算和无服务器架构的普及,开发者开始寻求高效且可扩展的解决方案来构建现代应用。Micronaut作为一个新兴的、轻量级的框架,提供了构建无服务器应用的理想工具集。在这篇博客中,我们将深入探讨如何使用Micronaut进行无服务器应用开发&a…

Azure Repos 仓库管理

从远端仓库克隆到本地 前提:本地要安装git,并且登录了账户 1.在要放这个远程仓库的路径下,打git 然后 git clone https://.. 如果要登录验证,那就验证下 克隆完后,cd 到克隆的路径, 可以用 git branch -a //查看分支名 git status //查看代码状态 删除…

「AI得贤招聘官」通过首批“AI产业创新场景应用案例”评估

近日,上海近屿智能科技有限公司的「AI得贤招聘官」,经过工业和信息化部工业文化发展中心数字科技中心的严格评估,荣获首批“AI产业创新场景应用案例”。 据官方介绍,为积极推进通用人工智能产业高质量发展,围绕人工智能…

阿里云CDN- https(设计支付宝春节开奖业务)

HTTP相关概念 1. HTTP概述 http是最广泛的网络协议,是客户端与服务器之间的请求与应答的标准(TCP),用于www服务器传输超文本到本地浏览器的传输协议,使浏览器更加高效,网络传输减少。 2.HTTPS概述 http…

免费服务器和付费服务器哪个更好?

免费服务器是由服务提供商免费提供的服务器资源,用于存储、处理和传输数据。这些服务器通常由广告或附加服务资助,使得基础服务对用户免费。免费服务器常见于云计算和网络应用领域,如虚拟主机、云存储和开发者平台。 与传统付费服务器的对比 …

第二证券:电影暑期档持续升温 农机自动驾驶驶入快车道

农机自动驾驶打开驶入快车道 得益于农机补贴、土地流通、高标准农田制造等方针引导,叠加技术突围和用户降本增效的内生需求,我国正处于农业2.0向农业3.0的过渡阶段。其间农机自动驾驶系统是结束农业3.0(即自动化)的要害并迎来快速…