我目前在工作中遇到一些问题,在每个人的计算机上部署的BitDefender防病毒套件阻止了对Maven Central的访问。
首先,我们不是软件商店,公司中只有2个人需要从Maven Central获取罐子,所以我们遇到的问题对整个公司来说并不常见。
我已与IT经理谈过,虽然他不想允许从互联网上的任何位置访问罐子,但他确实在BitDefender政策中添加了一个例外,允许访问来自Maven Central的罐子,已下载(我们的构建工具是Gradle)。一切都还好,除了还有一些我们无法从Maven Central成功访问的罐子。
我得到的印象是他倾向于为我们遇到麻烦的任何新罐子特别添加BitDefender政策的新例外,评论说“通过信息,我们可能需要继续调整和调整这些设置给出了这些代码更新和包使用HTTP协议的方式本质上可疑的性质。“
现在,我的想法是,显然必须有安全可靠的方式来访问任何所需的罐子,至少来自Maven Central的任何罐子。当然这是主要软件商店的工作方式,对吧?这些行业标准构建工具肯定不会“固有地使用HTTP协议”,对吗?
所以,我的问题是软件商店等如何处理网络安全问题,同时仍然允许他们的开发人员访问他们工作所需的罐子?是否有任何有用的信息可以通过构建工具来解决从远程存储库(如Maven Central)访问jar的安全问题?我可以回到IT经理那里讨论如何/为什么我们应该减少限制访问的情况?
非常感谢所有帮助/评论!
答案 0 :(得分:3)
这就是我们在公司所做的工作,而且我在一家安全性很强的大公司工作。
我们无法链接到maven中央存储库,但是有一个团队致力于确保通过我们网络中的“内部”存储库提供任何和所有可能的软件工具。
如果我的项目需要技术,我会检查它是否在内部回购中。如果没有,我可以要求包含它。
根据您提供的信息,您没有大型软件部门,我建议您在公司网络中使用您目前需要的任何技术在公司网络中设置回购,这与我们正在做的事情类似。这也很好,因为您可以根据需要随着年份的进展添加技术,并且您的软件团队也可能增长(可能)。
我希望我提供了一些见解/想法。
答案 1 :(得分:1)
These industry standard build tools surely do not make 'inherently dubious use of the HTTP protocol', right?
如果这些工具(特别是Maven)做任何可疑的事情,我真的会感到非常惊讶。代码是开放的,我确信人们已经知道它是否做了恶意的事情。
特别谈到Maven Central,Maven Central中部署的所有jar都需要使用GPG密钥进行签名。此外,文件还使用SHA校验和进行保护,以确保它们不会被修改。您可以在此处阅读详细的自述文件,了解将jar部署到maven central的过程,其中列出了将jar部署到Maven Central的所有必需要求。
https://docs.sonatype.org/display/Repository/Central+Sync+Requirements
Repository Manager将始终帮助您确保文件只下载一次,然后在本地提供。因此,只需添加本地存储库中缺少的依赖项,您只需要访问Maven Central。商业版的Nexus存储库管理器能够根据其签名验证jar,以确保它不被修改。
我认为访问Maven Central是安全的,因为有足够的安全措施来确保数据的完整性。
请注意,如果您碰巧访问任何其他第三方存储库,则可能不一定安全。
总而言之,我确信它是关于下载这些jar文件的。即使您没有使用Maven,也必须从某个地方下载它们,同时确保手动下载所有传递依赖项并通过手动验证校验和来确保完整性。 Maven只是为您自动完成整个过程。除此之外,它集中了所有这些库并通过单个服务器提供服务,这与从各种服务器手动下载它们不同。
答案 2 :(得分:0)
当安全考虑因素与发展需求发生冲突时,它始终是一个困难的局面。在我曾与之合作的一家公司中,我们使用repository manager解决了Maven存储库问题,该问题具有从外部存储库获取jar的必要权限。我强烈推荐这样的工具,因为它还减少了对外部仓库的依赖。即使目前无法访问外部存储库,您仍然可以构建SW。
当然,仍有可能滥用它。这是你必须通过在相关团体之间建立相互信任来克服的。