有人设置伪装的Maven存储库和/或IP流以提供伪装的原始但被注入恶意或有害代码的库副本的风险和可能性或场景是什么?
采取哪些步骤和措施来预防此类风险和可能性?
我想一个专门的,机智的攻击者可以执行一次MITM攻击,并拦截对公共Maven存储库的所有请求,然后将恶意字节码小心地注入JAR工件中,然后重新计算并提供SHA1哈希值。
对于客户端来说,它看起来像是合法的工件:二进制JAR和SHA1匹配,即使它们检查备用镜像也相同。
我想唯一真正的解决方案是请求中央存储库支持HTTPS(并相信TLS本身并未被破坏)。
或者,一种可行的方法可能是设置通过HTTPS为内部客户端提供服务的Maven代理(Artifactory或Nexus)。这减少了攻击面,这意味着您只需要保护从该服务器到外界的通信线路即可。我将使用完全独立的可信网络,定期检查代理上的JAR和哈希是否与公共镜像上的JAR和哈希匹配。
如果您确实确实希望安全,那么您就不会信任二进制文件,而是要下载 所有 源代码并在自己进行编译之前 手动 检查它们 , 但是前提是您拥有足够的合格资源和时间来执行二进制文件。首先要审查 并 信任您的整个构建工具链。
好吧,正如他们通常所说的那样,安全性是分层的。