
영어 | 中文
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=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 xxx |
proj | string | SaaS Project token OpenSca SaaS와 함께 보고서를 동기화합니다 | -proj xxx |
v3.0.0에서 CMD/CRT에서 사용할 수있는 이러한 매개 변수와는 별도로 구성 파일에 설정 해야하는 다른 요구 사항에 대한 다른 요구 사항도 있습니다.
각 매개 변수에 대한 전체 소개는 config.json 에서 찾을 수 있습니다.
v3.0.2 이상을 사용하면 OpenSca-CLI가 OpenSca SaaS ( proj )를 사용하여 SNYC 보고서를 통해 여러 프로젝트의 모든 보고서를 함께 관리 할 수 있습니다.
구성 매개 변수가 명령 줄 입력 매개 변수와 충돌하면 후자가 취해집니다.
설정 경로에 구성 파일이 없으면 기본 설정에서 하나가 생성됩니다.
구성 파일의 경로가 설정되지 않으면 다음 경로를 확인합니다.
config.jsonopensca_config.jsonopensca-cli 디렉토리의 config.json v3.0.0에서 url 구성 파일에 넣었습니다. 기본 세트는 클라우드 취약성 데이터베이스로 이동합니다. 데이터베이스 구조에 따른 다른 온라인 데이터베이스는 구성 파일을 통해 설정할 수도 있습니다.
이전 버전을 사용하여 클라우드 Databse를 연결하려면 여전히 CMD 및 구성 파일을 통해 수행 할 수있는 url 설정이 필요합니다. 예 : -url https://opensca.xmirror.cn
out Parameter에서 지원하는 파일은 아래에 나열되어 있습니다.
| 유형 | 체재 | 지정된 접미사 | 버전 |
|---|---|---|---|
| 보고서 | 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 통해 컨테이너 내의 다른 경로를 설정하십시오. 다른 터미널에 현재 디렉토리를 장착하는 쓰기 방법은 다양합니다. 여기에 공통된 것들을 나열합니다.
| 단말기 | 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 | 구성 요소의 이름 | 와이 |
version | 취약점의 영향을받는 구성 요소의 버전 | 와이 |
language | 구성 요소의 프로그래밍 언어 | 와이 |
name | 취약점의 이름 | N |
id | 사용자 정의 식별자 | 와이 |
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 "
}
}
}아니요. OpenSCA는 감압 후 CLI/CRT의 명령에 의해 직접 실행될 수 있습니다.
OpenSca를 사용하면 로컬 취약성 데이터베이스를 구성 할 수 있습니다. 취약성 데이터베이스 파일의 형식 에 따라 정렬해야합니다.
한편, OpenSCA는 CVE/CWE/NVD/CNVD/CNNVD를 포함한 공식 데이터베이스를 다루는 클라우드 취약성 데이터베이스를 제공합니다.
패키지의 크기, 네트워크 조건 및 언어에 따라 다릅니다.
v1.0.11에서 우리는 Aliyun Mirror 데이터베이스를 공식 Maven 저장소에 백업으로 추가하여 네트워크 연결로 인한 지연을 해결합니다.
v1.0.10 이하의 경우, 시간이 비정상적으로 길고 오류가 발생하면 Maven 저장소에 대한 연결 실패에 대한 정보는 로그 파일에서보고 된 경우, V1.0.6과 v1.0.10 사이의 버전 사용자는 다음과 같이 maven 필드 config.json 설정하여 문제를 해결할 수 있습니다.
{
"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 이하의 사용자는 소스 코드를 수정해야 할 수도 있습니다. 더 높은 버전으로 업그레이드하는 것이 좋습니다.
더 많은 다른 FAQ에 대해서는 FAQ를 확인하십시오.
문제는 따뜻하게 환영합니다.
추가 컨설팅을 위해 wechat 추가 옵션입니다.

QQ 그룹 : 832039395
사서함 : [email protected]
Opensca는 오픈 소스 프로젝트입니다. 귀하의 기여에 감사드립니다!
기여하려면 기고 가이드 라인을 읽으십시오.