
英語|中文
Opensca旨在掃描第三方依賴性,漏洞和許可證。
我們的網站:https://opensca.xmirror.cn
點擊星星留下鼓勵。
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 (對於後兩個,需要Pipenv環境和互聯網連接) |
根據您的系統體系結構從版本中下載適當的可執行文件。
或下載源代碼和編譯(需要go 1.18及以上)
// 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
// 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默認選項是生成當前系統體系結構的程序。如果您想嘗試其他系統體系結構,則可以在編譯之前設置以下環境變量。
CGO_ENABLED CGO_ENABLED=0GOOS=${OS} \ darwin,liunx,windowsGOARCH=${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 xxx |
proj | string | SaaS項目token與Opensca SaaS同步報告 | -proj xxx |
從v3.0.0中,除了可用於CMD/CRT的這些參數外,還有其他針對不同要求的參數,必須在配置文件中設置。
有關每個參數的完整介紹可以在config.json中找到
v3.0.2及更高版本允許Opensca-CLI與Opensca SaaS(通過proj )進行SNYC報告,以便可以一起管理多個項目的所有報告。
如果配置參數與命令行輸入參數發生衝突,則將採取後者。
當設定路徑中沒有配置文件時,將在此處生成默認設置中的一個。
如果未設置配置文件的路徑,將檢查以下文件:
config.json在工作目錄下opensca_config.json在用戶目錄下config.json在opensca-cli目錄下從v3.0.0中, url已放入配置文件中。默認設置轉到我們的雲漏洞數據庫。根據我們的數據庫結構,也可以通過配置文件設置其他在線數據庫。
使用以前的版本連接雲數據庫仍然需要url的設置,這可以通過CMD和配置文件完成。示例: -url https://opensca.xmirror.cn
由out參數支持的文件如下:
| 類型 | 格式 | 指定後綴 | 版本 |
|---|---|---|---|
| 報告 | json | .json | * |
xml | .xml | * | |
html | .html | v1.0.6及以上 | |
sqlite | .sqlite | v1.0.13及以上 | |
csv | .csv | v1.0.13及以上 | |
sarif | .sarif | ||
| SBOM | spdx | .spdx .spdx.json .spdx.xml | v1.0.8及以上 |
cdx | .cdx.json .cdx.xml | v1.0.11及以上 | |
swid | .swid.json .swid.xml | v1.0.11及以上 | |
dsdx | .dsdx .dsdx.json .dsdx.xml | v3.0.0及以上 |
# Use opensca-cli to scan with CMD parameters:
opensca-cli -path ${project_path} -config ${config_path} -out ${filename} . ${suffix} -token ${token}
# Start scanning after setting down the configuration file:
opensca-cli # Detect dependencies in the current directory:
docker run -ti --rm -v ${PWD} :/src opensca/opensca-cli
# Connect to the cloud vulnerability database:
docker run -ti --rm -v ${PWD} :/src opensca/opensca-cli -token ${put_your_token_here}您還可以將配置文件用於高級設置。將config.json保存到src的已安裝目錄或通過-config在容器中設置其他路徑。在不同終端上安裝當前目錄的寫作方法各不相同,我們在此列出了常見的fyi:
| 終端 | PWD |
|---|---|
bash | $(pwd) |
zsh | ${PWD} |
cmd | %cd% |
powershell | (Get-Location).Path |
有關更多信息,請訪問Docker Hub頁面
[
{
"vendor" : " org.apache.logging.log4j " ,
"product" : " log4j-core " ,
"version" : " [2.0-beta9,2.12.2)||[2.13.0,2.15.0) " ,
"language" : " java " ,
"name" : " Apache Log4j2 远程代码执行漏洞" ,
"id" : " XMIRROR-2021-44228 " ,
"cve_id" : " CVE-2021-44228 " ,
"cnnvd_id" : " CNNVD-202112-799 " ,
"cnvd_id" : " CNVD-2021-95914 " ,
"cwe_id" : " CWE-502,CWE-400,CWE-20 " ,
"description" : " Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。 rn Apache Log4J 存在代码问题漏洞,攻击者可设计一个数据请求发送给使用 Apache Log4j工具的服务器,当该请求被打印成日志时就会触发远程代码执行。 " ,
"description_en" : " Apache Log4j2 2.0-beta9 through 2.12.1 and 2.13.0 through 2.15.0 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. From version 2.16.0, this functionality has been completely removed. Note that this vulnerability is specific to log4j-core and does not affect log4net, log4cxx, or other Apache Logging Services projects. " ,
"suggestion" : " 2.12.1及以下版本可以更新到2.12.2,其他建议更新至2.15.0或更高版本,漏洞详情可参考:https://github.com/apache/logging-log4j2/pull/608 rn 1、临时解决方案,适用于2.10及以上版本: rnt (1)设置jvm参数:“-Dlog4j2.formatMsgNoLookups=true”; rnt (2)设置参数:“log4j2.formatMsgNoLookups=True”; " ,
"attack_type" : "远程" ,
"release_date" : " 2021-12-10 " ,
"security_level_id" : 1 ,
"exploit_level_id" : 1
}
]| 場地 | 描述 | 是否需要 |
|---|---|---|
vendor | 組件的製造商 | n |
product | 組件的名稱 | y |
version | 由漏洞影響的組件的版本 | y |
language | 組件的編程語言 | y |
name | 漏洞的名稱 | n |
id | 自定義標識符 | y |
cve_id | CVE標識符 | n |
cnnvd_id | CNNVD標識符 | n |
cnvd_id | CNVD標識符 | n |
cwe_id | CWE標識符 | n |
description | 漏洞的描述 | n |
description_en | 用英語描述脆弱性 | n |
suggestion | 解決脆弱性的建議 | n |
attack_type | 攻擊類型 | n |
release_date | 漏洞的發布日期 | n |
security_level_id | 脆弱性的安全級別(從1降低到4) | n |
exploit_level_id | 漏洞的利用水平(0-N/A 1-可用) | n |
*“語言”字段有幾個預設的值,包括Java,JavaScript,Golang,Rust,PHP,Ruby和Python。其他語言不僅限於預設價值。
{
"origin" :{
"json" : " db.json " ,
"mysql" :{
"dsn" : " user:password@tcp(ip:port)/dbname " ,
"table" : " table_name "
},
"sqlite" :{
"dsn" : " sqlite.db " ,
"table" : " table_name "
}
}
}否。解壓縮後CLI/CRT中的命令可以直接執行Opensca。
OpenSCA允許配置本地漏洞數據庫。必鬚根據漏洞數據庫文件的格式對其進行排序。
同時,Opensca還提供了一個雲漏洞數據庫,涵蓋包括CVE/CWE/NVD/CNVD/CNNVD在內的官方數據庫。
這取決於包裝的大小,網絡條件和語言。
從v1.0.11中,我們將Aliyun Mirror數據庫添加到官方Maven存儲庫中,以求解由網絡連接引起的滯後。
對於v1.0.10及以下,如果時間異常長,並且有關與Maven存儲庫的連接失敗的錯誤信息會在日誌文件中報告,則V1.0.6和V1.0.10之間的版本可以通過在config.json中設置maven字段來解決問題。
{
"maven" : [
{
"repo" : " https://maven.aliyun.com/repository/public " ,
"user" : " " ,
"password" : " "
}
]
} 設置後,將config.json保存到opensca-cli.exe的同一文件夾並執行命令。例如:
opensca-cli -token {token} -path {path} -out output.html -config config.jsonv1.0.5及以下的用戶可能必須修改源代碼。我們建議對更高版本進行升級。
有關更多其他常見問題,請檢查常見問題解答。
熱情歡迎問題。
加上微信進行進一步諮詢也是一種選擇:

我們的QQ組:832039395
Opensca是一個開源項目,我們感謝您的貢獻!
為了做出貢獻,請閱讀我們的貢獻指南。