
बॉटनेट सिमुलेशन फ्रेमवर्क
BSF पीयर-टू-पीयर बॉटनेट को लागू करने और विस्तारित करने, उनकी सेटिंग्स को समायोजित करने और रक्षकों को निगरानी और प्रतिउपायों का मूल्यांकन करने की अनुमति देने के लिए एक असतत सिमुलेशन वातावरण प्रदान करता है।
बॉटमास्टर्स और रक्षकों के बीच हथियारों की दौड़ में, बॉटमास्टर्स का पलड़ा भारी होता है, क्योंकि रक्षकों को बॉटमास्टर्स द्वारा शुरू की गई कार्रवाइयों और नए खतरों पर प्रतिक्रिया देनी होती है। बॉटनेट सिमुलेशन फ्रेमवर्क (BSF) खेल के मैदान को समतल करके इस समस्या का समाधान करता है। यह रक्षकों को नई बॉटनेट निगरानी तकनीकों और प्रतिउपायों को विकसित और मूल्यांकन करके हथियारों की दौड़ में आगे बढ़ने की अनुमति देता है। यह महत्वपूर्ण है, क्योंकि वास्तविक वातावरण में प्रयोग करने से अन्य शोधकर्ताओं के साथ हस्तक्षेप होगा और संभवतः बॉटमास्टर्स को सचेत करेगा।
BSF वास्तविक वातावरण में तैनात किए जाने से पहले निगरानी तंत्र और टेकडाउन प्रयासों के डिजाइन और प्रभाव का पता लगाने और अध्ययन करने के लिए पीयर-टू-पीयर बॉटनेट का यथार्थवादी सिमुलेशन की अनुमति देता है। BSF एक असतत घटना बॉटनेट सिम्युलेटर है जो अत्यधिक कॉन्फ़िगर करने योग्य (और अनुकूलन योग्य) बॉटनेट सुविधाओं का एक सेट प्रदान करता है, जिनमें शामिल हैं:
इसके अलावा, BSF एक सिमुलेशन के परिणाम का और अध्ययन करने के लिए एक इंटरैक्टिव विज़ुअलाइज़ेशन मॉड्यूल प्रदान करता है। BSF का उद्देश्य शोधकर्ताओं और रक्षकों को एंटी-मॉनिटरिंग तंत्र [1,2,3] की उपस्थिति में विभिन्न निगरानी तंत्रों के डिजाइन का अध्ययन करने में सक्षम बनाना है। इसके अलावा, यह उपकरण उपयोगकर्ताओं को आज तक देखे गए बॉटनेट के डिजाइन विकल्पों के प्रभाव का पता लगाने और समझने की अनुमति देता है।
BSF में सिमुलेशन फ्रेमवर्क और एक विज़ुअलाइज़ेशन टूल शामिल है। सिमुलेशन फ्रेमवर्क स्वयं OMNeT++ पर बनाया गया है। विज़ुअलाइज़ेशन Dash पर बनाया गया है ताकि आपके पसंदीदा ब्राउज़र में एक इंटरैक्टिव प्रदान किया जा सके।
BSF का वर्तमान संस्करण OMNeT++ संस्करण 5.4.1. के साथ बनाया और परीक्षण किया गया है।
कृपया प्रदान की गई कार्यक्षमताओं के संबंध में स्थापना दिशानिर्देशों, ट्यूटोरियल और संदर्भों के लिए OMNeT++ दस्तावेज़ीकरण देखें।
बॉटनेट सिमुलेशन को विज़ुअलाइज़ करने के लिए, निम्नलिखित पायथन पैकेज आवश्यक हैं:
pip install dash==1.2.0 # The core dash backend
pip install dash-daq==0.1.0 # DAQ components (newly open-sourced!)
pip install networkx
pip install natsort
pip install numpy
OMNeT++ सिमुलेशन .ini फ़ाइलों में परिभाषित कॉन्फ़िगरेशन पर आधारित हैं। इस रिपॉजिटरी का simulations फ़ोल्डर tests.ini और sample.ini फ़ाइलों में स्थित पूर्व-निर्धारित कॉन्फ़िगरेशन का एक सेट शामिल करता है।
एक कॉन्फ़िगरेशन चलाने के लिए, आप या तो OMNeT++ IDE या कमांड लाइन का उपयोग कर सकते हैं। चूंकि BSF OMNeT++ की किसी भी ग्राफिकल सुविधाओं का उपयोग नहीं करता है, हम सभी सिमुलेशन को cmdenv में चलाने की सलाह देते हैं, यानी केवल कंसोल आउटपुट का उपयोग करके।
IDE के भीतर एक सिमुलेशन चलाने के लिए आपको एक रन कॉन्फ़िगरेशन सेट करना होगा। इसके लिए, *.ini फ़ाइल पर राइट क्लिक करें और Run As -> Run Configurations चुनें। इसके बाद नीचे दिखाए गए चित्र के अनुसार अपनी कॉन्फ़िगरेशन फ़ाइल सेट करें:

