
Graph-basiertes Bedrohungserkennungssystem, das ungefähres Graph-Vektor-Matching verwendet, um Bedrohungsgraphen mit aus CTI abgeleiteten Angriffsabfragegraphen für automatisierte Schadensbewertung und Bedrohungsbewertung zu vergleichen.
Dieses Projekt ist ein Kernmodul des ProHunter-Systems, das hauptsächlich dazu dient, bösartige Bewertungen von Bedrohungsgraphen durchzuführen, die aus dem PPG-Modul entnommen wurden. Die Hauptidee dieser Methode besteht darin, ungenaues Graphvektor-Matching zu verwenden, um die Vektorähnlichkeit zwischen Bedrohungsgraphen und aus CTI generierten Angriffsabfragegraphen zu berechnen und so Bedrohungsbewertungen für die Beurteilung zu erstellen. Das Framework ist wie folgt dargestellt.
Hinweis: Dieses Projekt dient als nachgelagertes Erkennungsmodul des PPG, d.h. Angriffsdarstellung und -abgleich. Für den vollständigen Arbeitsablauf, einschließlich der Speicherung von Provenienzgraphen und der Entnahme von Bedrohungsgraphen, lesen Sie bitte zuerst das PPG-Modul.
Python-Version: 3.7.12
# Clone the repository
git clone https://github.com/xueboQiu/ProHunter
cd ProHunter
# Install dependencies
pip install -r requirements.txt
Visualisiert Bedrohungsgraphen, die vom PPG-Modul entnommen wurden.
Verwendung:
Legen Sie die Bedrohungsgraphen-Daten im entsprechenden Dataset-Verzeichnis ab:
dataset/darpa_cadets/sgs_demo/sce041214_E5A15412-68E0-FD54-A068-DD6114FD9040_2.txt # The case provided for visualization
Bereiten Sie die Mapping-Datei (z.B. names.json) vor, die durch Ausführen von dataset_preprocess.py automatisch generiert werden kann (siehe Arbeitsablauf des Bedrohungserkennungsmoduls).
Ändern Sie die Dataset-Pfade in subgraph_vision.py und führen Sie das Visualisierungsskript aus:
python subgraph_vision.py
Geben Sie das entsprechende Dataset im Skript an. Das Programm liest und visualisiert automatisch Teilgraphendaten aus dem Verzeichnis sgs_demo.
Beispiel für ein Visualisierungsergebnis:
Platzieren Sie die heruntergeladenen Dateien im Projektverzeichnis gemäß der folgenden Struktur:
datasets/darpa_{dataset_name}/raws/xx.json
python preprocess/dataset_preprocess.py # Extract triple information from raw datasets:
Dadurch werden Tupeldateien generiert unter:
datasets/darpa_{dataset_name}/tuples/xx.txt
python preprocess/parse_trace.py
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=False
Hinweis: Zusätzliche Parameter (z.B. Epoche, Lernrate) finden Sie in der Funktion parse_args() in util.py.
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=True
Das Modell lädt Modellparameter aus models/{dataset_name}/best.pth.
Das Projekt enthält vorverarbeitete CADETS-Dataset-Beispiele für sofortige Tests:
# 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
Beispiel für Bewertungsergebnisse:
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
| Dataset | Logdateien | Plattform | Download-Link |
|---|
| 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 |