1 產品介紹
Black Duck 是最早進行開源代碼檢測工具開發的公司,其產品包括Protex 和HUB,Protex 強調檢測的精度和准確性,而HUB 強調檢測的速度和易用性。
1.1 Protex
Protex平台是黑鴨子套件的重要組件,為用戶提供細粒度(代碼片段級別)和高精度的開源代碼檢測能力,它基於黑鴨子知識庫(Knowledge Base,KB)進行工作,支持本地化部署使用。
1.2 HUB
HUB 是Black Duck 的一款簡單易用的開源代碼檢測工具,為用戶提供一種粗粒度(開源組件級別)的開源代碼檢測能力,但其速度更快,使用簡便,對於代碼檢測精度需求不高的用戶較為適合,而且HUB 除了可以檢測開源合規性之外,還能夠發現用戶使用的開源軟件存在的漏洞。HUB 依托於Black Duck 的開源知識庫和第三方漏洞庫(NVD),能夠快速的檢測出用戶代碼庫中包含的開源軟件。HUB 的部署方式為雲端部署,開源知識庫部署於雲端,由Black Duck 公司的專業團隊維護,用戶測只需安裝HUB 的掃描服務器,用戶本地的掃描服務器將用戶代碼的特征值(Hash 值)上傳到雲端的服務器,雲端服務器否則將用戶代碼與開源代碼進行比對,並將匹配結果傳回用戶測的掃描服務器進行分析和展示。HUB 相比Protex,提供更豐富的API ,便於與其它系統進行集成。
2 Docker安裝Blackduck
2.1 為什么使用Docker?
Docker體系結構為Black Duck 帶來了許多重大改進:
- 簡化安裝和更新
- 比類似的虛擬機 (VM)占用更少的空間
- 適應客戶環境
- 提高性能
Black Duck被部署為一組Docker容器,它們共同構成了應用程序。每個容器都扮演不同的角色。例如,Web應用程序容器處理UI請求,而Solr容器充當企業搜索平台組件。有關每個容器角色的詳細說明,請參見Synopsys軟件完整性社區上的《黑鴨Docker安裝指南》。
2.2 安裝環境要求
硬件(最低規格) | 軟件 | 首選操作系統 |
64位5核處理器 | Docker 17.03.x或Docker 17.06.x(CE或EE) | CentOS的7.3 |
20 GB的RAM | 編排工具,例如Docker Swarm **,Docker Compose,Docker Run或Kubernetes。 | Ubuntu 16.04.x |
250 GB的可用空間用於數據庫和其他集線器容器 | 有關受支持的編排技術的更多信息,請參閱《 Docker安裝指南》。 | Oracle企業Linux 7.3 |
可用空間用於數據庫備份 | 紅帽企業Linux服務器7.3 | |
SUSE Linux Enterprise Server 12.x | ||
支持Docker 17.03.x的Linux操作系統 |
2.3 實驗環境
阿里雲ESS主機 8CPU 30GARM 1Mbps 250G硬盤 40G系統盤 centos7.3
2.4 安裝步驟
2.4.1 安裝docker
1、安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
2、更改並使用穩定的yum源
yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新yum軟件源緩存
yum makecache fast
4、安裝docker-ce
yum install docker-ce
5、啟動docker
systemctl start docker
6、建立docker用戶組
sudo groupadd docker
7、將當前用戶加入docker組(root用戶可以不加)
usermod -aG docker $USER
8、將docker配置為在系統重啟時自動啟動
systemctl enable docker
2.4.2 安裝Blackduck
1、轉到github中的Blackduck hub空間,然后選擇“ blackducksoftware / hub”,找到最新版本hub連接並復制
wget + 鏈接地址 (例如:wget https://github.com/blackducksoftware/hub/archive/v4.4.0.tar.gz)
2、 解壓安裝包
tar xvf 安裝包名稱
3、找到hub-proxy.env和hub-webserver.env文件並將文件中的localhost更改為本機IP。
4、去安裝包路徑下的docker-swarm文件夾下執行命令
docker swarm init
5、准備安裝Blackduck,接下來部署組成Blackduck的所有容器
docker stack deploy -c docker-compose.yml hub
6、完成Docker Swarm的部署
docker service scale hub_jobrunner = 2
2.4.3 驗證並登錄
1、判斷所有容器的狀態是否是健康
docker ps
2、Blackduck的登錄地址為主機IP,端口為443,協議為https,登錄用戶名為sysadmin,密碼為blackduck。
3、下面試登錄界面圖,不過需要注意的是購買注冊ID之后才能進入,否則無法使用。
參考資料:
https://www.synopsys.com/blogs/software-security/installing-black-duck-hub/