मोबाइल इंट्रूज़न डिटेक्शन सिस्टम
यह प्रोजेक्ट एक मोबाइल इंट्रूज़न डिटेक्शन सिस्टम को लागू करता है जो मोबाइल उपकरणों से कैप्चर किए गए नेटवर्क ट्रैफ़िक को प्रोसेस करता है, फ़ीचर इंजीनियरिंग करता है, और असामान्य नेटवर्क फ़्लो का पता लगाने के लिए ऑटोएनकोडर-आधारित डीप लर्निंग मॉडल का उपयोग करता है। गलत सकारात्मक परिणामों को कम करने और पहचान की सटीकता बढ़ाने के लिए बाहरी थ्रेट इंटेलिजेंस और व्हाइटलिस्ट डेटा का उपयोग किया जाता है।
विषय-सूची
विशेषताएँ
- नेटवर्क फ़्लो कैप्चर: मोबाइल उपकरणों से HTTP फ़्लो कैप्चर करने के लिए MITMProxy का उपयोग करता है।
- फ़्लो प्रोसेसिंग और आर्काइविंग: ओवरराइटिंग से बचने के लिए
flows.mitm का नाम बदलकर flows_1.mitm करके पिछले फ़्लो कैप्चर को आर्काइव करता है, फिर नए कैप्चर को प्रोसेस करता है।
- फ़ीचर इंजीनियरिंग: कैप्चर किए गए फ़्लो से फ़ीचर निकालता, स्केल करता और वेक्टराइज़ (TF-IDF का उपयोग करके) करता है।
- असामान्यता पहचान: सामान्य व्यवहार सीखने और पुनर्निर्माण त्रुटियों के आधार पर असामान्य फ़्लो को चिह्नित करने के लिए ऐतिहासिक डेटा पर ऑटोएनकोडर मॉडल को प्रशिक्षित करता है।
- व्हाइटलिस्ट फ़िल्टरिंग: सौम्य असामान्यताओं को फ़िल्टर करने के लिए Majestic Million और Top 1M domains (Kaggle) जैसे स्रोतों के डेटा का उपयोग करके व्हाइटलिस्ट फ़िल्टरिंग लागू करता है।
- प्रेडिक्शन मोड: नए कैप्चर किए गए डेटा को प्रोसेस करता है, प्रशिक्षित मॉडल लागू करता है, और मेट्रिक्स के साथ असामान्यताओं को आउटपुट करता है।
- डैशबोर्ड मोड: परिणामों के विज़ुअलाइज़ेशन और विश्लेषण के लिए एक इंटरैक्टिव डैशबोर्ड (Streamlit और Plotly के साथ निर्मित) प्रदान करता है।
आर्किटेक्चर अवलोकन
-
फ़्लो कैप्चर और आर्काइविंग
- MITMProxy मोबाइल उपकरणों से नेटवर्क फ़्लो कैप्चर करता है।
- ओवरराइटिंग से बचने के लिए नए कैप्चर से पहले मौजूदा कैप्चर फ़ाइल (
flows.mitm) का नाम बदलकर flows_1.mitm कर दिया जाता है।
- फिर कैप्चर किए गए फ़्लो को CSV और JSON प्रारूपों में परिवर्तित किया जाता है।
-
फ़ीचर इंजीनियरिंग
- प्रोसेस किए गए फ़्लो से फ़ीचर निकाले जाते हैं।
- डेटा को स्केलर का उपयोग करके स्केल किया जाता है और TF-IDF का उपयोग करके वेक्टराइज़ किया जाता है।
- इंजीनियर किए गए फ़ीचर को CSV फ़ाइल में सहेजा जाता है और मॉडल प्रशिक्षण और प्रेडिक्शन के लिए उपयोग किया जाता है।
-
मॉडल प्रशिक्षण और प्रेडिक्शन
- ट्रेन मोड: ऑटोएनकोडर मॉडल को प्रशिक्षित करने के लिए ऐतिहासिक डेटा को प्रोसेस करता है। प्रशिक्षित मॉडल और स्केलर जैसे मॉडल आर्टिफ़ैक्ट सहेजे जाते हैं।
- प्रेडिक्ट मोड: नए कैप्चर किए गए डेटा को प्रोसेस करता है, प्रशिक्षित मॉडल के साथ प्रेडिक्शन चलाता है, और गलत सकारात्मक परिणामों को कम करने के लिए व्हाइटलिस्ट फ़िल्टरिंग लागू करता है।
-
विज़ुअलाइज़ेशन और डैशबोर्ड (वैकल्पिक)
- एक इंटरैक्टिव डैशबोर्ड लॉस कर्व्स, पुनर्निर्माण त्रुटि वितरण, असामान्यता गणना और अन्य मेट्रिक्स प्रदर्शित करता है।
इंस्टॉलेशन और पर्यावरण सेटअप
-
रिपॉज़िटरी क्लोन करें
git clone https://github.com/yourusername/Mobile-Intrusion-Detection-System.git
cd Mobile-Intrusion-Detection-System
-
वर्चुअल एनवायरनमेंट बनाएँ और सक्रिय करें
python3 -m venv venv
source venv/bin/activate
-
आवश्यक पैकेज इंस्टॉल करें
pip install tensorflow pandas numpy scikit-learn matplotlib plotly streamlit
उपयोग
ट्रेन मोड
ऐतिहासिक डेटा को प्रोसेस करने, फ़ीचर इंजीनियरिंग करने और ऑटोएनकोडर मॉडल को प्रशिक्षित करने के लिए प्रशिक्षण पाइपलाइन चलाएँ:
./run_project.sh train
यह कमांड निम्नलिखित चरणों को पूरा करता है:
- कैप्चर किए गए नेटवर्क फ़्लो को प्रोसेस करता है।
- पिछली कैप्चर फ़ाइल को आर्काइव करता है (अर्थात, flows.mitm का नाम बदलकर flows_1.mitm कर दिया जाता है)।
- फ़ीचर्स को इंजीनियर और स्केल करता है।
- ऑटोएनकोडर मॉडल को ट्रेन करता है और उसका मूल्यांकन करता है।
- मॉडल, स्केलर और रन सारांश को results/ डायरेक्टरी में सहेजता है (run_log.json सहित)।
Predict Mode
प्रेडिक्शन चलाने से पहले, पिछले कैप्चर डेटा को सुरक्षित रखने के लिए मौजूदा flows_1.mitm फ़ाइल को आर्काइव किया जाता है (टाइमस्टैम्प के साथ)। फिर, नए फ़्लो कैप्चर और प्रोसेस किए जाते हैं:
./run_project.sh predict
यह कमांड निम्नलिखित चरण निष्पादित करता है:
- वर्तमान flows_1.mitm फ़ाइल को टाइमस्टैम्प के साथ संग्रहित करता है।
- नए कैप्चर किए गए फ़्लो को प्रोसेस करता है और उन्हें CSV और JSON प्रारूपों में परिवर्तित करता है।
- नई CSV फ़ाइल को अपेक्षित स्थान पर कॉपी करता है और फ़ीचर इंजीनियरिंग करता है।
- प्रशिक्षित स्केलर और मॉडल लोड करता है।
- नए डेटा पर पूर्वानुमान चलाता है और व्हाइटलिस्ट फ़िल्टरिंग लागू करता है।
- पूर्वानुमान परिणामों को आउटपुट करता है और उन्हें अपडेटेड run_log.json के साथ results/ निर्देशिका में सहेजता है।
डैशबोर्ड मोड
परिणामों और प्रदर्शन मेट्रिक्स को विज़ुअलाइज़ करने के लिए, Streamlit का उपयोग करके डैशबोर्ड मोड चलाएँ:
./run_project.sh dashboard
डैशबोर्ड प्रदर्शित करता है:
- प्रशिक्षण और सत्यापन हानि वक्र।
- निर्धारित सीमा के साथ पुनर्निर्माण त्रुटियों का वितरण।
- कई रनों में विसंगति गणनाएँ।
- व्हाइटलिस्ट फ़िल्टरिंग से पहले और बाद में अद्वितीय URL गणनाओं की तुलना।
- आगे के विश्लेषण के लिए अतिरिक्त इंटरैक्टिव प्लॉट और सारांश तालिकाएँ।
डेटा स्रोत और बाहरी संदर्भ
निष्कर्ष और भविष्य का कार्य
मोबाइल इंट्रूज़न डिटेक्शन सिस्टम मोबाइल उपकरणों से नेटवर्क फ़्लो डेटा के प्रभावी प्रसंस्करण को प्रदर्शित करता है और विसंगति पहचान के लिए ऑटोएनकोडर-आधारित दृष्टिकोण का लाभ उठाता है। व्हाइटलिस्ट फ़िल्टरिंग का एकीकरण गलत सकारात्मक परिणामों को काफ़ी कम करता है; हालाँकि, पूर्वानुमान चरण ने चुनौतियाँ उजागर कीं—विशेष रूप से लाभकारी Google खोज-संबंधित फ़्लो को वास्तविक दुर्भावनापूर्ण गतिविधियों से अलग करने में। यह दर्शाता है कि विसंगति पहचान तर्क का और अधिक परिष्करण आवश्यक है, विशेष रूप से व्हाइटलिस्ट फ़िल्टरिंग चरण के भीतर। भविष्य का कार्य फ़िल्टरिंग एल्गोरिदम को बेहतर बनाने, अतिरिक्त खतरा सूचना स्रोतों को शामिल करने, और गहन अंतर्दृष्टि के लिए डैशबोर्ड कार्यक्षमताओं का विस्तार करने पर केंद्रित होगा।
संदर्भ
लाइसेंस
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।