
Englisch | 中文
OpenSCA ist zum Scannen von Abhängigkeiten, Schwachstellen und Lizenzen von Drittanbietern vorgesehen.
Unsere Website: https://opensca.xmirror.cn
Klicken Sie auf Stern, um Ermutigung zu hinterlassen.
OpenSCA kann nun Konfigurationsdateien in den aufgelisteten Programmiersprachen und Korrespondenzpaketmanagern analysieren. Das Team ist nun der Einführung mehr Sprachen und der Analyse der Parsen relevanter Konfigurationsdateien schrittweise eingesetzt.
| SPRACHE | Paketmanager | DATEI |
|---|---|---|
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 (Für die beiden letzteren sind Pipenv -Umgebungen und Internetverbindung erforderlich) |
Laden Sie die entsprechende ausführbare Datei gemäß Ihrer Systemarchitektur von Veröffentlichungen herunter.
Oder laden Sie den Quellcode herunter und kompilieren Sie ( go 1.18 und höher ist erforderlich).
// 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 buildDie Standardoption besteht darin, das Programm der aktuellen Systemarchitektur zu generieren. Wenn Sie es für andere Systemarchitekturen ausprobieren möchten, können Sie vor dem Kompilieren die folgenden Umgebungsvariablen festlegen.
CGO_ENABLED CGO_ENABLED=0GOOS=${OS} \ darwin,liunx,windowsGOARCH=${arch} \ amd64,arm64 | PARAMETER | TYP | Beschreibung | PROBE |
|---|---|---|---|
config | string | Stellen Sie den Pfad der Konfigurationsdatei ein | -config config.json |
path | string | Legen Sie den Pfad der Zieldatei oder des Verzeichnisses fest | -path ./foo |
out | string | Speichern Sie das Ergebnis in der angegebenen Datei, deren Format durch das Suffix definiert ist | -out out.json, out.html |
log | string | Geben Sie den Pfad der Protokolldatei an | -log my_log.txt |
token | string | Cloud -Service -Überprüfung von unserer offiziellen Website | -token xxx |
proj | string | SaaS Project token to Sync Report mit OpenSCA SaaS | -proj xxx |
Ab V3.0.0, abgesehen von diesen Parametern, die für CMD/CRT verfügbar sind, gibt es auch andere für verschiedene Anforderungen, die in der Konfigurationsdatei festgelegt werden müssen.
Eine vollständige Einführung zu den einzelnen Parametern finden Sie in config.json
V3.0.2 und höher ermöglicht OpenSCA-CLI zu SNYC-Berichten mit OpenSCA SaaS (über proj ), damit alle Berichte über mehrere Projekte zusammen verwaltet werden können.
Wenn der Konfigurationsparameter mit dem Befehlszeileneingangsparameter in Konflikt steht, wird letzteres entnommen.
Wenn im Set -Pfad keine Konfigurationsdatei vorhanden ist, wird dort eine in Standardeinstellungen generiert.
Wenn kein Pfad der Konfigurationsdatei festgelegt ist, werden die folgenden überprüft:
config.json unter dem Arbeitsverzeichnisopensca_config.json unter dem Benutzerverzeichnisconfig.json im opensca-cli Verzeichnis Ab V3.0.0 wurde url in die Konfigurationsdatei eingesetzt. Der Standardsatz geht in unsere Cloud -Schwachstellendatenbank. Andere Online -Datenbank gemäß unserer Datenbankstruktur kann ebenfalls über die Konfigurationsdatei eingestellt werden.
Die Verwendung früherer Versionen zum Verbinden der Cloud -Datenbank erfordert weiterhin die Einstellung von url , die sowohl über CMD- als auch über die Konfigurationsdatei erfolgen kann. Beispiel: -url https://opensca.xmirror.cn
Dateien, die durch den out -Parameter unterstützt werden, sind unten aufgeführt:
| TYP | FORMAT | Angegebenes Suffix | VERSION |
|---|---|---|---|
| BERICHT | json | .json | * |
xml | .xml | * | |
html | .html | v1.0.6 und höher | |
sqlite | .sqlite | v1.0.13 und höher | |
csv | .csv | v1.0.13 und höher | |
sarif | .sarif | ||
| SBOM | spdx | .spdx .spdx.json .spdx.xml | v1.0.8 und höher |
cdx | .cdx.json .cdx.xml | v1.0.11 und höher | |
swid | .swid.json .swid.xml | v1.0.11 und höher | |
dsdx | .dsdx .dsdx.json .dsdx.xml | v3.0.0 und höher |
# 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} Sie können auch die Konfigurationsdatei für erweiterte Einstellungen verwenden. Speichern Sie config.json im montierten Verzeichnis von src oder setzen Sie andere Pfade im Container über -config . Die Schreibmethode für die Montage des aktuellen Verzeichnisses in verschiedenen Terminals variiert. Wir listen hier zu den gemeinsamen FYI auf:
| Terminal | PWD |
|---|---|
bash | $(pwd) |
zsh | ${PWD} |
cmd | %cd% |
powershell | (Get-Location).Path |
Weitere Informationen finden Sie auf der Docker Hub -Seite
[
{
"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
}
]| FELD | Beschreibung | Erforderlich oder nicht |
|---|---|---|
vendor | der Hersteller der Komponente | N |
product | der Name der Komponente | Y |
version | Die von der Verwundbarkeit betroffenen Versionen der Komponente | Y |
language | die Programmiersprache der Komponente | Y |
name | der Name der Verwundbarkeit | N |
id | benutzerdefinierte Kennung | Y |
cve_id | CVE -Kennung | N |
cnnvd_id | CNNVD -ID | N |
cnvd_id | CNVD -Kennung | N |
cwe_id | CWE -Kennung | N |
description | die Beschreibung der Verwundbarkeit | N |
description_en | Die Beschreibung der Verwundbarkeit in Englisch | N |
suggestion | Der Vorschlag zur Behebung der Verwundbarkeit | N |
attack_type | die Art des Angriffs | N |
release_date | das Veröffentlichungsdatum der Verwundbarkeit | N |
security_level_id | das Sicherheitsniveau der Sicherheitsanfälligkeit (ab 1 auf 4) | N |
exploit_level_id | Die Ausbeutung der Verwundbarkeit (0-N/A 1-verfügbare) | N |
*Es gibt mehrere voreingestellte Werte im Bereich "Sprache", darunter Java, JavaScript, Golang, Rost, PHP, Ruby und Python. Andere Sprachen sind nicht auf den voreingestellten Wert beschränkt.
{
"origin" :{
"json" : " db.json " ,
"mysql" :{
"dsn" : " user:password@tcp(ip:port)/dbname " ,
"table" : " table_name "
},
"sqlite" :{
"dsn" : " sqlite.db " ,
"table" : " table_name "
}
}
}Nr. OpenSCA kann nach der Dekompression durch den Befehl in CLI/CRT direkt ausgeführt werden.
OpenSCA ermöglicht die Konfiguration der lokalen Schwachbarkeitsdatenbank. Es muss nach dem Format der Verwundbarkeitsdatenbankdatei sortiert werden.
In der Zwischenzeit bietet OpenSCA auch eine Cloud -Sicherheitsdatenbank, die offizielle Datenbanken wie CVE/CWE/NVD/CNVD/CNNVD abdeckt.
Es hängt von der Größe des Pakets, der Netzwerkbedingung und der Sprache ab.
Ab V1.0.11 fügen wir Aliyun Mirror -Datenbank als Sicherung zum offiziellen Maven -Repository hinzu, um die durch Netzwerkverbindung verursachte Verzögerung zu lösen.
Für v1.0.10 und unten können Benutzer von Versionen zwischen V1.0.6 und v1.0.10 das Problem beheben, indem für das Problem der maven -Feld in config.json wie unten festgelegt wird:
{
"maven" : [
{
"repo" : " https://maven.aliyun.com/repository/public " ,
"user" : " " ,
"password" : " "
}
]
} Speichern Sie nach der Einstellung config.json in demselben Ordner von OpenSCA-cli.exe und führen Sie den Befehl aus. Z.B:
opensca-cli -token {token} -path {path} -out output.html -config config.jsonBenutzer von v1.0.5 und unten müssen möglicherweise den Quellcode ändern. Wir empfehlen ein Upgrade auf höhere Versionen.
Weitere FAQs finden Sie unter FAQs.
Probleme sind herzlich willkommen.
WeChat für weitere Beratungen hinzufügen ist auch eine Option:

Unsere QQ -Gruppe: 832039395
Mailbox: [email protected]
OpenSCA ist ein Open -Source -Projekt, wir schätzen Ihren Beitrag!
Um einen Beitrag zu leisten, lesen Sie bitte unsere beitragende Richtlinie.