codesentry 0.1.10 → 0.2.1
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 +58 -3
- package/dist/index.js +932 -208
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Semgrep CE para as linguagens suportadas por ele.
|
|
|
16
16
|
|
|
17
17
|
## O que o CodeSentry faz
|
|
18
18
|
|
|
19
|
-
Rodando `codesentry scan` num projeto,
|
|
19
|
+
Rodando `codesentry scan` num projeto, três motores de análise trabalham
|
|
20
20
|
juntos e o resultado sai unificado em um único relatório:
|
|
21
21
|
|
|
22
22
|
- **Motor nativo** — regras próprias em TypeScript, sem dependências
|
|
@@ -29,6 +29,12 @@ 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)) —
|
|
33
|
+
identifica vulnerabilidades conhecidas nas dependências reais do
|
|
34
|
+
projeto (via `package-lock.json`), com a sugestão de correção vindo
|
|
35
|
+
diretamente do banco consultado. Roda por padrão a partir desta versão
|
|
36
|
+
e exige rede; use `--no-deps` para um scan 100% offline. Ver
|
|
37
|
+
[ADR 0005](docs/adr/0005-osv-dependency-database.md).
|
|
32
38
|
|
|
33
39
|
Cada achado no relatório mostra o arquivo, a linha, a severidade e qual
|
|
34
40
|
motor encontrou o problema (prefixo `semgrep/` para achados do Semgrep).
|
|
@@ -140,6 +146,8 @@ codesentry scan ./src
|
|
|
140
146
|
codesentry scan . --json
|
|
141
147
|
codesentry scan . --concurrency 4
|
|
142
148
|
codesentry scan . --config ./rules/security.yml
|
|
149
|
+
codesentry scan . --tests
|
|
150
|
+
codesentry scan . --no-deps
|
|
143
151
|
```
|
|
144
152
|
|
|
145
153
|
O Semgrep CE embutido é executado automaticamente depois das regras nativas,
|
|
@@ -147,12 +155,55 @@ usando um snapshot local do ruleset OWASP e `--metrics=off`. O comando não
|
|
|
147
155
|
consulta a Semgrep Registry, não envia métricas e não requer internet após a
|
|
148
156
|
instalação.
|
|
149
157
|
|
|
158
|
+
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 `PATH`
|
|
160
|
+
e acesso à rede. Use `--no-deps` para pular essa etapa e manter o scan
|
|
161
|
+
100% offline (CI sem egress, ambientes air-gapped). Ver
|
|
162
|
+
[ADR 0005](docs/adr/0005-osv-dependency-database.md).
|
|
163
|
+
|
|
164
|
+
O console mostra quantos pacotes o `npm audit` cobriu e quantos deles o
|
|
165
|
+
OSV.dev conseguiu verificar de fato (`OSV.dev: 360/363 verificados`, por
|
|
166
|
+
exemplo — a diferença indica pacotes cuja consulta falhou, reportados
|
|
167
|
+
também como aviso). No relatório Markdown gerado automaticamente (mais de
|
|
168
|
+
20 problemas), a lista completa de dependências verificadas no OSV.dev
|
|
169
|
+
(`nome@versão`) aparece numa seção própria ao final do arquivo.
|
|
170
|
+
|
|
171
|
+
### Versões e atualização dos motores
|
|
172
|
+
|
|
173
|
+
Use `codesentry version --engines` para auditar exatamente os componentes
|
|
174
|
+
embutidos na sua instalação. O comando não executa o Semgrep nem acessa a
|
|
175
|
+
rede; ele mostra a versão do CodeSentry, a versão do Semgrep CE e Python do
|
|
176
|
+
runtime da plataforma, e a proveniência do snapshot `p/owasp-top-ten`
|
|
177
|
+
(origem, data de captura, revisão upstream quando disponível e SHA-256).
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
codesentry version --engines
|
|
181
|
+
codesentry version --engines --json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
O snapshot do ruleset é identificado pela versão do pacote publicada junto ao
|
|
185
|
+
CodeSentry e pelo SHA-256 do seu conteúdo. A Semgrep Registry não fornece
|
|
186
|
+
necessariamente um commit estável para um ruleset público; nesse caso, o hash
|
|
187
|
+
é o identificador imutável que permite comparar o conteúdo auditado.
|
|
188
|
+
|
|
189
|
+
**Política de atualização:** revisamos semanalmente novas versões do Semgrep
|
|
190
|
+
e alterações no `p/owasp-top-ten`; atualizações regulares são publicadas em
|
|
191
|
+
até 30 dias. Correções upstream classificadas como críticas ou que afetem a
|
|
192
|
+
integridade da análise têm prioridade para uma release em até 48 horas. Toda
|
|
193
|
+
release que atualizar um motor ou ruleset registra as versões e hashes nos
|
|
194
|
+
artefatos publicados.
|
|
195
|
+
|
|
150
196
|
`--concurrency <n>` limita o processamento paralelo do scanner nativo; use
|
|
151
197
|
apenas inteiros positivos. Sem valor, o limite é ajustado para a máquina
|
|
152
198
|
(`min(8, availableParallelism())`). Não há `--config` remoto: atualizações de
|
|
153
199
|
Semgrep e das regras OWASP chegam em novas releases do CodeSentry. Quando
|
|
154
200
|
necessário, `--config` aceita exclusivamente um arquivo YAML local.
|
|
155
201
|
|
|
202
|
+
Por padrão, arquivos de teste não são analisados: nenhum diretório chamado
|
|
203
|
+
`tests`, `test` ou `__tests__` (em qualquer profundidade) e nenhum arquivo
|
|
204
|
+
com sufixo `.spec.*`/`.test.*` (em qualquer lugar, mesmo fora dessas pastas)
|
|
205
|
+
entra no scan. Use `--tests` para incluí-los.
|
|
206
|
+
|
|
156
207
|
Em macOS, ARM e plataformas sem runtime publicado, o comando interrompe
|
|
157
208
|
explicitamente em vez de declarar uma análise parcial como completa.
|
|
158
209
|
|
|
@@ -181,7 +232,7 @@ o scan completo (e sem o Semgrep, que só roda como parte de `scan`). Todos
|
|
|
181
232
|
seguem o mesmo formato:
|
|
182
233
|
|
|
183
234
|
```bash
|
|
184
|
-
codesentry <comando> [path] [--json]
|
|
235
|
+
codesentry <comando> [path] [--json] [--tests]
|
|
185
236
|
```
|
|
186
237
|
|
|
187
238
|
Alguns exemplos:
|
|
@@ -193,9 +244,13 @@ codesentry xss ./src --json # possíveis XSS (innerHTML, document.write
|
|
|
193
244
|
codesentry unsafe-sql ./src # SQL injection por concatenação
|
|
194
245
|
codesentry command-injection ./src # child_process com entrada não sanitizada
|
|
195
246
|
codesentry weak-hash-algorithm ./src # uso de MD5/SHA-1 para hashing sensível
|
|
196
|
-
codesentry dependency-audit . # `npm audit`
|
|
247
|
+
codesentry dependency-audit . # `npm audit` + OSV.dev nas dependências do projeto (sem --tests: não lê arquivos-fonte)
|
|
197
248
|
```
|
|
198
249
|
|
|
250
|
+
Assim como em `scan`, `--tests` inclui arquivos de teste na análise (por
|
|
251
|
+
padrão são ignorados) — exceto em `dependency-audit`, que nunca lê
|
|
252
|
+
arquivos-fonte e por isso não tem essa flag.
|
|
253
|
+
|
|
199
254
|
A lista completa (30+ comandos, um por regra) sai de `codesentry help` —
|
|
200
255
|
mantê-la sempre em sincronia aqui manualmente não seria viável.
|
|
201
256
|
|