
डेटा गुणवत्ता का आकलन करने के लिए एक उपकरण, शानदार OSSEM के शीर्ष पर निर्मित।

डेटा गुणवत्ता का आकलन करने का एक उपकरण, जो शानदार OSSEM परियोजना पर निर्मित है।
Power-up अपने डेटा गुणवत्ता मूल्यांकन के आधार के रूप में OSSEM Detection Data Model (DDM) का उपयोग करता है। इसका मुख्य कारण यह है कि यह ATT&CK Data Sources, Common information model entities (CIM), और Data Dictionaries को एक-दूसरे से सहसंबंधित करने का एक संरचित तरीका प्रदान करता है।
DDM संरचना से अपरिचित लोगों के लिए, यहाँ एक नमूना है:
जैसा कि आप देख सकते हैं, DDM में प्रत्येक प्रविष्टि अमूर्त इकाइयों (जैसे प्रक्रिया, उपयोगकर्ता, फ़ाइल, आदि) का उपयोग करके एक उप डेटा स्रोत (स्कोप) को परिभाषित करती है। इन प्रविष्टियों में एक घटना ID भी होती है, जहां स्कोप लागू होता है। आप इन इकाइयों के बारे में यहाँ और पढ़ सकते हैं।
संक्षेप में, DDM प्रविष्टियाँ कच्ची घटनाओं की जटिलता को दूर करने में एक प्रमुख भूमिका निभाती हैं, एक स्कोप प्रदान करके जो परिभाषित करता है कि एक लॉग स्रोत (डेटा चैनल) का उपभोग कैसे किया जा सकता है।
Power-up डेटा गुणवत्ता स्कोर का आकलन पाँच अलग-अलग आयामों के अनुसार करता है:
प्रत्येक आयाम को 0 (कोई नहीं) से 5 (उत्कृष्ट) के बीच स्कोर के साथ रेट किया जाता है।
ये आयाम डेटा चैनलों से जुड़े होते हैं, और इसके द्वारा प्रदान की गई सभी घटनाओं में प्रसारित होते हैं। इन आयामों की प्रकृति के कारण, डेटा चैनलों की विशिष्टताओं के अनुसार, इन्हें मैन्युअल रूप से रेट किया जाना चाहिए।
Power-up resources/dcs.yml का उपयोग डेटा चैनल को परिभाषित करने और आयामों को रेट करने के लिए करता है:
data channel: sysmon
description: sysmon monitoring
coverage: 2
timeliness: 5
retention: 2
---
data channel: security
description: windows security auditing
coverage: 5
timeliness: 5
retention: 2
घटना संरचना कितनी पूर्ण है यह गणना करने के लिए, power-up डेटा शब्दकोश मानक नामों की तुलना DDM प्रविष्टि (स्रोत और गंतव्य) में संदर्भित इकाइयों (CIM) के फ़ील्ड से करता है।
क्योंकि सभी इकाई फ़ील्ड प्रासंगिक नहीं होते (संदर्भ पर निर्भर करता है), power-up यह चुनने के लिए प्रोफ़ाइल की अवधारणा का उपयोग करता है कि किन फ़ील्ड को डेटा शब्दकोश मानक नामों से मेल खाना चाहिए। उदाहरण:
# OSSEM CIM Profile
process:
- process_name
- process_path
- process_command_line
नोट: आपके खेलने के लिए
profiles/default.ymlमें एक उदाहरण प्रोफ़ाइल है।
संरचना स्कोर की गणना निम्नलिखित सूत्र से की जाती है:
SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100
स्पष्टता के लिए, यहाँ एक उदाहरण है कि संरचना स्कोर की गणना कैसे की जाती है:

नोट: क्योंकि Sysmon Event Id 1 डेटा शब्दकोश प्रासंगिक इकाई फ़ील्ड के 100% से मेल खाता है, इसलिए संरचना स्कोर को 5 (उत्कृष्ट) रेट किया जाएगा।
संरचना स्कोर को 0-5 पैमाने पर निम्नलिखित तरीके से अनुवादित किया जाता है:
| प्रतिशत | स्कोर |
|---|
नोट: उपयोग के मामले (SIEM, Threat Hunting, Forensics) के आधार पर, आप अलग-अलग प्रोफ़ाइल परिभाषित कर सकते हैं ताकि आप अपने लॉग्स को अलग-अलग तरीके से रेट कर सकें।
संगति की गणना करने के लिए, power-up बस एक डेटा शब्दकोश में मानक नाम वाले फ़ील्ड के प्रतिशत की गणना करता है। उच्च संख्या में मानक नाम पर मैप किए गए फ़ील्ड वाले डेटा शब्दकोशों के CIM इकाइयों के साथ सहसंबंधित होने की अधिक संभावना होती है।
संगति स्कोर की गणना निम्नलिखित सूत्र से की जाती है:
SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100
संगति स्कोर को 0-5 पैमाने पर निम्नलिखित तरीके से अनुवादित किया जाता है:
| प्रतिशत | स्कोर |
|---|---|
| 0 | 0 |
| 1 से 50 | 1 |
| 51 से 99 | 3 |
| 100 | 5 |
pip install -r requirements.txt चलाएँ।$> python3 powerup.py --help
_____ _____ _____ _____ _____ _____ _____ _ _ _ _____ _____ _____ _____ __
| | __| __| __| | | _ | | | | | __| __ |___| | | _ | |
| | |__ |__ | __| | | | | __| | | | | | __| -|___| | | __|__|
|_____|_____|_____|_____|_|_|_| |__| |_____|_____|_____|__|__| |_____|__| |__|
usage: powerup.py [-h] [-o OSSEM] [-y OSSEM_YAML] [-p PROFILE] [--excel]
[--elastic] [--yaml]
A tool to assess ATT&CK data source coverage, built on top of awesome OSSEM.
optional arguments:
-h, --help show this help message and exit
-o OSSEM, --ossem OSSEM
path to import OSSEM markdown
-y OSSEM_YAML, --ossem-yaml OSSEM_YAML
path to import OSSEM yaml
-p PROFILE, --profile PROFILE
path to CIM profile
--excel export OSSEM DDM to excel
--elastic export OSSEM data models to elastic
--yaml export OSSEM data models to yaml
--layer export OSSEM data models to navigator layer
जैसा कि आप देख सकते हैं power-up दो अलग-अलग प्रारूपों से OSSEM डेटा का उपभोग कर सकता है:
वर्तमान में, Power-up OSSEM आउटपुट को निर्यात करता है:
output/ फ़ोल्डर में yaml में OSSEM संरचनाएँ बनाता हैouput/ फ़ोल्डर में डेटा गुणवत्ता स्कोर से समृद्ध एक OSSEM DDM तालिका बनाता हैनोट: यदि कोई प्रोफ़ाइल फ़ाइल पथ निर्दिष्ट नहीं है तो power-up डिफ़ॉल्ट रूप से
profiles/default.ymlका उपयोग करता है।
$> python3 powerup.py -o ../OSSEM --yaml
_____ _____ _____ _____ _____ _____ _____ _ _ _ _____ _____ _____ _____ __
| | __| __| __| | | _ | | | | | __| __ |___| | | _ | |
| | |__ |__ | __| | | | | __| | | | | | __| -|___| | | __|__|
|_____|_____|_____|_____|_|_|_| |__| |_____|_____|_____|__|__| |_____|__| |__|
[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to YAML
[*] Created output/ddm_20191114_160246.yml
[*] Created output/cim_20191114_160246.yml
[*] Created output/dds_20191114_160246.yml
YAML में निर्यात/आयात करने का उद्देश्य OSSEM अनुकूलन को सुविधाजनक बनाना है। संभावना है कि आप सबसे पहले अपने स्वयं के डेटा शब्दकोश बनाएंगे, और फिर नई DDM प्रविष्टियाँ जोड़ेंगे, इसलिए YAML अपडेट को आसान बना देगा।
नोट 1: सही संरचनाओं के लिए फ़ाइल नामों के बारे में power-up को निर्देश देने के लिए
resources/config.ymlको संशोधित करें। फिर आपको बस उन्हें एक फ़ोल्डर में रखना होगा और OSSEM_YAML तर्क में पास करना होगा।
नोट 2: power-up संपूर्ण OSSEM ऑब्जेक्ट्स को YAML में पार्स नहीं करता है, केवल डेटा फ़ील्ड और कुछ मेटाडेटा (यानी विवरण) को पार्स करता है। इसका कारण यह है कि मैं YAML ऑब्जेक्ट को यथासंभव छोटा रखना चाहता था, केवल उस डेटा के साथ जिसकी आपको डेटा गुणवत्ता का आकलन करने के लिए आवश्यकता है।
$> python3 powerup.py -o ../OSSEM --excel
_____ _____ _____ _____ _____ _____ _____ _ _ _ _____ _____ _____ _____ __
| | __| __| __| | | _ | | | | | __| __ |___| | | _ | |
| | |__ |__ | __| | | | | __| | | | | | __| -|___| | | __|__|
|_____|_____|_____|_____|_|_|_| |__| |_____|_____|_____|__|__| |_____|__| |__|
[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM DDM to Excel
[*] Saved Excel to output/ddm_enriched_20191114_160041.xlsx
Excel में निर्यात करते समय, power-up एक आकर्षक DDM बनाएगा, जिसमें प्रत्येक प्रविष्टि के लिए संबंधित डेटा गुणवत्ता आयाम होंगे:

$> python3 powerup.py -o ../OSSEM --elastic
_____ _____ _____ _____ _____ _____ _____ _ _ _ _____ _____ _____ _____ __
| | __| __| __| | | _ | | | | | __| __ |___| | | _ | |
| | |__ |__ | __| | | | | __| | | | | | __| -|___| | | __|__|
|_____|_____|_____|_____|_|_|_| |__| |_____|_____|_____|__|__| |_____|__| |__|
[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Elastic
[*] Creating elastic index ossem.ddm
[*] Creating elastic index ossem.cim
[*] Creating elastic index ossem.dds
[*] Creating elastic index ossem.dcs
Elastic में निर्यात करते समय, power-up सभी OSSEM डेटा को elastic में संग्रहीत करेगा। क्योंकि DDM भी संबंधित डेटा गुणवत्ता आयामों से समृद्ध है, आप इस तरह के डैशबोर्ड बनाने में सक्षम होंगे:

$> python3 powerup.py -o ../OSSEM --layer
_____ _____ _____ _____ _____ _____ _____ _ _ _ _____ _____ _____ _____ __
| | __| __| __| | | _ | | | | | __| __ |___| | | _ | |
| | |__ |__ | __| | | | | __| | | | | | __| -|___| | | __|__|
|_____|_____|_____|_____|_|_|_| |__| |_____|_____|_____|__|__| |_____|__| |__|
[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Naviagator Layer
[*] Pulling ATT&CK data
[*] Generating data source quality layer
[*] Created output/ds_layer_20191119_220141.json
लेयर में निर्यात करते समय, power-up एक Attack Navigator Layer JSON फ़ाइल बनाएगा, जिसमें प्रत्येक तकनीक के लिए संबंधित डेटा गुणवत्ता आयाम होंगे:

नोट: तकनीक स्कोर DDM में डेटा स्रोतों के औसत स्कोर से प्राप्त होते हैं।
| ATT&CK Data Source | Sub Data Source | Source Data Object | Relationship | Destination Data Object | EventID |
|---|
| Process monitoring | process creation | process | created | process | 4688 |
| Process monitoring | process creation | process | created | process | 1 |
| Process monitoring | process termination | process | terminated | - | 4689 |
| Process monitoring | process termination | process | terminated | - | 5 |
| आयाम | प्रकार | विवरण |
|---|
| कवरेज | डेटा चैनल | डेटा चैनल द्वारा कितने उपकरणों या नेटवर्क खंडों को कवर किया गया है |
| समयबद्धता | डेटा चैनल | घटना उपलब्ध होने में कितना समय लगता है |
| अवधारण | डेटा चैनल | घटना कितने समय तक उपलब्ध रहती है |
| संरचना | घटना | घटना कितनी पूर्ण है, क्या प्रासंगिक फ़ील्ड उपलब्ध हैं |
| संगति | घटना | घटना फ़ील्ड कितने मानक हैं, क्या फ़ील्ड सामान्यीकृत किए गए हैं |
| 0 | 0 |
| 1 से 25 | 1 |
| 26 से 50 | 2 |
| 51 से 75 | 3 |
| 76 से 99 | 4 |
| 100 | 5 |