供应链SCA之Maven间接依赖

admin 2023年4月13日08:43:57评论43 views字数 846阅读2分49秒阅读模式

0x00 Referer

安全同学谈谈Maven依赖仲裁

0x01 Maven是什么?

依赖管理工具

0x01 通过什么手段管理依赖的?

通过一组GAV明确表示一个依赖,比如:

<groupId> : com.alibaba   一般是公司的名称
<artifactId> : fastjson   项目名称
<version> : 1.2.24        版本号

0x02 Maven是如何处理项目中的直接依赖和间接依赖的?

  • 依赖结构树缓存
  • 重复依赖舍弃
  • 广度遍历算法

0x03 遇到相同依赖时,Maven是如何进行决策的?

依靠Maven的核心仲裁机制

  1. 越靠近主干越优先

  2. 单颗树在依赖在竞争时(dependencies)(注意:不是dependencyManagement里的dependencies):

    • deep=1,即直接依赖。同级是靠后优先。
    • deep>1,即间接依赖。同级是靠前优先。

第二条用人话解释:间接依赖先引入优先

0x04 间接依赖漏洞治理

结论:

  • 主POM的dependencyManagent可以管控到 间接依赖 和 不显示声明version的直接依赖。
  • 主POM的dependencies不能出现危险版本,否则子pom天然的继承了这个危险版本参与打包。
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>2.1.13.RELEASE</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

后面会在写个基于maven的SCA建设与治理

供应链SCA之Maven间接依赖


原文始发于微信公众号(小宝的安全学习笔记):供应链SCA之Maven间接依赖

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月13日08:43:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   供应链SCA之Maven间接依赖https://cn-sec.com/archives/1669937.html

发表评论

匿名网友 填写信息