opensca(软件成分分析)使用

2023-03-06 08:48:57 浏览数 (1)

opensca

opensca-cli 命令行

OpenSCA-cli 发行版 - Gitee.com

https://github.com/XmirrorSecurity/OpenSCA-cli/releases

首先下载编译好的包

windows下载opensca-cli_v1.0.10_Darwin_x86_64.tar.gz这个

然后把opensca解压的文件夹设置环境变量

运行命令行

代码语言:javascript复制
λ opensca-cli
  -cache
        (可选,建议开启) 缓存下载的文件(例如pom文件),重复检测相同组件时会节省时间,下载的文件会保存到工具所在目录
  -config string
        (可选) 指定配置文件路径,指定后启动程序时将默认使用配置参数,配置参数与命令行输入参数冲突时优先使用输入参
  -db string
        (可选) 指定本地漏洞库文件,希望使用自己漏洞库时可用,漏洞库文件为json格式,具体格式会在开源项目文档中给出;
  -dedup用云端漏洞库与本地漏洞库,漏洞查询结果取并集,例: -db db.json
        (可选) 相同组件去重
  -out string
        (可选) 将检测结果保存到指定文件,根据后缀生成不同格式的文件,默认为json格式,例: -out output.json
  -path string
        (必须) 指定要检测的文件或目录路径,例: -path ./foo 或 -path ./foo.zip
  -progress
        (可选) 显示进度条
  -token string
        (可选,与url需一起使用) 云服务验证token,需要在云服务平台申请
  -url string
        (可选,与token需一起使用) 从云漏洞库查询漏洞,指定要连接云服务的地址,例:-url https://opensca.xmirror.cn
  -vuln
        (可选) 结果仅保留有漏洞信息的组件,使用该参数不会保留组件层级结构

然后执行

token需要注册登录之后后台获取

https://opensca.xmirror.cn/pages/auth-token

project_path 项目目录

需要等待很长时间才能执行结束

代码语言:javascript复制
opensca-cli -url https://opensca.xmirror.cn -token ${token} -path ${project_path} -out output.html

C:Users>opensca-cli -url https://opensca.xmirror.cn -token test -path  C:UsersDownloadstest -out output2.html

最好生成的output2.html是在opensca-cli解压目录

代码语言:javascript复制
C:Usersteatoolsopensca-cli_v1.0.10_Windows_x86_64
λ ls
LICENSE  opensca.log  opensca-cli.exe*  output.html   output2.html  README.md

opensca idea插件

https://opensca.xmirror.cn/docs/v1/idea.html#安装插件

打开IDEA-Settings-Plugins-搜索opensca xcheck

安装成功之后会在打印输出的位置多出来OpenSCA的选项卡

点击左侧的绿色三角就可以执行了,执行需要很久

需要在IDEA-Settings-OpenSca Setting设置URL Token

URL https://opensca.xmirror.cn

Tokentoken需要注册登录之后后台获取

https://opensca.xmirror.cn/pages/auth-token

然后点击测试链接

支持语言

支持语言

包管理器

解析文件

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

Python

Pip

Pipfile Pipfile.lock setup.py requirements.txt requirements.in (后两者的解析需要具备pipenv环境,需要联网。)

Rust

cargo

Cargo.lock

Erlang

Rebar

rebar.lock

0 人点赞