codesentry 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -16
- package/dist/index.js +1135 -127
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Semgrep CE para as linguagens suportadas por ele.
|
|
|
10
10
|
|
|
11
11
|
- 🔎 **Dois motores num só comando** — regras próprias em TS/JS + Semgrep CE (OWASP Top 10) para dezenas de outras linguagens.
|
|
12
12
|
- 📦 **Uma instalação, zero fricção** — `npm install -g codesentry` e pronto: sem Python, Docker, Semgrep ou conta em lugar nenhum.
|
|
13
|
-
- 🔌 **
|
|
13
|
+
- 🔌 **Análise de código offline** — nunca consulta a Semgrep Registry nem envia métricas; a auditoria de dependências, que usa serviços públicos, pode ser desativada com `--no-deps`.
|
|
14
14
|
- 🪟🐧 **Windows e Linux nativamente** — sem WSL, sem container.
|
|
15
15
|
- 📊 **Console, JSON ou Markdown** — saída pronta tanto para ler no terminal quanto para plugar em CI.
|
|
16
16
|
|
|
@@ -29,12 +29,15 @@ juntos e o resultado sai unificado em um único relatório:
|
|
|
29
29
|
as linguagens que o Semgrep suporta (não só JS/TS), cobrindo os riscos
|
|
30
30
|
do OWASP Top 10 de forma mais ampla que regras hand-rolled sozinhas
|
|
31
31
|
conseguiriam.
|
|
32
|
-
- **Auditoria de dependências** (`npm audit` + [OSV.dev](https://osv.dev)
|
|
32
|
+
- **Auditoria de dependências** (`npm audit` + [OSV.dev](https://osv.dev) +
|
|
33
|
+
[NVD](https://nvd.nist.gov)) —
|
|
33
34
|
identifica vulnerabilidades conhecidas nas dependências reais do
|
|
34
|
-
projeto (via `package-lock.json`)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
projeto (via `package-lock.json`). O OSV identifica versões afetadas e
|
|
36
|
+
corrigidas; quando seus aliases contêm CVEs, o NVD enriquece o mesmo
|
|
37
|
+
finding com CVSS, CWE, referências e dados da CISA. Roda por padrão e
|
|
38
|
+
exige rede; use `--no-nvd` para manter npm + OSV sem enriquecimento ou
|
|
39
|
+
`--no-deps` para um scan 100% offline. Ver [ADR 0005](docs/adr/0005-osv-dependency-database.md)
|
|
40
|
+
e [ADR 0006](docs/adr/0006-nvd-enrichment.md).
|
|
38
41
|
|
|
39
42
|
Cada achado no relatório mostra o arquivo, a linha, a severidade e qual
|
|
40
43
|
motor encontrou o problema (prefixo `semgrep/` para achados do Semgrep).
|
|
@@ -147,6 +150,7 @@ codesentry scan . --json
|
|
|
147
150
|
codesentry scan . --concurrency 4
|
|
148
151
|
codesentry scan . --config ./rules/security.yml
|
|
149
152
|
codesentry scan . --tests
|
|
153
|
+
codesentry scan . --no-nvd
|
|
150
154
|
codesentry scan . --no-deps
|
|
151
155
|
```
|
|
152
156
|
|
|
@@ -156,17 +160,53 @@ consulta a Semgrep Registry, não envia métricas e não requer internet após a
|
|
|
156
160
|
instalação.
|
|
157
161
|
|
|
158
162
|
Por padrão, `scan` também roda a auditoria de dependências (`npm audit` +
|
|
159
|
-
OSV.dev) e funde os achados no mesmo relatório — isso exige `npm` no
|
|
160
|
-
e acesso à rede.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
OSV.dev + NVD) e funde os achados no mesmo relatório — isso exige `npm` no
|
|
164
|
+
`PATH` e acesso à rede. O OSV é a fonte principal: o NVD é consultado somente
|
|
165
|
+
para aliases `CVE-` retornados pelo OSV e uma falha do NVD nunca remove o
|
|
166
|
+
finding. Use `--no-nvd` para desativar apenas o enriquecimento ou `--no-deps`
|
|
167
|
+
para pular toda a auditoria e manter o scan 100% offline (CI sem egress,
|
|
168
|
+
ambientes air-gapped).
|
|
169
|
+
|
|
170
|
+
O console mostra quantos pacotes do lockfile foram considerados e quantos o
|
|
165
171
|
OSV.dev conseguiu verificar de fato (`OSV.dev: 360/363 verificados`, por
|
|
166
172
|
exemplo — a diferença indica pacotes cuja consulta falhou, reportados
|
|
167
|
-
também como aviso).
|
|
168
|
-
|
|
169
|
-
(
|
|
173
|
+
também como aviso). Quando houver CVEs, mostra ainda a cobertura NVD separando
|
|
174
|
+
registros enriquecidos, sem resultado, falhas e cache hits. No relatório
|
|
175
|
+
Markdown gerado automaticamente (mais de 20 problemas), a lista completa de
|
|
176
|
+
dependências verificadas no OSV.dev (`nome@versão`) aparece numa seção própria.
|
|
177
|
+
|
|
178
|
+
### Chave opcional do NVD
|
|
179
|
+
|
|
180
|
+
A integração funciona sem autenticação. Para maior capacidade de consulta,
|
|
181
|
+
solicite gratuitamente uma chave no formulário oficial
|
|
182
|
+
[Request an API Key](https://nvd.nist.gov/developers/request-an-api-key),
|
|
183
|
+
confirme a solicitação recebida por e-mail e configure `NVD_API_KEY` no
|
|
184
|
+
ambiente antes de executar o CodeSentry.
|
|
185
|
+
|
|
186
|
+
Linux/macOS:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
export NVD_API_KEY="sua-chave"
|
|
190
|
+
codesentry scan .
|
|
191
|
+
|
|
192
|
+
# Ou somente para uma execução:
|
|
193
|
+
NVD_API_KEY="sua-chave" codesentry dependency-audit .
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
PowerShell:
|
|
197
|
+
|
|
198
|
+
```powershell
|
|
199
|
+
$env:NVD_API_KEY = "sua-chave"
|
|
200
|
+
codesentry scan .
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
A chave é enviada apenas no header `apiKey`; não é adicionada à URL, ao cache,
|
|
204
|
+
a logs ou aos relatórios. O CodeSentry não carrega arquivos `.env`
|
|
205
|
+
automaticamente. Sem chave, as consultas são serializadas com intervalo
|
|
206
|
+
mínimo de 6,1 segundos; com chave, 610 ms. Respostas bem-sucedidas ficam em
|
|
207
|
+
cache por 24 horas e respostas sem resultado por 1 hora. O cache fica no
|
|
208
|
+
diretório de cache do usuário, nunca no projeto analisado. Timeout, rate limit
|
|
209
|
+
ou indisponibilidade do NVD aparecem como aviso e não interrompem o scan.
|
|
170
210
|
|
|
171
211
|
### Versões e atualização dos motores
|
|
172
212
|
|
|
@@ -244,7 +284,8 @@ codesentry xss ./src --json # possíveis XSS (innerHTML, document.write
|
|
|
244
284
|
codesentry unsafe-sql ./src # SQL injection por concatenação
|
|
245
285
|
codesentry command-injection ./src # child_process com entrada não sanitizada
|
|
246
286
|
codesentry weak-hash-algorithm ./src # uso de MD5/SHA-1 para hashing sensível
|
|
247
|
-
codesentry dependency-audit . #
|
|
287
|
+
codesentry dependency-audit . # npm audit + OSV.dev + NVD (sem --tests: não lê arquivos-fonte)
|
|
288
|
+
codesentry dependency-audit . --no-nvd # mantém npm + OSV e desativa só o NVD
|
|
248
289
|
```
|
|
249
290
|
|
|
250
291
|
Assim como em `scan`, `--tests` inclui arquivos de teste na análise (por
|