当允许公共访问私有注册表时,防止无意的软件供应链暴露

在JFrog,我们非常重视软件供应链安全。作为CVE编号机构,我们的JFrog安全研究团队定期发现并公开对开发组织构成威胁的新的恶意包和漏洞。我们知道,为了按需交付可信赖的软件,您必须拥有一个安全的软件供应链——使安全成为我们所做一切的优先事项。
虽然组织经常高度关注寻找cve、阻止恶意包或运行时攻击,但我们不能忘记用于管理和交付供应链的工具的安全性。这些工具中最基本的可能是用来存储和管理包、构建、二进制文件和工件的工具——比如JFrog Artifactory。让我们来看看一个关键领域,如果您不小心,它可能会使您的组织遭受软件供应链攻击——允许公共访问您的私有注册中心或存储库。
允许公众访问您的私有注册表
拥有私有包存储库和注册中心的全部意义在于确保控制软件供应链中包含哪些软件组件以及谁可以访问它们。那么,为什么要允许internet上的任意一个人访问您的私有注册表呢?
企业希望允许匿名用户访问他们的注册表/回购有很多合理的原因:
- 提供方便的存取/下载面向公众的软件,例如库和sdk
- 与需要访问第一方软件组件的最新版本的内部或外部开发团队协作
- 允许公众访问非敏感信息,例如文档
- 支持与第三方应用程序和服务的集成和自动化
- 为开源项目做贡献
当回购/注册表被意外地公开,或者当包含用户令牌、凭据和密钥等敏感信息的工件意外地存储在具有“公共”访问权限的存储库中时,允许公共访问它们就会出现问题。
避免错误配置和意外曝光
好消息是,无论您是否打算允许公众访问您的注册表,保持供应链这一部分的安全都是相当简单的。这里有四个简单的步骤,你可以避免不经意间暴露自己。
1.仔细检查您的安全配置
这可能是你今天能做的最简单的预防措施(在你读完这篇文章后,你应该花点时间去做!)。私有注册中心/回购的第三方解决方案通常具有允许管理员设置不受开发组织管理的用户是否可以访问回购/注册中心的配置。
例如,下面是你如何在Artifactory中仔细检查你是否不小心打开了这个设置:
作为管理员,登录并导航到管理>用户管理>设置(参考下图截图)。

如果“允许匿名访问”设置被检查,您打开大门,潜在地允许非登录用户访问您的回购。
2.仔细检查您的用户权限
如果您确实希望允许非登录用户访问您的注册表,最好仔细检查匿名用户可以访问哪些内容,以及如何使用这些回购/注册表中的构件。您的解决方案应该具有健壮的RBAC设置,包括针对匿名用户。
对于Artifactory,您可以通过导航到检查这些权限管理>用户管理>用户>“匿名”用户(参考下图截图)。

当您单击用户时,您可以看到匿名用户被授予了哪些权限。在Artifactory中,您可以创建权限集,然后向其中添加用户/用户组。你可透过“用户管理”的“权限”一栏(有关详细信息,请参阅文档).

我们建议的最佳实践是将匿名用户设置为只读,并明确定义他们可以访问哪些回购。
3.将公共内容和私有内容分开
至少,您应该为打算公开使用的工件建立单独的存储库。但是,最佳实践是不要在同一个Artifactory实例或您使用的任何存储库/注册中心解决方案中混合私有内容和公共内容。相反,使用不同的权限和访问控制集,将公共资产和私有资产保存在不同的实例上。
明确定义组织中谁可以将工件部署到面向公众的实例中,并定期检查这些注册中心的内容,以确保只有适当的工件存储在那里。
这些操作确保私有内容不会无意中与私有资产混在一起,并降低错误配置的可能性。
4.扫描你面向公众的注册表,寻找秘密
在仔细检查了所有设置和权限,并创建了专门的空间来管理公共内容之后,您可以添加一个额外的保护层-利用安全工具扫描面向公共的注册中心/回购的内容秘密.采取最后一步将有助于确保您不会通过repo/注册表中的组件暴露敏感信息。
如果您正在使用JFrog Artifactory和Xray,这可以配置为在工件部署到面向公共的存储库时发生,甚至在检测到秘密时自动阻止工件部署。

首先防止错误配置
JFrog是世界杯2022赛程时间表最新 关于安全软件供应链,从其中的组件到用于交付它们的工具。尽管Artifactory支持匿名访问私有存储库,但默认情况下没有启用该功能。看到我们可以做更多的事情来保护我们的用户免受错误配置对存储库的不受欢迎的公共访问,我们正在采取以下行动,并建议其他解决方案提供商也这样做:
- 除了更新这些设置周围的标签之外,UI更改可以降低错误选择设置的可能性
- 如果设置了可能影响供应链安全的配置,管理员将收到有关影响的普通语言警告,并必须验证该配置是有意的。
- 高度限制“匿名”用户(如果启用)在面向公众的注册中心可以访问和做什么的默认设置。
现在您知道了如何防止无意中暴露私有注册表/回购,并在有意这样做时降低风险。如果您想了解如何更好地保护您的软件供应链,请查看我们的定期解决方案工程会议JFrog Artifactory或JFrog x光在这里,我们将回答您的问题,并分享使用JFrog平台交付可信软件的最佳实践。
感谢我们在Aqua Nautilus的同事,Aqua Security的研究团队最近强调了这一问题。
