# murphysec **Repository Path**: murphysecurity/murphysec ## Basic Information - **Project Name**: murphysec - **Description**: An open source tool focused on software supply chain security. 墨菲安全专注于软件供应链安全,具备专业的软件成分分析(SCA)、漏洞检测、专业漏洞库。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: v3 - **Homepage**: https://murphysec.com - **GVP Project**: Yes ## Statistics - **Stars**: 133 - **Forks**: 29 - **Created**: 2022-04-01 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: security-dev **Tags**: 代码安全, 安全开发, 漏洞检测 ## README 中文 | [EN](README.md) 墨菲安全的 **CLI 工具**,用于在命令行检测指定目录代码的依赖安全问题,也可以基于 CLI 工具实现在 CI 流程的检测。
## 功能 1. 分析项目使用的依赖信息,包含直接和间接依赖 2. 检测项目依赖存在的已知漏洞信息 ### 效果截图 - CLI 运行结果
- 检测结果页面
## 目录
1. [支持的语言](#支持的语言)
2. [工作原理](#工作原理)
3. [使用场景](#使用场景)
4. [使用步骤](#使用步骤)
5. [命令介绍](#命令介绍)
6. [交流和问题反馈](#交流和问题反馈)
7. [开源协议](#开源协议)
## 支持的语言
目前支持 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 |
### 3. 认证
目前有两种认证方式可用:命令行交互认证、命令行参数认证
#### 命令行交互认证
执行`murphysec auth login`命令,粘贴访问令牌即可。
> 认证后下次使用墨菲安全 CLI 无需再次执行此操作,如果需要更换访问令牌,可以重复执行此命令来覆盖旧的访问令牌。
#### 命令行参数认证
执行检测命令时,通过增加`--token`参数指定访问令牌进行认证
### 4. 检测
使用`murphysec scan`命令进行检测,可以执行以下命令:
``` bash
murphysec scan [your-project-path]
```
可用的参数
- `--token`:指定访问令牌
- `--log-level`:指定命令行输出流打印的日志级别,默认不打印日志,可选参数为`silent`、`error`、`warn`、`info`、`debug`
- `--json`:指定检测的结果输出为json,默认不展示结果详情
### 5. 查看结果
CLI 工具默认不展示结果详情,可以在[墨菲安全控制台](https://www.murphysec.com/console)-`项目管理`页面查看详细的检测结果
## 命令介绍
### 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 ?**
* 检查您的项目/文件是否在目前支持的检测范围内
## 交流和问题反馈
联系并添加运营微信号,拉您进墨菲安全交流微信群
## 开源协议
[Apache 2.0](LICENSE)