网站首页 > 博客文章 正文
我们在GitHub中发现了一个Bug,在今年2月底的大概5天内,该漏洞都允许与GitHub连接的第三方应用程序生成具有升级权限的安装口令(token)。打个比方,如果您将Codecov应用程序连接到您的GitHub帐户,并对您的代码库设置只读访问权限,在该窗口期间,应用程序可能会创建一个具有写入权限的新token。这个Bug可能会引发重大安全问题,包括数据丢失以及机密和凭证的泄露。而GitHub没有及时披露该漏洞,因此实际影响范围尚不能确定。
GitHub Apps是什么?
GitHub Apps是GitHub官方推荐的集成应用程序平台,允许您利用webhook和GitHub的API更改GitHub的面板功能。开发人员可构建集成来添加他们自己喜欢的GitHub功能、自动化常规流程,并扩展其项目中的工作流。目前,GitHub Marketplace上的应用程序已超过580个,其中最热门的应用程序已达到数十万次的安装量。
最热门的GitHub Apps
GitHub应用程序可以安装在企业和个人帐户上,并且可被授予对特定代码库的访问权限。只有企业所有者或在代码库中具有管理员权限的人才可安装GitHub应用程序。默认情况下,只有组织所有者才有权进行组织中GitHub应用程序的设置。
GitHub应用程序是如何使用token
进行身份验证的?
据GitHub所言,GitHub应用程序采用以下任一方式进行身份验证:JSON web token(JWT)、OAuth token或安装访问token。我们正在审查的漏洞与安装访问token有关。安装token是通过JWT生成的,所以让我们来了解一下它是什么,以及它是如何运行的。
JWT是一种开放标准,它定义了一种将信息作为JSON对象传输的安全方式。因为这种信息是数字签名,是可验证和可信任的。JWT通常用于大型技术公司的授权。它允许安全的访问委托,使第三方应用程序能够安全地交换凭证信息,而无需用户泄露其密码。
打个比方,您想让某款游戏访问您的Facebook好友列表。游戏可以以JWT为token,在您批准的情况下使用OAuth从您的Facebook帐户请求该资源。OAuth token的有效期通常不到一个小时,这是为了防止它们泄漏和遭到恶意使用。
在获得您的批准后,游戏(以及与此相关的任何第三方应用程序)可以在需要访问该资源的任何时候,请求获得此作用域OAuth令牌,从而获得一个全新、有效,但有时效限制的访问令牌。
这些tokens发生了什么问题?
通常,GitHub应用程序会根据在用户帐户或企业中安装应用程序时所授权的范围和权限,来创建安装口令(token)。比如,如果您授予应用程序读取用户配置文件数据的权限,则该应用程序生成的token将具有“读取:用户”权限。
最新发现的漏洞允许GitHub应用程序在2022年2月25日至2022年3月2日之间的大约五天时间内,生成具有升级权限的安装口令(token)。例如,应用程序可能已生成具有“写入:用户”权限的tokens,其权限高于最初授予的“读取:用户”权限。每个令牌的有效期可以长达一小时。
不过,除了最初授权的范围之外,应用程序将无法获得其他作用域的新权限,例如“安装包”。
GitHub表示已立即展开调查,并迅速修复了该漏洞。
潜在影响
这个漏洞的暴露范围广泛,可能会带来巨大的潜在影响。每家使用GitHub并安装了GitHub应用程序的公司,甚至这些公司的每位员工,都可能受到其影响。不过,GitHub尚无证据表明该漏洞曾被恶意利用。
在漏洞暴露窗口期生成的每个token,都有可能获得管理员访问权限,这可能会对企业造成极大破坏。举个例子,对于软件供应商来说,如果包含源代码和知识产权的私有代码库被泄露或删除,就可能意味着该公司的终结。
应对措施和建议
这一问题对您环境所造成的实际影响将取决于您在安装第三方应用程序时所授予的权限范围。GitHub无法确定该漏洞是否曾被利用,而那些可能生成并遭到恶意使用的短期tokens早已不复存在。
尽管如此,我们仍然建议您查看所有已安装的GitHub应用程序及其作用范围和权限。您可以使用GitHub的GitHub应用程序评估指南、其权限以及其对您私人组织代码库的访问权限。
从长远来看,适当采用软件供应链中第三方访问的专用解决方案,有助于抵御未来出现此类风险。例如,基于最近收购Argon的技术,Aqua的云原生应用程序保护平台(CNAPP)提供了软件供应链安全解决方案,可防范此类供应链威胁。
小 结
GitHub的这一问题突显出,对企业来说,第三方应用程序和包是一个日益严峻的安全风险。总体而言,这些第三方应用程序和软件供应链缺乏管理、控制和可见性,导致越来越多攻击者为收集信息和渗透企业而对其发起攻击。仅在2021年,软件供应链攻击就增加了300%以上。
更重要的是,第三方应用程序的行为并不总是像我们预期的那样,它们甚至可以利用正常程序逻辑来泄露敏感数据。Aqua的Nautilus团队的最新研究就表明了这一点,我们发现,数以万计的免费用户tokens经由TravisCI的API而遭到暴露。
猜你喜欢
- 2024-10-11 苹果手机出现新严重漏洞:账户被接管
- 2024-10-11 你必须知道的十大漏洞之失效的访问控制——A1
- 2024-10-11 互联网小产品开发之(4)基于JWT的登录认证设计
- 2024-10-11 苹果在macOS,iOS中散布零日漏洞(如何在普通pc上安装macos苹果操作系统)
- 2024-10-11 「热点」微软自动化服务被爆高危的账户越权访问漏洞
- 2024-10-11 黑客发现苹果安全漏洞;苹果支付10万美元赏金
- 2024-10-11 垂直越权漏洞与代码分析(垂直越权漏洞修复方案)
- 2024-10-11 Apple登录功能存在安全漏洞,允许未经授权的黑客访问用户信息
- 2024-10-11 在Web应用中,别再把JWT当做session使用
- 2024-10-11 Java 15以上版本爆加密漏洞:CVE-2022-21449
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 357℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)