哪些依赖关系可以被抑制,哪些不能?在maven依赖性检查中



如何知道需要抑制哪些依赖项?基本上,是什么使得与那些相关的依赖关系不同?

举个例子会非常有帮助。

我强烈建议您不要在这里提出与安全相关的问题:您不是在寻找SO的财务建议,这同样适用于安全-聘请安全专家并将所有此类问题发送给他。

关于OWASP:的dependency-check-maven

  1. 如果发现了易受攻击的依赖项(failBuildOnAnyVulnerabilityfailBuildOnCVSS等(,那么将其嵌入到构建生命周期中是一个坏主意,因为它会导致构建失败,否则它可能会突然停止整个SDLC,但开发人员不负责SEC的工作。不过,报告是可以的——只要给SEC人员一个机会,通过审查报告和提出建议来参与SDLC
  2. 如果dependency-check-maven没有发现任何漏洞,这并不意味着应用程序当前不易受攻击,将来也不会受攻击——不幸的是,安全性不是state,而是process,这反过来意味着您需要定期执行此类检查,即使用关于已安装应用程序的详细信息来维护CMDB并针对该CMDB执行检查,或者使用CCD_ 7或其他工具
  3. dependency-check-maven使用NVD数据库作为漏洞信息的来源,不幸的是,NVD和MITRE实际上都没有进行安全分析——他们只是维护数据库,这导致了研究人员报告";脆弱性";这实际上不是一个漏洞,例如:CVE-2021-31684、CVE-2022-26520,然而,调查此类情况不是开发人员的责任

如果有时间,可以从pom中删除所有依赖项,将它们放在.bak文件中。

当然,编译会失败,
但随后您将它们逐个添加回,并且只有一个Maven构建在抱怨它们的不足。

然后执行并检查应用程序中的所有内容是否仍然正常工作。

这样,当项目非常旧时,很少会删除两三个依赖项。

每个Maven依赖项都可以提供一些可传递的依赖项。

您的项目中使用的每个依赖项都是相关的,简单地说,没有它,项目就无法编译。您的项目在运行时可能需要一些依赖项。

您可以阅读有关Maven依赖关系机制以及如何排除依赖关系的内容。

您还可以检查的输出

  • mvn dependency:analyze
  • mvn dependency:tree

请熟悉Maven依赖插件的文档

最新更新