
ग्राफ-आधारित खतरा पहचान प्रणाली जो खतरे के ग्राफों की तुलना CTI-व्युत्पन्न हमले क्वेरी ग्राफों से करने के लिए अशुद्ध ग्राफ वेक्टर मिलान का उपयोग करती है, ताकि स्वचालित दुर्भावनापूर्ण निर्णय और खतरा स्कोरिंग की जा सके।
यह प्रोजेक्ट ProHunter सिस्टम का एक मुख्य मॉड्यूल है, जो मुख्य रूप से PPG मॉड्यूल से नमूना किए गए खतरे के ग्राफ़ों पर दुर्भावनापूर्ण मूल्यांकन करने के लिए डिज़ाइन किया गया है। इस विधि का मुख्य विचार यह है कि यह खतरे के ग्राफ़ों और CTI से उत्पन्न हमले के क्वेरी ग्राफ़ों के बीच वेक्टर समानता की गणना करने के लिए inexact graph vector matching का उपयोग करता है, जिससे निर्णय के लिए खतरे के स्कोर उत्पन्न होते हैं। फ्रेमवर्क निम्नानुसार दर्शाया गया है।
नोट: यह प्रोजेक्ट PPG के डाउनस्ट्रीम डिटेक्शन मॉड्यूल के रूप में कार्य करता है, अर्थात Attack Representation & Matching। प्रोवेनेंस ग्राफ़ भंडारण और खतरा ग्राफ़ नमूनाकरण सहित संपूर्ण वर्कफ़्लो के लिए, कृपया पहले PPG मॉड्यूल देखें।
पायथन संस्करण: 3.7.12
# Clone the repository
git clone https://github.com/xueboQiu/ProHunter
cd ProHunter
# Install dependencies
pip install -r requirements.txt
PPG मॉड्यूल द्वारा नमूना किए गए खतरे के ग्राफ़ों को विज़ुअलाइज़ करें।
उपयोग विधि:
खतरे के ग्राफ़ डेटा को संबंधित डेटासेट निर्देशिका में रखें:
dataset/darpa_cadets/sgs_demo/sce041214_E5A15412-68E0-FD54-A068-DD6114FD9040_2.txt # The case provided for visualization
मैपिंग फ़ाइल (जैसे, names.json) तैयार करें, जिसे dataset_preprocess.py चलाकर स्वचालित रूप से उत्पन्न किया जा सकता है (खतरा पहचान मॉड्यूल का वर्कफ़्लो देखें)
subgraph_vision.py में डेटासेट पथ बदलें, और विज़ुअलाइज़ेशन स्क्रिप्ट चलाएँ:
python subgraph_vision.py
स्क्रिप्ट में संबंधित डेटासेट निर्दिष्ट करें। प्रोग्राम sgs_demo निर्देशिका से सबग्राफ़ डेटा को स्वचालित रूप से पढ़कर विज़ुअलाइज़ करेगा।
उदाहरण विज़ुअलाइज़ेशन परिणाम:
डाउनलोड की गई फ़ाइलों को प्रोजेक्ट निर्देशिका में निम्न संरचना के अनुसार रखें:
datasets/darpa_{dataset_name}/raws/xx.json
python preprocess/dataset_preprocess.py # Extract triple information from raw datasets:
यह निम्न स्थान पर टपल फ़ाइलें उत्पन्न करता है:
datasets/darpa_{dataset_name}/tuples/xx.txt
python preprocess/parse_trace.py
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=False
नोट: अतिरिक्त पैरामीटर (जैसे, epoch, learning rate) util.py में parse_args() फ़ंक्शन में पाए जा सकते हैं।
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=True
मॉडल models/{dataset_name}/best.pth से मॉडल पैरामीटर लोड करेगा।
प्रोजेक्ट तत्काल परीक्षण के लिए पूर्व-प्रोसेस किए गए CADETS डेटासेट नमूने प्रदान करता है:
# Direct evaluation (using pre-trained model)
python pretrain_gmpt_cl.py --mode=cadets --eval=True
# Re-train the model
python pretrain_gmpt_cl.py --mode=cadets --eval=False
python pretrain_gmpt_cl.py --mode=cadets --eval=True
उदाहरण मूल्यांकन परिणाम:
ProHunter/
├── dataset/
│ └── darpa_cadets/ # Example dataset
│ ├── raws/ # Raw dataset files
│ ├── sgs_demo/
│ ├── test/
│ ├── train/
│ ├── tuples/ # Extracted tuples
│ ├── edge_type_map.json
│ ├── names.json # UUID to name mapping
│ ├── node_type_map.json
│ └── types.json # UUID to type mapping
├── models/
│ └── {dataset_name}/
│ └── best.pth # Trained model parameters
├── preprocess/ # Data preprocessing scripts
├── subgraph/
├── batch.py
├── darpa_loader.py # DARPA data loader
├── darpa_model.py
├── dataloader.py # Data loading utilities
├── graph_matching.py
├── pretrain_gmpt_cl.py # Main training & evaluation script
├── splitters.py
├── util.py # Utility functions & arguments
├── requirements.txt # Dependencies
└── readme.md
| डेटासेट | लॉग फ़ाइलें | प्लेटफ़ॉर्म | डाउनलोड लिंक |
|---|
| E3-Cadets | ta1-cadets-e3-official-1.json.{0-4} | FreeBSD | DARPA E3 |
| E3-Theia | ta1-theia-e3-official-6r.json.{0-12} | Linux | DARPA E3 |
| E3-Trace | ta1-trace-e3-official.json.{0-203} | Linux | DARPA E3 |
| E5-Theia | ta1-theia-1-e5-official-2.bin.{27-31} | Linux | DARPA E5 |
| E5-Clearscope2_1 | ta1-clearscope-2-e5-official-1.bin.{15-20} | Android | DARPA E5 |
| E5-Clearscope2_2 | ta1-clearscope-2-e5-official-1.bin.{24-33} | Android | DARPA E5 |
| OPTC | benign/20-23Sep19/AIA-201-225/{*} | Windows | OpTC |