确保 Nexus 免受供应链攻击

问题描述 投票:0回答:1

我们从可公开访问的 reprepro Debian 软件包存储库(由 Apache Web 服务器提供支持)切换到 Sonatype Nexus Repository OSS,这是一款很棒的软件。但我们遇到了一个问题:当有人上传 Debian 软件包时,它会在 Nexus 服务器上签名,我们会将其公开给客户/互联网。此外,Nexus 已知用于包签名的 GPG 密钥和密码。

或者换句话说:我担心类似 SolarWinds 供应链攻击的情况。场景:人员攻击可公开访问的 Nexus 服务器/Nexus 本身,接管 Nexus,更改现有软件包并使用 GPG 密钥/GPG 密码对其进行签名。然后,恶意代码就会被提供给我们的客户。

我考虑过将文件 blob 存储目录公开为公开的 Web 服务器的只读目标,并将 Nexus 公司保留在内部。遗憾的是,内部文件 blob 存储布局不同,因此这是不可能的。

所以我的问题:

  • 有没有一种好方法可以在 Deb/RPM/Docker 等中公开 blob 存储。兼容的格式,可以由更受保护、可公开访问的 Apache 服务器提供服务,并由 dpkg/yum/dnf/Docker 等使用?

  • 我还考虑过第二个只读 Nexus 服务器,每 10 分钟左右进行一次 rsync。然后攻击者会接管该服务器,但包签名检查(至少对于 DEB/RPM)会阻止安装被篡改的包

  • 使用带有基于证书的身份验证的 Apache 反向代理(我猜是最安全但最复杂的解决方案)

但也许已经有这样的功能/另一种方式,而我只是在文档中错过了它?

security nexus packaging chain nexus3
1个回答
1
投票

最后我们想出了几个步骤来最大程度地降低风险:

  • 使用通过 GeoIP 进行过滤的代理(只能从我们的客户居住的国家/地区访问存储库)
  • 阻止除以下之外的所有 URI(替换为您的存储库名称):
    • /服务/休息/存储库/浏览/REPONAME/*>
    • /存储库/REPONAME/*>
    • /static/css/nexus-content.css*>
    • /favicon.ico*>
    • /favicon-*.png>
© www.soinside.com 2019 - 2024. All rights reserved.