
साइबर सुरक्षा geoip अटैक मैप जो syslog का अनुसरण करता है और हमलावरों को वास्तविक समय में विज़ुअलाइज़ करने के लिए IPs/पोर्ट नंबरों को पार्स करता है।
मेरे पास अभी अपने जीवन में इस परियोजना को बनाए रखने के लिए अधिक समय नहीं है। मैंने यह चुनौती जावास्क्रिप्ट सीखने और पाइथन में सुधार करने के लिए उठाई थी, जो मुझे पहले से आता था। मुझे यकीन है कि मैं अपने कार्यान्वयन में कई चीजें अलग तरीके से कर सकता था, और अगर कोई मेरा कोड डाउनलोड करके देखता है और रचनात्मक आलोचना देता है तो मुझे बुरा नहीं लगेगा। मुझे पता है कि इस पर काम करते हुए मैंने बहुत कुछ सीखा, और मुझे उम्मीद है कि ओपन सोर्स समुदाय मुझे और सिखाता रहेगा :)
नोट: क्योंकि मैं इस परियोजना को बनाए नहीं रखता, कुछ विशेषताएँ शायद आउट ऑफ द बॉक्स काम न करें, उदाहरण के लिए, मानचित्र शायद प्रदर्शित न हो क्योंकि मैं एक वैध MapBox API कुंजी के लिए भुगतान नहीं करता। इसे ठीक करने के लिए आपको संभवतः अपना स्वयं का MapBox खाता बनाना होगा और अपनी स्वयं की कुंजी का उपयोग करना होगा।
यह geoip हमला मानचित्र विज़ुअलाइज़र आपके संगठन पर नेटवर्क हमलों को वास्तविक समय में प्रदर्शित करने के लिए विकसित किया गया था। डेटा सर्वर एक syslog फ़ाइल का अनुसरण करता है, और स्रोत IP, गंतव्य IP, स्रोत पोर्ट, और गंतव्य पोर्ट को पार्स करता है। प्रोटोकॉल सामान्य पोर्ट के माध्यम से निर्धारित किए जाते हैं, और प्रोटोकॉल प्रकार के आधार पर विज़ुअलाइज़ेशन रंग में भिन्न होते हैं। डेमो वीडियो के लिए यहाँ क्लिक करें। यह परियोजना संभव नहीं होती अगर सैम कैपेला (Sam Cappella) ने 2015 पाल्मेटो साइबर डिफेंस प्रतियोगिता के लिए एक साइबर डिफेंस प्रतियोगिता नेटवर्क ट्रैफिक विज़ुअलाइज़र नहीं बनाया होता। मैंने मुख्य रूप से उनके कोड को संदर्भ के रूप में उपयोग किया, लेकिन मैंने डिस्प्ले सर्वर और वेबऐप के दृश्य पहलुओं को बनाते समय कुछ फ़ंक्शन उधार लिए। मैं डायलन मैडिसेटी को भी विशेष धन्यवाद देना चाहूंगा, जिन्होंने मेरे कार्यान्वयन के कुछ पहलुओं के बारे में मुझे सलाह दी।
यह प्रोग्राम पूरी तरह से syslog पर निर्भर करता है, और क्योंकि सभी उपकरण लॉग को अलग-अलग प्रारूप में करते हैं, आपको लॉग पार्सिंग फ़ंक्शन (फ़ंक्शनों) को अनुकूलित करने की आवश्यकता होगी। यदि आपका संगठन सुरक्षा सूचना और घटना प्रबंधन प्रणाली (SIEM) का उपयोग करता है, तो यह संभवतः लॉग को सामान्यीकृत कर सकता है ताकि आप रेगेक्स लिखने में बहुत समय बचा सकें।
यदि आपको कोई त्रुटि या बग मिलता है, तो कृपया मुझे बताएं। प्रश्न और प्रतिक्रिया भी स्वागत योग्य हैं, और [email protected] पर भेजे जा सकते हैं, या इस रिपॉजिटरी में एक issue खोल सकते हैं।
Ubuntu 16.04 LTS पर परीक्षण किया गया।
एप्लिकेशन को क्लोन करें:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
सिस्टम निर्भरताएँ स्थापित करें:
sudo apt install python3-pip redis-server
पायथन आवश्यकताएँ स्थापित करें:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
Redis सर्वर प्रारंभ करें:
redis-server
डेटा सर्वर DB कॉन्फ़िगर करें:
cd DataServerDB
./db-dl.sh
cd ..
डेटा सर्वर प्रारंभ करें:
cd DataServer
sudo python3 DataServer.py
Syslog Gen स्क्रिप्ट प्रारंभ करें, DataServer निर्देशिका के अंदर:
एक नया टर्मिनल टैब खोलें (Ubuntu पर Ctrl+Shift+T)।
./syslog-gen.py
./syslog-gen.sh
Attack Map सर्वर कॉन्फ़िगर करें, फ़्लैग्स को सही स्थान पर निकालें:
एक नया टर्मिनल टैब खोलें (Ubuntu पर Ctrl+Shift+T)।
cd AttackMapServer/
unzip static/flags.zip
Attack Map सर्वर प्रारंभ करें:
sudo python3 AttackMapServer.py
ब्राउज़र से Attack Map सर्वर तक पहुँचें:
किसी अन्य कंप्यूटर पर ब्राउज़र के माध्यम से पहुँचने के लिए, AttackMapServer चलाने वाली मशीन का बाहरी IP उपयोग करें।
"AttackMapServer" निर्देशिका में फ़ाइल "/static/map.js" में IP पता संपादित करें। इसमें से:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
उदाहरण के लिए, इसमें बदलें:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Attack Map सर्वर को पुनरारंभ करें:
sudo python3 AttackMapServer.py
दूसरे कंप्यूटर पर, ब्राउज़र को निम्न पर इंगित करें:
http://192.168.1.100:8888/