Respuesta rápida (actualizada el 31-10-2026): npmsecure es un escáner open source (MIT) para proyectos npm que se instala con
pip install npmsecurey trae 10 comandos:scan,harden,locks,malware,install,gitcheck,threat-feed,agents,policy-checkydoctor. Detecta malware y patrones sospechosos en node_modules, bloquea typosquatting y paquetes sospechosos antes de instalar, expone secretos en el historial de git y archivos .env, endurece los valores por defecto inseguros de npm, audita las configuraciones MCP de Claude Code, Cursor y Windsurf, y entrega SARIF para GitHub y GitLab, JSON para el pipeline y códigos de salida 0/1/2 para que el build se caiga cuando corresponde. Es gratis, de código abierto y en Python 3.10 o superior.
El problema: instalar un paquete es darle ejecución a un desconocido
Cuando alguien escribe npm install una-dependencia, no está copiando un archivo: está dando permiso para ejecutar código de terceros en una máquina con acceso a tu repositorio, tus variables de entorno y tus credenciales de despliegue.
Y por default, npm ejecuta los scripts de instalación. El flujo normal de un equipo es: alguien copia un comando de un tutorial, el paquete se instala, sus scripts corren, y nadie mira qué hizo. En una empresa chica, ese nadie es la misma persona que atiende a los clientes.
Lo que queda abierto:
- Paquetes maliciosos en node_modules: un paquete legítimo puede ser reemplazado o una dependencia transitiva puede arrastrar algo que no debería estar ahí.
- Typosquatting:
lodahs,reacttycrossenvy similares se instalan por error de tipeo, sin ningún aviso. - Secretos filtrados: un
.envcommiteado por accidente o una llave escrita a mano en el historial de git, donde sigue disponible aunque borres el archivo. - Valores por defecto inseguros:
ignore-scripts,audit-levelysave-exactvienen con configuraciones que no son las que quieres en producción. - Permisos excesivos en los agentes de IA: las configuraciones MCP de Claude Code, Cursor o Windsurf pueden dar a un agente más permisos de los que debería.
Nada de esto necesita un atacante sofisticado. Necesita un npm install de más.
Qué revisa npmsecure
1. Cadena de suministro: detección de malware
Escanea node_modules de forma recursiva e identifica paquetes maliciosos y patrones sospechosos. Con --quarantine aísla en vez de borrar: el paquete queda marcado y no se elimina a ciegas.
2. Endurecimiento: configuración segura
Corrige los valores por defecto inseguros de npm. Con --dry-run ves qué haría antes de hacerlo, que es la diferencia entre un control que se adopta y uno que se desactiva.
3. Pre-instalación: bloqueo preventivo
Intercepta la instalación antes de que npm ejecute nada: verifica la edad del paquete, typosquatting y los metadatos del repositorio. El paquete sospechoso no llega a ejecutarse.
4. Secretos: revisión del historial git
Expone credenciales en el historial, archivos .env filtrados y llaves escritas a mano, antes de que lleguen a producción. Borrar el archivo no borra el commit: el secreto sigue en el historial.
5. Agentes de IA: auditoría de configuraciones MCP
Revisa las configuraciones de Claude Code, Cursor y Windsurf, y detecta permisos excesivos que exponen datos sensibles. Este punto importa más cada año: tu agente de IA ya tiene herramientas conectadas a tu repositorio, y los permisos que tiene son parte de tu superficie de ataque.
6. Avisos: vulnerabilidades al día
Usa GitHub Advisory Database y OSV, filtrados por la ventana de horas que definas con --hours. Define una ventana y recibes lo nuevo de esa ventana, no el historial completo.
Los diez comandos
La herramienta expone diez comandos, que cubren el ciclo completo desde antes de instalar hasta el pipeline:
npmsecure scan [ruta]— audita proyectos npm de forma recursiva.npmsecure harden [--dry-run]— corrige los valores por defecto inseguros de npm.npmsecure locks [ruta]— valida la salud del package-lock.json.npmsecure malware [--quarantine]— detecta amenazas de cadena de suministro.npmsecure install <paquete>— verifica la seguridad antes de instalar.npmsecure gitcheck [--history]— expone secretos en git y archivos .env.npmsecure threat-feed [--hours]— avisos de vulnerabilidades recientes.npmsecure agents— audita las configuraciones MCP de agentes de IA.npmsecure policy-check [--init]— aplica políticas en tu pipeline de CI/CD.npmsecure doctor [--deep]— evaluación completa del proyecto.
Qué se ve en la práctica
La evaluación completa del proyecto (doctor --deep) devuelve un puntaje, la lista de comprobaciones y el comando a ejecutar. Un ejemplo de salida:
npmsecure doctor --deep
Evaluando el proyecto…
✓ scan · sin malware
✗ harden · ignore-scripts: false
✓ locks · package-lock.json válido
✗ gitcheck · 2 secretos en el historial
✓ agents · configuración MCP correcta
Puntaje: 72/100 · 2 problemas
Ejecuta: npmsecure harden
Esa salida es la parte importante. No es un score bonito: es una lista de checks con estado, y al final el comando exacto que corrige lo que falló. Un equipo de desarrollo puede actuar con eso sin ser experto en seguridad de dependencias.
Cómo entra en tu pipeline
Aquí está la diferencia entre una herramienta que se usa y una que se ignora:
- SARIF para GitHub y GitLab: los hallazgos se muestran donde tu equipo ya trabaja, en el review de código.
- JSON para tu pipeline: para los pasos propios de integración continua.
- Códigos de salida 0/1/2: el build se cae cuando corresponde. Un control que solo informa es un control que nadie mira.
- policy-check: aplica políticas en el pipeline de CI/CD, con
--initpara partir desde cero.
El resultado es que la revisión de seguridad deja de depender de que alguien se acuerde de hacerla.
Instalación y licencia
pip install npmsecure
Gratis, MIT, para siempre. Código abierto y escrito en Python 3.10 o superior.
Que sea open source importa por una razón práctica: en una empresa con requisitos de auditoría, la pregunta sobre quién revisó este código tiene respuesta, porque cualquiera puede leerlo.
Lo que npmsecure no hace
- No es un análisis de toda tu infraestructura. Revisa proyectos npm. Para el resto de tus sistemas, revisa los servicios de seguridad de Personnn.
- No reemplaza la revisión humana. Una herramienta que automatiza lo repetible libera tiempo del equipo, no criterio.
- No cubre otros lenguajes. Es para npm. Si tu backend está en Python, Go o Java, necesitas otra herramienta.
- No es un WAF ni un antivirus. Trabaja en el código y en el pipeline, no en el tráfico de red.
- No repara lo que no puede ver. Si el secreto ya se filtró, hay que rotarlo: el escáner lo encuentra, pero cambiar la credencial es un paso aparte.
Dónde encaja con lo demás
Es un buen mapa para no contratar lo que no corresponde:
- npmsecure es el control que corre en tu pipeline, antes de que el código llegue a producción.
- CisoTeam revisa tus proyectos y te deja el hallazgo con su prueba, listo para que tu agente lo arregle.
- War Room es para cuando ya estás bajo ataque: mandan guardias de IA a tu servidor para contenerlo y dejar la evidencia.
- Los servicios de seguridad revisan qué hacen tus agentes de IA con los datos de la empresa, con diagnóstico en vivo.
Fuentes
- npmsecure, landing del proyecto (personnn.com/npmsecure, leída el 31-10-2026): escáner de seguridad, endurecedor y detector de malware para proyectos npm; código abierto bajo licencia MIT, Python 3.10 o superior; instalación con
pip install npmsecure; diez comandos (scan, harden, locks, malware, install, gitcheck, threat-feed, agents, policy-check, doctor) y 58 pruebas; salida SARIF para GitHub y GitLab, JSON para el pipeline y códigos de salida 0/1/2; detección recursiva de malware en node_modules con--quarantinepara aislar en vez de borrar; endurecimiento de valores por defecto inseguros de npm con--dry-run; bloqueo preventivo antes de instalar, verificando edad del paquete, typosquatting y metadatos del repositorio; revisión de secretos en el historial de git y archivos .env; auditoría de configuraciones MCP de Claude Code, Cursor y Windsurf con detección de permisos excesivos; avisos desde GitHub Advisory Database y OSV filtrados por ventana de horas; ejemplo de salida dedoctor --deepcon puntaje 72/100 y 2 problemas; licencia MIT y precio gratuito; enlace al repositorio en GitHub. - Personnn, llms.txt (personnn.com/llms.txt, leído el 31-10-2026): los permisos viven fuera del modelo, el motor de protección reemplaza datos personales y secretos antes de que una solicitud salga de la máquina y es el mismo en PersonnnOS y Personnn Inference.
- Personnn CisoTeam (personnn.com/cisoteam, leída el 31-10-2026): cada hallazgo llega con su severidad, la prueba de que existe y qué hacer; lo que no está probado queda como sospecha y no como alarma; cada hallazgo trae un texto para pegar en Claude Code, Codex u OpenCode con la regla para agregar un test que falle sin la corrección; lo que se corre detecta sin explotar el sitio.
Próximo paso
- Crea tu cuenta en Personnn y prueba el escáner en tu proyecto.
- Habla con el equipo: revisamos tu pipeline y dónde conviene cortar el build.
- Conoce npmsecure: escáner, endurecedor y detector de malware para proyectos npm, gratis y con licencia MIT. Si necesitas una revisión más amplia de tus sistemas, revisa servicios. Si necesitas que tu equipo de seguridad ataque simulado, revisa Personnn CisoTeam. Si ya estás bajo ataque, revisa Personnn War Room. Si necesitas que la IA de tu agente no salga de tus máquinas ni mande datos a terceros, revisa Personnn Inference. Si necesitas correo para tu agente con traza, revisa Personnn Mail.