
Inglês | 中文
O OpenSca destina-se a dependências, vulnerabilidades e licenças de terceiros.
Nosso site: https://opensca.xmirror.cn
Clique em Star para deixar o incentivo.
O OpenSca agora é capaz de analisar arquivos de configuração nas linguagens de programação listadas e gerentes de pacotes de correspondentes. A equipe agora se dedica a introduzir mais idiomas e enriquecer a análise de arquivos de configuração relevantes gradualmente.
| LINGUAGEM | Gerente de pacotes | ARQUIVO |
|---|---|---|
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 (Para os dois últimos, são necessários ambientes de pipenv e conexão à Internet) |
Faça o download do arquivo executável apropriado de acordo com a arquitetura do sistema de lançamentos.
Ou faça o download do código -fonte e da compilação ( go 1.18 e acima é necessário)
// 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 buildA opção padrão é gerar o programa da arquitetura do sistema atual. Se você quiser experimentá -lo para outras arquiteturas do sistema, poderá definir as seguintes variáveis de ambiente antes de compilar.
CGO_ENABLED CGO_ENABLED=0GOOS=${OS} \ darwin,liunx,windowsGOARCH=${arch} \ amd64,arm64 | PARÂMETRO | TIPO | Descrição | AMOSTRA |
|---|---|---|---|
config | string | Defina o caminho do arquivo de configuração | -config config.json |
path | string | Defina o caminho do arquivo de destino ou diretório | -path ./foo |
out | string | Salve o resultado no arquivo especificado cujo formato é definido pelo sufixo | -out out.json, out.html |
log | string | Especifique o caminho do arquivo de log | -log my_log.txt |
token | string | Verificação de serviço em nuvem de nosso site oficial | -token xxx |
proj | string | SaaS token to Sync Relatório com o OpenSca SaaS | -proj xxx |
Na v3.0.0, além desses parâmetros disponíveis para CMD/CRT, também existem outros para diferentes requisitos que precisam ser definidos no arquivo de configuração.
Introdução completa sobre cada parâmetros pode ser encontrada em config.json
v3.0.2 e acima permite que o OpenSca-cli relatam SNYC com o OpenSca SaaS (via proj ), para que todos os relatórios de vários projetos possam ser gerenciados juntos.
Se o parâmetro de configuração entrar em contato com o parâmetro de entrada da linha de comando, o último será levado.
Quando não houver arquivo de configuração no caminho definido, um nas configurações padrão será gerado lá.
Se nenhum caminho do arquivo de configuração estiver definido, os seguintes serão verificados:
config.json sob o diretório de trabalhoopensca_config.json sob o diretório do usuárioconfig.json sob o diretório opensca-cli Na v3.0.0, url foi colocada no arquivo de configuração. O conjunto padrão vai para o nosso banco de dados de vulnerabilidades em nuvem. Outro banco de dados on -line de acordo com nossa estrutura de banco de dados também pode ser definido através do arquivo de configuração.
O uso de versões anteriores para conectar o banco de dados em nuvem ainda precisará da configuração do url , o que pode ser feito através do arquivo de configuração CMD e de configuração. Exemplo: -url https://opensca.xmirror.cn
Os arquivos suportados pelo parâmetro out estão listados abaixo:
| TIPO | FORMATAR | Sufixo especificado | VERSÃO |
|---|---|---|---|
| RELATÓRIO | json | .json | * |
xml | .xml | * | |
html | .html | v1.0.6 e acima | |
sqlite | .sqlite | v1.0.13 e acima | |
csv | .csv | v1.0.13 e acima | |
sarif | .sarif | ||
| Sbom | spdx | .spdx .spdx.json .spdx.xml | v1.0.8 e acima |
cdx | .cdx.json .cdx.xml | v1.0.11 e acima | |
swid | .swid.json .swid.xml | v1.0.11 e acima | |
dsdx | .dsdx .dsdx.json .dsdx.xml | v3.0.0 e acima |
# 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} Você também pode usar o arquivo de configuração para configurações avançadas. Salvar config.json no diretório montado da src ou defina outros caminhos dentro do contêiner através de -config . O método de escrita para montar o diretório atual em diferentes terminais varia, listamos os comuns aqui FYI:
| terminal | PWD |
|---|---|
bash | $(pwd) |
zsh | ${PWD} |
cmd | %cd% |
powershell | (Get-Location).Path |
Para mais informações, visite a página do Hub Docker
[
{
"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
}
]| CAMPO | Descrição | Necessário ou não |
|---|---|---|
vendor | o fabricante do componente | N |
product | o nome do componente | Y |
version | as versões do componente afetado pela vulnerabilidade | Y |
language | a linguagem de programação do componente | Y |
name | o nome da vulnerabilidade | N |
id | Identificador personalizado | Y |
cve_id | identificador cve | N |
cnnvd_id | Identificador CNNVD | N |
cnvd_id | Identificador CNVD | N |
cwe_id | Identificador CWE | N |
description | a descrição da vulnerabilidade | N |
description_en | A descrição da vulnerabilidade em inglês | N |
suggestion | a sugestão para consertar a vulnerabilidade | N |
attack_type | o tipo de ataque | N |
release_date | a data de lançamento da vulnerabilidade | N |
security_level_id | O nível de segurança da vulnerabilidade (diminuindo de 1 a 4) | N |
exploit_level_id | O nível de exploração da vulnerabilidade (0-n/a 1-disponível) | N |
*Existem vários valores predefinidos no campo "Linguagem", incluindo Java, JavaScript, Golang, Rust, PHP, Ruby e Python. Outros idiomas não se limitam ao valor predefinido.
{
"origin" :{
"json" : " db.json " ,
"mysql" :{
"dsn" : " user:password@tcp(ip:port)/dbname " ,
"table" : " table_name "
},
"sqlite" :{
"dsn" : " sqlite.db " ,
"table" : " table_name "
}
}
}Não. O OpenSca pode ser executado diretamente pelo comando na CLI/CRT após a descompressão.
O OpenSca permite a configuração do banco de dados de vulnerabilidade local. Ele deve ser classificado de acordo com o formato do arquivo de banco de dados de vulnerabilidades .
Enquanto isso, o OpenSca também oferece um banco de dados de vulnerabilidades em nuvem que abrange bancos de dados oficiais, incluindo CVE/CWE/NVD/CNVD/CNNVD.
Depende do tamanho do pacote, da condição de rede e do idioma.
Na v1.0.11, adicionamos o banco de dados Aliyun Mirror como o backup ao repositório oficial do MAVEN para resolver o atraso causado pela conexão de rede.
Para v1.0.10 e abaixo, se o tempo for anormalmente longo e as informações de erro sobre a falha de conexão com o repositório maven são relatadas no arquivo de log, os usuários de versões entre v1.0.6 e v1.0.10 podem corrigir o problema definindo o campo maven em config.json como abaixo:
{
"maven" : [
{
"repo" : " https://maven.aliyun.com/repository/public " ,
"user" : " " ,
"password" : " "
}
]
} Após a configuração, salve config.json para a mesma pasta de OpenSca-cli.exe e execute o comando. Por exemplo:
opensca-cli -token {token} -path {path} -out output.html -config config.jsonOs usuários da v1.0.5 e abaixo podem ter que modificar o código -fonte. Recomendamos uma atualização para versões mais altas.
Para mais perguntas frequentes, verifique as perguntas frequentes.
Os problemas são calorosamente bem -vindos.
Adicionar o WeChat para mais consultas também é uma opção:

Nosso Grupo QQ: 832039395
Caixa de correio: [email protected]
OpenSca é um projeto de código aberto, agradecemos sua contribuição!
Para contribuir, leia nossa diretriz contribuinte.