
स्थैतिक विश्लेषण CLI उपकरण जो निर्भरता ग्राफ बनाकर और अप्रयुक्त मॉड्यूल और कार्यों को मोटे या बारीक मोड में हटाकर Node.js एप्लिकेशन के हमले के सतह क्षेत्र को कम करता है।
Mininode एक CLI टूल है जो सोर्स कोड के स्थैतिक विश्लेषण का उपयोग करके Node.js अनुप्रयोगों के आक्रमण सतह को कम करता है। यह कमी के दो तरीकों का समर्थन करता है (1) मोटा (coarse), (2) बारीक (fine)।
Mininode मुख्य फ़ाइल से शुरू करके एप्लिकेशन की निर्भरता ग्राफ (उपयोग किए गए मॉड्यूल और फ़ंक्शन) बनाता है, यानी एप्लिकेशन का प्रवेश बिंदु। Mininode प्रवेश बिंदु को package.json फ़ाइल के main फ़ील्ड पर सेट करता है यदि वह मौजूद है। अन्यथा डिफ़ॉल्ट index.js होता है।
उपयोग का उदाहरण: node index.js <path to Node application root folder> --mode=(coarse|fine)। नीचे उन विकल्पों की सूची दी गई है जिन्हें Mininode को दिया जा सकता है।
कमांड लाइन विकल्पों की सूची जो मिनीनोड को दी जा सकती है।
--destination, -d: वह पथ जहाँ mininode कम किए गए Node.js एप्लिकेशन को सहेजेगा। डिफ़ॉल्ट मान: mininode।--dry-run: मूल एप्लिकेशन को संशोधित किए बिना केवल mininode.json उत्पन्न करता है।--mode, -m: कमी मोड। मान या तो coarse या fine हो सकता है। coarse मोड में mininode केवल मोटे दाने वाली कमी करेगा। जबकि fine मोड में mininode बारीक दाने वाली कमी करेगा। सामान्यतः मोटे दाने वाली कमी अधिक विश्वसनीय है, क्योंकि mininode मॉड्यूल के अंदर अप्रयुक्त फ़ंक्शन को कम करने का प्रयास नहीं करेगा। डिफ़ॉल्ट मान: coarse।--silent: कंसोल आउटपुट अक्षम है। इससे mininode के प्रदर्शन में सुधार होगा।--verbose: कंसोल पर अतिरिक्त जानकारी आउटपुट करता है। डिफ़ॉल्ट मान: false--log: mininode एक लॉग फ़ाइल उत्पन्न करेगा जिसमें json प्रारूप में एप्लिकेशन का निर्भरता ग्राफ होगा। डिफ़ॉल्ट मान: true।--log-output: mininode द्वारा उत्पन्न लॉग फ़ाइल का नाम। डिफ़ॉल्ट मान: mininode.json।--compress-log: अंतिम लॉग फ़ाइल को संपीड़ित करता है। डिफ़ॉल्ट रूप से यह सब कुछ लॉग फ़ाइल में डाल देगा। उत्पादन में स्थान बचाने के लिए --compress-log फ़्लैग पास करने की सलाह दी जाती है।--seeds: वे सीड फ़ाइलें जहाँ से mininode निर्भरता ग्राफ बनाना शुरू करेगा। आप कोलन द्वारा अलग करके कई सीड फ़ाइलें प्रदान कर सकते हैं।--skip-stat: आँकड़ों की गणना छोड़ देता है--skip-reduction: यदि पास किया जाता है तो mininode JavaScript फ़ाइलों को कम नहीं करेगा। डिफ़ॉल्ट मान: false।--skip-remove: यदि पास किया जाता है तो mininode अप्रयुक्त JavaScript फ़ाइलों को नहीं हटाएगा। डिफ़ॉल्ट मान: false।eval, का उपयोग करता है। यदि Mininode एप्लिकेशन में गतिशील व्यवहार का पता लगाता है तो वह DYNAMIC_BEHAVOUR_DETECTED त्रुटि के साथ बाहर निकल जाता है।आप हमारे काम के विवरण के बारे में निम्नलिखित शोध पत्र में अधिक पढ़ सकते हैं:
Mininode: Reducing the Attack Surface of Node.js Applications [PDF]
Igibek Koishybayev, Alexandros Kapravelos
Proceedings of the International Symposium on Research in Attacks, Intrusions and Defenses (RAID), 2020
यदि आप अपने शोध में Mininode का उपयोग करते हैं, तो कृपया इस Bibtex प्रविष्टि का उपयोग करके हमारे कार्य को उद्धृत करें:
@conference{mininode-raid20,
title = {{Mininode: Reducing the Attack Surface of Node.js Applications}},
author = {Koishybayev, Igibek and Kapravelos, Alexandros},
booktitle = {{Proceedings of the International Symposium on Research in Attacks, Intrusions and Defenses (RAID)}},
year = {2020}
}
हम semistandard का पालन कर रहे हैं।