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,里面已经有数据了。

posted @ 2022-07-14 17:12  Yemoox  阅读(4003)  评论(2编辑  收藏  举报