
Malcom - मैलवेयर संचार विश्लेषक
Malcom एक उपकरण है जिसे नेटवर्क ट्रैफ़िक के ग्राफिकल प्रतिनिधित्व का उपयोग करके सिस्टम के नेटवर्क संचार का विश्लेषण करने और उन्हें ज्ञात मैलवेयर स्रोतों से क्रॉस-रेफरेंस करने के लिए डिज़ाइन किया गया है। यह तब काम आता है जब यह विश्लेषण किया जाता है कि कुछ मैलवेयर प्रजातियाँ बाहरी दुनिया से संवाद करने का प्रयास कैसे करती हैं।
Malcom आपकी मदद कर सकता है:
Malcom का उद्देश्य किसी दिए गए होस्ट या नेटवर्क से उत्पन्न नेटवर्क ट्रैफ़िक का मानव-पठनीय संस्करण प्रदान करके मैलवेयर विश्लेषण और इंटेल संग्रह को तेज़ बनाना है। नेटवर्क ट्रैफ़िक की जानकारी को तेज़ी से कार्रवाई योग्य खुफिया जानकारी में बदलें।
त्वरित आरंभ के लिए कुछ अच्छे स्क्रीनशॉट और अपने स्वयं के फीड कैसे जोड़ें पर एक ट्यूटोरियल के लिए wiki देखें।
यदि आपको कुछ सहायता चाहिए, या योगदान देना चाहते हैं, तो मेलिंग सूची में शामिल होने या IRC पर किसी को पकड़ने का प्रयास करें (#malcom on freenode.net, यह काफी शांत है लेकिन आसपास हमेशा कोई न कोई होता है)। आप मुझे ट्विटर पर भी संपर्क कर सकते हैं @tomchop_
यहाँ होस्ट tomchop.me के लिए एक उदाहरण ग्राफ़ है

डेटासेट दृश्य (केवल IP दिखाने के लिए फ़िल्टर किया गया)

mongodb और redis-server चल रहे हैं./malcom.py -c malcom.conf का उपयोग करके शुरू करें (या ./malcom.py --help के साथ विकल्प देखें)
** एक उदाहरण कॉन्फ़िगरेशन फ़ाइल के लिए, आप malcom.conf.example को malcom.conf पर कॉपी कर सकते हैं
** डिफ़ॉल्ट पोर्ट 8080 है
** वैकल्पिक रूप से, celery से फीड चलाएँ। यह कैसे करें, इसके विवरण के लिए फीड अनुभाग देखें।Malcom पायथन में लिखा गया है। बशर्ते आपके पास आवश्यक लाइब्रेरी हों, आप इसे किसी भी प्लेटफ़ॉर्म पर चला सकें। मैं पायथन वर्चुअल एनवायरनमेंट (virtualenv) के उपयोग की अत्यधिक अनुशंसा करता हूँ ताकि आपके सिस्टम लाइब्रेरीज़ खराब न हों।
निम्नलिखित Ubuntu server 14.04 LTS पर परीक्षण किया गया था:
git, python और libevent लिब्स, mongodb, redis, और अन्य निर्भरताएँ स्थापित करें
$ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
Git रेपो क्लोन करें:
$ git clone https://github.com/tomchop/malcom.git malcom
अपना virtualenv बनाएँ और इसे सक्रिय करें:
$ cd malcom
$ virtualenv env-malcom
$ source env-malcom/bin/activate
scapy प्राप्त करें और स्थापित करें:
$ cd ..
$ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
$ tar xvzf scapy-latest.tar.gz
$ cd scapy-2.1.0
$ python setup.py install
अभी भी अपने virtualenv से, requirements.txt फ़ाइल से आवश्यक पायथन पैकेज स्थापित करें:
$ cd ../malcom
$ pip install -r requirements.txt
IP भू-स्थान के काम करने के लिए, आपको Maxmind डेटाबेस डाउनलोड करना होगा और फ़ाइल को malcom/Malcom/auxiliary/geoIP निर्देशिका में निकालना होगा। आप निम्नलिखित लिंक से Maxmind का मुफ़्त (और इस प्रकार कमोबेश सटीक) डेटाबेस प्राप्त कर सकते हैं: http://dev.maxmind.com/geoip/geoip2/geolite2/:
$ cd Malcom/auxiliary/geoIP
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
$ gunzip -d GeoLite2-City.mmdb.gz
$ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
वेबसर्वर को malcom निर्देशिका से ./malcom.py का उपयोग करके लॉन्च करें। सुनने के इंटरफ़ेस और पोर्ट के लिए ./malcom.py --help देखें।
malcom.conf.example फ़ाइल को malcom.conf पर कॉपी कर सकते हैं और ./malcom.py -c malcom.conf चला सकते हैंडिफ़ॉल्ट रूप से, Malcom एक स्थानीय mongodb इंस्टेंस से कनेक्ट करने का प्रयास करेगा और अपना स्वयं का डेटाबेस बनाएगा, जिसका नाम malcom होगा। यदि यह आपके लिए ठीक है, तो आप निम्नलिखित चरणों को छोड़ सकते हैं। अन्यथा, आपको अपनी malcom.conf फ़ाइल के database अनुभाग को संपादित करने की आवश्यकता होगी।
डिफ़ॉल्ट रूप से, Malcom malcom नामक डेटाबेस का उपयोग करेगा। आप malcom.conf फ़ाइल को संपादित करके और database अनुभाग से name निर्देश को अपनी पसंद के अनुसार सेट करके इस व्यवहार को बदल सकते हैं।
[database]
...
name = my_malcom_database
...
डिफ़ॉल्ट रूप से, Malcom localhost से कनेक्ट करने का प्रयास करेगा, लेकिन आपका डेटाबेस किसी अन्य सर्वर पर हो सकता है। इसे बदलने के लिए, बस hosts निर्देश सेट करें। आप होस्टनाम या IPv4/v6 पतों का उपयोग कर सकते हैं (बस ध्यान रखें कि अपने IPv6 पतों को [ और ] के बीच संलग्न करें, उदा. [::1])।
यदि आप होस्ट my.mongo.server पर एक स्टैंडअलोन डेटाबेस का उपयोग करना चाहते हैं, तो बस सेट करें:
[database]
...
hosts = my.mongo.server
...
आप अपने सर्वर के नाम/पते के बाद : से अलग करके उस पोर्ट को भी निर्दिष्ट कर सकते हैं जिस पर mongod सुन रहा है:
[database]
...
hosts = localhost:27008
...
और यदि आप my.mongo1.server और my.mongo2.server को पुनर्समूहित करने वाले ReplicaSet का उपयोग कर रहे हैं, तो बस सेट करें:
[database]
...
hosts = my.mongo1.server,my.mongo2.server
...
हो सकता है कि आपने अपने mongod इंस्टेंस को प्रमाणित कनेक्शन लागू करने के लिए कॉन्फ़िगर किया हो। उस स्थिति में, आपको उपयोगकर्ता नाम सेट करना होगा जिसका उपयोग ड्राइवर को अपने mongod इंस्टेंस से कनेक्ट करने के लिए करना होगा। ऐसा करने के लिए, बस malcom.conf फ़ाइल में database अनुभाग में एक username निर्देश जोड़ें। आपको password निर्देश के साथ पासवर्ड भी सेट करना पड़ सकता है। यदि उपयोगकर्ता के पास पासवर्ड नहीं है, तो बस password निर्देश को अनदेखा करें (यानी टिप्पणी करें)।
[database]
...
username = my_user
password = change_me
...
यदि उपयोगकर्ता malcom डेटाबेस से नहीं बल्कि किसी अन्य डेटाबेस से जुड़ा है (उदा. एक व्यवस्थापक उपयोगकर्ता के लिए admin डेटाबेस), तो आपको उस डेटाबेस के नाम के साथ authentication_database निर्देश सेट करना होगा।
[database]
...
authentication_database = some_other_database
...
रेप्लिका सेट का उपयोग करते समय, आपको यह सुनिश्चित करने की आवश्यकता हो सकती है कि आप सही से जुड़े हैं। इसके लिए, बस mongo ड्राइवर को रेप्लिकासेट के नाम की जाँच करने के लिए बाध्य करने के लिए replset निर्देश जोड़ें:
[database]
...
replset = my_mongo_replica
...