Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
NodeSecurityShield — डेवलपर और सुरक्षा इंजीनियर के अनुकूल पैकेज NodeJS अनुप्रयोगों को सुरक्षित करने के लिए। | Kitploit
उपकरण/GitHubGitHub/domdogsec/nodesecurityshield
रक्षात्मक उपकरणभेद्यता विश्लेषण
GitHubdomdogsec/nodesecurityshield

NodeSecurityShield

डेवलपर और सुरक्षा इंजीनियर के अनुकूल पैकेज NodeJS अनुप्रयोगों को सुरक्षित करने के लिए।

रिपॉजिटरी देखें
2973 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Node Security Shield

Node Security Shield (NSS) एक ओपन सोर्स रनटाइम एप्लिकेशन सेल्फ-प्रोटेक्शन (RASP) टूल है जिसका उद्देश्य NodeJS सुरक्षा में व्यापक अंतर को पाटना है। यह डेवलपर और सुरक्षा इंजीनियर को यह घोषित करने में सक्षम बनाता है कि कोई एप्लिकेशन किन संसाधनों तक पहुँच सकता है।

Log4Shell (CVE-2021-44228) भेद्यता से प्रेरित होकर, जिसका शोषण इसलिए किया जा सकता है क्योंकि कोई एप्लिकेशन मनमाने नेटवर्क कॉल कर सकता है, हमने महसूस किया कि किसी एप्लिकेशन के लिए एक ऐसे तंत्र की आवश्यकता है जिसके द्वारा वह घोषित कर सके कि वह किन विशेषाधिकारों की अनुमति देता है, ताकि अतिरिक्त नियंत्रण लागू करके ऐसी भेद्यताओं के शोषण को कठिन बनाया जा सके।

इसे प्राप्त करने के लिए, NSS (Node Security Shield) में Resource Access Policy (RAP) है।

Resource Access Policy (RAP)

Resource Access Policy CSP (Content Security Policy) के समान है।

यह डेवलपर/सुरक्षा इंजीनियर को यह घोषित करने देता है कि किसी एप्लिकेशन को किन संसाधनों तक पहुँचना चाहिए। और Node Security Shield इसे लागू करेगा।

इंस्टॉलेशन

NodeSecurityShield को npm का उपयोग करके इंस्टॉल करें

root@kitploit:~
npm install nodesecurityshield

उपयोग

root@kitploit:~
// Require Node Security Shield
let nodeSecurityShield = require('nodesecurityshield');

// Enable Attack Monitoring and/or Blocking
nodeSecurityShield.enableAttackMonitoring("Unique-App-Id",resourceAccessPolicy ,callbackFunction);

नमूना resourceAccessPolicy [BASIC]

root@kitploit:~
const resourceAccessPolicy  = {
  "outBoundRequest" : {

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

        "allowedCommands": ["pwd" , "(node)[](https://github.com/domdogsec/nodesecurityshield/blob/HEAD/helper%5C/)[a-z|0-9]*(.js)"]
   }
};
  • outBoundRequest: आउटबाउंड अनुरोधों के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • नोट: blockedDomains को allowedDomains पर प्राथमिकता दी जाती है।
    • अर्थात, अनुरोध पहले blockedDomains के विरुद्ध जाँचे जाते हैं, फिर allowedDomains के विरुद्ध।
  • executedCommand: कमांड निष्पादन के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • allowedCommands सरणी String स्वीकार करती है। कमांड के एक पैटर्न की अनुमति देने के लिए आप RegEx पास कर सकते हैं।
    • डिफ़ॉल्ट व्यवहार सभी कमांड निष्पादन को ब्लॉक करना है। बशर्ते, RAP में executedCommand प्रॉपर्टी परिभाषित हो।
    • जब उपरोक्त RAP का उपयोग किया जाता है,
      • pwd कमांड को निष्पादित करने की अनुमति है और
      • helper के अंदर .js फ़ाइलों को node प्रक्रियाओं के रूप में स्पॉन करने की अनुमति है।
    • नोट: regex में .* के उपयोग से बचें। क्योंकि यह पाइप के बाद किसी भी कमांड के निष्पादन की अनुमति देगा।

