当前位置: 首页 > 科技观察

管理GitHub用户权限的八种方法

时间:2023-03-20 00:40:09 科技观察

全球都在经历疫情,由于网络攻击的急剧增加,很多企业也深受“网疫”之苦,保障代码安全迫在眉睫。阅读本文,了解如何在将代码发布到GitHub之前最大化安全权限,并查看创建计划以锁定GitHub开发过程中所需的权限和工具层。1.了解您的GitHub帐户类型GitHub具有三种帐户类型,具有不同程度的访问控制。个人账号:该账号只允许一个所有者添加项目合作者。组织帐户:此帐户类型根据团队结构控制访问。它允许跨多个团队成员进行更精细的访问。企业帐户:此帐户类型包括可以跨越多个组织的强大访问控制。为了增加安全性,它提供了本地托管选项。此选项可确保在没有安全的公司网络虚拟专用网络访问权限的情况下无法在Internet上访问GitHub存储库。了解您的开发团队拥有何种类型的帐户,以便您可以利用所有可用的访问权限。2.集中访问管理将访问权限和权限集中给管理员可以简化外部协作者的管理,也可以降低GitHub访问成本。GitHub服务器访问GitHub提供以下类型的开发访问。根据开发人员角色设置访问级别。读取:使开发人员能够在不更改代码的情况下查看和克隆代码库。分类法:使开发人员能够在没有写入权限的情况下管理拉取请求。写入:使开发人员能够同时将新代码提交到存储库。维护:无需授予对敏感操作的访问权限,使项目经理能够监督代码库。治理:让开发人员完全控制代码库,包括保护和删除代码库。避免根据需要设置访问权限。虽然在短期内很方便,但随着项目的发展和时间的推移,项目中的角色和职位可能会发生变化。为了最大限度地提高访问安全性,请指定一个人专门处理该项目并授予该项目所需的最低权限。组织管理访问如果您拥有组织所有者帐户,则可以将新用户添加到存储库并控制他们的访问级别。您需要确定您的组织的基本权限配置文件。当您向GitHub存储库添加新成员时,会自动应用基本权限。默认情况下,为了获得最大的安全性,请确保基本权限只有读取权限。仅在需要时授予更广泛的访问权限。3.保护您的代码库根据2019年发布的一项研究,对GitHub公共代码库的全面扫描发现该平台上共有超过570,000个敏感数据实例。这些示例包括API密钥、秘密密钥、OAuthID、AWS访问密钥ID和各种访问令牌。这些类型的风险暴露的主要风险包括财务损失、隐私泄露、数据完整性受损和信息滥用。尝试以下做法来保护您的代码库。限制存储库可见性配置错误的服务器或访问配置不当的开发人员可能会无意中更改存储库的可见性。为避免这种情况并确保最大安全性,请将存储库可见性更改限制为组织的所有者帐户或项目的管理员级别。使用GitHubEnterprise实施单点登录组织可以使用单点登录(SSO)。借助SSO,组织可以使用自己的帐户和访问规则,而无需开发人员使用GitHub帐户。SSO限制了潜在的人为错误和密码重用问题。禁用分叉在只读访问受限的情况下,开发人员可以使用分叉轻松复制整个代码库。代码存储库最初可能是私有的,但分叉可以迅速将所有内容公开到公共空间。风险随着每个分叉呈指数级增加,通过暴露的敏感数据创建一个树状的安全漏洞链。为避免这些情况,请禁用fork以获得最大的安全性。4.验证访问为了确保您的GitHub帐户和数据安全,需要并管理经过身份验证的访问。双因素身份验证双因素身份验证(2FA)通过在验证登录时需要多个凭据来提供安全性。为了获得最大的安全性,GitHub建议使用限时一次性密码(TOTP)服务,例如LastPassAuthenticator或MicrosoftAuthenticator。通过SSH身份验证的用户设置弱密码或跨多个服务共享密码,从而产生安全风险。为避免此类风险,请使用SSH私钥/公钥对服务器上的操作进行身份验证。为了增加安全性,GitHub支持自动SSH密钥过期和轮换,即使SSH密钥被泄露,访问窗口也会受到限制。个人访问令牌对于较小的项目,使用个人访问令牌。个人访问令牌的工作方式类似于SSH密钥,但不提供自动轮换功能,需要由GitHub帐户所有者手动设置。5.限制对预先批准的IP地址列表的访问将对GitHub服务器的访问锁定到预先批准的静态IP地址列表是最简单和最直接的安全访问方法之一。由于IP限制,黑客必须在尝试访问您的GitHub存储库之前识别并渗透预先批准列表中的计算机。即使您的登录凭据遭到泄露,这对他们来说也是一个重大障碍。6.及时撤销权限为了保持最高的安全标准,需要对访问权限进行细化管理,并在项目开发过程中定期评估。当员工离开项目或企业时,及时修改或撤销其访问权限。这种方法遵循最小特权原则,只授予执行特定任务所需的权限。这样做将确保有权访问代码的每个人都只在他们的权限范围内工作。7.密钥管理解决方案GitHub代码存储库面临的最大安全风险之一是开发人员的粗心大意,而不是黑客攻击基础设施的恶意团体。为了最大限度地提高代码库的安全性,请考虑使用密钥管理解决方案。如果敏感数据遭到破坏,这些解决方案会自动阻止敏感信息到达GitHub代码存储库和干净的代码存储库。几个GitHub工具处理不同的安全模型,例如:gitrebase,一个用于删除意外提交到代码中的已知敏感信息的命令行工具。truffleHog是一个强大的数据挖掘工具,可以帮助研究人员轻松地从目标Git存储库中搜索高熵字符串和敏感数据(例如API密钥、令牌和访问凭证)。此信息用于提高您自己的代码库的安全性。Git-Secret,用于对git项目中的文件进行加密,防止git项目上传到网络时泄露。密钥管理解决方案需要直接集成到CI/CD管道中,并且必须使用AI和机器学习算法在将它们推送到GitHub存储库之前自动识别和阻止它们。为了从一开始就防止机密泄露,即使是意外泄露,请实施SecretVault安全策略。SecretVault是一个用于存储敏感信息的独立系统。另一方面,Vault是一种在提供统一访问接口的同时保护高度敏感数据的工具。借助SecretVault,可以实施更严格的访问控制和审计跟踪,并且可以轻松检测到漏洞和违规行为。8.制定安全计划以保护您的代码在制定安全计划时,请牢记以下几点:在您的组织内实施安全标准并将所有敏感信息存储在秘密保险库或安全密钥库中。对组织中使用的敏感信息进行分类。了解您的组织可能在哪里容易受到攻击,无论是数据库密码、API密钥、令牌还是管理面板URL。最重要的是,认识到人为错误通常是安全漏洞的根源。处理安全漏洞的高昂成本会给企业或组织带来“灾难”。企业可以尝试使用这些扫描工具,并将该工具集成到CI/CD流水线中,有效防止敏感信息被提交到GitHub代码库。