
IoT और परिचालन प्रौद्योगिकी हनीपॉट
| 📢 ध्यान दें!!! |
|---|
| इस रिपॉजिटरी को हनीनेट प्रोजेक्ट में स्थानांतरित कर दिया गया है :) |
RIoTPot एक हाइब्रिड इंटरेक्शन हनीपॉट है, जो मुख्य रूप से IoT और OT प्रोटोकॉल के अनुकरण पर केंद्रित है, हालांकि, यह अन्य सेवाओं का भी अनुकरण करने में सक्षम है। संक्षेप में, RIoTPot सिस्टम में शामिल अन्य हनीपॉट्स के लिए एक प्रॉक्सी सेवा के रूप में कार्य करता है। इसलिए, आप RIoTPot के साथ-साथ कोई भी हनीपॉट और अन्य सेवाएँ चला सकते हैं। इसके अतिरिक्त, एक UI वेब-एप्लिकेशन है जिसका उपयोग आप अपने रूटिंग को प्रबंधित करने के लिए कर सकते हैं।
हनीपॉट के साथ उपयोग के लिए तैयार कई निम्न-अंतःक्रिया सेवाएँ आती हैं। चूँकि ये सेवाएँ प्लगइन्स के रूप में लिखी गई हैं, ये केवल लिनक्स पर समर्थित हैं; हालाँकि, आप इनके बिना RIoTPot शुरू कर सकते हैं। निम्नलिखित तालिका में RIoTPot में डिफ़ॉल्ट रूप से शामिल सेवाओं, उनके आंतरिक पोर्ट और प्रॉक्सी पोर्ट की सूची है।
| सेवा | आंतरिक पोर्ट | प्रॉक्सी पोर्ट |
|---|---|---|
| Echo | 20007 | 7 |
| SSH | 20022 | 22 |
| Telnet | 20023 | 23 |
| HTTP | 28080 | 80 |
| Modbus | 20502 | 502 |
| MQTT | 21883 | 1883 |
| CoAP | 25683 | 5683 |
विषय-सूची
RIoTPot आर्किटेक्चर आंतरिक और आस-पास (या बाहरी) सेवाओं (जैसे, हनीपॉट्स, पूर्ण-सेवाएँ, कंटेनर, रिमोट होस्ट, आदि) के लिए प्रॉक्सी कनेक्शन पर आधारित है।
इसके लिए, हनीपॉट उपयोगकर्ता-परिभाषित प्रॉक्सीज़ की एक संख्या का प्रबंधन करता है जो सेवाओं और RIoTPot के बीच कनेक्शन को रिले करते हैं 1।
इस तरह, RIoTPot यह तय कर सकता है कि आने वाले हमलों को कैसे और कहाँ रूट करना है।
आने वाले हमले को संभालने के लिए उपयोग किए जाने वाले तर्क को मिडलवेयर के रूप में लागू किया जाता है 2।
सेवाओं, मिडलवेयर और प्रॉक्सीज़ को प्रबंधित करने के लिए, RIoTPot में आउट-ऑफ-द-बॉक्स एक REST API 3 और एक वेबऐप UI 4 शामिल है।
UI तक आप अपने ब्राउज़र में localhost:2022 पर पहुँच सकते हैं और आप API एंडपॉइंट्स के साथ localhost:2022/api/swagger पर खिलवाड़ कर सकते हैं, जो एक Swagger इंटरफ़ेस दिखाता है।
चित्र 1 RIoTPot आर्किटेक्चर दिखाता है, जिसमें दो मुख्य एप्लिकेशन शामिल हैं जो RIoTPot (स्वयं RIoTPot, और RIoTPot UI) और उनके घटक, और बाहरी (या आस-पास की) सेवाओं को घेरने के लिए एक अनुभाग शामिल है।
RIoTPot गोलंग में लिखा गया है 5। प्रत्येक RIoTPot इंस्टेंस माँग पर पंजीकृत प्रॉक्सीज़ (उनके पोर्ट के आधार पर) को उजागर करता है। एक प्रॉक्सी को सेवा देने के लिए, उसके पास एक बाउंडेड सेवा होनी चाहिए और प्रॉक्सी पोर्ट उपलब्ध होना चाहिए (वर्तमान में, RIoTPot एक ही पोर्ट पर चलने वाली कई सेवाओं को स्वीकार नहीं करता है)। जब एक प्रॉक्सी को बाउंड और सेवा दी जाती है, तो हमलावर उस पोर्ट पर RIoTPot को संदेश भेजने में सक्षम होंगे, संदेशों को बाउंडेड सेवा और वापस हमलावर को भेज सकेंगे 6।
पहुँच में आसानी के लिए, RIoTPot UI वेबऐप से RIoTPot के कई इंस्टेंसेस को प्रबंधित किया जा सकता है।
प्रत्येक इंस्टेंस में पंजीकृत प्रॉक्सीज़ के प्रबंधन के अलावा, UI आपको प्रोफाइल बनाने, उपयोग करने और संपादित करने की अनुमति देता है।
प्रत्येक प्रोफाइल में प्रोटोकॉल या अन्य सेवाओं के नाम पर कई प्रॉक्सीज़ होती हैं, जो RIoTPot इंस्टेंस को एक वास्तविक जीवन उपकरण (जैसे, एक होम असिस्टेंट) जैसा दिखाती हैं।
कुछ शब्दों में, प्रोफाइल विशिष्ट कॉन्फ़िगरेशन के साथ एक RIoTPot इंस्टेंस को सेट अप और प्रोविजन करने की प्रक्रिया को गति देते हैं।
UI React फ्रंट-एंड जावास्क्रिप्ट लाइब्रेरी (हम इस प्रोजेक्ट के लिए Typescript का उपयोग करते हैं) और Recoil स्थिति प्रबंधन लाइब्रेरी का उपयोग करके लिखा गया है।
चूँकि RIoTPot काफी छोटा है, फिलहाल, यह डेटाबेस का उपयोग नहीं करता है।
RIoTPot चलाना अपेक्षाकृत सरल है। कुल मिलाकर, आपके पास तीन विकल्प हैं। पहला है RIoTPot रिलीज़ डाउनलोड करना; आप या तो नवीनतम रिलीज़ डाउनलोड करना चुन सकते हैं, या पिछली रिलीज़। दूसरा विकल्प है प्रोजेक्ट को स्वयं बनाना। अंतिम विकल्प है RIoTPot और हनीपॉट को बढ़ाने के लिए कुछ अतिरिक्त एप्लिकेशन के साथ एक डॉकर कंटेनर बनाने के लिए स्रोत कोड का उपयोग करना।
जानकारी: यह गाइड उन उपयोगकर्ताओं के लिए है जिनकी कोई विशेष आवश्यकता नहीं है, और जो एक सरल आउट-ऑफ-द-बॉक्स अनुभव चाहते हैं।
प्रत्येक रिलीज़ एक फ़ोल्डर में आती है जिसका नाम riotpot है, जिसमें एक निष्पादन योग्य बाइनरी (भी) का नाम riotpot और एक plugins फ़ोल्डर होता है जिसमें कई सेवाएँ (या निम्न-अंतःक्रिया हनीपॉट) भरी होती हैं।
RIoTPot को इच्छित रूप से काम करने के लिए आंतरिक फ़ोल्डर संरचना को बनाए रखना महत्वपूर्ण है।
📁 riotpot
┕ riotpot
┕ 📁 plugins
आंतरिक और आस-पास की सेवाएँ इंटरनेट के माध्यम से सुलभ नहीं हैं। आंतरिक सेवाएँ एकीकृत हैं और केवल RIoTPot के लिए सुलभ हैं। ये सेवाएँ स्टार्ट-अप पर लोड होती हैं और इन्हें हटाया नहीं जा सकता, लेकिन इन्हें रोका जा सकता है। आस-पास की सेवाएँ RIoTPot के समान नेटवर्क में होनी चाहिए। बाहरी सेवाओं को RIoTPot को केवल व्हाइटलिस्ट करना चाहिए। ↩
मिडलवेयर वर्तमान में विकास के अधीन हैं। ↩
RIoTPot API को इंटरनेट पर उजागर नहीं किया जाना चाहिए। फिर भी, API वर्तमान में केवल लोकलहोस्ट से कनेक्शन स्वीकार करता है। भविष्य में इसे बदला जा सकता है, जिसमें होस्ट की एक व्हाइटलिस्ट और मानक प्रमाणीकरण प्रदान किया जाएगा। ↩
हालाँकि वेब इंटरफ़ेस को एक अलग घटक के रूप में उपयोग किया जा सकता है, यह RIoTPot बाइनरी के साथ एम्बेडेड है। ↩
जबकि बेस एप्लिकेशन इंटरऑपरेबल है, आंतरिक सेवाएँ (प्लगइन्स) का उपयोग केवल लिनक्स, फ्रीबीएसडी और मैकओएस वातावरणों में किया जा सकता है। हम प्लगइन्स को gRPC के माध्यम से संचार करने वाली माइक्रो-सेवाओं से बदलकर इस सीमा को दूर करने की योजना बना रहे हैं। ↩
नैतिक और सुरक्षा कारणों से, RIoTPot बाहर की ओर अनचाहे अनुरोधों की अनुमति नहीं देता है, अर्थात, रिवर्सेड शेल और इसी तरह की चीजों की अनुमति नहीं है। ↩