一、功能简介
将墨菲安全代码安全检测工具集成到 GitLab CI 中,可对每一次代码更新实时进行安全漏洞检测,并快速修复这些安全漏洞。
如果您使用过 GitLab CI 请直接按照第 4 步开始操作
集成效果
二、操作步骤
2.1 部署 GitLab Runner
为了使用 GitLab 的 CI/CD 功能,我们需要在一台能够访问到 GitLab 服务的机器上安装 GitLab Runner,GitLab Runner 就像是一个工作机器人,专门负责执行你在 GitLab上定义的各种 CI 任务
- 在准备安装 GitLab Runner 的机器上,执行以下命令:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
yum install gitlab-runner
gitlab-runner start
- 注册 GitLab Runner,执行以下命令:
gitlab-runner register
--non-interactive
--url "<gitlab服务地址>"
--registration-token "<runner 注册令牌>"
--executor "shell"
--description "描述"
--tag-list "tag标签"
--run-untagged --locked="false"
2.2 查看 GitLab Runner 令牌
- 点击
管理员
选项卡->点击CI/CD
->Run
n
er
–>复制注册令牌
2.3 注册 GitLab Runner
- 在安装了 GitLab Runner 的机器上,执行下面的命令来完成注册(注意需要替换的内容)
2.4 安装墨菲安全 CLI 工具
wget -q https://s.murphysec.com/release/install.sh -O - | /bin/bash
2.5 安装 python 以及依赖
- 示例为 centos 安装 python3.6
yum install -y python3 wget
pip3 install requests argparse python-gitlab
2.6 创建 GitLab CI 变量
- 进入项目仓库->
设置
–>CI/CD
–>变量
2.6.1 变量一:墨菲安全访问令牌
变量的键为:MURPHYSEC_TOKEN
变量的值为:通过以下方式获取到的墨菲安全访问令牌
- 登录墨菲安全官网(https://www.murphysec.com),在
设置
->访问令牌
页面中,点击按钮复制访问令牌
2.6.2 变量二:GitLab 访问令牌
- 分别添加变量:
- 变量的键为:MURPHYSEC_TOKEN
- 变量的值为:通过以下方式获取到的墨菲安全访问令牌
- GITLAB_URL:gitlab 地址(不指定不会提交 issue)
- GITLAB_TOKEN:gitlab 当前项目令牌(指定 GITLAB_URL 时配置)
项目页面点击–>设置–>访问令牌
授予 api 权限
- PROJECT_ID:ci 项目的项目 id(指定 GITLAB_URL 时配置)
项目页面点击设置–>通用
- 创建 .gitlab-ci 文件
仓库点击加号–>新建文件
stages:
- Code Scan
- Issue
variables:
MURPHY_TOKEN: $MURPHYSEC_TOKEN
GITLAB_ROKEN: $GITLAB_TOKEN
PROJECT_ID: $PROJECT_ID
GITLAB_URL: $GITLAB_URL
scan:
stage: Code Scan
script:
- murphysec scan . --token $MURPHYSEC_TOKEN --json >scan_results.json
artifacts:
paths:
- scan_results.json
issue:
stage: Issue
script:
- wget https://s.murphysec.com/gitlab_ci.py
- python3 gitlab_ci.py --gitlab_url $GITLAB_URL --gitlab_token $GITLAB_TOKEN --project_id $PROJECT_ID
dependencies:
- scan
- 查看代码检测结果
进入项目页面点击议题,页面展示了所有风险组件的漏洞概览
点击要查看的漏洞标题可以进入详细信息页面
详细信息包含了漏洞的编号,处置建议,引入路径以及修复方案
点击项目检测报告下方链接可以跳转到 murphysec 官网查看更详细的漏洞信息