Dependency Track搭建
官方文档:Dependency-Track
官方说明:Dependency-Track是一个智能组件分析平台,允许组织识别和降低软件供应链中的风险。Dependency-Track通过利用软件材料清单(SBOM)的功能,采取了一种独特且非常有益的方法。这种方法提供了传统软件组合分析(SCA)解决方案无法实现的功能。Dependency-Track监控其投资组合中每个应用程序所有版本的组件使用情况,以便主动识别整个组织的风险。该平台采用API优先设计,非常适合在CI/CD环境中使用。
个人理解:开源第三方组件漏洞管理平台,通过维护一个漏洞库,再上传工程的bom.xml文件,检测工程中使用的第三方库漏洞,可以和一些CI/CD自动构建平台进行联动,如Jenkins。
一、安装
官方提供三种方式进行安装,根据自己的需要进行选择:docker、可执行war包部署、直接部署war。
这里选择docker方式进行搭建,注意搭建所需要的环境要求。
选择Docker进行搭建,官方也提供了三种方式,这里选择第三种 Quickstart(Manual Execution),依次执行下面代码。
docker pull dependencytrack/bundled docker volume create --name dependency-track docker images docker run -d -m 8192m -p 8080:8080 --name dependency-track -v dependency-track:/data dependencytrack/bundled docker ps
执行到这里,使用浏览器访问8080端口,可以看到如下页面,说明服务器已经起来了
如果使用docker的第一个方法可能会出现如下问题:使用默认账户 admin/admin无法登陆,更无法进入重置管理员密码界面。目前没有找到原因,可能需要进入docker修改配置文件。
这里采用docker的第三种方法,使用admin/admin,成功登陆后会让你重新设置admin账户的密码。重新设置即可安装完成。
使用admin修改后的账户重新登陆DependenyTrack。
二、简单说明
Dashboard:为仪表盘,作为组件漏洞的统计展示
Projects:为项目,一般来说,一个bom.xml文件创建一个工程;也有特殊情况,如果一个项目里面包含多个微服务,每个微服务都有一个bom.xml,则会为每个微服务创建项目。
可通过 Create Porject创建项目,填写项目名称,项目类型,点击Create进行创建。
然后在Project页面找到刚创建的项目,点击项目名称进入项目,目前由于没有上传bom.xml也就是软件物料文件,所以没有数据显示。
点击Components->Upload Bom进行上传。bom.xml文件的生成可参考前篇文章。
Component:可进行相关组件的搜索,如搜索fastjson,右边为存在fastjson的项目。
Vulnerabilities:漏洞库,没啥好解释的,注意更新就行。
Licenses:顾名思义,组件使用的Licenses库,如Apache
Policy Management:这个暂时没用到,也没进行了解过。
Administration:这里进行后台管理配置,自动化构建需要在这里获取apikey,记得选用具有上传权限的apikey
三、Jenkins简单联动
访问Jenkins Dashborad界面,点击新建任务,输入任务名称,选择构建一个maven项目
选中Github项目,填入项目地址获取该项目的pom.xml文件。
同样在源码管理选择Git,填入相应的git地址,以及该地址访问所需要的key,可自行配置。
构建触发器,并设置轮询时间,触发器选择:Build whenever a SNAPSHOT dependency is built
输入build需要的pom文件名称,一般都是pom.xml,也就是你git到的pom.xml文件名称。
在Post Steps选择Run regardless of build result
调用maven,执行org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom,用来生产bom.xml文件
构建后操作,选择刚我们创建的dependency项目,也就是TestProjeck,在选择需要上传的bom.xml文件,填写你dependency访问地址,添加Apikey。注意:需要先添加apikey,才能浏览到你dependency上的项目!!
最后点击保存,回到面板,选中刚创建的任务,进去点击立即构建,构建完成后,回到你的dependency Track平台,查看Testproject,里面已经有数据了。
本文来自博客园,作者:Yemoox,转载请注明原文链接:https://www.cnblogs.com/yemoox/p/16478513.html