Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
NodeSecurityShield — Ein entwickler- und sicherheitsingenieurfreundliches Paket zur Sicherung von NodeJS-Anwendungen. | Kitploit
Tools/GitHubGitHub/domdogsec/nodesecurityshield
DefensivwerkzeugeSchwachstellenanalyse
GitHubdomdogsec/nodesecurityshield

NodeSecurityShield

Ein entwickler- und sicherheitsingenieurfreundliches Paket zur Sicherung von NodeJS-Anwendungen.

Repository anzeigen
29714vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Node Security Shield

Node Security Shield (NSS) ist ein quelloffenes Runtime Application Self-Protection (RASP)-Tool, das die Lücke in der umfassenden NodeJS-Sicherheit schließen soll, indem es Entwicklern und Sicherheitsingenieuren ermöglicht zu deklarieren, auf welche Ressourcen eine Anwendung zugreifen darf.

Inspiriert von der Log4Shell-Schwachstelle (CVE-2021-44228), die ausgenutzt werden kann, weil eine Anwendung beliebige Netzwerkaufrufe tätigen kann, haben wir festgestellt, dass eine Anwendung einen Mechanismus benötigt, mit dem sie erklären kann, welche Berechtigungen sie zulässt, um die Ausnutzung solcher Schwachstellen durch die Implementierung zusätzlicher Kontrollen zu erschweren.

Um dies zu erreichen, verfügt NSS (Node Security Shield) über eine Ressourcenzugriffsrichtlinie (RAP).

Ressourcenzugriffsrichtlinie (RAP)

Die Ressourcenzugriffsrichtlinie ähnelt der CSP (Content Security Policy).

Sie ermöglicht es dem Entwickler/Sicherheitsingenieur zu deklarieren, auf welche Ressourcen eine Anwendung zugreifen soll. Und Node Security Shield wird dies durchsetzen.

Installation

Installieren Sie NodeSecurityShield mit npm

npm install nodesecurityshield

Verwendung

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

// Angriffsüberwachung und/oder -blockierung aktivieren
nodeSecurityShield.enableAttackMonitoring("Unique-App-Id", resourceAccessPolicy, callbackFunction);

Beispiel resourceAccessPolicy [EINFACH]

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: definiert das akzeptierte Verhalten für ausgehende Anfragen
    • Hinweis: blockedDomains haben Vorrang vor allowedDomains.
    • d. h., Anfragen werden zuerst gegen blockedDomains und dann gegen allowedDomains geprüft.
  • executedCommand: definiert das akzeptierte Verhalten für Befehlsausführung
    • Das allowedCommands-Array akzeptiert String. Sie können einen Regex übergeben, um ein Muster von Befehlen zuzulassen.
    • Das Standardverhalten besteht darin, alle Befehlsausführungen zu blockieren, sofern die RAP die Eigenschaft executedCommand definiert hat.
    • Wenn die obige RAP verwendet wird,
      • ist der Befehl pwd zur Ausführung erlaubt und
      • dürfen .js-Dateien innerhalb von helper als Node-Prozesse gestartet werden.
    • Hinweis: Vermeiden Sie die Verwendung von .* in Regex. Da dies die Ausführung jedes Befehls nach einer Pipe | erlauben würde.

Beispiel callbackFunction zur Protokollierung von RAP-Verstößen in der Konsole

var callbackFunction = function(violationEvent, violations, violationLimitPerMinReached) {
  console.log(JSON.stringify(violationEvent, null, 4));
};
  • violationEvent – Aufgetretener RAP-Verstoß. Er wird als CSP-Verstoß dargestellt.

  • violations – Anzahl der RAP-Verstöße. Wird jede Minute auf NULL zurückgesetzt.

  • violationLimitPerMinReached – true, wenn die Anzahl der RAP-Verstöße 'maxViolationsPerMinute' [eine Option in RAP] überschreitet.

  • Um einen Angriff zu blockieren – einen Fehler auslösen

    throw new Error("Anfrage blockiert. Sie verstößt gegen die deklarierte Ressourcenzugriffsrichtlinie.")
    

Beispiel 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: enthält die Unique-App-Id, die bei der Initialisierung von NSS übergeben wurde
  • blocked-uri: Domain der ausgehenden Anfrage, die gegen RAP verstoßen hat
  • violated-directive: connect-src ist ein Synonym für ausgehende Anfrage, ebenso ist script-src ein Synonym für Befehlsausführung
  • original-policy: die verletzte Ressourcenzugriffsrichtlinie (RAP)
  • source-file: Stack-Trace des Verstoßes

Integration mit Sentry

Beispiel resourceAccessPolicy zur Integration mit 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: definiert das akzeptierte Verhalten für ausgehende Anfragen
    • Hinweis: blockedDomains haben Vorrang vor allowedDomains.
    • d. h., Anfragen werden zuerst gegen blockedDomains und dann gegen allowedDomains geprüft.
  • executedCommand: definiert das akzeptierte Verhalten für Befehlsausführung
    • Das allowedCommands-Array akzeptiert String. Sie können einen Regex übergeben, um ein Muster von Befehlen zuzulassen.
    • Das Standardverhalten besteht darin, alle Befehlsausführungen zu blockieren, sofern die RAP die Eigenschaft executedCommand definiert hat.
    • Wenn die obige RAP verwendet wird,
      • ist der Befehl pwd zur Ausführung erlaubt und
      • dürfen .js-Dateien innerhalb von helper als Node-Prozesse gestartet werden.
    • Hinweis: Vermeiden Sie die Verwendung von .* in Regex. Da dies die Ausführung jedes Befehls nach einer Pipe | erlauben würde.
  • reportUri : Sendet Verstöße an einen bestimmten Endpunkt. Da Verstöße ähnlich wie Content Security Policy-Verstöße sind, können alle CSP-Überwachungslösungen verwendet werden. Wir haben in der obigen RAP den Sentry-Endpunkt verwendet.

Screenshot aus dem Sentry-Dashboard sentry issues sentry issues

Beispiel resourceAccessPolicy [Erweitert]

const resourceAccessPolicy = {
    "outBoundRequest": {

        "blockedDomains": ["compromised.domdog.io"],

        "allowedDomains": ["domdog.io","*.domdog.io",
Tool herunterladen