免责声明
由于传播、利用本公众号夜组安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号夜组安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!所有工具安全性自测!!!VX:baobeiaini_ya
朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把夜组安全“设为星标”,否则可能就看不到了啦!
工具介绍
墨菲安全的 CLI 工具,用于在命令行检测指定目录代码的依赖安全问题,也可以基于 CLI 工具实现在 CI 流程的检测。
功能
分析项目使用的依赖信息,包含直接和间接依赖 检测项目依赖存在的已知漏洞信息
效果截图
CLI 运行结果
检测结果页面
支持的语言
目前支持 Java、JavaScript、Golang、Python、PHP、C#、Ruby、Objective-C、.NET 语言项目的检测,后续会逐渐支持其他的开发语言。
语言 | 包管理工具 | 所需文件 |
---|---|---|
Java | Maven | pom.xml |
Gradle | build.gradle, build.gradle.kts | |
Go | Go Modules | go.mod |
JavaScript | NPM | package.json, package-lock.json |
Yarn | yarn.lock, package.json | |
Python | pip | requirements.txt |
Poetry | poetry.lock | |
PHP | Composer | composer.lock |
Ruby | Bundler | Gemfile.lock, gems.locked |
.NET | NuGet | packages.lock.json |
C# | NuGet | packages.lock.json |
Objective-C | Cocoapods | Podfile.lock |
工作原理
对于使用不同语言/包管理工具的项目,墨菲安全的 CLI 工具主要采用 项目构建
或直接对包管理文件
进行解析的方式,来准确获取到项目的依赖信息项目的依赖信息会上传到服务端,并基于墨菲安全持续维护的 漏洞知识库
来识别项目中存在安全缺陷的依赖
使用场景
希望在本地环境中检测代码文件 希望集成到 CI 环境中对代码项目进行检测
使用步骤
1. 安装
访问 GitHub Releases 页面下载最新版本的墨菲安全 CLI,或执行以下相关命令:
在 Linux 上安装
wget -q https://s.murphysec.com/release/install.sh -O - | /bin/bash
在 OSX 上安装
curl -fsSL https://s.murphysec.com/release/install.sh | /bin/bash
在 WINDOWS 上安装
powershell -Command "iwr -useb https://s.murphysec.com/release/install.ps1 | iex"
2. 获取访问令牌
进入墨菲安全控制台,点击设置
- 访问令牌
3. 认证
目前有两种认证方式可用:命令行交互认证、命令行参数认证
命令行交互认证
执行murphysec auth login
命令,粘贴访问令牌即可。
命令行参数认证
执行检测命令时,通过增加--token
参数指定访问令牌进行认证
4. 检测
使用murphysec scan
命令进行检测,可以执行以下命令:
murphysec scan [your-project-path]
可用的参数
--token
:指定访问令牌--log-level
:指定命令行输出流打印的日志级别,默认不打印日志,可选参数为silent
、error
、warn
、info
、debug
--json
:指定检测的结果输出为json,默认不展示结果详情
5. 查看结果
CLI 工具默认不展示结果详情,可以在墨菲安全控制台-项目管理
页面查看详细的检测结果
命令介绍
murphysec auth
murphysec auth
命令主要是管理 CLI 的认证
Usage:
murphysec auth [command]
Available Commands:
login
logout
murphysec scan
murphysec scan
命令主要用于执行检测
Usage:
murphysec scan DIR [flags]
Flags:
-h, --help 帮助
--task-id string 指定本次检测归属的项目ID
Global Flags:
-x --allow-insecure 允许不安全的TLS连接
--log-level string 指定输出日志信息的级别, 可以为 silent|error|warn|info|debug (默认为 "silent", 不输出日志)
--network-log 打印网络数据
--no-log-file 不输出日志文件
--server string 指定服务地址
--token string 指定墨菲安全服务 Token
-v, --version 输出 CLI 版本
--write-log-to string 指定日志文件的路径
常见问题
1. Windows下安装失败,提示“PowerShell requires an execution policy of 'RemoteSigned'”
Powershell默认不允许从远程加载安装脚本,需要使用管理员权限打开Powershell窗口,并执行Set-ExecutionPolicy RemoteSigned -scope CurrentUser
。随后执行安装命令即可成功。
2. 为什么我的 Java(maven) 项目检测结果依赖信息不完整?
本地是否配置了 Maven 环境,可使用 mvn -v
查看请检查 Maven 的源是否配置正确。如果是企业内部代码,通常需要配置公司的私有源地址。一般情况下可通过修改 ~/.m2/settings.xml
进行配置请检查代码目录下是否存在 pom.xml
文件,也可通过mvn dependency:tree --file="pom.xml"
命令测试此项目本地是否可正常获取依赖
3. 为什么检测完依赖和缺陷组件数量都是0 ?
检查您的项目/文件是否在目前支持的检测范围内
工具获取
点击关注下方名片进入公众号
回复关键字【250115】获取下载链接
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...