RAP उल्लंघनों को कंसोल में लॉग करने के लिए नमूना callbackFunction

root@kitploit:~
var callbackFunction = function (violationEvent,violations,violationLimitPerMinReached) {
  console.log(JSON.stringify(violationEvent,null, 4));
}
  • violationEvent - RAP उल्लंघन जो हुआ। इसे CSP उल्लंघन के रूप में प्रस्तुत किया गया है।

  • violations - RAP उल्लंघनों की संख्या। हर मिनट शून्य पर रीसेट होता है।

  • violationLimitPerMinReached - सत्य यदि RAP उल्लंघनों की संख्या 'maxViolationsPerMinute' [RAP में एक विकल्प] से अधिक हो जाती है।

  • किसी हमले को ब्लॉक करने के लिए - एक त्रुटि फेंकें

    root@kitploit:~
    throw new Error("Request Blocked. It violates declared Resource Access Policy.")
    

नमूना violationEvent

root@kitploit:~
{
    "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: इसमें Unique-App-Id है, जो NSS के आरंभीकरण के दौरान पारित किया गया था
  • blocked-uri: आउटबाउंड अनुरोध का डोमेन जिसने RAP का उल्लंघन किया
  • violated-directive: connect-src आउटबाउंड अनुरोध का पर्याय है, इसी तरह script-src कमांड निष्पादन का पर्याय है
  • original-policy: उल्लंघन की गई Resource Access Policy (RAP)
  • source-file: इस उल्लंघन का स्टैक ट्रेस।

Sentry के साथ एकीकरण

Sentry के साथ एकीकरण के लिए नमूना resourceAccessPolicy

root@kitploit:~
const resourceAccessPolicy  = {
  "outBoundRequest" : {

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

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

};
  • outBoundRequest: आउटबाउंड अनुरोधों के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • नोट: blockedDomains को allowedDomains पर प्राथमिकता दी जाती है।
    • अर्थात, अनुरोध पहले blockedDomains के विरुद्ध जाँचे जाते हैं, फिर allowedDomains के विरुद्ध।
  • executedCommand: कमांड निष्पादन के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • allowedCommands सरणी String स्वीकार करती है। कमांड के एक पैटर्न की अनुमति देने के लिए आप RegEx पास कर सकते हैं।
    • डिफ़ॉल्ट व्यवहार सभी कमांड निष्पादन को ब्लॉक करना है। बशर्ते, RAP में executedCommand प्रॉपर्टी परिभाषित हो।
    • जब उपरोक्त RAP का उपयोग किया जाता है,
      • pwd कमांड को निष्पादित करने की अनुमति है और
      • helper के अंदर .js फ़ाइलों को node प्रक्रियाओं के रूप में स्पॉन करने की अनुमति है।
    • नोट: regex में .* के उपयोग से बचें। क्योंकि यह पाइप के बाद किसी भी कमांड के निष्पादन की अनुमति देगा।

Sentry डैशबोर्ड से स्क्रीनशॉट sentry issues sentry issues

नमूना resourceAccessPolicy [Advanced]

root@kitploit:~
const resourceAccessPolicy = {
    "outBoundRequest" : {
    
        "blockedDomains" : ["compromised.domdog.io"],
        
        "allowedDomains" : ["domdog.io","*.domdog.io", 
           
            {
                "domains": [
                    "domgo.at",
                ],
                "modules": [
                    {
                        "file": "\/routes\/ssrf.js",
                    },
                    {
                        "file": "\/node_modules\/axios\/",
                    }
                ]
            },
            {
                "domains": [
                    "cluster0-shard-00-00.lb9jm.mongodb.net",
                    "cluster0-shard-00-01.lb9jm.mongodb.net",
                    "cluster0-shard-00-02.lb9jm.mongodb.net"
                ],
                "modules": [
                    {
                        "file": "\/node_modules\/mongodb\/"
                    }
                ]
            }
          
        ]
    },
		"executedCommand": {

            "allowedCommands": ["pwd" , "(node)[](https://github.com/domdogsec/nodesecurityshield/blob/HEAD/helper%5C/)[a-z|0-9]*(.js)"]
	   },
    
    "reportUri": "https://endpoint-to-send-violations",
    
    "maxViolationsPerMinute": 50
  }
  • outBoundRequest: आउटबाउंड अनुरोधों के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • नोट: blockedDomains को allowedDomains पर प्राथमिकता दी जाती है।
    • अर्थात, अनुरोध पहले blockedDomains के विरुद्ध जाँचे जाते हैं, फिर allowedDomains के विरुद्ध।
  • executedCommand: कमांड निष्पादन के लिए स्वीकृत व्यवहार को परिभाषित करता है
    • allowedCommands सरणी String स्वीकार करती है। कमांड के एक पैटर्न की अनुमति देने के लिए आप RegEx पास कर सकते हैं।
    • डिफ़ॉल्ट व्यवहार सभी कमांड निष्पादन को ब्लॉक करना है। बशर्ते, RAP में executedCommand प्रॉपर्टी परिभाषित हो।
    • जब उपरोक्त RAP का उपयोग किया जाता है,
      • pwd कमांड को निष्पादित करने की अनुमति है और
      • helper के अंदर .js फ़ाइलों को node प्रक्रियाओं के रूप में स्पॉन करने की अनुमति है।
    • नोट: regex में .* के उपयोग से बचें। क्योंकि यह पाइप के बाद किसी भी कमांड के निष्पादन की अनुमति देगा।

विशेषताएं

  • हमला निगरानी
    • आउटबाउंड नेटवर्क कॉल
    • कमांड निष्पादन
  • हमला अवरोधन
    • आउटबाउंड नेटवर्क कॉल
    • कमांड निष्पादन
  • मॉड्यूल-विशिष्ट नियंत्रण

रोडमैप

  • हमला निगरानी
    • फ़ाइल कॉल
  • हमला अवरोधन
    • फ़ाइल कॉल
  • भेद्यता स्कैनर

लेखक

  • Lavakumar Kuppan
    • Github - @lavakumar
    • Twitter - @lavakumark
  • Sukesh Pappu
    • Github - @thelogicalbeard
    • Twitter - @thelogicalbeard

योगदानकर्ता

  • Ayusman Samal
    • Github - @p1xxxel

लाइसेंस

Apache License 2.0

टूल डाउनलोड करें
|
|
  • reportUri : दिए गए एंडपॉइंट पर उल्लंघन भेजता है। चूंकि उल्लंघन Content Security Policy उल्लंघनों के समान हैं, इसलिए किसी भी CSP मॉनिटरिंग समाधान का उपयोग किया जा सकता है। हमने उपरोक्त RAP में Sentry एंडपॉइंट का उपयोग किया।
  • |
  • reportUri: दिए गए एंडपॉइंट पर उल्लंघन भेजता है। चूंकि उल्लंघन Content Security Policy उल्लंघनों के समान हैं, इसलिए किसी भी CSP मॉनिटरिंग समाधान का उपयोग किया जा सकता है। हमने उपरोक्त RAP में Sentry एंडपॉइंट का उपयोग किया।
  • मॉड्यूल-विशिष्ट नियंत्रण: allowedDomain सरणी निम्नलिखित के साथ ऑब्जेक्ट स्वीकार करती है
    • domain: डोमेन की सरणी जो प्रदान की गई फ़ाइलों के लिए अनुमत हैं।
    • modules: फ़ाइल पथ वाले ऑब्जेक्ट की सरणी। केवल इन फ़ाइलों के माध्यम से निर्दिष्ट डोमेन पर किए गए आउटबाउंड अनुरोधों की अनुमति है।
  • maxViolationsPerMinute: reportUri पर भेजे जाने वाले उल्लंघनों की अधिकतम संख्या। यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट मान (100 उल्लंघन) का उपयोग किया जाता है।