0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

YouTube源代码管理器Git存在Bug

lhl545545 来源:雷锋网 作者:贝爽 2020-11-10 09:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

YouTube-dl事件刚刚过去不久,GitHub又登上了Hacker News榜首。

原因是其源代码被全部泄露!

开发者Resynth 发表的一篇博客中了解到,在一个向 GitHub 官方 DMCA 仓库提交的可疑 Commit 中,一名不明身份人员利用 GitHub 应用程序中的bug 假冒GitHub CEO 奈特·弗里德曼 (Nat Friedman)上传了机密源代码。

泄露文件已被全部删除

GitHub想必大家都非常熟悉,它是一个大型代码存储库,主要为企业和开发人员提供托管项目和服务代码。苹果、亚马逊、Google、Facebook以及其他许多大型科技公司都是其主要客户。

目前,GitHub已托管超过1亿个存储库,为4000万开发人员提供资源支持。

因此,此泄露事件一出便迅速冲上了Hacker News热搜,不少开发者表示为GitHub平台的安全性感到担忧。

对此,GitHub CEO Friedman本人则第一时间在热帖下做出了解释。他表示:

GitHub没有被黑客入侵,被泄露的是部分GitHub Enterprise Server源代码。二者虽然共享大量代码,但GitHub主要是由Rube编写,还是有很大差异的。

另外,这一事件的起因是几个月前,开发人员无意间将企业服务器源代码的未脱敏/混淆的 tarball 交付给了一些客户造成的。我们正在全力修复平台Bug,防止未经授权的不明人士通过伪造身份随意盗用、修改他人项目。

YouTube源代码管理器Git存在Bug

最后,Friedman为了安抚用户甚至还吟了首勃朗宁的诗:一切都很好,情况也很正常,云雀展翅飞翔,蜗牛在荆棘上爬动,世上一切顺当!

不过,开发者们对此回应并不买账。从他们的吐槽来看,Github代码管理系统早已存在多项Bug,比如提交代码时,Git不会对用户身份进行核验。这一点会给源代码带来极大的安全风险,但GitHub平台对此从未重视过。

另外,有人表示正是利用这一缺陷,不明人士才得以冒充Friedman身份发布了机密代码。

源代码管理器Git存在Bug

Git,是Github用来托管源代码的分布式版本管理系统,简单来说,就是源代码管理器。

它的设计存在一种明显的缺陷,即没有为防止其他用户盗用提供太多的保护。

具体来说,Git 上传代码文件的过程,类似于发送电子邮件。用户可以在user.name和user.email字段中输入任何信息。这一过程中,如果两个字段之间不采用GPG密钥关联,系统就不会核查它的指定来源,那么信息造假会变得非常容易。

上述不明人士顺利提交成功,显然是Friedman没为相关字段建立GPG(General Planning Group)密钥。

那么,在绕过这层限制后,不明人士又是如何提交至存储库,同时又不损害实际存在账户的?

据了解,将提交内容上传到Git存储库会得到一个散列,可用于查找树。GitHub是Web应用程序的一部分,提供了对浏览器中底层Git结构的访问权限,因此,它可以将Git存储库的所有分支存储在一个单独的底层存储库中,尽管通常不会在URL结构中显示这种方式。

为了假冒别人的账户,不明人士首先需要克隆一个DMCA储存库。在扩展到存储库之后,再提交泄漏源代码,并伪造成Friedman的姓名和电子邮件地址。这个过程Fork存储库可能会出现错误,换句话说,URL可能依然指向假冒者真正的用户名和账户。

但在底层Git上,父级和Fork都是同一个存储库的一部分,这将允许假冒者创建一个URL,该URL可以在主存储库中提交,而不是在Fork中。

因此,假冒者从https://github.com/github/dmca开始,将tree/$hash追加到末尾,其中$hash是攻击者自己的fork提交的散列值。

结果假冒者得以代替Friedman使用了一个URL在GitHub上提交了自己的机密代码。

值得一提的是,除了代码安全性的担忧之外,这件事也再度引起了开发者们对GitHub开源态度的关注。

长久以来,GitHub 一直因为未公开源代码而饱受诟病,而恰好前几日,GitHub再度因封杀视频神器YouTube-dl而陷入舆论风波。

据了解,此次泄露事件的发生,很可能是这位不知名开发者对封杀YouTube-dl一事的报复。

或许与下架YouTube-dl有关

上个月,在美国唱片业协会(RIAA)的要求下, GitHub 封禁了7.5万Star的热门开源项目 YouTube-dl。

