从行业调研报告中显示,2020年较2015年开源项目数增长了近3倍,中国有超88%的企业在使用开源技术,开源代码占软件代码的比例已经从2015年的不到40%上升到19年的近80%,大大提升了开发效率,加快了创新步伐。
然而开源生态蓬勃发展的同时,也随之而来存在着很多新的安全风险。从去年12月份的log4j漏洞,到一月份Marak Squires删库事件,再到3月16日node-ipc作者反战投毒事件,一次次在引发社会讨论。当下我们习惯于使用开源组件,而开源软件带来的安全问题正在这种日常的习惯中悄然的埋下各种隐患。
每一个程序员做为拼搏在软件生产一线的“新时代农民工”,可能时时刻刻都在担忧自己为公司写的每一行代码是否存在安全问题,是否可能引起线上故障,甚至可能因为这些安全问题导致公司业务被攻击而丢了饭碗。
但是,如果要解决这些无处不在且又烦人的安全问题,作为一个不懂安全的程序员来讲,是非常亟需一款简单实用的安全工具来为我们写的代码保驾护航的,所以今天我们给大家带来了一款简单、实用且开源的代码安全工具。
先上链接:
- 开源项目地址:https://github.com/murphysecurity
- 产品官网及文档:https://www.murphysec.com/
- JetBrains IDE插件:https://github.com/murphysecurity/murphysec-jetbrains-plugin
开源工具介绍
MurphySec 是我们墨菲安全开发的一款开源软件安全检测工具,墨菲安全的slogan是让每一个开发者更安全的使用开源代码。
这款开源检测工具具备上手简单、效果实用,在程序员不懂安全的情况下能够辅助一键修复安全漏洞的特性。不仅支持IDE插件,也开放了核心检测客户端,通过这个客户端,可以将检测能力集成至企业开发流程的所有环节。
除了开源工具之外,墨菲安全也免费开放了一个面向开发者的协作平台,方便一个项目的开发者在一起协作修复漏洞。
首先,给大家介绍一下工具能力:
特性
- 支持分析项目使用的依赖信息(直接和间接依赖)
- 支持检测项目依赖存在的已知漏洞信息
- 使用简单,快速上手
支持语言
目前支持 Java、JavaScript、Golang 语言项目的检测,后续会逐渐支持其他的开发语言。
检测原理
- 对于使用不同语言/包管理工具的项目,工具主要采用
项目构建
或直接对包管理文件
进行解析的方式,来准确获取到项目的依赖信息 - 项目的依赖信息会上传到服务端,并基于墨菲安全持续维护的
漏洞知识库
来识别项目中存在安全缺陷的依赖
说明:工具只会将检测项目的依赖和基本信息发送到墨菲安全服务端,用于识别存在安全缺陷的依赖,不会上传任何本地代码。
安装
访问 GitHub Releases 页面下载最新版本的墨菲安全 CLI,或执行以下相关命令:
在 Linux 上安装
curl -sL "https://github.com/murphysecurity/murphysec/releases/latest/download/murphysec-linux-amd64" -o murphysec
chmod +x murphysec
在 OSX 上安装
curl -sL "https://github.com/murphysecurity/murphysec/releases/latest/download/murphysec-darwin-amd64" -o murphysec
chmod +x murphysec
在 WINDOWS 上安装
scoop bucket add murphysec https://github.com/murphysecurity/scoop-bucket
scoop update
scoop install murphysec
使用
- 执行
murphysec scan [your-project-path]
完成开始检测
查看结果
- 执行命令增加
--json
参数,可以将检测结果输出为Json格式进行查看 - 也可以直接在墨菲安全平台上查看详细的检测结果
- 查看依赖信息
- 查看检测结果(提供处置建议、缺陷组件的最小修复版本以及丰富的漏洞信息)
IDE 检测插件
一款基于墨菲安全开源检测工具而开发的 IDE 插件,帮助开发者在 IDE 中即可检测代码依赖的安全问题,轻松识别代码中使用了哪些存在安全缺陷的开源组件,通过准确的修复方案和一键修复功能,快速解决安全问题。
插件官方地址:https://plugins.jetbrains.com/plugin/18274-murphysec-code-scan
支持功能
- 漏洞检测:检测
Java(Maven)
、JavaScript(npm)
、Go
代码中引入的缺陷组件 - 一键修复:不仅有清晰的修复方案,还可以通过此功能快速修复
- 实时检测:代码的依赖发生变化导致了安全问题,不用担心,插件会及时给您提醒进行处理
安装
- 在 IDE 插件市场中搜索 “murphysec”,查看详情并安装
使用
- 选择“点击开始扫描”,即可检测出代码中存在哪些安全缺陷组件
- 点击检测结果中的组件,即可查看该缺陷组件的基本信息
- 点击右侧“一键修复”,即可直接将该组件升级至“最小修复版本
详细使用说明可以查看文档
更多的使用场景
一、GitLab 代码库检测工具
基于墨菲安全开源检测工具开发,可以帮助您快速对 企业GitLab 上所有项目进行检测
工具地址:https://github.com/murphysecurity/murphysec-gitlab-scanner
功能
- 自动化拉取GitLab上代码进行检测
- 支持增量代码检测(基于GitLab Webhook功能)
使用
- 拉取工具最新代码
- 执行命令
python3 scan_all.py -A [your gitlab address] -T [your gitlab token] -t [your murphysec token]
参数说明
- -A:指定您的 GitLab 服务地址
- -T:指定您的 GitLab 个人访问令牌
- -t:指定您的墨菲安全账户访问令牌
二、Jenkins集成安全检测能力
可以将墨菲安全开源检测工具集成到 Jenkins 中,提高线上代码安全质量
集成方式
- 安装墨菲安全开源检测工具
在 Jenkins 机器上安装墨菲安全开源检测工具最新版本,访问 GitHub Releases 页面下载,或执行以下命令:
curl -sL "https://github.com/murphysecurity/murphysec/releases/latest/download/murphysec-linux-amd64" -o murphysec
chmod +x murphysec
mv murphysec /usr/bin/
- 设置Jenkins全局凭据
在 Jenkins 全局凭据中添加墨菲安全访问令牌
- 修改Jenkinsfile
为了将墨菲安全开源检测工具添加到 pipeline,需要在 Jenkinsfile 中添加一个stage,示例如下:
pipeline {
agent none
stages {
stage('MurphySec Scan') {
environment {
API_TOKEN = credentials('murphysec-token-key')
}
steps {
sh 'murphysec scan . --log-level debug'
}
}
}
}
发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/product-presentation/4273.html