
Sistema de detecção de ameaças baseado em grafos usando correspondência inexata de vetores de grafos para comparar grafos de ameaças com grafos de consulta de ataque derivados de CTI para julgamento malicioso automatizado e pontuação de ameaças.
Este projeto é um módulo central do sistema ProHunter, projetado principalmente para realizar julgamento de maliciosidade em grafos de ameaças amostrados do módulo PPG. A ideia principal deste método é usar correspondência vetorial inexata de grafos para calcular a similaridade vetorial entre grafos de ameaças e grafos de consulta de ataque gerados a partir de CTI, produzindo pontuações de ameaça para o julgamento. A estrutura é ilustrada a seguir.
Nota: Este projeto atua como o módulo de detecção downstream do PPG, ou seja, Representação e Correspondência de Ataques (Attack Representation & Matching). Para o fluxo de trabalho completo, incluindo armazenamento de grafos de proveniência e amostragem de grafos de ameaças, consulte primeiro o módulo PPG.
Versão do Python: 3.7.12
# Clone the repository
git clone https://github.com/xueboQiu/ProHunter
cd ProHunter
# Install dependencies
pip install -r requirements.txt
Visualize os grafos de ameaças amostrados pelo módulo PPG.
Uso:
Coloque os dados do grafo de ameaças no diretório do conjunto de dados correspondente:
dataset/darpa_cadets/sgs_demo/sce041214_E5A15412-68E0-FD54-A068-DD6114FD9040_2.txt # The case provided for visualization
Prepare o arquivo de mapeamento (ex.: names.json), que pode ser gerado automaticamente executando dataset_preprocess.py (veja o fluxo de trabalho do Módulo de Detecção de Ameaças)
Modifique os caminhos do conjunto de dados em subgraph_vision.py e execute o script de visualização:
python subgraph_vision.py
Especifique o conjunto de dados correspondente no script. O programa lerá e visualizará automaticamente os dados de subgrafos do diretório sgs_demo.
Exemplo de Resultado de Visualização:
Coloque os arquivos baixados no diretório do projeto seguindo esta estrutura:
datasets/darpa_{dataset_name}/raws/xx.json
python preprocess/dataset_preprocess.py # Extract triple information from raw datasets:
Isso gera arquivos de tuplas em:
datasets/darpa_{dataset_name}/tuples/xx.txt
python preprocess/parse_trace.py
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=False
Nota: Parâmetros adicionais (ex.: época, taxa de aprendizado) podem ser encontrados na função parse_args() em util.py.
python pretrain_gmpt_cl.py --mode={dataset_name} --eval=True
O modelo carregará os parâmetros do modelo de models/{dataset_name}/best.pth.
O projeto fornece amostras pré-processadas do conjunto de dados CADETS para testes imediatos:
# 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
Exemplo de Resultados de Avaliação :
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
| Conjunto de Dados | Arquivos de Log | Plataforma | Link para Download |
|---|
| 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 |