
Elastic Security के लिए SIEM डिटेक्शन नियम विकसित करें, मान्य करें और प्रकाशित करें, जिसमें Python CLI टूलिंग, KQL पार्सिंग, Kibana एकीकरण और पैकेज्ड थ्रेट हंटिंग क्वेरी शामिल हैं।
Detection Rules, Elastic Security द्वारा उपयोग किए जाने वाले rules का घर है। इस रिपॉज़िटरी का उपयोग Elastic Security के Detection Engine के लिए rules के विकास, रखरखाव, परीक्षण, सत्यापन और रिलीज़ के लिए किया जाता है।
इस रिपॉज़िटरी की घोषणा सबसे पहले Elastic के ब्लॉग पोस्ट, Elastic Security ने सार्वजनिक detection rules रिपॉज़िटरी खोली में की गई थी। अतिरिक्त सामग्री के लिए, साथ में दिया गया वेबिनार देखें, Elastic Security: detection rules के लिए सार्वजनिक रिपॉज़िटरी का परिचय।
Detection Rules में केवल स्टैटिक rule फ़ाइलों से अधिक सामग्री है। इस रिपॉज़िटरी में Detections-as-code पाइपलाइन बनाने, Python में यूनिट टेस्टिंग और Kibana में Detection Engine के साथ एकीकरण के लिए कोड भी शामिल है।
हालाँकि rules को मैन्युअल रूप से .toml फ़ाइलें बनाकर जोड़ा जा सकता है, लेकिन हम इसकी अनुशंसा नहीं करते। इस रिपॉज़िटरी में एक Python मॉड्यूल भी शामिल है जो rule निर्माण और यूनिट परीक्षण में सहायता करता है। यदि आपके पास Python 3.12+ है, तो निर्भरताएँ (dependencies) स्थापित करने के लिए makefile का उपयोग करके नीचे दिया गया कमांड चलाएँ:
✗ make
python3.12 -m pip install --upgrade pip setuptools
Looking in indexes: https://pypi.org/simple
Requirement already satisfied: pip in /opt/homebrew/lib/python3.12/site-packages (24.0)
Requirement already satisfied: setuptools in /opt/homebrew/lib/python3.12/site-packages (69.1.1)
python3.12 -m venv ./env/detection-rules-build
./env/detection-rules-build/bin/pip install --upgrade pip setuptools
Looking in indexes: https://pypi.org/simple
Requirement already satisfied: pip in ./env/detection-rules-build/lib/python3.12/site-packages (24.0)
Collecting setuptools
Using cached setuptools-69.1.1-py3-none-any.whl.metadata (6.2 kB)
Using cached setuptools-69.1.1-py3-none-any.whl (819 kB)
Installing collected packages: setuptools
Successfully installed setuptools-69.1.1
Installing kql and kibana packages...
...
या निम्न कमांड का उपयोग करके निर्भरताएँ स्थापित करें:
$ pip3 install ".[dev]"
Collecting jsl==0.2.4
Downloading jsl-0.2.4.tar.gz (21 kB)
Collecting jsonschema==3.2.0
Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
|████████████████████████████████| 56 kB 318 kB/s
Collecting requests==2.22.0
Downloading requests-2.22.0-py2.py3-none-any.whl (57 kB)
|████████████████████████████████| 57 kB 1.2 MB/s
Collecting Click==7.0
Downloading Click-7.0-py2.py3-none-any.whl (81 kB)
|████████████████████████████████| 81 kB 2.6 MB/s
...
नोट: kibana और kql पैकेज PyPI पर उपलब्ध नहीं हैं और इन्हें lib डायरेक्टरी से स्थापित किया जाना चाहिए। hunting पैकेज में वैकल्पिक निर्भरताएँ हैं जिन्हें pip3 install ".[hunting]" के साथ स्थापित किया जाना है।
# Install from the repository
pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=lib/kibana
pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=lib/kql
# Or locally for development
pip3 install lib/kibana lib/kql
याद रखें, यदि आप वर्चुअल एनवायरनमेंट का उपयोग कर रहे हैं तो उसे सक्रिय करना सुनिश्चित करें। यदि make के माध्यम से स्थापित किया गया है, तो संबंधित वर्चुअल एनवायरनमेंट env/detection-rules-build/ में बनाया जाता है। यदि आपको Python 3.12 एनवायरनमेंट का उपयोग करने में परेशानी हो रही है, तो कृपया हमारी समस्या निवारण मार्गदर्शिका में प्रासंगिक अनुभाग देखें।
यह पुष्टि करने के लिए कि सब कुछ ठीक से स्थापित हो गया है, --help फ़्लैग के साथ चलाएँ
$ python -m detection_rules --help
Usage: detection_rules [OPTIONS] COMMAND [ARGS]...
Commands for detection-rules repository.
Options:
-D, --debug / -N, --no-debug Print full exception stacktrace on errors
-h, --help Show this message and exit.
Commands:
build-limited-rules Import rules from json, toml, or Kibana exported rule file(s), filter out unsupported ones, and write to output NDJSON file.
build-threat-map-entry Build a threat map entry.
create-rule Create a detection rule.
custom-rules Commands for supporting custom rules.
dev Commands related to the Elastic Stack rules release lifecycle.
es Commands for integrating with Elasticsearch.
export-rules-from-repo Export rule(s) and exception(s) into an importable ndjson file.
generate-rules-index Generate enriched indexes of rules, based on a KQL search, for indexing/importing into elasticsearch/kibana.
import-rules-to-repo Import rules from json, toml, or yaml files containing Kibana exported rule(s).
kibana Commands for integrating with Kibana.
mass-update Update multiple rules based on eql results.
normalize-data Normalize Elasticsearch data timestamps and sort.
rule-search Use KQL or EQL to find matching rules.
test Run unit tests over all of the rules.
toml-lint Cleanup files with some simple toml formatting.
typosquat Commands for generating typosquat detections.
validate-all Check if all rules validates against a schema.
validate-rule Check if a rule staged in rules dir validates against a schema.
view-rule View an internal rule or specified rule file.
नोट:
<venv_directory>\Scripts\pywin32_postinstall.py -install भी चलाना पड़ सकता है।योगदान मार्गदर्शिका बताती है कि Detection Rules में योगदान करते समय नया rule बनाने और उसका परीक्षण करने के लिए create-rule और test कमांड का उपयोग कैसे करें।
अधिक उन्नत कमांड लाइन इंटरफ़ेस (CLI) उपयोग के लिए, CLI मार्गदर्शिका देखें।
हम Detection Rules में आपके योगदान का स्वागत करते हैं! योगदान देने से पहले, कृपया इस रिपॉज़िटरी, इसकी डायरेक्टरी संरचना, और rule निर्माण के बारे में हमारे philosophy से परिचित हों। जब आप योगदान देने के लिए तैयार हों, तो योगदान मार्गदर्शिका पढ़ें ताकि यह जान सकें कि हम detection विचारों को प्रोडक्शन rules में कैसे बदलते हैं और परीक्षण के साथ सत्यापित करते हैं।
Detection Rules रिपॉज़िटरी में कई कमांड शामिल हैं जो "as code" दर्शन के साथ rules प्रबंधित करने में सहायता करते हैं। रणनीतियों और अनुशंसित सेटअप जानकारी के लिए हमारे DaC विशिष्ट दस्तावेज़ीकरण से शुरुआत करने की अनुशंसा की जाती है। हालाँकि, यदि आप सीधे शुरू करना चाहते हैं, तो कृपया इस रिपॉज़िटरी को कस्टम rules के साथ उपयोग के लिए कॉन्फ़िगर करने की जानकारी हेतु हमारे स्थानीय detections as code दस्तावेज़ीकरण और custom rules दस्तावेज़ीकरण देखें, तथा rules आयात और निर्यात करने के कमांड की जानकारी के लिए हमारा CLI दस्तावेज़ीकरण देखें।
हमलावर तकनीकों का अनुकरण करने और rules को सत्यापित करने के लिए उपयोग किए जाने वाले Red Team Automations (RTAs) समर्पित रिपॉज़िटरी - Cortado में पाए जा सकते हैं।
इस रिपॉज़िटरी में सब कुछ — rules, कोड, आदि — Elastic License v2 के अंतर्गत लाइसेंस प्राप्त है। ये rules Elastic Security एप्लिकेशन के भीतर Detection Engine के संदर्भ में उपयोग के लिए डिज़ाइन किए गए हैं। यदि आप हमारी Elastic Cloud प्रबंधित सेवा या Elastic Stack सॉफ़्टवेयर के डिफ़ॉल्ट वितरण का उपयोग कर रहे हैं, जिसमें मुफ़्त सुविधाओं का पूरा सेट शामिल है, तो आपको detection engine में पहली बार नेविगेट करने पर नवीनतम rules मिलेंगे।
कभी-कभी, हम किसी अन्य रिपॉज़िटरी से ऐसे rules आयात करना चाह सकते हैं जिनके पास पहले से लाइसेंस है, जैसे MIT या Apache 2.0। यह स्वागत योग्य है, जब तक लाइसेंस Elastic License v2 के अंतर्गत सबलाइसेंसिंग की अनुमति देता है। हम उन लाइसेंस सूचनाओं को NOTICE.txt में रखते हैं और अन्य सभी rules के साथ Elastic License v2 के रूप में सबलाइसेंस करते हैं। हम योगदानकर्ताओं से किसी भी Elastic रिपॉज़िटरी में कोड योगदान करने से पहले योगदानकर्ता लाइसेंस समझौता पर हस्ताक्षर करने की भी आवश्यकता रखते हैं।
| फ़ोल्डर | विवरण |
|---|
detection_rules/ | rule पार्सिंग, सत्यापन और पैकेजिंग के लिए Python मॉड्यूल |
etc/ | विविध फ़ाइलें, जैसे ECS और Beats स्कीमा तथा कॉन्फ़िगरेशन फ़ाइलें |
hunting/ | रूट डायरेक्टरी जहाँ threat hunting पैकेज और क्वेरी संग्रहीत की जाती हैं |
kibana/ | Kibana और Detection Engine के लिए API कॉल्स को संभालने हेतु Python लाइब्रेरी |
kql/ | Kibana Query Language को पार्स और सत्यापित करने के लिए Python लाइब्रेरी |
rules/ | रूट डायरेक्टरी जहाँ rules संग्रहीत होते हैं |
rules_building_block/ | रूट डायरेक्टरी जहाँ building block rules संग्रहीत होते हैं |
tests/ | rules के यूनिट परीक्षण के लिए Python कोड |