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/