繁体   English   中英

保护 Nexus 免受供应链攻击

[英]Secure Nexus against supply chain attacks

We switched from a publicly accessible reprepro Debian package repository (which was powered by an Apache web server) to the Sonatype Nexus Repository OSS, which is great piece of software. 但是我们遇到了一个问题:当有人上传 Debian package 时,它是在 Nexus 服务器上签名的,我们会向我们的客户/互联网公开。 此外,Nexus 知道 GPG 密钥和密码用于 package 签名。

或者换句话说:我害怕类似 SolarWinds 供应链攻击的情况。 场景:Person 攻击可公开访问的 Nexus 服务器/Nexus 本身,接管 Nexus,更改现有包并使用 GPG 密钥/GPG 密码将其退出。 然后,将恶意代码提供给我们的客户。

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

所以我的问题:

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

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

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

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

最后我们想出了几个步骤来最小化风险:

  • 使用通过 GeoIP 过滤的代理(仅可以从我们的客户所在的国家/地区访问存储库)
  • 阻止除以下之外的所有 URI(替换为您的存储库的名称):
    • /service/rest/repository/browse/REPONAME/*>
    • /repository/REPONAME/*>
    • /static/css/nexus-content.css*>
    • /favicon.ico*>
    • /favicon-*.png>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM