
Corelight या Zeek Elastic Common Schema Templates
यह रिपॉज़िटरी Corelight या Zeek लॉग्स को Elastic Common Schema (ECS) नामकरण मानक में बदलने और उन्हें Elastic Stack डिप्लॉयमेंट में संग्रहीत करने के लिए आवश्यक सब कुछ शामिल करती है। मूल रूप से 2019 में रिलीज़ हुई, Elastic Common Schema के उसी वर्ष, यह रिपॉज़िटरी अभी भी सक्रिय रूप से अनुरक्षित और अद्यतन की जाती है।
यह 200 से अधिक विभिन्न लॉग्स और मेट्रिक्स का समर्थन करती है और इस तरह डिज़ाइन की गई है कि यह सभी वातावरणों का समर्थन कर सके, साथ ही प्रत्येक अद्वितीय वातावरण का समर्थन करने के लिए आवश्यक और वांछित विकल्पों को अनुकूलित करने में सक्षम हो।
सभी वातावरणों में समर्थन सुनिश्चित करने के लिए महत्वपूर्ण प्रयास किया गया है, साथ ही प्रत्येक अद्वितीय और संबंधित डिप्लॉयमेंट के अनुरूप आवश्यक और वांछित विकल्पों के अनुकूलन की अनुमति भी दी गई है।
यह रिपॉज़िटरी मुख्य रूप से दो चीज़ों से बनी है:
फ़ाइलें और स्वचालन स्क्रिप्ट BSD लाइसेंस के अंतर्गत ओपन-सोर्स हैं। विवरण के लिए COPYING देखें।
कृपया स्क्रिप्ट चलाने से पहले सभी अनुभाग पढ़ें।
corelight_ecs.py स्क्रिप्ट का उपयोग करना। टेम्पलेट्स और पाइपलाइनों को मैन्युअल रूप से इंस्टॉल करना समर्थित नहीं है क्योंकि फ़ाइलों में सैकड़ों वेरिएबल होते हैं जिन्हें स्क्रिप्ट द्वारा प्रतिस्थापित किया जाता है।इंडेक्स सेटिंग्स, मैपिंग्स, एलियासेस और ILM नीतियों को अनुकूलित करना प्रोत्साहित किया जाता है। इसलिए, स्क्रिप्ट कई प्रकार के अनुकूलन का समर्थन करने के लिए डिज़ाइन की गई है (नीचे विस्तार से दिया गया है)।
कई अनुकूलन की आवश्यकता नहीं होगी, लेकिन विकल्प होना बेहतर है। शार्ड्स/रीप्लिका और ILM नीति की अपनी संख्या का उपयोग करने की हमेशा अनुशंसा की जाती है, लेकिन उससे परे आपको अधिक अनुकूलन करने की आवश्यकता नहीं होनी चाहिए। हालाँकि यदि आप सामान्य रूप से अपने सभी डिप्लॉयमेंट में इंडेक्स टेम्पलेट्स, इनजेस्ट पाइपलाइनों और logstash पाइपलाइनों में कई चीज़ों को अनुकूलित करते हैं, तो आपके पास अभी भी क्षमता होगी।
अधिक विवरण के लिए नीचे प्रत्येक अनुभाग देखें।
यदि आप अपने डेटा स्ट्रीम के लिए कस्टम इंडेक्स नाम/पैटर्न चुनना चाहते हैं तो स्क्रिप्ट आपसे पूछेगी। यह आपको अपनी स्वयं की इंडेक्स नामकरण परंपरा चुनने की अनुमति देता है। उदाहरण के लिए आप चुन सकते हैं:
logs-corelight.conn-defaultecs-corelight.conn-defaultcall_it_what_you_will.conn-defaultlogs-corelight.conn-remotesite1इसके बाद यह सभी आवश्यक इंडेक्स टेम्पलेट्स को भी अपडेट करेगी, यदि आपने ingest पाइपलाइनों या logstash पाइपलाइनों को चुना है।
डिफ़ॉल्ट बदलने की अनुशंसा नहीं की जाती है, क्योंकि Corelight लॉग अब ECS डेटा के अन्य सभी प्रकारों के साथ काम करने और logs-* जैसे Kibana डेटा दृश्य के भीतर से उपयोग किए जाने के लिए सेट हैं।
मल्टी-टेनेंट वातावरण जैसे MSSPs/CSSPs या विभिन्न नेटवर्कों के लिए, आप स्क्रिप्ट प्रॉम्प्ट में डेटा स्ट्रीम का संगठन भाग चुन सकते हैं (जो ऊपर 3 उदाहरणों में default भाग है), हालाँकि यदि आप filebeat में data_stream.namespace सेट करते हैं या किसी अन्य विधि से या पाइपलाइनों को हुक करते हैं, तो पाइपलाइनें यह सम्मान करने के लिए सेट हैं कि यदि वह वेरिएबल पहले से सेट है तो उसे ओवरराइड न करें। बस सुनिश्चित करें कि आपका namespace ऐसे मान पर सेट है जिसे Elasticsearch इंडेक्स नाम के लिए अनुमति देता है (सामान्य गलती जो कभी-कभी स्पष्ट नहीं होती है)।
आप Google Sheet में उपयोग किए जाने वाले इंडेक्स पैटर्न और प्रत्येक लॉग के लिए डिफ़ॉल्ट देख सकते हैं। साथ ही, प्रत्येक लॉग के लिए event.category, event.kind, आदि जैसी कुछ अतिरिक्त जानकारी भी सूचीबद्ध करता है।
प्रत्येक इंडेक्स टेम्पलेट को एक कंपोनेंट टेम्पलेट को कॉल करने के लिए निर्दिष्ट किया गया है जिसका उपयोग आप इंडेक्स सेटिंग्स को ओवरराइड करने के लिए कर सकते हैं। इसलिए अपनी स्वयं की इंडेक्स सेटिंग्स का उपयोग करने के लिए आपको रिपॉज़िटरी इंडेक्स टेम्पलेट्स को संशोधित करने की आवश्यकता नहीं है।
निम्नलिखित कंपोनेंट टेम्पलेट्स बनाएं या इंस्टॉल के बाद उन्हें संशोधित करें। जिन कंपोनेंट टेम्पलेट्स को आप संशोधित कर सकते हैं उनके नाम हैं:
सभी लॉग्स को कवर करने के लिए (5 श्रेणियों में विभाजित):
corelight-ecs-component-metric_log-base-settings@customcorelight-ecs-component-parse_failures-base-settings@customcorelight-ecs-component-protocol_log-base-settings@customcorelight-ecs-component-system_log-base-settings@customcorelight-ecs-component-unknown_log-base-settings@customउपरोक्त के अलावा व्यक्तिगत लॉग्स को कवर करने के लिए, जिन्हें अक्सर अपनी स्वयं की सेटिंग्स की और अधिक विशिष्ट आवश्यकता होती है:
corelight-ecs-component-protocol_log-conn-base-settings@customcorelight-ecs-component-protocol_log-dns-base-settings@customcorelight-ecs-component-protocol_log-files-base-settings@customcorelight-ecs-component-protocol_log-http-base-settings@customcorelight-ecs-component-protocol_log-smb-base-settings@customcorelight-ecs-component-protocol_log-smtp-base-settings@customcorelight-ecs-component-protocol_log-ssl-base-settings@customcorelight-ecs-component-protocol_log-suricata_corelight-base-settings@customcorelight-ecs-component-protocol_log-syslog-base-settings@customcorelight-ecs-component-protocol_log-various-base-settings@customप्रत्येक इंडेक्स टेम्पलेट को एक कंपोनेंट टेम्पलेट को कॉल करने के लिए निर्दिष्ट किया गया है जिसका उपयोग आप फ़ील्ड प्रकारों या नामों जैसी चीज़ों के लिए इंडेक्स मैपिंग्स को ओवरराइड करने के लिए कर सकते हैं। इसलिए अपनी स्वयं की इंडेक्स मैपिंग्स का उपयोग करने के लिए आपको रिपॉज़िटरी इंडेक्स टेम्पलेट्स को संशोधित करने की आवश्यकता नहीं है।
निम्नलिखित कंपोनेंट टेम्पलेट्स बनाएं या इंस्टॉल के बाद उन्हें संशोधित करें। जिन कंपोनेंट टेम्पलेट्स को आप संशोधित कर सकते हैं उनके नाम हैं:
सभी लॉग्स को कवर करने के लिए (5 श्रेणियों में विभाजित):
corelight-ecs-component-metric_log-mappings@customcorelight-ecs-component-parse_failures-mappings@customcorelight-ecs-component-protocol_log-mappings@customcorelight-ecs-component-system_log-mappings@customcorelight-ecs-component-unknown_log-mappings@customउपरोक्त के अलावा व्यक्तिगत लॉग्स को कवर करने के लिए, जिन्हें अक्सर अपनी स्वयं की सेटिंग्स की और अधिक विशिष्ट आवश्यकता होती है:
corelight-ecs-component-protocol_log-conn-mappings@customcorelight-ecs-component-protocol_log-dns-mappings@customcorelight-ecs-component-protocol_log-files-mappings@customcorelight-ecs-component-protocol_log-http-mappings@customcorelight-ecs-component-protocol_log-smb-mappings@customcorelight-ecs-component-protocol_log-smtp-mappings@customcorelight-ecs-component-protocol_log-ssl-mappings@customcorelight-ecs-component-protocol_log-suricata_corelight-mappings@customcorelight-ecs-component-protocol_log-syslog-mappings@customcorelight-ecs-component-protocol_log-various-mappings@customप्रत्येक इंडेक्स टेम्पलेट को एक कंपोनेंट टेम्पलेट को कॉल करने के लिए निर्दिष्ट किया गया है जिसका उपयोग आप अपनी स्वयं की अवधारण अवधि निर्धारित करने के लिए ILM नीति को ओवरराइड करने के लिए कर सकते हैं। इसलिए अपनी स्वयं की ILM नीति का उपयोग करने के लिए आपको रिपॉज़िटरी इंडेक्स टेम्पलेट्स को संशोधित करने की आवश्यकता नहीं है।
निम्नलिखित कंपोनेंट टेम्पलेट्स बनाएं या इंस्टॉल के बाद उन्हें संशोधित करें। जिन कंपोनेंट टेम्पलेट्स को आप संशोधित कर सकते हैं उनके नाम हैं:
सभी लॉग्स को कवर करने के लिए (5 श्रेणियों में विभाजित):
corelight-ecs-component-metric_log-ilm-settings@customcorelight-ecs-component-parse_failures-ilm-settings@customcorelight-ecs-component-protocol_log-ilm-settings@customcorelight-ecs-component-system_log-ilm-settings@customcorelight-ecs-component-unknown_log-ilm-settings@customये उपरोक्त के अलावा व्यक्तिगत लॉग्स को कवर करेंगे, जिन्हें अक्सर अपनी स्वयं की सेटिंग्स की और अधिक विशिष्ट आवश्यकता होती है:
corelight-ecs-component-protocol_log-conn-ilm-settings@customcorelight-ecs-component-protocol_log-dns-ilm-settings@customcorelight-ecs-component-protocol_log-files-ilm-settings@customcorelight-ecs-component-protocol_log-http-ilm-settings@customcorelight-ecs-component-protocol_log-smb-ilm-settings@customcorelight-ecs-component-protocol_log-smtp-ilm-settings@customcorelight-ecs-component-protocol_log-ssl-ilm-settings@customcorelight-ecs-component-protocol_log-suricata_corelight-ilm-settings@customcorelight-ecs-component-protocol_log-syslog-ilm-settings@customcorelight-ecs-component-protocol_log-various-ilm-settings@customप्रत्येक इंडेक्स टेम्पलेट को एक कंपोनेंट टेम्पलेट को कॉल करने के लिए निर्दिष्ट किया गया है जिसका उपयोग आप इंडेक्स एलियासेस को ओवरराइड करने के लिए कर सकते हैं। इसलिए अपनी स्वयं की ILM एलियासेस का उपयोग करने के लिए आपको रिपॉज़िटरी इंडेक्स टेम्पलेट्स को संशोधित करने की आवश्यकता नहीं है।
निम्नलिखित कंपोनेंट टेम्पलेट्स बनाएं या इंस्टॉल के बाद उन्हें संशोधित करें। जिन कंपोनेंट टेम्पलेट्स को आप संशोधित कर सकते हैं उनके नाम हैं:
सभी लॉग्स को कवर करने के लिए (5 श्रेणियों में विभाजित):
corelight-ecs-component-metric_log-aliases@customcorelight-ecs-component-parse_failures-aliases@customcorelight-ecs-component-protocol_log-aliases@customcorelight-ecs-component-system_log-aliases@customcorelight-ecs-component-unknown_log-aliases@customये उपरोक्त के अलावा व्यक्तिगत लॉग्स को कवर करेंगे, जिन्हें अक्सर अपनी स्वयं की सेटिंग्स की और अधिक विशिष्ट आवश्यकता होती है:
corelight-ecs-component-protocol_log-conn-aliases@customcorelight-ecs-component-protocol_log-dns-aliases@customcorelight-ecs-component-protocol_log-files-aliases@customcorelight-ecs-component-protocol_log-http-aliases@customcorelight-ecs-component-protocol_log-smb-aliases@customcorelight-ecs-component-protocol_log-smtp-aliases@customcorelight-ecs-component-protocol_log-ssl-aliases@customcorelight-ecs-component-protocol_log-suricata_corelight-aliases@customcorelight-ecs-component-protocol_log-syslog-aliases@customcorelight-ecs-component-protocol_log-various-aliases@customइनजेस्ट पाइपलाइनों की शुरुआत में, किसी भी Corelight पाइपलाइन को कॉल करने से पहले, corelight-ecs-main-pipeline@custom नामक इनजेस्ट पाइपलाइन का उपयोग करने का एक फ़ंक्शन होता है।
यदि Corelight पाइपलाइनों को कॉल करने से पहले आप कुछ करना चाहते हैं तो आप उस नाम से एक इनजेस्ट पाइपलाइन बना सकते हैं।
यदि आप पाइपलाइन नहीं बनाते हैं तो फ़ंक्शन इसे चुपचाप पास कर देता है, इसलिए यह वैकल्पिक है।
इनजेस्ट पाइपलाइनों के अंत में, सभी Corelight पाइपलाइनों को कॉल करने के बाद, corelight-ecs-postprocess-final-main-pipeline@custom नामक इनजेस्ट पाइपलाइन का उपयोग करने का एक फ़ंक्शन होता है।
यदि Corelight पाइपलाइनों को कॉल करने से पहले आप कुछ करना चाहते हैं तो आप उस नाम से एक इनजेस्ट पाइपलाइन बना सकते हैं।
यदि आप पाइपलाइन नहीं बनाते हैं तो फ़ंक्शन इसे चुपचाप पास कर देता है, इसलिए यह वैकल्पिक है।
इनजेस्ट पाइपलाइन विफलताओं के लिए इनजेस्ट पाइपलाइनों के on_failure कैच-ऑल की शुरुआत में, किसी भी Corelight पाइपलाइन को कॉल करने से पहले, corelight-ecs-parse_failures-pipeline@custom नामक इनजेस्ट पाइपलाइन का उपयोग करने का एक फ़ंक्शन होता है।
यदि Corelight पाइपलाइनों को कॉल करने से पहले आप कुछ करना चाहते हैं तो आप उस नाम से एक इनजेस्ट पाइपलाइन बना सकते हैं।
यदि आप पाइपलाइन नहीं बनाते हैं तो फ़ंक्शन इसे चुपचाप पास कर देता है, इसलिए यह वैकल्पिक है।
इनजेस्ट पाइपलाइनों के अंत में, सभी Corelight पाइपलाइनों को कॉल करने के बाद, corelight-ecs-postprocess-final-main-pipeline@custom नामक इनजेस्ट पाइपलाइन का उपयोग करने का एक फ़ंक्शन होता है।
यदि Corelight पाइपलाइनों को कॉल करने से पहले आप कुछ करना चाहते हैं तो आप उस नाम से एक इनजेस्ट पाइपलाइन बना सकते हैं।
यदि आप पाइपलाइन नहीं बनाते हैं तो फ़ंक्शन इसे चुपचाप पास कर देता है, इसलिए यह वैकल्पिक है।
git clone https://github.com/corelight/ecs-templates
cd ecs-templates
python3 corelight_ecs.py
--no-color: लॉगिंग के लिए रंग अक्षम करें।--debug: डीबग स्तर लॉगिंग सक्षम करें।--es-default-timeout=10: elasticsearch से कनेक्शन की प्रतीक्षा के लिए डिफ़ॉल्ट टाइमआउट बदलें।--es-default-retry=2: elasticsearch से कनेक्शन को पुनः प्रयास करने की डिफ़ॉल्ट संख्या बदलें।--git-repository=corelight: elasticsearch से कनेक्शन को पुनः प्रयास करने की डिफ़ॉल्ट संख्या बदलें।--git-branch=main: elasticsearch से कनेक्शन को पुनः प्रयास करने की डिफ़ॉल्ट संख्या बदलें।कुछ मानों को आपके वातावरण के अनुरूप बनाने के लिए इंस्टॉल के बाद बदलने की आवश्यकता हो सकती है। इसमें elasticsearch कनेक्शन के लिए एक कस्टम प्रमाणपत्र प्राधिकरण, kafka के लिए विभिन्न टॉपिक्स, आदि जैसी चीज़ें शामिल होंगी। क्योंकि elasticsearch आउटपुट में 20 से अधिक विकल्प हैं और 5 अलग-अलग इनपुटों में 60 से अधिक विकल्प हैं, इंस्टॉलर उन सभी को प्रदान, संकेत और मान्यता नहीं देता है। हालाँकि, आपकी मदद के लिए, स्क्रिप्ट आपको बताएगी कि किन फ़ाइलों को संशोधित करना है। साथ ही, उन लोगों के लिए जो सभी चीज़ों का पूर्ण स्वचालन उपयोग करते हैं, एक उदाहरण स्क्रिप्ट प्रदान की गई है ताकि यह दिखाया जा सके कि इंस्टॉल के बाद फ़ाइलों में मानों को बदलने और उपयोग किए जाने वाले वेरिएबलों के लिए लाइनों को एक साथ अनकमेंट करने की प्रक्रिया को स्वचालित करना संभव है।
अधिक विवरण के लिए अनुकूलन अनुभाग देखें।
temporary_corelight_routing_index पर सेट करेंरिपॉज़िटरी के पूर्ण परिवर्तन लॉग के लिए फ़ाइल changelog.md देखें।
रिपॉज़िटरी के लिए करने योग्य कार्यों की पूरी सूची के लिए फ़ाइल todo.md देखें।
इस रिपॉज़िटरी का संस्करणकरण Elastic Common Schema (ECS) के उस संस्करण पर आधारित है जिसका यह समर्थन करता है। प्रत्येक लॉग में फ़ील्ड्स जोड़े जाते हैं:
labels.corelight.ecs_versionlabels.corelight.ecs_methodlabels.corelight.ecs_method_versionhttps://github.com/corelight/ecs-templates
https://github.com/corelight/ecs-logstash-mappings
https://github.com/corelight/ecs-mapping
https://github.com/corelight/ecs-dashboards
corelight-ecs-component-protocol_log-weird-base-settings@customcorelight-ecs-component-protocol_log-x509-base-settings@customcorelight-ecs-component-protocol_log-weird-mappings@customcorelight-ecs-component-protocol_log-x509-mappings@customcorelight-ecs-component-protocol_log-weird-ilm-settings@customcorelight-ecs-component-protocol_log-x509-ilm-settings@customcorelight-ecs-component-protocol_log-weird-aliases@customcorelight-ecs-component-protocol_log-x509-aliases@custom