Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
NodeSecurityShield — Un paquete amigable para desarrolladores e ingenieros de seguridad para asegurar aplicaciones NodeJS. | Kitploit
Herramientas/GitHubGitHub/domdogsec/nodesecurityshield
Herramientas DefensivasAnálisis de Vulnerabilidades
GitHubdomdogsec/nodesecurityshield

NodeSecurityShield

Un paquete amigable para desarrolladores e ingenieros de seguridad para asegurar aplicaciones NodeJS.

Ver Repositorio
29714hace 3 añosRevisado por Kitploit

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

Node Security Shield

Node Security Shield (NSS) es una herramienta de protección de aplicaciones en tiempo de ejecución (RASP) de código abierto que busca cerrar la brecha en la seguridad integral de NodeJS, permitiendo que los desarrolladores e ingenieros de seguridad declaren qué recursos puede acceder una aplicación.

Inspirados por la vulnerabilidad Log4Shell (CVE-2021-44228), que puede ser explotada porque una aplicación puede realizar llamadas de red arbitrarias, sentimos la necesidad de que una aplicación tenga un mecanismo para declarar qué privilegios permite, con el fin de dificultar la explotación de dichas vulnerabilidades mediante la implementación de controles adicionales.

Para lograr esto, NSS (Node Security Shield) cuenta con una Política de Acceso a Recursos (RAP)

Política de Acceso a Recursos (RAP)

La Política de Acceso a Recursos es similar a la CSP (Content Security Policy).

Permite al desarrollador/ingeniero de seguridad declarar qué recursos debe acceder una aplicación. Y Node Security Shield la hará cumplir.

Instalación

Instalar NodeSecurityShield usando npm

npm install nodesecurityshield

Uso

// Require Node Security Shield
let nodeSecurityShield = require('nodesecurityshield');

// Habilitar monitoreo y/o bloqueo de ataques
nodeSecurityShield.enableAttackMonitoring("Unique-App-Id", resourceAccessPolicy, callbackFunction);

Ejemplo resourceAccessPolicy [BASIC]

const resourceAccessPolicy  = {
  "outBoundRequest" : {

      "blockedDomains" : ["compromised.domdog.io"],
    
      "allowedDomains" : []
   },
	"executedCommand": {

        "allowedCommands": ["pwd" , "(node)[](https://github.com/domdogsec/nodesecurityshield/blob/main/helper%5C)[a-z|0-9]*(.js)"]
   }
};
  • outBoundRequest: define el comportamiento aceptado para las Solicitudes Salientes
    • Nota: blockedDomains tiene prioridad sobre allowedDomains.
    • es decir, las solicitudes se verifican primero contra blockedDomains y luego contra allowedDomains.
  • executedCommand: define el comportamiento aceptado para la Ejecución de Comandos
    • El arreglo allowedCommands acepta String. Puede pasar una expresión regular (RegEx) para permitir un patrón de comandos.
    • El comportamiento predeterminado es bloquear todas las ejecuciones de comandos, siempre que la RAP tenga definida la propiedad executedCommand.
    • Cuando se usa la RAP anterior,
      • se permite ejecutar el comando pwd y
      • se permite ejecutar archivos .js dentro de helper como procesos de Node.
    • Nota: Evite el uso de .* en la expresión regular, ya que esto permitiría la ejecución de cualquier comando después de un pipe |.

Ejemplo callbackFunction para registrar violaciones de RAP en la consola

var callbackFunction = function (violationEvent, violations, violationLimitPerMinReached) {
  console.log(JSON.stringify(violationEvent, null, 4));
}
  • violationEvent - Violación de la RAP que ocurrió. Se presenta como una violación de CSP.

  • violations - Contador de violaciones de la RAP. Se reinicia a CERO cada minuto.

  • violationLimitPerMinReached - verdadero si el contador de violaciones excede 'maxViolationsPerMinute' [una opción en la RAP]

  • Para Bloquear un Ataque - lanzar un error

    throw new Error("Solicitud bloqueada. Viola la Política de Acceso a Recursos declarada.")
    

Ejemplo violationEvent

{
    "csp-report": {
        "document-uri": "https://Unique-App-Id",
        "blocked-uri": "https://compromised.domdog.io:443",
        "violated-directive": "connect-src",
        "effective-directive": "connect-src",
        "original-policy": "{\"outBoundRequest\":{\"blockedDomains\":[\"compromised.domdog.io\"],\"allowedDomains\":[]}}",
        "disposition": "report",
        "status-code": 200,
        "script-sample": "",
        "source-file": "Error\n    at TLSSocket.obj.<computed> [as connect] (/mnt/c/Ironwasp/Product/NodeSecurityShield/lib/hook.js:20:25)\n    at Object.connect (_tls_wrap.js:1606:13)\n    at Agent.createConnection (https.js:126:22)\n    at Agent.createSocket (_http_agent.js:273:26)\n    at Agent.addRequest (_http_agent.js:232:10)\n    at new ClientRequest (_http_client.js:302:16)\n    at request (https.js:310:10)\n    at Object.get (https.js:314:15)\n    at /mnt/c/Ironwasp/RD/Node/SimpleVulnerableNode/routes/ssrf.js:19:19\n    at Layer.handle [as handle_request] (/mnt/c/Ironwasp/RD/Node/SimpleVulnerableNode/node_modules/express/lib/router/layer.js:95:5)"
    }
}
  • document-uri: contiene el Unique-App-Id, pasado durante la inicialización de NSS
  • blocked-uri: dominio de la solicitud saliente que violó la RAP
  • violated-directive: connect-src es un sinónimo de Solicitud Saliente, del mismo modo script-src es un sinónimo de Ejecución de Comandos
  • original-policy: Política de Acceso a Recursos (RAP) violada
  • source-file: Traza de pila (stack trace) del lugar donde ocurrió esta violación.

Integración con Sentry

Ejemplo resourceAccessPolicy para integrar con Sentry

const resourceAccessPolicy  = {
  "outBoundRequest" : {

      "blockedDomains" : ["compromised.domdog.io"],
    
      "allowedDomains" : []
    },
	"executedCommand": {

        "allowedCommands": ["pwd" , "(node)[](https://github.com/domdogsec/nodesecurityshield/blob/main/helper%5C)[a-z|0-9]*(.js)"]
   },
	"reportUri": "https://ingest.sentry.io/api/6011856/security/?sentry_key=",

};
  • outBoundRequest: define el comportamiento aceptado para las Solicitudes Salientes
    • Nota: blockedDomains tiene prioridad sobre allowedDomains.
    • es decir, las solicitudes se verifican primero contra blockedDomains y luego contra allowedDomains.
  • executedCommand: define el comportamiento aceptado para la Ejecución de Comandos
    • El arreglo allowedCommands acepta String. Puede pasar una expresión regular (RegEx) para permitir un patrón de comandos.
    • El comportamiento predeterminado es bloquear todas las ejecuciones de comandos, siempre que la RAP tenga definida la propiedad executedCommand.
    • Cuando se usa la RAP anterior,
      • se permite ejecutar el comando pwd y
      • se permite ejecutar archivos .js dentro de helper como procesos de Node.
    • Nota: Evite el uso de .* en la expresión regular, ya que esto permitiría la ejecución de cualquier comando después de un pipe |.
  • reportUri : Envía las violaciones a un endpoint dado. Como las violaciones son similares a las violaciones de la Política de Seguridad de Contenido (CSP), se puede usar cualquier solución de monitoreo de CSP. En la RAP anterior usamos el endpoint de Sentry.

Captura de pantalla del panel de Sentry sentry issues sentry issues

Ejemplo resourceAccessPolicy [Avanzado]

Descargar herramienta