【.com快译】GitHub是全球最大、最受欢迎的社交开发平台。根据其《2019年Octoverse的态势报告》(参见——https://octoverse.github.com/):GitHub当时拥有超过4000万用户,并且社区每天都在持续增长。由于各类开发人员经常使用平台提供的开源代码来构建软件,大量可重复使用的代码往往会增加从一个依赖项或存储库迁移到另一个依赖项或存储库的漏洞。潜在风险。可见,基于如此高度的互联互通,Github平台和内容的安全显得尤为重要。每个贡献者和用户都应该专注于创建一个安全可靠的开发环境。下面,我将讨论代码安全的八种做法。GitHub用户可以根据实际情况进行基准测试和实现。加强访问控制实施适当的访问控制是增强安全性的最佳实践之一。不仅在GitHub上如此,在任何需要代码安全的环境中也是如此。目前,GitHub为用户提供了多种选择,以降低不当泄露的风险。其中,最常用的模型是最小权限模型??。此模型仅向用户授予基本的必要权限。以下是我们在使用过程中需要遵循的各种基本访问控制准则:限制仓库的创建,以防止用户在公共仓库中泄露其组织的信息。启用分支保护和状态检查以确保用户可以安全地合并各种提交或操作分支。禁用或有条件地允许分叉私有存储库,以确保用户不会将其组织的代码暴露或共享给未授权方。撤销所有不再是贡献者的非活动用户的访问权限。定期检查对GitHub项目的访问。确保用户不共享GitHub帐户或密码。确保每个贡献者的帐户都启用了双因素身份验证。定期更换用于个人访问的令牌和SSH密钥。切勿将密钥存储在GitHub文件中您是否注意到代码、配置文件或提交消息可能会受到网关攻击,从而将机密信息泄露到其他GitHub存储库。为防止将敏感数据添加到存储库,请考虑使用git-secrets(请参阅--https://github.com/awslabs/git-secrets)或保管库(请参阅--https://www.key管理工具,例如vaultproject.io/)。这些工具会扫描您的代码库,并在检测到代码或配置文件中的敏感信息后立即终止构建。一旦意识到GitHub存储库泄露了敏感信息,您可能会立即将其删除。但是,GitHub会在您的存储库中保留所有提交的历史记录。所以仅仅移除数据是不够的,你需要从GitHub仓库的历史记录中清除相应的文件(见--https://help.github.com/articles/removing-sensitive-data-from-a-repository/).同时,为了提高安全性,您还需要及时将那些泄露的密钥(包括:密码和令牌)设置为无效状态。为脆弱的依赖项启用安全警报随着您处理越来越多的项目,GitHub用户发现管理依赖项越来越难。不过幸运的是,GitHub为您提供了自动安全警报机制,可以帮助您检测存储库中易受攻击的依赖项。Github安全实践(来自https://github.blog/2019-12-11-behind-the-scenes-github-vulnerability-alerts/)如上所述,GitHub安全警报来自(美国)国家漏洞数据库(NVD)、https://nvd.nist.gov/)、GitHub安全公告(GitHub安全公告,https://github.com/advisories)和WhiteSource漏洞数据库。他们提供200多种语言的漏洞数据。通过GitHub上提供的实时安全预警服务,用户可以更安全的使用各类开源库。验证GitHub应用程序GitHub的市场上有很多由第三方开发人员和组织编写的应用程序。我们经常需要仔细验证添加到GitHub存储库的每个应用程序。也就是说,在安装GitHubApps时请注意遵循以下准则:执行最小权限原则。切勿授予应用程序超过其所需的访问权限。始终对您的应用程序请求的访问权限保持谨慎,并始终考虑授予访问权限的潜在损害。在授权GitHub访问主体时,进行背景调查,确保应用背后的组织或开发者合法可信。需要验证应用程序的安全态势,以避免危及整体安全态势。根据木桶原则,应用程序的安全取决于其最薄弱的环节,GitHub存储库也是如此。因此,在授予应用程序对存储库的适当访问权限之前,验证其来源以确保其真实性非常重要。查看导入到GitHub中的所有代码开发人员经常需要将外部代码导入到GitHub中。然后,请务必考虑在每次导入项目时对源代码执行完整性审核。这可能看起来很乏味,对于一些较小的项目来说甚至是挑剔的,但这是一个非常好的安全实践,可以避免首先将潜在的安全漏洞引入存储库。将代码导入GitHub的另一个可能的风险是代码可能包含密码等敏感信息。而如果将其存储在GitHub文件中,则会增加应用程序的整体风险值。可见,在将代码推送到GitHub之前,我们必须对安全情况进行审查和评估,以发现安全隐患。值得一提的是,在被导入的过程中,代码实际上从一个封闭的环境转变为一个可以相互调用、相互影响的环境。因此,环境的变化也会促使我们重新审视安全关系和实施层面。在存储库上使用自动静态源代码分析您可以使用各种第三方工具来分析存储库中的安全漏洞。最常用的工具之一是WhiteSourceBolt(请参阅--https://bolt.whitesourcesoftware.com/),可在GitHub市场上免费获得。WhiteSourceBolt为GitHub检测到的漏洞WhiteSourceBolt扫描您的存储库以检测所有开源组件中的漏洞。同时还可以提供详细的漏洞信息和相应的修复建议。当然,您也可以使用其他开源分析工具,对目标GitHub仓库进行自动化的、源代码级的安全分析。根据组织需求,选择合适的GitHub产品。大多数组织,尤其是政府部门和金融机构,都会通过法规限制其开发团队使用GitHub等社交开发平台,以防止其他方通过该平台访问组织的资源。源代码。如果您的组织确实有此严格要求,请考虑使用GitHubEnterprise(请参阅--https://enterprise.github.com/home)。它允许用户在内部托管的GitHub存储库环境中执行各种操作。此举让内部开发团队可以访问手头的所有项目,而不用担心被GitHub上的其他用户“抄袭”。因此,企业软件开发包将得到更安全的保护。为您的项目采用全面的安全策略俗话说,安全是一项集体责任。如果您是企业安全经理,则必须实施所有利益相关者都应遵循的安全策略。理想情况下,您应该在规划阶段将您的安全和开发团队聚集在一起,以确保他们能够协同工作。这将使在项目开发过程中更容易实施安全控制。随着人员意识的提高,各种所谓的将密码直接存入库的行为将不会频繁出现。此外,通过清晰的记录,团队成员还可以及时汇报,协同解决存储库暴露的各种安全问题。总结每个开发者都应该关注保护自己的代码,以及GitHub中的安全问题。以上提供的各种安全实践值得您和您的团队在开发过程中不断尝试和实践。您可以在使用GitHub的本机安全服务的同时实施适当的身份验证和访问控制,并通过与其他工具集成来增强开发工作流程中的安全状况。当然,您也可以查看GitHubBusinessSecurity(参见--https://github.com/business/security)和GitHub安全文档(参见--https://help.github.com/articles/github-security/),了解有关如何在GitHub上保护代码的更多信息。原标题:StaySafeonGitHub:SecurityPracticestoFollow,作者:DicksonMwendia
