
ThePhish: एक स्वचालित फ़िशिंग ईमेल विश्लेषण उपकरण
ThePhish एक स्वचालित फ़िशिंग ईमेल विश्लेषण उपकरण है जो TheHive, Cortex और MISP पर आधारित है। यह Python 3 में लिखा गया एक वेब एप्लिकेशन है और Flask पर आधारित है जो ईमेल के हेडर और बॉडी से ऑब्ज़र्वेबल्स निकालने से लेकर एक निर्णय (verdict) तैयार करने तक की पूरी विश्लेषण प्रक्रिया को स्वचालित करता है, जो अधिकांश मामलों में अंतिम होता है। इसके अलावा, यह विश्लेषक को विश्लेषण प्रक्रिया में हस्तक्षेप करने और आवश्यकता पड़ने पर विश्लेषित किए जा रहे ईमेल के बारे में और अधिक विवरण प्राप्त करने की अनुमति देता है। TheHive और Cortex के साथ संवाद करने के लिए, यह TheHive4py और Cortex4py का उपयोग करता है, जो Python API क्लाइंट हैं जो क्रमशः TheHive और Cortex द्वारा उपलब्ध कराए गए REST APIs का उपयोग करने की अनुमति देते हैं।
निम्नलिखित आरेख दिखाता है कि ThePhish उच्च-स्तर पर कैसे काम करता है:
इस उदाहरण का उद्देश्य यह प्रदर्शित करना है कि कैसे एक उपयोगकर्ता ThePhish को विश्लेषण के लिए एक ईमेल भेज सकता है और कैसे एक विश्लेषक ThePhish का उपयोग करके उस ईमेल का वास्तव में विश्लेषण कर सकता है।
एक उपयोगकर्ता ThePhish द्वारा ईमेल प्राप्त करने के लिए उपयोग किए जाने वाले ईमेल पते पर एक ईमेल भेज सकता है। ईमेल को EML प्रारूप में एक अनुलग्नक के रूप में अग्रेषित किया जाना चाहिए ताकि ईमेल हेडर के संदूषण को रोका जा सके। इस मामले में, उपयोग किया गया मेल क्लाइंट Mozilla Thunderbird है और उपयोग किया गया ईमेल पता एक Gmail पता है।
विश्लेषक ThePhish के वेब पेज पर जाता है और विश्लेषण करने के लिए ईमेल की सूची प्राप्त करने के लिए "List emails" बटन पर क्लिक करता है।
जब विश्लेषक चयनित ईमेल से संबंधित "Analyze" बटन पर क्लिक करता है, तो विश्लेषण शुरू हो जाता है और इसकी प्रगति वेब इंटरफ़ेस पर दिखाई जाती है।
इस बीच, ThePhish ईमेल से ऑब्ज़र्वेबल्स (URL, डोमेन, IP पते, ईमेल पते, अनुलग्नक और उन अनुलग्नकों के हैश) निकालता है और फिर केस बनाने के लिए TheHive के साथ बातचीत करता है।
केस के अंदर तीन कार्य बनाए जाते हैं।
फिर, ThePhish निकाले गए ऑब्ज़र्वेबल्स को केस में जोड़ना शुरू करता है।
इस बिंदु पर उपयोगकर्ता को Mailer रिस्पॉन्डर की बदौलत ईमेल के माध्यम से सूचित किया जाता है कि विश्लेषण शुरू हो गया है।
पहले कार्य का विवरण Mailer रिस्पॉन्डर को ईमेल के माध्यम से सूचना भेजने की अनुमति देता है।
पहले कार्य के बंद होने के बाद, दूसरा कार्य शुरू होता है और ऑब्ज़र्वेबल्स पर एनालाइज़र शुरू किए जाते हैं। वेब इंटरफ़ेस पर विश्लेषण की प्रगति दिखाई जाती है जबकि एनालाइज़र शुरू किए जाते हैं।
विश्लेषण की प्रगति को TheHive पर भी देखा जा सकता है, इसकी लाइव स्ट्रीम की बदौलत।
एक बार जब सभी एनालाइज़र अपना निष्पादन समाप्त कर लेते हैं, तो दूसरा कार्य बंद हो जाता है और तीसरा शुरू होता है, फिर ThePhish निर्णय की गणना करता है। चूँकि निर्णय "malicious" है, सभी ऑब्ज़र्वेबल्स जो दुर्भावनापूर्ण पाए जाते हैं, उन्हें IoC के रूप में चिह्नित किया जाता है। इस मामले में केवल एक ऑब्ज़र्वेबल को IoC के रूप में चिह्नित किया गया है।
केस को फिर एक घटना के रूप में MISP में निर्यात किया जाता है, जिसमें ऊपर उल्लिखित ऑब्ज़र्वेबल द्वारा प्रतिनिधित्व की गई एकल विशेषता होती है।
फिर, ThePhish Mailer रिस्पॉन्डर की बदौलत ईमेल के माध्यम से उपयोगकर्ता को निर्णय भेजता है।
अंत में, कार्य और केस दोनों बंद हो जाते हैं। तीसरे कार्य का विवरण Mailer रिस्पॉन्डर को ईमेल के माध्यम से निर्णय भेजने की अनुमति देता है। इसके अलावा, पाँच मिनट के बाद केस बंद कर दिया गया है और "True Positive" के रूप में "No Impact" के साथ हल किया गया है, जिसका अर्थ है कि हमले का पता लगने से पहले ही इसे रोक दिया गया था।
केस बंद होने के बाद, विश्लेषक के लिए वेब इंटरफ़ेस पर पूरे विश्लेषण प्रगति लॉग के साथ निर्णय उपलब्ध होता है।
इस बिंदु पर विश्लेषक वापस जा सकता है और दूसरे ईमेल का विश्लेषण कर सकता है। ऊपर दर्शाया गया मामला एक फ़िशिंग ईमेल से संबंधित था, लेकिन एक समान कार्यप्रवाह तब देखा जा सकता है जब विश्लेषित ईमेल को "safe" के रूप में वर्गीकृत किया जाता है। वास्तव में, केस बंद हो जाता है और निर्णय ईमेल के माध्यम से उपयोगकर्ता को भेजा जाता है।
फिर, निर्णय विश्लेषक को वेब इंटरफ़ेस पर भी प्रदर्शित किया जाता है।
दूसरी ओर, जब एक ईमेल को "suspicious" के रूप में वर्गीकृत किया जाता है, तो निर्णय केवल विश्लेषक को वेब इंटरफ़ेस पर प्रदर्शित किया जाता है।
इस बिंदु पर विश्लेषक को आगे के विश्लेषण के लिए TheHive, Cortex और MISP का उपयोग करने के लिए पृष्ठ के बाईं ओर के बटनों का उपयोग करने की आवश्यकता होती है। ऐसा इसलिए है क्योंकि विश्लेषण अभी तक पूरा नहीं हुआ है और इसलिए उपयोगकर्ता को केवल यह सूचित किया जाता है कि उसने ThePhish को जो ईमेल अग्रेषित किया था, उसका विश्लेषण शुरू हो गया है। वास्तव में, अंतिम कार्य और केस अभी तक बंद नहीं हुए हैं क्योंकि विश्लेषक द्वारा स्वयं एक अंतिम निर्णय तैयार करने के बाद उन्हें बंद करने की आवश्यकता है।
विश्लेषक TheHive और Cortex पर सभी एनालाइज़र की रिपोर्ट देख सकता है और, यदि यह पर्याप्त नहीं पाया जाता है, तो वह ईमेल की EML फ़ाइल डाउनलोड करके मैन्युअल रूप से इसका विश्लेषण भी कर सकता है।
जब विश्लेषक विश्लेषण समाप्त करता है, तो वह अंतिम कार्य के विवरण में उपयोगकर्ता को भेजे जाने वाले ईमेल के मुख्य भाग को भर सकता है, Mailer रिस्पॉन्डर शुरू कर सकता है, यदि निर्णय "malicious" है तो "Export" बटन पर क्लिक करके केस को MISP में निर्यात कर सकता है और फिर केस को बंद कर सकता है।
ThePhish Python 3 में लिखा गया एक वेब एप्लिकेशन है। वेब सर्वर Flask का उपयोग करके कार्यान्वित किया गया है, जबकि एप्लिकेशन का फ्रंट-एंड भाग, जो HTML, CSS और JavaScript में लिखा गया गतिशील पृष्ठ है, Bootstrap का उपयोग करके कार्यान्वित किया गया है। वेब सर्वर मॉड्यूल के अलावा, एप्लिकेशन का बैक-एंड लॉजिक तीन Python मॉड्यूल द्वारा गठित होता है जो एप्लिकेशन के तर्क को समाहित करते हैं और एक Python वर्ग जो WebSocket प्रोटोकॉल के माध्यम से लॉगिंग सुविधा का समर्थन करने के लिए उपयोग किया जाता है। यदि आप एप्लिकेशन तर्क का एक ग्राफिकल प्रतिनिधित्व देखना चाहते हैं, तो यहाँ क्लिक करें। इसके अलावा, उपरोक्त मॉड्यूल द्वारा उपयोग की जाने वाली कई कॉन्फ़िगरेशन फ़ाइलें हैं जो विभिन्न उद्देश्यों की पूर्ति करती हैं।
जब विश्लेषक एप्लिकेशन के बेस URL पर नेविगेट करता है, तो ThePhish का वेब पेज लोड होता है और सर्वर के साथ एक द्विदिश कनेक्शन स्थापित होता है। यह वेब पेज में Socket.IO JavaScript लाइब्रेरी का उपयोग करके किया जाता है जो ब्राउज़र और सर्वर के बीच रीयल-टाइम, द्विदिश और ईवेंट-आधारित संचार को सक्षम बनाती है। यह कनेक्शन जब भी संभव हो WebSocket कनेक्शन के साथ स्थापित किया जाता है और पिछड़े संगतता के लिए HTTP लॉन्ग पोलिंग का उपयोग करेगा। इसके लिए काम करने के लिए, सर्वर एप्लिकेशन Flask-SocketIO Python लाइब्रेरी का उपयोग करता है, जो Flask एप्लिकेशन के लिए Socket.IO एकीकरण प्रदान करती है। इस कनेक्शन का उपयोग तब ThePhish द्वारा वेब इंटरफ़ेस पर विश्लेषण की प्रगति प्रदर्शित करने के लिए किया जाता है।
हर बार जब विश्लेषक वेब इंटरफ़ेस पर कोई कार्रवाई करता है, तो सर्वर को एक AJAX अनुरोध भेजा जाता है, जो एक अतुल्यकालिक HTTP अनुरोध है जो पृष्ठभूमि में सर्वर के साथ डेटा का आदान-प्रदान करने और पृष्ठ को पुनः लोड किए बिना अपडेट करने की अनुमति देता है। यह विश्लेषक को विश्लेषण करने के लिए ईमेल की सूची देखने और विश्लेषण शुरू करने दोनों की अनुमति देता है।
ThePhish TheHive4py और Cortex4py की बदौलत TheHive और Cortex के साथ बातचीत करता है। इसके अलावा, यह विश्लेषण करने के लिए ईमेल प्राप्त करने के लिए एक IMAP सर्वर के साथ बातचीत करता है।
चूँकि प्रोडक्शन वातावरण के लिए TheHive, Cortex और MISP सेवाओं की स्थापना और कॉन्फ़िगरेशन शुरू से बहुत सीधा नहीं हो सकता है, TheHive Project स्थापना प्रक्रिया को सुविधाजनक बनाने के लिए यहाँ Docker इमेज और Docker Compose टेम्पलेट प्रदान करता है। सादगी के लिए, प्रदान किए गए टेम्पलेट सरल बनाए गए हैं, प्रत्येक Docker इमेज के पूर्ण कॉन्फ़िगरेशन विकल्प प्रदान किए बिना।
यदि आप केवल ThePhish आज़माना चाहते हैं या इसे जल्द से जल्द चालू और चलाना चाहते हैं, तो आप docker फ़ोल्डर में दिए गए Docker Template का उपयोग कर सकते हैं, जो TheHive Project द्वारा प्रदान किए गए Docker Templates में से एक का संशोधित संस्करण है जो एक ThePhish कंटेनर बनाने की भी अनुमति देता है। Docker और Docker Compose का उपयोग करके ThePhish स्थापित करने के लिए, कृपया इस गाइड को देखें। मैं दृढ़ता से अनुशंसा करता हूं कि आप इसे कम से कम पहली बार उपयोग करते समय इस तरह से स्थापित करें ताकि आप मूल बातें सीख सकें और इसे न्यूनतम कॉन्फ़िगरेशन के साथ कैसे कॉन्फ़िगर करें जो पहले प्रयास में काम करना चाहिए। वास्तव में, पहले से लिंक की गई गाइड TheHive, Cortex और MISP इंस्टेंस को कॉन्फ़िगर करने के लिए एक चरण-दर-चरण प्रक्रिया भी प्रदान करती है।
यह गाइड केवल ThePhish की स्थापना को संदर्भित करता है, जिसके लिए आवश्यक है:
TheHive, Cortex और MISP इंस्टेंस को स्थापित करने, कॉन्फ़िगर करने और एकीकृत करने के लिए, कृपया उनके आधिकारिक दस्तावेज़ देखें:
यह सलाह दी जाती है कि जिस ईमेल पते से ThePhish ईमेल प्राप्त करता है, वह Gmail पता हो क्योंकि यह वह है जिसके साथ ThePhish का सबसे अधिक परीक्षण किया गया है। यह बेहतर है कि खाता नव निर्मित हो, जिसका एकमात्र उद्देश्य ThePhish द्वारा उपयोग किया जाना हो। ThePhish द्वारा मेलबॉक्स से कनेक्ट होने और ईमेल प्राप्त करने के लिए आवश्यक ऐप पासवर्ड को सक्रिय करने की प्रक्रिया यहाँ समझाई गई है।
यह स्थापना प्रक्रिया Ubuntu 20.04.3 LTS पर Python 3.8 स्थापित और इस docker-compose.yml फ़ाइल में दिखाए गए TheHive, Cortex और MISP के संस्करणों के साथ एक VM पर परीक्षण की गई है।
एक बार जब TheHive, Cortex और MISP कॉन्फ़िगर हो जाते हैं और एक निश्चित URL पर सुन रहे होते हैं और ईमेल पता उपयोग के लिए तैयार होता है, तो आप ThePhish स्थापित और कॉन्फ़िगर कर सकते हैं।
रिपॉजिटरी को क्लोन करें
$ git clone https://github.com/emalderson/ThePhish.git
एक Python वर्चुअल वातावरण बनाएँ और इसे सक्रिय करें (यह अच्छा अभ्यास है लेकिन आवश्यक नहीं है)
$ cd ThePhish/app
$ sudo apt install python3-venv
$ python3 -m venv venv
$ source venv/bin/activate
आवश्यकताएँ स्थापित करें
$ pip install -r requirements.txt
TheHive4py की api.py फ़ाइल में run_responder() फ़ंक्शन जोड़ें
उपयोगकर्ता को ईमेल भेजने के लिए, ThePhish Mailer रिस्पॉन्डर का उपयोग करता है। चूँकि ThePhish TheHive के साथ बातचीत करने के लिए TheHive4py का उपयोग करता है, एक फ़ंक्शन की आवश्यकता होती है जो इसके ID द्वारा एक रिस्पॉन्डर चलाने की अनुमति देता है। दुर्भाग्य से, यह फ़ंक्शन अभी तक TheHive4py का हिस्सा नहीं है, लेकिन इसे TheHive4py (#219) में जोड़ने के लिए एक पुल रिक्वेस्ट की गई है। इसके जोड़े जाने की प्रतीक्षा करते समय, ThePhish के ठीक से काम करने के लिए इसे निम्नलिखित कमांड का उपयोग करके मैन्युअल रूप से जोड़ा जाना चाहिए (यदि आप Python के किसी भिन्न संस्करण का उपयोग करते हैं तो कमांड में Python के संस्करण को बदलें):
$ (cat << _EOF_
def run_responder(self, responder_id, object_type, object_id):
req = self.url + "/api/connector/cortex/action"
try:
data = json.dumps({ "responderId": responder_id, "objectType": object_type, "objectId": object_id})
return requests.post(req, headers={"Content-Type": "application/json"}, data=data, proxies=self.proxies, auth=self.auth, verify=self.cert)
except requests.exceptions.RequestException as e:
raise TheHiveException("Responder run error: {}".format(e))
_EOF_
) | tee -a venv/lib/python3.8/site-packages/thehive4py/api.py > /dev/null
<ul class="navbar-nav text-light" id="accordionSidebar">
<li class="nav-item"><a class="nav-link active" href="/" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/logo_rounded.png" style="margin-top: 0px;margin-left: 0px;"></a></li>
<li class="nav-item"><a class="nav-link" href="http://thehive:9000" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/thehive.png" style="margin-right: 0px;margin-left: 0px;"></a></li>
<li class="nav-item"><a class="nav-link" href="http://cortex:9001" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/cortex.png" style="transform: translate(0px);"></a></li>
<li class="nav-item"><a class="nav-link" href="https://misp" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/misp.png" style="transform: translate(0px);"></a></li>
</ul>
$ python3 thephish_app.py
एप्लिकेशन चलाने के लिए उपयोग किया जाने वाला सर्वर eventlet द्वारा प्रदान किया गया WSGI सर्वर है, क्योंकि यह आवश्यकताओं में सूचीबद्ध है। यह WebSocket प्रोटोकॉल को काम करने और HTTP लॉन्ग पोलिंग पर वापस गिरने से बचने के लिए आवश्यक है। eventlet के बिना, डिफ़ॉल्ट Flask WSGI सर्वर (Werkzeug) का उपयोग किया जाएगा। यदि आप किसी अन्य WSGI सर्वर (जैसे Gunicorn) का उपयोग करना चाहते हैं या रिवर्स प्रॉक्सी (जैसे NGINX) का उपयोग करना चाहते हैं, तो Flask-SocketIO दस्तावेज़ीकरण बताता है कि यह कैसे किया जाए।
अब एप्लिकेशन http://localhost:8080 पर पहुंच योग्य होना चाहिए।
⚠️ चेतावनी: यदि आप ThePhish का उपयोग करने के लिए Mozilla Firefox का उपयोग कर रहे हैं और किसी कारणवश विश्लेषण के दौरान कोई त्रुटि संदेश दिखाई देता है, तो समाधान यहां पाया जा सकता है।
ThePhish एक विश्लेषक या प्रतिक्रियाकर्ता तभी शुरू कर सकता है जब वह Cortex पर सक्षम और सही ढंग से कॉन्फ़िगर किया गया हो। यह दस्तावेज़ीकरण का भाग बताता है कि उन्हें कैसे सक्षम किया जाए, जबकि यह भाग उपलब्ध विश्लेषकों और प्रतिक्रियाकर्ताओं को उनके कॉन्फ़िगरेशन पैरामीटर के साथ सूचीबद्ध करता है। यह ध्यान दिया जाना चाहिए कि जबकि कई विश्लेषक मुफ्त में उपयोग करने योग्य हैं, कुछ को विशेष पहुंच की आवश्यकता होती है और अन्य को एक वैध सेवा सदस्यता या उत्पाद लाइसेंस की आवश्यकता होती है।
प्रत्येक विश्लेषक JSON प्रारूप में एक रिपोर्ट आउटपुट करता है जिसमें एक अवलोकनीय के लिए एक दुर्भावनापूर्णता स्तर होता है जो "info", "safe", "suspicious" या "malicious" में से एक हो सकता है। हालांकि, रिपोर्ट संरचना आमतौर पर एक परंपरा का पालन करती है, यह परंपरा हमेशा सम्मानित नहीं की जाती है। इसके अलावा, कई विश्लेषकों के कोड के विश्लेषण और कई परीक्षणों के बाद, कुछ विश्लेषकों में बग पाए गए हैं। इस कारण से, कुछ समायोजन और कार्य-चालों का उपयोग किया गया है या तो इन विश्लेषकों द्वारा प्रदान किए गए दुर्भावनापूर्णता स्तरों को प्राप्त करने के लिए या उन बगों के कारण एप्लिकेशन को क्रैश होने से रोकने के लिए।
इसके अलावा, ये स्तर हमेशा किसी अवलोकनीय के वास्तविक दुर्भावनापूर्णता स्तर का प्रतिनिधित्व नहीं करते हैं। चूंकि यह इस बात पर निर्भर करता है कि विश्लेषकों को स्वयं कैसे प्रोग्राम किया गया है, ThePhish एक और कॉन्फ़िगरेशन फ़ाइल के साथ आता है जिसे analyzers_level_conf.json कहा जाता है, जिसके साथ किसी भी विश्लेषक द्वारा प्रदान किए गए वास्तविक दुर्भावनापूर्णता स्तरों और विश्लेषक द्वारा तय किए गए स्तरों के बीच मैपिंग बनाना संभव है। इसके अलावा, यह फ़ाइल विश्लेषक को यह चुनने की अनुमति देती है कि ये संशोधन किन अवलोकनीय प्रकारों पर लागू किए जाने चाहिए। फ़ाइल को यहां दिखाए गए उदाहरण में दिखाई गई संरचना का पालन करने की आवश्यकता है, कॉन्फ़िगर करने के लिए विश्लेषकों के सटीक नाम का उपयोग करते हुए और दाईं ओर वांछित स्तर के साथ। यदि कोई विश्लेषक इस फ़ाइल में सूचीबद्ध नहीं है, तो उसके द्वारा प्रदान किए गए दुर्भावनापूर्णता स्तरों को अछूता छोड़ दिया जाता है। फ़ाइल को निम्नलिखित उदाहरण में दिखाई गई संरचना का पालन करने की आवश्यकता है, कॉन्फ़िगर करने के लिए विश्लेषकों के सटीक नाम का उपयोग करते हुए और दाईं ओर वांछित स्तर के साथ। यदि कोई विश्लेषक इस फ़ाइल में सूचीबद्ध नहीं है, तो उसके द्वारा प्रदान किए गए दुर्भावनापूर्णता स्तरों को अछूता छोड़ दिया जाता है।```json
{
"DomainMailSPFDMARC_Analyzer_1_1" : {
"dataType" : ["url", "ip", "domain", "mail"],
"levelMapping" : {
"malicious" : "suspicious",
"suspicious" : "suspicious",
"safe" : "safe",
"info" : "info"
}
},
"MISP_2_1" : {
"dataType" : ["url", "ip", "domain", "mail"],
"levelMapping" : {
"malicious" : "malicious",
"suspicious" : "malicious",
"safe" : "safe",
"info" : "info"
}
}
}
इस उदाहरण में, *MISP_2_1* विश्लेषक के लिए 'suspicious' स्तर को 'malicious' में बढ़ा दिया गया है, क्योंकि यह इंगित करता है कि वर्तमान में विश्लेषण किए जा रहे ईमेल में कुछ अवलोकनीय तत्व पहले से विश्लेषित एक ईमेल में देखे गए हैं, जिसका निर्णय 'malicious' था। इसके विपरीत, *DomainMailSPFDMARC_Analyzer_1_1* विश्लेषक का 'malicious' स्तर 'suspicious' में घटा दिया गया है, क्योंकि कई वैध डोमेन में DMARC और SPF रिकॉर्ड कॉन्फ़िगर नहीं होते हैं।
आप इस फ़ाइल में अपनी इच्छानुसार विश्लेषक जोड़ या हटा सकते हैं, लेकिन मैं सुझाव देता हूं कि आप उन विश्लेषकों को न छुएं जो पहले से फ़ाइल में मौजूद हैं, क्योंकि उन संशोधनों को कई अलग-अलग ईमेलों पर किए गए अनेक परीक्षणों द्वारा प्रेरित किया गया है।
### परीक्षित विश्लेषक
ThePhish का निम्नलिखित विश्लेषकों के साथ परीक्षण किया गया है:
- AbuseIPDB_1_0
- AnyRun_Sandbox_Analysis_1_0
- CyberCrime-Tracker_1_0
- Cyberprotect_ThreatScore_3_0
- *DomainMailSPFDMARC_Analyzer_1_1*
- DShield_lookup_1_0
- EmailRep_1_0
- FileInfo_8_0
- Fortiguard_URLCategory_2_1
- IPinfo_Details_1_0
- **IPVoid_1_0**
- KasperskyThreatIntelligencePortal_1_0
- Maltiverse_Report_1_0
- *Malwares_GetReport_1_0*
- *Malwares_Scan_1_0*
- MaxMind_GeoIP_4_0
- MetaDefenderCloud_GetReport_1_0
- *MISP_2_1*
- NERD_1_0
- *Onyphe_Summary_1_0*
- OTXQuery_2_0
- PassiveTotal_Enrichment_2_0
- *PassiveTotal_Malware_2_0*
- PassiveTotal_Osint_2_0
- PassiveTotal_Ssl_Certificate_Details_2_0
- PassiveTotal_Ssl_Certificate_History_2_0
- PassiveTotal_Unique_Resolutions_2_0
- PassiveTotal_Whois_Details_2_0
- PhishTank_CheckURL_2_1
- **Pulsedive_GetIndicator_1_0**
- *Robtex_Forward_PDNS_Query_1_0*
- *Robtex_IP_Query_1_0*
- *Robtex_Reverse_PDNS_Query_1_0*
- Shodan_DNSResolve_1_0
- **Shodan_Host_1_0**
- **Shodan_Host_History_1_0**
- Shodan_InfoDomain_1_0
- **SpamhausDBL_1_0**
- StopForumSpam_1_0
- *Threatcrowd_1_0*
- UnshortenLink_1_2
- **URLhaus_2_0**
- Urlscan_io_Scan_0_1_0
- *Urlscan_io_Search_0_1_1*
- VirusTotal_GetReport_3_1
- VirusTotal_Scan_3_1
- Yara_2_0
*इटैलिक* में जोर दिए गए विश्लेषक वे हैं जिनके स्तरों को संशोधित किया गया है (लेकिन उन्हें ओवरराइड किया जा सकता है, भले ही यह सलाह न दी जाए), जबकि **बोल्ड** में जोर दिए गए विश्लेषक वे हैं जिन्हें सीधे ThePhish के कोड में संभाला जाता है या तो क्योंकि वे रिपोर्ट संरचना के लिए सम्मेलन का पालन नहीं करते हैं, या क्योंकि उनमें बग हैं। इसके अलावा, निम्नलिखित विश्लेषकों को ThePhish के कोड में सर्वोत्तम संभव तरीके से उपयोग करने के लिए संभाला जाता है:
- **DomainMailSPFDMARC_Analyzer_1_1**: यह केवल उन डोमेन पर शुरू किया जाता है जिनके बारे में माना जाता है कि वे ईमेल भेज सकते हैं।
- **MISP_2_1**: इसका उपयोग MISP के साथ एकीकरण के लिए किया जाता है।
- **UnshortenLink_1_2**: इसे URL पर किसी अन्य विश्लेषक से पहले शुरू किया जाता है ताकि लिंक को अनशॉर्टन करना और अनशॉर्टन किए गए लिंक को एक अतिरिक्त अवलोकनीय तत्व के रूप में जोड़ना संभव हो सके।
- **Yara_2_0**: यह एकमात्र ऐसा है जो EML अटैचमेंट पर शुरू किया जाता है।
### *MISP* विश्लेषक को सक्षम करें
Cortex को MISP के साथ एकीकृत करने के लिए, आपको *MISP_2_1* विश्लेषक को सक्रिय करना होगा और इसे MISP पर बनाए गए उपयोगकर्ता के प्रमाणीकरण कुंजी से कॉन्फ़िगर करना होगा, जिसका उपयोग Cortex MISP के साथ इंटरैक्ट करने के लिए करेगा। इसका मतलब है कि MISP पर पहले से एक संगठन और उस संगठन में `sync_user` भूमिका वाला एक उपयोगकर्ता बनाया जाना चाहिए (आप यह सीख सकते हैं कि यह कैसे करें और प्रमाणीकरण कुंजी [यहां (ThePhish दस्तावेज़ीकरण, अनुशंसित)](https://github.com/emalderson/ThePhish/tree/master/docker#configure-the-misp-container) या [यहां (MISP दस्तावेज़ीकरण)](https://www.circl.lu/doc/misp/administration/#users) प्राप्त करें।
### *Yara* विश्लेषक को सक्षम करें
यदि आप *Yara_2_0* विश्लेषक का उपयोग करना चाहते हैं, तो आपको उस मशीन पर एक फ़ोल्डर बनाना होगा जिस पर Cortex चल रहा है, जिसमें शामिल हो:
- Yara नियम, जहां प्रत्येक नियम `.yar` एक्सटेंशन वाली एक फ़ाइल है
- एक फ़ाइल जिसका नाम `index.yar` है, जिसमें उस फ़ोल्डर में प्रत्येक Yara नियम के लिए एक पंक्ति होती है जो इस सिंटैक्स का पालन करती है: `include "yara_rule_name.yar"`
फिर, आपको Cortex पर इस फ़ोल्डर का पथ कॉन्फ़िगर करना होगा। उदाहरण के लिए, यदि आपने `/opt/cortex` पथ में `yara_rules` फ़ोल्डर बनाया है, तो आपको Cortex पर (वेब इंटरफ़ेस पर) पथ `/opt/cortex/yara_rules` कॉन्फ़िगर करना होगा।
## *Mailer* प्रतिसादक को सक्षम करें
उपयोगकर्ताओं को ईमेल भेजने के लिए, *Mailer* प्रतिसादक को सक्षम और सही ढंग से कॉन्फ़िगर किया जाना चाहिए। प्रतिसादक को सक्षम करने की प्रक्रिया विश्लेषक को सक्षम करने की प्रक्रिया के समान है। यदि आप Gmail पते का उपयोग कर रहे हैं, तो ये सही पैरामीटर हैं:
- from: `<YourGmailEmailAddress>`
- smtp_host :`smtp.gmail.com`
- smtp_port: `587`
- smtp_user: `<YourGmailEmailAddress>`
- smtp_pwd: `<YourGmailEmailAddressAppPassword>`
## व्हाइटलिस्ट का उपयोग करें
ThePhish एक व्हाइटलिस्ट बनाने की अनुमति देता है ताकि उन अवलोकनीय तत्वों के विश्लेषण से बचा जा सके जो गलत सकारात्मक परिणाम उत्पन्न कर सकते हैं या जिन्हें विश्लेषक यह निर्णय लेता है कि विश्लेषण के दौरान उन पर विचार नहीं किया जाना चाहिए। व्हाइटलिस्ट `whitelist.json` नामक फ़ाइल में निहित है और कई अलग-अलग सूचियों से बनी है ताकि मिलान करने के लिए अवलोकनीय तत्व प्रकारों और मिलान मोड दोनों के संदर्भ में महान लचीलापन प्रदान किया जा सके। यह निम्नलिखित मिलान मोड का समर्थन करता है:
- ईमेल पतों, IP पतों, URL, डोमेन, फ़ाइल नामों, फ़ाइल प्रकारों और हैश के लिए सटीक स्ट्रिंग मिलान
- ईमेल पतों, IP पतों, URL, डोमेन और फ़ाइल नामों के लिए रेगेक्स मिलान
- उपडोमेन, ईमेल पतों और URL के लिए रेगेक्स मिलान जिनमें निर्दिष्ट डोमेन शामिल हैं
यहां `whitelist.json` फ़ाइल का एक सरल उदाहरण दिखाया गया है।```json
{
"exactMatching": {
"mail" : [],
"ip" : [
"127.0.0.1",
"8.8.8.8",
"8.8.4.4"
],
"url" : [],
"domain" : [
"adf.ly",
"paypal.com"
],
"filename" : [],
"filetype" : [
"application/pdf"
],
"hash" : []
},
"domainsInSubdomains" : [
"paypal.com"
],
"domainsInURLs" : [
"paypal.com"
],
"domainsInEmails" : [
"paypal.com"
],
"regexMatching" : {
"mail" : [],
"ip" : [
"10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
"172\\.16\\.\\d{1,3}\\.\\d{1,3}",
"192\\.168\\.\\d{1,3}\\.\\d{1,3}"
],
"url" : [],
"domain" : [],
"filename" : []
}
}
जबकि सटीक मिलान और regex मिलान से संबंधित दोनों भागों का उपयोग बिना किसी संशोधन के किया जाता है, शेष भागों का उपयोग नियमित अभिव्यक्तियों की तीन और सूचियाँ बनाने के लिए किया जाता है। आपके लिए उन सुविधाओं को सक्षम करने के लिए जटिल नियमित अभिव्यक्तियाँ डिज़ाइन करना आवश्यक नहीं है, बल्कि आपको केवल सही सूचियों में डोमेन जोड़ने की आवश्यकता है और ThePhish बाकी काम कर देगा। उदाहरण के लिए, ऊपर दिखाए गए उदाहरण में, केवल डोमेन "paypal.com" ही फ़िल्टर नहीं किया जाता, बल्कि कोई भी सबडोमेन, URL और ईमेल पता जिसमें डोमेन "paypal.com" शामिल है, भी फ़िल्टर किया जाता है। इन नियमित अभिव्यक्तियों को कुछ अवांछित व्यवहारों से बचने के लिए डिज़ाइन किया गया है, उदाहरण के लिए वे "paypal.com.attacker.com" जैसे डोमेन को गलती से व्हाइटलिस्ट होने से रोकते हैं।
नोट: यदि आप "domainsInSubdomains" के अंतर्गत कोई डोमेन जोड़ते हैं, तो वह डोमेन स्वयं भी फ़िल्टर हो जाएगा। इसलिए, उसी डोमेन को "exactMatching" के अंतर्गत डोमेन की सूची में जोड़ना अनावश्यक है। यह अंतर उन मामलों के लिए किया गया है जहाँ केवल डोमेन को व्हाइटलिस्ट करने की आवश्यकता है, न कि उसके सबडोमेन को। इस प्रकार, इस उदाहरण में, "paypal.com" को दोनों सूचियों में शामिल करना अनावश्यक है।
इस रिपॉजिटरी में प्रदान की गई व्हाइटलिस्ट फ़ाइल पहले से कुछ व्हाइटलिस्टेड ऑब्जर्वेबल्स से भरी हुई है, लेकिन यह केवल एक उदाहरण है, आप तत्वों को हटाकर या जोड़कर इसे अपनी आवश्यकताओं के अनुसार संपादित कर सकते हैं (और करना चाहिए)।
ThePhish TheHive की एक बेहतरीन सुविधा का उपयोग करता है जो किसी केस को MISP में एक इवेंट के रूप में निर्यात करने की संभावना प्रदान करती है। यह MISP_2_1 विश्लेषक का उपयोग करके किसी केस में किसी ऑब्जर्वेबल और MISP पर उन इवेंट्स में से किसी एक एट्रीब्यूट के बीच मिलान खोजना संभव बनाता है। दुर्भाग्य से, ThePhish के प्रारंभिक विकास चरणों के दौरान, Python में API के माध्यम से ऐसा करने की अनुमति देने वाला एक फ़ंक्शन TheHive4py में अभी तक उपलब्ध नहीं था। इस कारण से, ऐसी कार्यक्षमता जोड़ने के लिए TheHive4py में एक पुल रिक्वेस्ट (#187) की गई थी। पुल रिक्वेस्ट स्वीकार कर ली गई है और export_to_misp() फ़ंक्शन को TheHive4py के 1.8.0 माइलस्टोन में जोड़ दिया गया है।
ThePhish Cortex द्वारा प्रदान किए गए विश्लेषकों पर बहुत अधिक निर्भर करता है। यह सुनिश्चित करने के लिए कि वे अपेक्षित रूप से कार्य करते रहें, उन्हें रखने वाले रिपॉजिटरी में पुल रिक्वेस्ट की जाती हैं। यहाँ ऐसे पुल रिक्वेस्ट की अद्यतन सूची दी गई है:
ThePhish एक ओपन-सोर्स और मुफ्त सॉफ्टवेयर है जिसे AGPL (Affero General Public License) के तहत जारी किया गया है।
यह परियोजना 2020 में शुरू हुई और इसका एक प्रारंभिक और अधूरा संस्करण नेपल्स विश्वविद्यालय फेडेरिको द्वितीय द्वारा आयोजित Cybersecurity HackAdemy में स्नातक के लिए मेरे अंतिम कार्य के रूप में प्रस्तुत किया गया था। इसके लिए, मैं प्रारंभिक विचार के लिए रॉबर्टो सेलेट्टी और मेरी टीम का धन्यवाद करना चाहूंगा, जिसमें gianpor, MrFelpon और xdinax शामिल थे, जिन्होंने प्रारंभिक परिनियोजन और पहले परीक्षणों के साथ आवेदन के विकास के शुरुआती चरणों में मेरी मदद की।
फिर मैंने कार्यक्षमता, लोगो और UI के संदर्भ में टूल को पूरी तरह से पुन: डिज़ाइन किया, Docker के लिए समर्थन जोड़ा, और 2021 में नेपल्स विश्वविद्यालय फेडेरिको द्वितीय में कंप्यूटर इंजीनियरिंग में अपनी मास्टर डिग्री के लिए अंतिम थीसिस के रूप में प्रस्तुत करने के लिए एक विस्तृत दस्तावेज़ीकरण लिखा, जिसमें पर्यवेक्षक साइमन पिएत्रो रोमानो (spromano) थे।
मैं ज़ेवियर मर्टेंस (xme) को भी धन्यवाद देना चाहूंगा, जिन्होंने IMAP2TheHive विकसित किया और इसे GitHub पर प्रकाशित किया, क्योंकि यह वह प्रारंभिक चिंगारी थी जिसने इस परियोजना के विकास को जन्म दिया और जिससे ThePhish के कोड ने प्रेरणा ली।
कॉन्फ़िगरेशन
फ़ाइल configuration.json वैश्विक कॉन्फ़िगरेशन फ़ाइल है जो मेलबॉक्स और TheHive, Cortex और MISP के इंस्टेंस से कनेक्शन के लिए पैरामीटर सेट करने की अनुमति देती है। यह TheHive पर बनाए जाने वाले केस से संबंधित पैरामीटर सेट करने की भी अनुमति देती है।
{
"imap" : {
"host" : "imap.gmail.com",
"port" : "993",
"user" : "",
"password" : "",
"folder" : "inbox"
},
"thehive" : {
"url" : "http://thehive:9000",
"apikey" : ""
},
"cortex" : {
"url" : "http://cortex:9001",
"apikey" : "",
"id" : "local"
},
"misp" : {
"id" : "MISP THP"
},
"case" : {
"tlp" : "2",
"pap" : "2",
"tags" : ["email", "ThePhish"]
}
}
आप TheHive पर एक संगठन और उस संगठन में org-admin भूमिका वाला उपयोगकर्ता कैसे बनाएँ और इसकी API कुंजी प्राप्त करें, इसके बारे में यहाँ (ThePhish दस्तावेज़, अनुशंसित) या यहाँ (TheHive दस्तावेज़) जान सकते हैं। इसी तरह, आप Cortex पर एक संगठन और उस संगठन में read, analyze भूमिकाओं वाला उपयोगकर्ता कैसे बनाएँ और इसकी API कुंजी प्राप्त करें, इसके बारे में यहाँ (ThePhish दस्तावेज़, अनुशंसित) या यहाँ (Cortex दस्तावेज़) जान सकते हैं।
इस फ़ाइल में सेट किए गए URL और ID समान होने चाहिए जो TheHive की कॉन्फ़िगरेशन फ़ाइल application.conf में सेट किए गए हैं, जिसमें Cortex से संबंधित एक भाग और MISP से संबंधित एक भाग शामिल है। जिन पैरामीटरों को आपको देखना चाहिए वे दोनों भागों में name और url हैं, जो Cortex और MISP इंस्टेंस के ID और URL के अनुरूप हैं। ID TheHive के वेब इंटरफ़ेस पर About विंडो में भी पाए जा सकते हैं। एक उदाहरण जहाँ Cortex ID स्ट्रिंग local है और MISP ID स्ट्रिंग MISP THP है, निम्नलिखित चित्र में दिखाया गया है:
फ़ाइल application.conf का उपयोग TheHive को Cortex और MISP के साथ एकीकृत करने के लिए किया जाता है। आप Cortex के साथ एकीकरण कैसे सेट करें, इसके बारे में यहाँ (ThePhish दस्तावेज़, अनुशंसित) या यहाँ (TheHive दस्तावेज़) जान सकते हैं, जबकि MISP के साथ एकीकरण के लिए आप यहाँ (ThePhish दस्तावेज़, अनुशंसित) या यहाँ (TheHive दस्तावेज़) जा सकते हैं।TheHive, Cortex और MISP इंस्टेंस तक पहुंचने वाले URL को templates/index.html फ़ाइल में भी बदला जाना चाहिए ताकि वेब इंटरफ़ेस पर बटन उन तक पहुंच सकें। ऐसा करने के लिए, कोड के इस भाग के अंतिम तीन href को बदलें: