开放代码社区 › OpenSCA-cli
OpenSCA-cli
开发工具Go用开源的方式做开源风险治理 中文 English 方式 1: 从 Releases 下载 方式 2: 一键安装脚本 方式 3: 使用包管理器(Homebrew) 方式 4: 从源码构建 漏洞库文件格式 漏洞库字段说明 漏洞库配置示例 使用OpenSCA需要配置环境变量吗? OpenSCA目前支持哪些漏洞库呢? 使用OpenSCA检测时,检测速度与哪些因素有关? 问题反馈\&联系我们 OpenSCA 用来扫描项目的第三方组件依赖及漏洞信息。
仓库地址
https://gitee.com/XmirrorSecurity/OpenSCA-cli.gitREADME
<div align="center">
<img alt="logo" src="https://gitee.com/XmirrorSecurity/OpenSCA-cli/raw/master/resources/logo.svg">
<h2>用开源的方式做开源风险治理</h2>
[](https://github.com/XmirrorSecurity/OpenSCA-cli/releases)
[](https://github.com/XmirrorSecurity/OpenSCA-cli/releases)
[](https://hub.docker.com/r/opensca/opensca-cli)
[](https://plugins.jetbrains.com/plugin/18246-opensca-xcheck)
[](https://marketplace.visualstudio.com/items?itemName=xmirror.opensca)
[](https://github.com/XmirrorSecurity/OpenSCA-cli/blob/master/LICENSE)
[](/go.mod)
中文 | [English](https://gitee.com/XmirrorSecurity/OpenSCA-cli/blob/master/.github/README.md)
</div>
<!-- TOC -->
- [项目介绍](#项目介绍)
- [检测能力](#检测能力)
- [下载安装](#下载安装)
- [方式 1: 从 Releases 下载](#方式-1-从-releases-下载)
- [方式 2: 一键安装脚本](#方式-2-一键安装脚本)
- [方式 3: 使用包管理器(Homebrew)](#方式-3-使用包管理器homebrew)
- [方式 4: 从源码构建](#方式-4-从源码构建)
- [使用说明](#使用说明)
- [参数说明](#参数说明)
- [报告格式](#报告格式)
- [使用样例](#使用样例)
- [漏洞库文件格式](#漏洞库文件格式)
- [漏洞库字段说明](#漏洞库字段说明)
- [漏洞库配置示例](#漏洞库配置示例)
- [常见问题](#常见问题)
- [使用OpenSCA需要配置环境变量吗?](#使用opensca需要配置环境变量吗)
- [OpenSCA目前支持哪些漏洞库呢?](#opensca目前支持哪些漏洞库呢)
- [使用OpenSCA检测时,检测速度与哪些因素有关?](#使用opensca检测时检测速度与哪些因素有关)
- [问题反馈\&联系我们](#问题反馈联系我们)
- [贡献者](#贡献者)
- [向我们贡献](#向我们贡献)
<!-- TOC -->
## 项目介绍
**OpenSCA** 用来扫描项目的第三方组件依赖及漏洞信息。
官网:[https://opensca.xmirror.cn](https://opensca.xmirror.cn)
欢迎点亮**star**,鼓励下项目组的小伙伴们~
---
## 检测能力
`OpenSCA`现已支持以下编程语言相关的配置文件解析及对应的包管理器,后续会逐步支持更多的编程语言,丰富相关配置文件的解析。
| 支持语言 | 包管理器 | 解析文件 |
| ------------ | ---------- | ------------------------------------------------------------------------ |
| `Java` | `Maven` | `pom.xml` |
| `Java` | `Gradle` | `.gradle` `.gradle.kts` |
| `JavaScript` | `Npm` | `package-lock.json` `package.json` `yarn.lock` |
| `PHP` | `Composer` | `composer.json` `composer.lock` |
| `Ruby` | `gem` | `gemfile.lock` |
| `Golang` | `gomod` | `go.mod` `go.sum` `Gopkg.toml` `Gopkg.lock` |
| `Rust` | `cargo` | `Cargo.lock` |
| `Erlang` | `Rebar` | `rebar.lock` |
| `Python` | `Pip` | `Pipfile` `Pipfile.lock` `setup.py` `requirements.txt` `requirements.in` |
## 下载安装
OpenSCA-cli 支持 Windows、Linux、MacOS 等操作系统,支持 x86_64 和 arm64 架构。目前提供了以下几种安装方式:
### 方式 1: 从 Releases 下载
1. 从 [github](https://github.com/XmirrorSecurity/OpenSCA-cli/releases) 或 [gitee](https://gitee.com/XmirrorSecurity/OpenSCA-cli/releases) 或 [gitcode](https://gitcode.com/XmirrorSecurity/OpenSCA-cli/releases) 下载对应系统架构的可执行文件压缩包
2. 解压,并运行 `opensca-cli` 可执行文件即可。
### 方式 2: 一键安装脚本
- Mac/Linux 用户
```shell
curl -sSL https://raw.githubusercontent.com/XmirrorSecurity/OpenSCA-cli/master/scripts/install.sh | sh
# 如果遇到网络问题,可尝试以下命令
curl -sSL https://gitee.com/XmirrorSecurity/OpenSCA-cli/raw/master/scripts/install.sh | sh -s -- gitee
```
- For Windows Users(need PowerShell)
```powershell
iex "&{$(irm https://raw.githubusercontent.com/XmirrorSecurity/OpenSCA-cli/master/scripts/install.ps1)}"
# 如遇到网络问题,可尝试以下命令
iex "&{$(irm https://gitee.com/XmirrorSecurity/OpenSCA-cli/raw/master/scripts/install.ps1)} gitee"
```
### 方式 3: 使用包管理器(Homebrew)
```
brew install opensca-cli
```
### 方式 4: 从源码构建
克隆并源码编译(需要 `go 1.18` 及以上版本)
```shell
# github linux/mac
git clone https://github.com/XmirrorSecurity/OpenSCA-cli.git opensca && cd opensca && go build
# gitee linux/mac
git clone https://gitee.com/XmirrorSecurity/OpenSCA-cli.git opensca && cd opensca && go build
# gitcode linux/mac
git clone https://gitcode.com/XmirrorSecurity/OpenSCA-cli.git opensca && cd opensca && go build
# github windows
git clone https://github.com/XmirrorSecurity/OpenSCA-cli.git opensca ; cd opensca ; go build
# gitee windows
git clone https://gitee.com/XmirrorSecurity/OpenSCA-cli.git opensca ; cd opensca ; go build
# gitcode windows
git clone https://gitcode.com/XmirrorSecurity/OpenSCA-cli.git opensca ; cd opensca ; go build
```
默认生成当前系统架构的程序,如需生成其他系统架构可配置环境变量后编译
- 禁用`CGO_ENABLED`
`CGO_ENABLED=0`
- 指定操作系统
`GOOS=${OS} \\ darwin,liunx,windows`
- 指定体系架构
`GOARCH=${arch} \\ amd64,arm64`
## 使用说明
### 参数说明
| 参数 | 类型 | 描述 | 使用样例 |
| -------- | -------- | ---------------- | ------------------------ |
| `config` | `string` | 指定配置文件路径 | `-config config.json` |
| `path` | `string` | 指定检测项目路径 | `-path ./foo` |
| `out` | `string` | 根据后缀生成报告 | `-out out.json,out.html` |
| `log` | `string` | 指定日志文件路径 | `-log my_log.txt` |
| `token` | `string` | 云端服务`token` | `-token xxx` |
| `proj` | `string` | saas项目`token` | `-proj xxx` |
完整的检测参数需在配置文件中配置
(*v3.0.0开始url参数不再通过命令行指定,默认为OpenSCA云漏洞库服务`https://opensca.xmirror.cn/`,也可通过配置文件指定其他数据格式相符的云漏洞库;使用过往版本可在命令行或配置文件指定url参数。)
配置字段及说明详见[`config.json`](https://gitee.com/XmirrorSecurity/OpenSCA-cli/blob/master/config.json)
v3.0.2开始,OpenSCA-cli可以通过proj参数向OpenSCA SaaS同步检出结果,方便资产及风险的全局管理。
配置文件与命令行参数冲突时优先使用命令行输入参数
指定了配置文件路径但目标位置不存在文件时会在目标位置生成