我刚刚指出一篇非常有趣的文章,关于一个名为Cross Build Injection(XBI)的安全问题.基本上,它是一个奇特的名称,通过自动构建系统(如ant,maven或ivy)在构建时将不良代码走私到应用程序中.
通过引入加密签名验证可以缓解这个问题,因为它目前已经存在许多用于下载包的操作系统.
要明确:我不是在谈论简单地为工件提供md5或sha1哈希.这已经完成,但这些哈希值存储在与工件相同的位置.因此,一旦恶意黑客破坏了存储库并且可以替换工件,他们也可以替换哈希.
因此,实际需要的是某种PKI,它允许开发人员签署他们的工件和maven以验证这些签名.由于签名是使用开发人员的私钥完成的,因此只有存储库被泄露时才能被篡改.
有没有人知道这个在maven中的状态?
我想强制执行严格的Maven依赖策略,该策略超出了基本checksumPolicy=fail方法.
这是尝试提供针对修改的版本依赖性的保护,该依赖性仍然具有有效的摘要值,也称为"依赖性链攻击".
这种情况可能来自以下情况:
在与其他开发人员的讨论中,一种解决上述问题的方法是在pom.xml中列出已知的MD5/SHA摘要,并让Maven验证下载的依赖项具有相同的摘要.这确保了只要源代码存储库保持安全,就会检测到已被破坏的任何包含的依赖项.
因此我的问题是双重的: