
रीयल-टाइम दुर्भावनापूर्ण ट्रैफ़िक पहचान प्रणाली जो सार्वजनिक ब्लैकलिस्ट, स्टैटिक मालवेयर ट्रेल्स और ह्यूरिस्टिक विश्लेषण का उपयोग करके DNS, HTTP और IP ट्रैफ़िक में खतरों की पहचान करती है।

Maltrail एक नेटवर्क ट्रैफ़िक डिटेक्शन सिस्टम है जो ज्ञात दुर्भावनापूर्ण
इन्फ्रास्ट्रक्चर के साथ संचार की पहचान करता है और चयनित ट्रैफ़िक विसंगतियों की रिपोर्ट करता है। यह नेटवर्क पर देखे गए डोमेन, URL, IP पते,
IP:port जोड़े, और User-Agent मानों को trails नामक संकेतकों के एक सेट से मिलाता है।
एक डिटेक्शन को एक एकल इवेंट के रूप में रिकॉर्ड किया जाता है जिसमें स्रोत, गंतव्य, प्रोटोकॉल, मिलान किया गया trail, वर्गीकरण, और trail स्रोत शामिल होते हैं:```text "2026-08-07 09:14:22.117034" gw 10.13.13.2 57809 1.1.1.1 53 UDP DNS malware.bakewithdavid.com "asyncrat (malware)" (static)
Maltrail इंडिकेटर-आधारित नेटवर्क मॉनिटरिंग के लिए डिज़ाइन किया गया है। इसकी ह्यूरिस्टिक डिटेक्शन ट्रेल मैचिंग को पूरक बनाती है, लेकिन यह एंडपॉइंट टेलीमेट्री या सामान्य-उद्देश्य वाले इंट्रूज़न प्रिवेंशन सिस्टम का विकल्प नहीं है।
## विशेषताएँ
- 3,000 से अधिक बंडल किए गए स्टैटिक फ़ाइलों, 42 पब्लिक-फ़ीड इंटीग्रेशन, और वैकल्पिक ऑपरेटर-आपूर्त किए गए ट्रेल्स को मिलाकर एक पूर्ण ट्रेल बिल्ड।
- libpcap का उपयोग करने वाला एक मल्टीथ्रेडेड Rust सेंसर, वैकल्पिक Linux `PACKET_FANOUT` कैप्चर वर्कर्स के साथ।
- रिपोर्टिंग इंटरफ़ेस, इवेंट इनटेक, और HTTP API प्रदान करने वाला एक Python सर्वर।
- प्लेन-टेक्स्ट कस्टम ट्रेल्स और व्हाइटलिस्ट जिन्हें समीक्षित और वर्ज़न-नियंत्रित किया जा सकता है।
- स्कैनिंग, DNS एक्सहॉशन, DGA-जैसी लुकअप, संदिग्ध डाउनलोड, प्रॉक्सी प्रोब, संदिग्ध User-Agent मान, और संबंधित नेटवर्क गतिविधि के लिए ह्यूरिस्टिक्स।
- लोकल इवेंट लॉगिंग, रिमोट Maltrail लॉगिंग, syslog पर CEF, और Logstash JSON आउटपुट।
- `maltrail-sensor -T` के साथ डिप्लॉयमेंट वैलिडेशन और वैकल्पिक Prometheus मेट्रिक्स।
## विषय-सूची
- [आर्किटेक्चर](#architecture)
- [रिपोर्टिंग इंटरफ़ेस](#reporting-interface)
- [प्रदर्शन](#performance)
- [इंस्टॉलेशन](#installation)
- [इंस्टॉलर](#installer)
- [सोर्स से बिल्ड करना](#building-from-source)
- [Systemd](#systemd)
- [Docker](#docker)
- [कॉन्फ़िगरेशन](#configuration)
- [ट्रेल्स](#trails)
- [इवेंट्स और API](#events-and-api)
- [ऑपरेशन्स](#operations)
- [मॉनिटरिंग](#monitoring)
- [इवेंट रिटेंशन](#event-retention)
- [डॉक्युमेंटेशन](#documentation)
- [योगदान](#contributing)
- [प्रोजेक्ट](#project)
- [लाइसेंस](#license)
- [मेंटेनर्स](#maintainers)
- [प्रायोजक](#sponsors)
- [प्रस्तुतियाँ और प्रकाशन](#presentations-and-publications)
- [व्युत्पन्न ब्लैकलिस्ट](#derived-blacklist)
- [थर्ड-पार्टी इंटीग्रेशन](#third-party-integrations)
- [आभार](#acknowledgements)
## आर्किटेक्चर
Maltrail में दो स्वतंत्र प्रोसेस होते हैं जो एक ही होस्ट पर या अलग-अलग होस्ट्स पर चल सकते हैं:```text
┌──────────┐ events (UDP or file) ┌──────────┐
│ sensor │ ───────────────────────► │ server │ ◄── browser
└──────────┘ └──────────┘
Rust Python
libpcap + PACKET_FANOUT reporting UI + API
trail matching + heuristics
सेंसर ट्रैफ़िक कैप्चर करता है, ट्रेल मिलान और ह्यूरिस्टिक विश्लेषण करता है, और इवेंट उत्पन्न करता है।
यह इवेंट को स्थानीय रूप से लिख सकता है (LOG_DIR), उन्हें किसी रिमोट Maltrail सर्वर पर भेज सकता है (LOG_SERVER), या
दोनों कर सकता है। यह syslog (SYSLOG_SERVER) पर CEF और Logstash (LOGSTASH_SERVER) पर JSON भी भेज सकता है।
सर्वर रिमोट इवेंट प्राप्त और संग्रहीत करता है, स्थानीय रूप से उपलब्ध इवेंट लॉग प्रदान करता है, और वेब इंटरफ़ेस तथा API प्रदान करता है।
Maltrail में पता लगाए गए ट्रैफ़िक को एक्सप्लोर करने के लिए ब्राउज़र-आधारित रिपोर्टिंग इंटरफ़ेस शामिल है, जिसमें लाइव अपडेट, फ़ील्ड-जागरूक खोज, रेट्रो हंटिंग, भौगोलिक दृश्य, ट्राइएज, सहेजे गए दृश्य और निर्यात शामिल हैं।

यह इंटरफ़ेस server.py द्वारा HTTP_ADDRESS:HTTP_PORT पर प्रदान किया जाता है। यह सादा JavaScript है जिसमें
एक ही तृतीय-पक्ष रनटाइम निर्भरता (PapaParse, CSV पार्सिंग के लिए) है और कोई बिल्ड चरण नहीं है। एक समय में एक दिन
देखा जाता है, जिसे एक डेट पिकर से चुना जाता है जो उपलब्ध दैनिक लॉग पर इवेंट-घनत्व ग्रिड का भी काम करता है। इवेंट /events से
स्ट्रीम किए जाते हैं और ब्राउज़र में थ्रेट्स में एकत्रित किए जाते हैं — प्रत्येक विशिष्ट (source, trail) के लिए एक पंक्ति — जो एक
सॉर्ट करने योग्य ग्रिड में विवरण पैनल के साथ दिखाई जाती है।
| विशेषता | नोट्स |
|---|---|
| लाइव मोड | जोड़े गए इवेंट Server-Sent Events (/live) के माध्यम से पुश किए जाते हैं और वर्तमान दृश्य में मर्ज किए जाते हैं। जब SSE उपलब्ध न हो, या उन सत्रों के लिए जिन्हें स्ट्रीम सेवा नहीं दे सकती, तो यह दैनिक लॉग के बाइट रेंज को पोल करने पर वापस चला जाता है। नए उच्च-गंभीरता वाले थ्रेट डेस्कटॉप नोटिफिकेशन और एक श्रव्य अलर्ट उठा सकते हैं; दोनों को म्यूट किया जा सकता है |
| खोज | फ़ील्ड-स्कोप्ड टोकन (src: dst: port: proto: type: trail: info: family: tag: uid: sev: dir: status:; family:interlock interlock-1/-2 को शामिल करता है, जो एक फ़ीड डंप के विभाजित शार्ड हैं) स्पेस के साथ AND के रूप में संयोजित, बहिष्कृत करने के लिए -, * वाइल्डकार्ड, CIDR (src:10.0.0.0/8), और संख्यात्मक रेंज और तुलनाएँ (port:>1024, count:>=100)। सक्रिय फ़िल्टर हटाने योग्य चिप्स के रूप में दिखाई देते हैं |
| रेट्रो हंट | एक संकेतक के लिए सभी बनाए रखे गए दैनिक लॉग खोजता है (/hunt), न कि केवल दृश्य में मौजूद दिन। एक दिन सीमा, एक वॉल-क्लॉक बजट और एक नमूना कैप से सीमित; बजट द्वारा काटे गए दिन को पूर्ण दिनों से अलग रिपोर्ट किया जाता है, न कि पूर्ण कुल के रूप में गिना जाता है। एक प्रति-दिन साइडकार इंडेक्स (LOG_DIR/index/, USE_EVENT_INDEX) स्वीप को हर गैर-मेल खाती पंक्ति को छोड़ने देता है और /counts को सटीक बनाता है |
| विश्व मानचित्र | चयनित दिन के लिए प्रति-देश इवेंट घनत्व (/geo), प्रत्येक इवेंट के बाहरी एंडपॉइंट को रखते हुए। जिन इवेंट को बाहरी पते के लिए जिम्मेदार नहीं ठहराया जा सकता, उन्हें अनुमान लगाने के बजाय अनमैप्ड के रूप में रिपोर्ट किया जाता है। ओरिजिन आर्क बनाने के लिए HOME_LAT / HOME_LON सेट करें |
| ट्राइएज | प्रति-थ्रेट स्थिति (नया / जाँच में / हल किया गया / गलत सकारात्मक), फ्री-टेक्स्ट नोट्स, टैग, और छिपाना। पंक्ति संदर्भ मेनू से व्हाइटलिस्ट नियम और OSINT पिवट उपलब्ध हैं |
| सहेजे गए दृश्य | नामित फ़िल्टर प्रीसेट |
| निर्यात | वर्तमान फ़िल्टर किया गया दृश्य CSV, JSON, या डीफैंग्ड संकेतक के रूप में |
| रूप-रंग | डार्क और लाइट थीम, और अलग-अलग टेक्स्ट-आकार के चरण |
ट्राइएज स्थिति, सहेजे गए दृश्य, टैग और रूप-रंग सेटिंग्स ब्राउज़र (localStorage) में संग्रहीत होती हैं,
सर्वर पर नहीं: वे प्रति-ब्राउज़र और प्रति-ओरिजिन होती हैं, और विश्लेषकों के बीच साझा नहीं की जातीं।
नेटवर्क फ़िल्टर से प्रतिबंधित सत्र केवल अपने स्वयं के नेटवर्क से इवेंट देखते हैं, और यह प्रतिबंध इवेंट सूची के साथ-साथ काउंट, मैप और ब्लैकलिस्ट एंडपॉइंट पर भी लागू होता है।
व्यक्तिगत पतों के लिए देश और ASN संवर्धन सर्वर द्वारा stat.ripe.net पर लुकअप किया जाता है,
जो परिणामों को कैश करता है और उन्हें अपने स्वयं के /ripe एंडपॉइंट से इंटरफ़ेस को प्रदान करता है; ब्राउज़र Maltrail के अलावा
किसी से बात नहीं करता। आउटबाउंड लुकअप को पूरी तरह बंद करने के लिए DISABLE_RIPE_LOOKUPS सेट करें। उनके बिना — या
बिना इंटरनेट एक्सेस वाले होस्ट पर — फ़्लैग स्थानीय RIR तालिका से आते हैं और इंटरफ़ेस में बाकी सब कुछ ऑफ़लाइन काम करता है।
प्रदर्शन प्रोसेसर, ट्रैफ़िक संरचना, ट्रेल-सेट आकार, कैप्चर ड्राइवर, और नेटवर्क इंटरफ़ेस पर निर्भर करता है। नीचे दिए गए आंकड़े सेंसर के पैकेट-प्रोसेसिंग पथ को अलग-थलग मापते हैं; वे एंड-टू-एंड लाइव-कैप्चर माप नहीं हैं।
AMD Ryzen 7 PRO 4750U पर ह्यूरिस्टिक्स सक्षम और 1.5 मिलियन-पंक्ति ट्रेल सेट के साथ प्रतिनिधि माप: