GitHub 的惊天秘密

米小饭一脸焦虑地冲进了步子哥的办公室,手里紧紧攥着一张皱巴巴的纸条。

"步子哥,出大事了!"米小饭上气不接下气地说道。

步子哥慢悠悠地放下手中的咖啡杯,挑了挑眉毛:"怎么了?又有黑客入侵我们的系统了?"

米小饭摇了摇头:"比那更严重!我刚刚发现,我们在 GitHub 上删除的代码居然还能被别人访问到!这可是我们的商业机密啊!"

步子哥眉头一皱,立马坐直了身子:"什么?这怎么可能?详细说说。"

米小饭深吸一口气,开始解释:"是这样的,上周我在 GitHub 上 fork 了一个公共仓库,然后提交了一些我们公司的私密代码。后来觉得不妥,就把整个 fork 仓库删除了。但是今天,我无意中发现,那些我以为已经删除的代码,居然还能被别人访问到!"

步子哥的表情变得严肃起来:"你确定吗?这可是个严重的安全问题。"

米小饭点点头:"我反复确认过了,绝对没错。而且,我还发现不只是删除的内容,就连我们的私有仓库里的一些数据,也可能被别人看到!"

步子哥站起身来,在办公室里来回踱步:"这事非同小可。如果属实,那么我们所有在 GitHub 上的操作都可能存在安全隐患。我们得好好调查一下。"

米小饭急切地问:"那我们该怎么办?要不要立即把所有代码从 GitHub 上撤下来?"

步子哥摆了摆手:"先别急。贸然行动可能会引起不必要的恐慌。我们得先弄清楚这到底是怎么回事。来,我们一起查一查。"

两人坐到电脑前,开始深入研究这个问题。步子哥熟练地在键盘上敲击着,打开了几个技术论坛和安全博客。

"有意思,"步子哥若有所思地说,"看来这个问题不是个例。这里有一篇 Truffle Security 的博客,详细描述了这个现象。他们称之为 CFOR 漏洞,全称是 Cross Fork Object Reference。"

米小饭凑近屏幕:"CFOR?那是什么意思?"

步子哥解释道:"简单来说,就是一个 fork 仓库可以访问另一个 fork 中的敏感数据,包括来自私有和已删除 fork 的数据。这个问题比我们想象的还要严重。"

米小饭倒吸一口凉气:"天哪,那岂不是说我们的所有代码都有可能被泄露?"

步子哥点点头:"确实如此。根据这篇博客,他们调查了一家大型 AI 公司的 3 个常被 fork 的公共仓库,轻松找到了 40 个有效的 API 密钥。这些密钥来自已经删除的 fork 仓库。"

米小饭惊讶地说:"这么容易就能找到敏感信息?那我们之前删除的那些代码..."

步子哥接着说:"很可能还存在于 GitHub 的某个角落。看来,GitHub 的存储机制比我们想象的要复杂得多。"

两人继续深入研究,发现问题远不止于此。步子哥解释道:"GitHub 将仓库和 fork 仓库储存在一个叫'仓库网络'的结构中。即使你删除了原始仓库,只要还有一个 fork 存在,那些数据就还在那里,而且可以被访问到。"

米小饭瞪大了眼睛:"这简直是噩梦啊!那我们之前做的那些私有开发..."

步子哥点点头:"是的,如果我们先在私有仓库中开发,然后将其公开,那么在私有阶段的所有提交记录都可能被公众看到。这正是很多公司和开发者常用的工作流程。"

米小饭急得直挠头:"那我们该怎么办?难道就没有办法保护我们的代码吗?"

步子哥沉思片刻,说道:"事实上,根据这篇博客,GitHub 官方回应说这是'故意设计的'。他们甚至提供了相关的说明文档。"

米小饭惊讶地说:"什么?他们承认了?那为什么不告诉用户呢?"

步子哥苦笑了一下:"这就是问题所在。大多数用户,包括我们在内,都认为私有和公共仓库是完全分离的,私有数据不会被公开访问。但实际情况并非如此。"

米小饭沮丧地说:"那我们岂不是束手无策了?"

步子哥摇摇头:"也不尽然。虽然这个问题很棘手,但我们还是有一些应对措施的。首先,我们要更加谨慎地管理我们的代码和敏感信息。其次,对于已经可能泄露的密钥和敏感数据,我们需要立即进行轮换。"

米小饭若有所思:"那我们是不是应该考虑使用其他的代码托管平台?"

步子哥说:"这是一个选择,但不是唯一的解决方案。更重要的是,我们需要提高整个团队的安全意识。从现在开始,我们要制定更严格的代码管理政策,仔细考虑每一次提交和每一个仓库的可见性设置。"

米小饭点点头:"明白了。那我们要不要向其他团队和公司发出警告?"

步子哥思考了一会儿:"好主意。我们可以写一篇技术博客,分享我们的发现和应对措施。这不仅能帮助其他开发者,也能提高我们在技术社区的影响力。"

就在这时,办公室的门被敲响了。是公司的 CTO。

"我听说你们发现了一个重大的安全问题?"CTO 一脸严肃地走了进来。

步子哥站起身来:"是的,我们刚刚发现 GitHub 上存在一个严重的安全隐患。"

接下来的一个小时里,步子哥和米小饭向 CTO 详细汇报了他们的发现。CTO 听完后,脸色变得凝重起来。

"这确实是个严重的问题,"CTO 说道,"我们需要立即采取行动。步子哥,我希望你能领导一个特别小组,专门处理这个问题。米小饭,你负责协助他。"

步子哥点点头:"没问题,我们会尽快制定一个全面的应对计划。"

米小饭也表示同意:"我们一定会尽快解决这个问题,保护公司的利益。"

CTO 满意地点点头:"很好。记住,在这个过程中,要保持冷静和理性。这不仅是一个挑战,也是一个机会,让我们能够提升公司的安全水平。"

送走 CTO 后,步子哥和米小饭相视一笑。

"看来我们有的忙了,"步子哥说。

米小饭笑着说:"是啊,不过我觉得这会是一次很棒的学习经历。"

步子哥拍了拍米小饭的肩膀:"没错,困难和机遇总是并存的。来吧,让我们开始工作吧。"

就这样,步子哥和米小饭开始了他们的新任务。在接下来的几周里,他们深入研究了 GitHub 的安全机制,制定了详细的代码管理策略,并向整个公司推广了新的安全最佳实践。

他们的努力不仅保护了公司的利益,还在技术社区引起了广泛的讨论。步子哥写的那篇技术博客被广泛转载,帮助许多其他公司和开发者提高了安全意识。

这个经历让步子哥和米小饭深刻认识到,在快速发展的技术世界中,安全问题往往隐藏在意想不到的地方。只有保持警惕,不断学习和适应,才能在这个充满挑战的环境中保护好自己和公司的利益。

最后,步子哥总结道:"记住,在软件开发中,没有什么是绝对安全的。我们能做的就是不断提高警惕,采取最佳实践,并随时准备应对新的挑战。这就是技术的魅力所在,也是我们作为开发者的责任所在。"

米小饭若有所思地点点头:"没错,这次经历让我明白了,安全不是一个人的事,而是整个团队,整个行业的共同责任。我们每个人都要为此付出努力。"

步子哥笑着说:"说得好。现在,让我们继续努力,为构建一个更安全的数字世界贡献我们的一份力量吧。"

就这样,步子哥和米小饭继续他们的工作,时刻警惕着潜在的安全威胁,同时也为能够为技术社区做出贡献而感到自豪。这次 GitHub 安全事件不仅让他们学到了宝贵的经验,也让他们更加坚定了追求技术创新和安全的决心。

(故事完)

  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2036 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 637 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 590 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 17 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 637 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    16 引用 • 130 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 725 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 370 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    51 引用 • 25 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1737 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    343 引用 • 723 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 6 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 86 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 2 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • OnlyOffice
    4 引用 • 2 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1795 回帖