当时RIAA其给出的理由是,YouTube-dl其违反了DMCA的反规避条款:

此源代码的明确目的是:1)规避 YouTube 等授权流媒体服务所使用的技术保护措施;2)未经授权复制和分发会员公司拥有的音乐视频和音频。3)除YouTube外,该源代码在 GitHub上支持更多网站下载视频。

但GitHub将YouTube-dl下架,却激怒了开发者们,他们在GitHub上复制并上传了大量代码副本,以此对该下架行为表示抗议。目前在GitHub上搜索YouTube-dl,相关结果高达4108个。

后来,GitHub公司法律团队不得不发出最新警告,称如果继续发布代码副本,可能会对其进行封号处理。

请注意,在未遵循流程的情况下重新发布YouTube-dl代码副本是违反GitHub平台DMCA政策和服务条款的。如果您在明知违反服务条款的情况下,继续向该存储库提交或发布相关内容,我们会将其删除,并可能中止对您帐户的访问权限。

虽然造成此次泄露事件的不知名人士并未对此事公开表态,但有人猜测称可能是他对GitHub下架该项目的报复。

另外,在Friedman回应泄露事件的帖子下可以看到,不少网友对GitHub因DMCA协议而下架YouTube-dl表示不满。

还有一位用户表示,GitHub之所以这样做,很可能是因为微软是RIAA的成员。他说,DMCA 所要求的下架不是让代码版权所有者本身下架,GitHub作为一家倡导开源的独立公司,它不需要遵守RIAA的非法请求。

可以看出,网友们的不满显示是因为封禁一事与GitHub最初的开源初衷背道而驰。

GitHub开源精神惹争议

2018年,微软以75亿美元的价格收购GitHub。新任 CEO Nat Friedman 曾表示:GitHub 将始终坚持开发者优先并独立运营。

Resynth在博客中也表示:微软一再强调致力于开源,这一点我们从很多商业广告中经常可以看到,它的目的是让微软出于开源发展的最前沿。

但现在来看,微软似乎并没有做到承诺的那样,而且YouTube-dl也只是最近发生的一例而已。事实上,GitHub因将其源代码保密的问题已经在业内广受批评。

另外,Resynth也提醒称,这次事件也不得不让人们担心 GitHub 源代码的安全性。因为闭源应用程序执行的是“隐蔽式安全 (Security By Obscurity)”,即源代码是隐藏的,目的是降低安全风险。

如果 GitHub 真的公开源代码,很可能会损害其整体的安全性。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10093

    浏览量

    90889
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16225
  • Youtube
    +关注

    关注

    0

    文章

    144

    浏览量

    17038
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【产品介绍】Altair PBS Professional HPC工作负载管理器和作业调度管理系统

    AltairPBSProfessional行业领先的HPC工作负载管理器和作业调度管理系统PBSProfessional是一款快速、强大的工作负载管理器和作业调度管理系统,旨在提高生产
    的头像 发表于 09-19 17:03 381次阅读
    【产品介绍】Altair PBS Professional HPC工作负载<b class='flag-5'>管理器</b>和作业调度<b class='flag-5'>管理</b>系统

    K230设备管理器里面没有COM是怎么回事?

    我的K230连接电脑后,设备管理器里面没有新的USB串行设备(COMx),电脑也没有弹出CanMV设备,我看设备管理器里面只有一个“其他设备-K230 USB Boot Device”有个三角形
    发表于 08-04 08:04

    k230弹出windows资源管理器无法识别usb设备怎么解决?

    k230弹出windows资源管理器无法识别该usb设备
    发表于 07-31 08:28

    protel 99 se的设计管理器找不到

    求哪位高手指点一下,我打开protel 99 se时,窗口上不显示设计管理器,点击Design Manager和图标都不行,重新从网上下载protel 99 se也是打不开。
    发表于 07-11 10:25

    ADI创新电源管理器件介绍

    在电子系统中,电源管理器件担负着电能的变换、分配、监测等工作,为系统中不同的用电组件提供持续充足的能量,确保其稳定可靠工作,是不可或缺的存在。因此,对于硬件工程师来说,电源管理器件的选型和应用,是产品开发中重要的一环。
    的头像 发表于 05-30 14:18 1299次阅读
    ADI创新电源<b class='flag-5'>管理器</b>件介绍

    CY4500设备管理器黄感,显示没有安装驱动是怎么回事?

    CY4500 设备管理器黄感,显示没有安装驱动
    发表于 05-27 06:48

    帝奥微推出汽车级16通道矩阵控制管理器DIA82664

    为了解决传统大灯在夜间行车中存在的安全隐患,ADB(自适应远光灯)大灯应运而生,成为未来智能汽车的重要组成部分。帝奥微最新推出的车规级16通道矩阵控制管理器是ADB大灯的核心器件,它通过提供独立的像素级LED控制,实现了完全动态的自适应照明。
    的头像 发表于 04-08 17:57 1864次阅读
    帝奥微推出汽车级16通道矩阵控制<b class='flag-5'>管理器</b>DIA82664

    源代码加密、源代码防泄漏c/c++与git服务开发环境

    源代码加密对于很多研发性单位来说是至关重要的,当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同,今天主要来讲一下c++及git开发环境的源代码防泄密保护方案。企业源代码泄密
    的头像 发表于 02-12 15:26 876次阅读
    <b class='flag-5'>源代码</b>加密、<b class='flag-5'>源代码</b>防泄漏c/c++与<b class='flag-5'>git</b>服务<b class='flag-5'>器</b>开发环境

    hyper管理器,Hyper管理器管理工具使用指南

    随着大数据、云计算等新兴技术的不断发展,数据的规模呈指数级增长。在这样的背景下,批量管理工具的价值愈发凸显,它成为了我们在数据管理领域的重要利器。今天就为大家介绍Hyper管理器管理
    的头像 发表于 02-08 09:57 1529次阅读
    hyper<b class='flag-5'>管理器</b>,Hyper<b class='flag-5'>管理器</b>:<b class='flag-5'>管理</b>工具使用指南

    KiCad 9 探秘(五):敷铜管理器

    “  KiCad 9 中新增了敷铜管理器的功能,可以让您更方便的查看或编辑 PCB 中的敷铜。   ” 敷铜管理器有什么用? 敷铜管理器(Zone Manager)可以帮助您在同一个对话框中查看或
    的头像 发表于 02-06 11:15 3420次阅读
    KiCad 9 探秘(五):敷铜<b class='flag-5'>管理器</b>

    飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码

    我们前边已经介绍过Git工具,是一个非常实用的代码管理工具。如果验证编译出的内核能够正常启动,就可以将源码用git工具管理起来。可以清楚的了
    发表于 01-22 10:39

    EE-146:为ADSP-218x系列DSP实施启动管理器

    电子发烧友网站提供《EE-146:为ADSP-218x系列DSP实施启动管理器.pdf》资料免费下载
    发表于 01-14 14:58 0次下载
    EE-146:为ADSP-218x系列DSP实施启动<b class='flag-5'>管理器</b>

    飞凌嵌入式ElfBoard ELF 1板卡-git管理源码之git安装和使用

    分两种方式,一种是管理当前的代码,给当前代码创建一个git仓库,这种需要初始化新仓库;还有一种是用clone克隆一个远程仓库到自己当前目录下,这种适合一群人维护一个仓库,也是常见的方式
    发表于 01-14 09:08

    云服务 Flexus X 实例:部署 Gitea,拥有自己的 Git 仓库,管理本地代码

    、零售、金融、游戏等众多领域的通用工作负载需求。本文旨在详细阐述如何高效利用“云服务 Flexus X 实例”,包括如何在其中从零开始,通过安装相关依赖、安装 Docker、安装 Gitea 等步骤,实现自己的 Git 仓库,管理
    的头像 发表于 01-07 16:59 753次阅读
    云服务<b class='flag-5'>器</b> Flexus X 实例:部署 Gitea,拥有自己的 <b class='flag-5'>Git</b> 仓库,<b class='flag-5'>管理</b>本地<b class='flag-5'>代码</b>

    Flexus X 实例 C#/.Net Core 结合(git 代码管理、docker 自定义镜像)快速发布部署 - 让你的项目飞起来~

    与 Docker 容器化部署,实现代码高效管理与无缝迁移。即刻行动,让您的 Web 服务更加稳定、高效,领跑数字化转型之路! ���本实验深入演示了如何在 Ubuntu 环境中,利用 Git 进行版本控制
    的头像 发表于 12-25 21:15 1018次阅读
    Flexus X 实例 C#/.Net Core 结合(<b class='flag-5'>git</b> <b class='flag-5'>代码</b><b class='flag-5'>管理</b>、docker 自定义镜像)快速发布部署 - 让你的项目飞起来~