Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
NodeSecurityShield — حزمة صديقة للمطورين ومهندسي الأمن لتأمين تطبيقات NodeJS. | Kitploit
أدوات/GitHubGitHub/domdogsec/nodesecurityshield
أدوات دفاعيةتحليل الثغرات الأمنية
GitHubdomdogsec/nodesecurityshield

NodeSecurityShield

حزمة صديقة للمطورين ومهندسي الأمن لتأمين تطبيقات NodeJS.

عرض المستودع
29714منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Node Security Shield

Node Security Shield (NSS) هي أداة حماية ذاتية مفتوحة المصدر للتطبيق أثناء التشغيل (RASP) تهدف إلى سد الفجوة في أمان NodeJS الشامل من خلال تمكين المطور ومهندس الأمان من إعلان الموارد التي يمكن للتطبيق الوصول إليها.

مستوحاة من ثغرة Log4Shell (CVE-2021-44228) والتي يمكن استغلالها لأن التطبيق يمكنه إجراء استدعاءات شبكية عشوائية، شعرنا بوجود حاجة إلى أن يكون للتطبيق آلية يمكنها إعلان الصلاحيات التي يسمح بها من أجل جعل استغلال هذه الثغرات أكثر صعوبة من خلال تنفيذ ضوابط إضافية.

لتحقيق ذلك، يحتوي NSS (Node Security Shield) على سياسة الوصول إلى الموارد (RAP)

سياسة الوصول إلى الموارد (RAP)

Resource Access Policy مماثلة لـ CSP(سياسة أمان المحتوى).

تتيح للمطور/مهندس الأمان إعلان الموارد التي يجب على التطبيق الوصول إليها. وسيقوم Node Security Shield بفرضها.

التثبيت

تثبيت NodeSecurityShield باستخدام npm

npm install nodesecurityshield

الاستخدام

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

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

نموذج 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: يحدد السلوك المقبول لـ Outbound Requests
    • ملاحظة: تحتفظ blockedDomains بالأولوية على allowedDomains.
    • أي، يتم فحص الطلبات ضد blockedDomains أولاً ثم ضد allowedDomains.
  • executedCommand: يحدد السلوك المقبول لـ Command Execution
    • يقبل مصفوفة allowedCommands قيمة من نوع String. يمكنك تمرير تعبير نمطي (RegEx) للسماح بنمط من الأوامر.
    • السلوك الافتراضي هو حظر جميع عمليات تنفيذ الأوامر، بشرط أن تحتوي سياسة RAP على خاصية executedCommand معرفة.
    • عند استخدام سياسة RAP أعلاه،
      • يُسمح بتنفيذ الأمر pwd، و
      • يُسمح للملفات .js داخل helper بالتشغيل كعمليات node.
    • ملاحظة: تجنب استخدام .* في regex. لأن هذا سيسمح بتنفيذ أي أمر بعد أنبوب |.

نموذج callbackFunction لتسجيل انتهاكات RAP في وحدة التحكم.

var callbackFunction = function (violationEvent,violations,violationLimitPerMinReached) {
  console.log(JSON.stringify(violationEvent,null, 4));
}
  • violationEvent - انتهاك RAP الذي حدث. يتم تقديمه كانتهاك CSP.

  • violations - عدد انتهاكات RAP. يُعاد تعيينه إلى الصفر كل دقيقة.

  • violationLimitPerMinReached - صحيح إذا تجاوز عدد انتهاكات RAP قيمة 'maxViolationsPerMinute' [خيار في RAP]

  • لحظر هجوم - طرح خطأ

    throw new Error("Request Blocked. It violates declared Resource Access Policy.")
    

نموذج 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: يحتوي على معرف التطبيق الفريد (Unique-App-Id)، الذي تم تمريره أثناء تهيئة NSS
  • blocked-uri: نطاق الطلب الصادر الذي انتهك سياسة RAP
  • violated-directive: connect-src هو مرادف لـ Outbound Request وكذلك script-src هو مرادف لـ Command Execution
  • original-policy: سياسة الوصول إلى الموارد (RAP) المنتهكة
  • source-file: تتبع المكدس (Stack Trace) لمكان حدوث هذا الانتهاك.

التكامل مع Sentry

نموذج resourceAccessPolicy للتكامل مع 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: يحدد السلوك المقبول لـ Outbound Requests
    • ملاحظة: تحتفظ blockedDomains بالأولوية على allowedDomains.
    • أي، يتم فحص الطلبات ضد blockedDomains أولاً ثم ضد allowedDomains.
  • executedCommand: يحدد السلوك المقبول لـ Command Execution
    • يقبل مصفوفة allowedCommands قيمة من نوع String. يمكنك تمرير تعبير نمطي (RegEx) للسماح بنمط من الأوامر.
    • السلوك الافتراضي هو حظر جميع عمليات تنفيذ الأوامر، بشرط أن تحتوي سياسة RAP على خاصية executedCommand معرفة.
    • عند استخدام سياسة RAP أعلاه،
      • يُسمح بتنفيذ الأمر pwd، و
      • يُسمح للملفات .js داخل helper بالتشغيل كعمليات node.
    • ملاحظة: تجنب استخدام .* في regex. لأن هذا سيسمح بتنفيذ أي أمر بعد أنبوب |.
  • reportUri: يرسل الانتهاكات إلى نقطة نهاية معينة. نظرًا لأن الانتهاكات مشابهة لانتهاكات سياسة أمان المحتوى (CSP)، يمكن استخدام أي حلول مراقبة CSP. استخدمنا نقطة نهاية Sentry في سياسة RAP أعلاه.

لقطة شاشة من لوحة تحكم Sentry sentry issues sentry issues

نموذج resourceAccessPolicy [متقدم]

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/main/helper%5C)[a-z|0-9]*(.js)"]
	   },
    
    "reportUri": "https://endpoint-to-send-violations",
    
    "maxViolationsPerMinute": 50
  }
تنزيل الأداة