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