日前,知名云身份安全服务商Okta官方披露,其GitHub私有仓库被黑,部分源码外泄。尽管Okta表示此次泄露不会对其客户的隐私数据安全造成影响,但Okta有足够的技术手段保护用户服务安全。但安全研究人员认为,短时间内很难准确评估源代码泄露造成的无形危害。GitHub拥有9000万活跃用户,是目前全球最受欢迎的源代码管理工具。由于是信息系统底层基础设施的重要组成部分,长期以来一直是不法攻击团伙的重点。Okta源代码泄露事件只是近年来GitHub代码库被非法访问攻击的最新案例。Dropbox、GentooLinux和微软的GitHub账户之前都遭遇过类似的攻击。攻击者不仅试图获取源代码,还觊觎代码中的敏感信息以用于后续攻击。攻击者通过访问应用系统的源代码,可以发现其中的漏洞,并在后续攻击中加以利用。同时,攻击者还可以获得存储在GitHub中的硬编码密钥、密码和其他凭据,以访问托管在AWS、Azure或GCP中的云服务和数据库。Okta的GitHub代码库遭到破坏是一个教学示例,说明在企业内部保护访问是多么困难,但这并不是一个独特的案例。虽然GitHub提供了一些保护工具来保护代码管理库应用的安全,但是很多企业并不完全了解如何使用这些工具。不幸的是,一些最重要的安全功能需要额外付费。但是,以下7个实践经验被证明可以提高GitHub的安全性。目前正在使用GitHub的企业组织可以关注并尽快尝试应用。1.工作时不要使用私人账号对于开发者来说,GitHub私人账号是他们个人品牌简历的一部分,有助于他们的职业晋升和成长。可悲的是,这也是当今使用GitHub的组织面临的最大漏洞之一:他们通常不会严格管理私人帐户的使用。从代码安全的角度,私人GitHub账号不应该用于工作。虽然这样做会带来一些便利,但企业没有办法有效控制谁可以访问创建私人GitHub帐户的私人Gmail地址。2.通过单点登录进行认证在GitHub现有的商业模式中,用户需要为集成的单点登录(SSO)服务额外付费。但从代码访问安全的角度来看,企业应该将GitHub连接到其组织的SSO系统,例如Okta、AzureAD或GoogleWorkspace。开发者的身份信息应该与企业锁定,只允许通过统一的SSO进行认证。3、所有账户都使用2FA在很多企业SSO提供商中,都会有豁免组和策略异常处理,可以让SSOMFA很容易被攻击者绕过。因此,当企业通过SSO强制执行统一认证时,最安全的选择是对组织内所有GitHub用户强制执行多因素身份验证2FA,以防止绕过的发生。4.使用SSH密钥进行git操作尽管GitHub通过个人访问令牌(PAT)引入了细粒度的权限控制,但它们仍然容易受到网络钓鱼攻击,因为这些令牌通常以明文形式存储。如果使用SSH密钥来验证git操作,企业需要使用完善的PKI来管理SSH密钥的分配和供应方式,同时有效地将其与企业的设备管理和CA证书联系起来。5.使用角色来限制特权访问GitHub目前提供了几种不同的代码库角色,可以根据最小特权原则进行分配。可以在组织级别控制基本权限。在实际使用中,管理者需要合理分配保证成员高效工作所需的最低权限角色,尽量避免让开发人员拥有高级别的管理员权限。6.严格限制外部合作者的使用与第三方供应商合作是管理大型软件项目的常态。然而,GitHub目前所能提供的外部协作者管理能力相对不足,难以保证企业开发活动的安全。因此,有必要通过公司的SSO强制执行外部协作者的身份验证,以防止代码库管理员直接邀请他们访问代码库。7.审计、分析和再审计没有一家公司的安全控制策略和措施是完美的。即使制定了GitHub应用安全策略,账户也会出现安全疏漏,难免会出现错误。因此,花时间实施定期审计流程以查找不安全的休眠帐户并限制代码库中特权角色数量的公司正在花时间实施GitHub。一旦你的GitHub环境受到严格保护,你应该小心发现违反政策的行为,例如用户仍在SSO之外进行身份验证,或者不使用2FA。
