
AWS पर पेटाबाइट स्तर पर खतरे की खोज, पहचान और प्रतिक्रिया, और साइबर सुरक्षा विश्लेषण के लिए ओपन सोर्स सुरक्षा डेटा लेक
Matano Open Source Security डेटा लेक एक ओपन सोर्स क्लाउड-नेटिव सिक्योरिटी डेटा लेक है, जो AWS पर सुरक्षा टीमों के लिए बनाया गया है।
[!NOTE] Matano एक संपूर्ण एंटरप्राइज़ सिक्योरिटी ऑपरेशंस प्लेटफ़ॉर्म के लिए एक व्यावसायिक प्रबंधित क्लाउड SIEM प्रदान करता है। और जानें।
अपने AWS खाते में Matano को तैनात करने और अपने डिप्लॉयमेंट को प्रबंधित करने के लिए matano CLI स्थापित करें।
Linux```bash curl -OL https://github.com/matanolabs/matano/releases/download/nightly/matano-linux-x64.sh chmod +x matano-linux-x64.sh sudo ./matano-linux-x64.sh
**macOS**```bash
curl -OL https://github.com/matanolabs/matano/releases/download/nightly/matano-macos-x64.sh
chmod +x matano-macos-x64.sh
sudo ./matano-macos-x64.sh
शुरुआत करने के लिए पूर्ण दस्तावेज़ पढ़ें
शुरुआत करने के लिए, matano init कमांड चलाएँ।
एक बार प्रारंभ होने के बाद, आपकी Matano निर्देशिका का उपयोग आपके प्रोजेक्ट में सभी संसाधनों जैसे लॉग स्रोत, डिटेक्शन, और अन्य कॉन्फ़िगरेशन को नियंत्रित और प्रबंधित करने के लिए किया जाता है। इसे इस प्रकार संरचित किया गया है:```bash ➜ example-matano-dir git:(main) tree ├── detections │ └── aws_root_credentials │ ├── detect.py │ └── detection.yml ├── log_sources │ ├── cloudtrail │ │ ├── log_source.yml │ │ └── tables │ │ └── default.yml │ └── zeek │ ├── log_source.yml │ └── tables │ └── dns.yml ├── matano.config.yml └── matano.context.json
जब किसी नए लॉग स्रोत को शामिल कर रहे हों या कोई डिटेक्शन लिख रहे हों, तो अपने प्रोजेक्ट में कहीं से भी `matano deploy` चलाएं ताकि परिवर्तन आपके खाते में तैनात हो जाएं।
## 🔧 लॉग रूपांतरण और डेटा सामान्यीकरण
[**कस्टम लॉग स्रोतों को कॉन्फ़िगर करने पर पूर्ण दस्तावेज़ पढ़ें**](https://www.matano.dev/docs/log-sources/configuration)
[Vector Remap Language (VRL)](https://vector.dev/docs/reference/vrl/), आपको आसानी से कस्टम लॉग स्रोतों को शामिल करने की अनुमति देता है और आपको [Elastic Common Schema (ECS)](https://www.elastic.co/guide/en/ecs/current/ecs-reference.html) के अनुसार फ़ील्ड्स को सामान्यीकृत करने के लिए प्रोत्साहित करता है ताकि आपके सुरक्षा डेटा लेक में बेहतर पिवोटिंग और IOCs के लिए बल्क सर्च सक्षम हो सके।
उपयोगकर्ता कस्टम VRL प्रोग्राम्स को परिभाषित कर सकते हैं ताकि अनस्ट्रक्चर्ड लॉग्स को पार्स और रूपांतरित किया जा सके जब वे किसी लॉग स्रोत के लिए समर्थित तंत्रों (जैसे S3, SQS) के माध्यम से अंतर्ग्रहण हो रहे हों।
VRL एक अभिव्यक्ति-उन्मुख भाषा है जो ऑब्जर्वेबिलिटी डेटा (जैसे लॉग्स) को सुरक्षित और प्रभावी तरीके से रूपांतरित करने के लिए डिज़ाइन की गई है। इसमें सरल सिंटैक्स और विशेष रूप से ऑब्जर्वेबिलिटी उपयोग मामलों के लिए तैयार किए गए अंतर्निहित फंक्शन्स का समृद्ध सेट है।
### उदाहरण: JSON पार्स करना
आइए एक सरल उदाहरण देखें। कल्पना करें कि आप HTTP लॉग इवेंट्स के साथ काम कर रहे हैं जो इस तरह दिखते हैं:```json
{
"line": "{\"status\":200,\"srcIpAddress\":\"1.1.1.1\",\"message\":\"SUCCESS\",\"username\":\"ub40fan4life\"}"
}
आप प्रत्येक घटना पर ये परिवर्तन लागू करना चाहते हैं:
line स्ट्रिंग को JSON में पार्स करें, और फ़ील्ड्स को शीर्ष स्तर पर विस्तारित करेंsrcIpAddress का नाम बदलकर source.ip ECS फ़ील्ड करेंusername फ़ील्ड हटाएँmessage को लोअरकेस में बदलेंइस VRL प्रोग्राम को आपके लॉग स्रोत में transform चरण के रूप में जोड़ने से वह सब पूरा हो जाएगा:
transform: | . = object!(parse_json!(string!(.json.line))) .source.ip = del(.srcIpAddress) del(.username) .message = downcase(string!(.message))
schema: ecs_field_names: - source.ip - http.status
परिणामी घटना 🎉:```json
{
"message": "success",
"status": 200,
"source": {
"ip": "1.1.1.1"
}
}
डिटेक्शन पर पूर्ण दस्तावेज़ पढ़ें
अपने सुरक्षा लॉग में खतरों पर अलर्ट करने वाले नियमों को परिभाषित करने के लिए डिटेक्शन का उपयोग करें। एक डिटेक्शन एक पायथन प्रोग्राम है जो रीयलटाइम में लॉग स्रोत के डेटा के साथ लागू किया जाता है और एक अलर्ट बना सकता है।
def detect(record): return ( record.deepget("event.action") == "CreateInstanceExportTask" and record.deepget("event.provider") == "ec2.amazonaws.com" and record.deepget("event.outcome") == "failure" )
#### सभी कॉन्फ़िगर किए गए लॉग स्रोतों (जैसे Okta, AWS, GWorkspace) में IP द्वारा ब्रूट फोर्स लॉगिन का पता लगाएं
###### detect.py```python
def detect(r):
return (
"authentication" in r.deepget("event.category", [])
and r.deepget("event.outcome") == "failure"
)
def title(r):
return f"Multiple failed logins from {r.deepget('user.full_name')} - {r.deepget('source.ip')}"
def dedupe(r):
return r.deepget("source.ip")
tables:
#### उपयोगकर्ता के लिए पहले कभी न देखे गए IP से सफल लॉगिन का पता लगाना```python
from detection import remotecache
# a cache of user -> ip[]
user_to_ips = remotecache("user_ip")
def detect(record):
if (
record.deepget("event.action") == "ConsoleLogin" and
record.deepget("event.outcome") == "success"
):
# A unique key on the user name
user = record.deepget("user.name")
existing_ips = user_to_ips[user] or []
updated_ips = user_to_ips.add_to_string_set(
user,
record.deepget("source.ip")
)
# Alert on new IPs
new_ips = set(updated_ips) - set(existing_ips)
if existing_ips and new_ips:
return True
अलर्टिंग पर पूर्ण दस्तावेज़ पढ़ें
सभी अलर्ट स्वचालित रूप से matano_alerts नामक Matano तालिका में संग्रहीत होते हैं। अलर्ट और नियम मिलान (rule matches) ECS में सामान्यीकृत होते हैं और इनमें नियम मिलान को ट्रिगर करने वाली मूल घटना के साथ-साथ अलर्ट और नियम डेटा का संदर्भ शामिल होता है।
उदाहरण क्वेरीज़
Summarize alerts in the last week that are activated (exceeded the threshold)
``````sql
select
matano.alert.id as alert_id,
matano.alert.rule.name as rule_name,
max(matano.alert.title) as title,
count(*) as match_count,
min(matano.alert.first_matched_at) as first_matched_at,
max(ts) as last_matched_at,
array_distinct(flatten(array_agg(related.ip))) as related_ip,
array_distinct(flatten(array_agg(related.user))) as related_user,
array_distinct(flatten(array_agg(related.hosts))) as related_hosts,
array_distinct(flatten(array_agg(related.hash))) as related_hash
from
matano_alerts
where
matano.alert.first_matched_at > (current_timestamp - interval '7' day)
and matano.alert.activated = true
group by
matano.alert.rule.name,
matano.alert.id
order by
last_matched_at desc
आप अलर्ट को बाहरी सिस्टम पर वितरित कर सकते हैं। आप अलर्टिंग SNS विषय का उपयोग करके ईमेल, Slack और अन्य सेवाओं पर अलर्ट वितरित कर सकते हैं।
उपयोग के बारे में सामान्य सहायता के लिए, कृपया आधिकारिक दस्तावेज़ीकरण देखें। अतिरिक्त सहायता के लिए, प्रश्न पूछने के लिए इनमें से किसी एक चैनल का उपयोग करने में संकोच न करें:
इन अद्भुत लोगों को धन्यवाद (इमोजी कुंजी):
यह परियोजना all-contributors विनिर्देश का पालन करती है। किसी भी प्रकार का योगदान स्वागत योग्य है!

![]() Francesco R. 🐛 |