文章作者: Scribe 的开发者维护者Barak Brudo
翻译: 周冉
GitHub 是世界上最受欢迎的源代码控制系统之一,拥有超过8300万开发者、400万组织和超过2亿个代码存储库。然而,尽管它具有通用性和各种优势,但在最初构建时并没有考虑到保护代码—它的主要目标是促进同一组织内以及不同组织间开发者之间的协同与合作。也就是说,你绝对可以在GitHub上保护你的项目,但这需要一定的意识,同时还需要为你费点功夫。
在评估GitHub上代码的安全性时,你要了解平台的以下几个功能:
公共存储库
有时我们无意中将秘密信息(如密钥、机密或专有代码)放在公共存储库中。我们需要记住,互联网上的任何人都可以克隆和复制这样的存储库,因此你可能不经意间就在你的AWS S3上托管了其他人,并为此买单。
不受保护的分支
GitHub有一项功能,它允许你向选定的(通常是你的主)分支添加各种保护。这些保护范围从强制签名提交到维护线性提交历史。这是一个有用的工具,可以让你的主分支对潜在的攻击更具弹性。
签名提交
在GitHub上冒充一个人非常容易。你只需要有他们的电子邮件地址和用户句柄。有了这个,任何人都可以在推送提交到你的存储库时假装是别人。签名提交包括——你猜对了——一个有助于确定提交者是否经过验证的电子签名。这意味着你可以跟踪提交历史,更加确信你所看到的都是真实的,而不是为了混淆恶意提交的真相而设置的障眼法。
双重身份验证
你可以要求组织的所有成员都使用2FA。这是一种有用的安全措施,旨在使窃取帐户和渗透到组织中变得更加困难。
SSH和部署密钥
这两种类型的密钥都可以让你更轻松地连接到你的GitHub帐户。不幸的是,对你来说容易的事情对网络犯罪分子来说也很容易。忘记定期更换密钥或与错误的人共享密钥太容易发生了。请记住,这些密钥代表着几乎可以不受限制地访问你的帐户,你应该像保护任何其他秘密一样保护它们。
管理员人数过多
很多人认为GitHub的管理员权限是处理几乎所有访问问题的灵丹妙药。问题是你最终将拥有一个几乎每个成员都是管理员的团队。由于管理员几乎可以完全访问该帐户,并且通常可以进行影响深远(并非总是受欢迎)的更改,因此你应该更加谨慎地选择你的管理员。此外,如果不再需要,请务必撤消管理员访问权限。
最重要的是,你在GitHub上的代码仅与你创建的代码一样安全。不要相信平台会为你做这件事。在决定需要采取哪些步骤(如果有)来保护你的存储库之前,请花一些时间和精力阅读GitHub文档。
Linux基金会开源软件学园 Copyright © 2019-2024 linuxfoundation.cn, ICP license, no. 京ICP备17074266号-2