Gitlab 集成 MurphySec 实时代码安全检测

一、功能简介

将墨菲安全代码安全检测工具集成到 GitLab CI 中,可对每一次代码更新实时进行安全漏洞检测,并快速修复这些安全漏洞。

如果您使用过 GitLab CI 请直接按照第 4 步开始操作

集成效果

Gitlab 集成 MurphySec 实时代码安全检测
Gitlab 集成 MurphySec 实时代码安全检测

二、操作步骤

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->Runner–>复制注册令牌
Gitlab 集成 MurphySec 实时代码安全检测
Gitlab 集成 MurphySec 实时代码安全检测
Gitlab 集成 MurphySec 实时代码安全检测

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–>变量
Gitlab 集成 MurphySec 实时代码安全检测
Gitlab 集成 MurphySec 实时代码安全检测

2.6.1 变量一:墨菲安全访问令牌

变量的键为:MURPHYSEC_TOKEN

变量的值为:通过以下方式获取到的墨菲安全访问令牌

  • 登录墨菲安全官网(https://www.murphysec.com),在设置->访问令牌页面中,点击按钮复制访问令牌
Gitlab 集成 MurphySec 实时代码安全检测

2.6.2 变量二:GitLab 访问令牌

  • 分别添加变量:
  • 变量的键为:MURPHYSEC_TOKEN
  • 变量的值为:通过以下方式获取到的墨菲安全访问令牌
  • GITLAB_URL:gitlab 地址(不指定不会提交 issue)
  • GITLAB_TOKEN:gitlab 当前项目令牌(指定 GITLAB_URL 时配置)

项目页面点击–>设置–>访问令牌

Gitlab 集成 MurphySec 实时代码安全检测

授予 api 权限

Gitlab 集成 MurphySec 实时代码安全检测
  • PROJECT_ID:ci 项目的项目 id(指定 GITLAB_URL 时配置)

项目页面点击设置–>通用

Gitlab 集成 MurphySec 实时代码安全检测
  1. 创建 .gitlab-ci 文件

仓库点击加号–>新建文件

Gitlab 集成 MurphySec 实时代码安全检测
Gitlab 集成 MurphySec 实时代码安全检测
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
  1. 查看代码检测结果

进入项目页面点击议题,页面展示了所有风险组件的漏洞概览

Gitlab 集成 MurphySec 实时代码安全检测

点击要查看的漏洞标题可以进入详细信息页面

详细信息包含了漏洞的编号,处置建议,引入路径以及修复方案

点击项目检测报告下方链接可以跳转到 murphysec 官网查看更详细的漏洞信息

Gitlab 集成 MurphySec 实时代码安全检测

发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/knowledge-popularization/4972.html

(0)
上一篇 2023年7月14日 19:55
下一篇 2023年1月5日 14:48

相关推荐

  • RocketMQ 组件的安全漏洞及修复方案

    Apache RocketMQ 是阿里开源的一款高性能、高吞吐量的分布式消息中间件,在由阿里捐赠给Apache软件基金会之后孵化成了Apache的一个顶级项目(Top-Level Project,TLP)。它是一款低延迟、高并发、高可用、高可靠的分布式消息中间件。 RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海…

    2023年7月14日
  • 如何生成一份SBOM清单

    引言 随着软件开发的日益复杂和分散,软件供应链安全成为了一个重要的挑战。软件供应链指的是从源代码到最终产品的整个生命周期中涉及的所有环节,包括开发、构建、测试、部署和维护等。软件供应链中可能存在各种各样的组件和依赖项,如开源软件、第三方库、框架、工具等。这些组件和依赖项可能来自不同的来源,具有不同的许可证,存在不同的漏洞和风险。如果不对这些组件和依赖项进行有…

    2023年7月7日
  • 软件供应链安全相关监管要求

    引言 软件供应链是指软件从开发到交付到使用的整个过程中涉及的所有组织、人员、活动、资源和技术的集合。软件供应链具有复杂性、动态性、分布性和多样性等特点,涉及多个主体、多个环节、多个层次和多个领域。软件供应链不仅是软件产品和服务的生产者和提供者,也是软件产品和服务的消费者和使用者,构成了一个复杂的网络系统。 软件供应链面临着多方面的安全风险和挑战,如恶意代码植…

    2023年7月14日
  • SBOM清单是什么?

    引言 你是否知道你使用的软件都是由哪些组件构成的?你是否了解这些组件的来源、版本、许可证和安全状况?如果你是一个软件开发者或者供应链管理者,你是否能够追踪和管理你的软件产品中包含的所有组件?在当今的软件行业,这些问题都是非常重要和紧迫的。为了提高软件供应链的透明度和安全性,我们需要一种工具来帮助我们识别、记录和共享软件组件的相关信息。这就是SBOM清单。 S…

    2023年7月7日
  • 墨菲安全参与信息通信软件供应链安全社区成员大会并获自主研发创新成果奖

    2023年2月16日,首届ICT软件供应链安全治理论坛暨信息通信软件供应链安全社区第二届成员大会在北京成功举办,多位业界顶级专家与工业和信息化部网络安全管理局相关领导出席,为现场观众分享了关于软件供应链可持续性与安全治理行业的前瞻与思考。会议期间,墨菲安全自主研发的【软件供应链安全管理平台】授予了自主研发创新成果奖。会议下午,墨菲安全协助中国移动举办分会场论…

    2023年2月20日

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-180-9568

邮件:hi@murphysec.com

工作时间:周一至周五,10:00-19:00,节假日休息

关注公众号

20230105-100741