अब बस Apply और Run पर क्लिक करें। सिमुलेशन का आउटपुट IDE कंसोल में दिखाई देगा।
कमांड लाइन से चलाने के लिए, हमें पहले प्रोजेक्ट बनाना होगा। रूट फ़ोल्डर पर जाएं और चलाएं:
make MODE=release all
उसके बाद simulations फ़ोल्डर पर जाएं और चलाएं:
../BSF -r 0 -m -u Cmdenv -c SampleConfig_Crawler -n .. samples.ini
सिमुलेशन को IDE या कमांड लाइन से चलाने के बावजूद, आपको इसके समान आउटपुट देखना चाहिए:
** Event #577792 t=64831.46985369179 Elapsed: 4.21157s (0m 04s) 37% completed (37% total)
Speed: ev/sec=180486 simsec/sec=14682 ev/simsec=12.293
Messages: created: 406512 present: 2108 in FES: 487
Just crawled: 24 nodes at 88983.25891616358
Just crawled: 40 nodes at 92583.25891616358
** Event #1050880 t=93607.74036896409 Elapsed: 6.28757s (0m 06s) 54% completed (54% total)
Speed: ev/sec=227885 simsec/sec=13861.4 ev/simsec=16.4402
Messages: created: 729732 present: 2106 in FES: 630
Just crawled: 108 nodes at 96183.25891616358
Just crawled: 286 nodes at 99783.25891616358
Just crawled: 570 nodes at 103383.25891616358
जो ब्लॉक ** से शुरू होते हैं, वे OMNeT++ के मानक आउटपुट हैं जो सिमुलेशन की प्रगति और आँकड़े दर्शाते हैं। चयनित कॉन्फ़िगरेशन में, क्रॉलर द्वारा प्रत्येक क्रॉलिंग अंतराल पर खोजे गए नोड्स की संख्या की रिपोर्ट करने वाले अतिरिक्त आउटपुट होते हैं। जबकि यह हमें ज्यादा नहीं बताता है, हम अगले भाग में दिखाएंगे कि कैसे आप बॉटनेट और क्रॉलर के परिणामों दोनों के आउटपुट को विज़ुअलाइज़ कर सकते हैं।
विज़ुअलाइज़ेशन सिमुलेशन फ्रेमवर्क से अलग किया गया है और उत्पन्न ग्राफ और मॉनिटरिंग लॉग फ़ाइलों पर काम करता है। हमने मुख्य फ्रेमवर्क चलाए बिना विज़ुअलाइज़ेशन का पता लगाने के लिए कुछ नमूना डेटा भी अपलोड किया है।
सिमुलेशन के परिणामों को विज़ुअलाइज़ करने के लिए आपको visualization फ़ोल्डर पर जाना होगा और app.py को कॉल करना होगा। उसके बाद अपना पसंदीदा ब्राउज़र खोलें और http://127.0.0.1:8050/ खोलें। यह आपको नमूना कॉन्फ़िगरेशन में से एक का ग्राफ़ दृश्य प्रदान करेगा, जो कुछ इस प्रकार दिखाई देगा:

स्क्रीन के ऊपरी दाएं कोने में ड्रॉपडाउन मेनू आपको विभिन्न कॉन्फ़िगरेशन के परिणामों के बीच चुनने की अनुमति देता है। स्क्रीन के नीचे आप एक टाइमलाइन देख सकते हैं जो बॉटनेट के सभी उपलब्ध स्नैपशॉट को इंगित करती है। यह बॉट्स की गतिविधि और कनेक्टिविटी में परिवर्तनों को विज़ुअलाइज़ करने की अनुमति देता है। इसके अलावा, दाईं ओर का मेनू क्रॉलर या सेंसर द्वारा एकत्रित जानकारी को विज़ुअलाइज़ करने की अनुमति देता है। एक उदाहरण निम्नलिखित आकृति में देखा जा सकता है, जहाँ क्रॉलर का दृश्य हरे रंग में हाइलाइट किया गया है।

इसके अलावा, हम वर्तमान में निगरानी और टेकडाउन संचालन के विश्लेषण में सहायता करने वाले अधिक उन्नत विज़ुअलाइज़ेशन पर काम कर रहे हैं।
निम्नलिखित प्रकाशन BSF के उपयोग के मामलों पर उदाहरण प्रस्तुत करते हैं:
[3] Emmanouil Vasilomanolakis, Max Mühlhäuser, Jan Helge Wolf, Leon Böck, Shankar Karuppayah