Multi-label classification system to map Cyber Threat Intelligence reports to MITRE ATT&CK TTPs using CTI-BERT (IBM Research).
Model: CTI-BERT (ibm-research/CTI-BERT)
Dataset: Security-TTP-Mapping (tumeteor/Security-TTP-Mapping)
βββ run_strategy_test.ipynb # Main experiment notebook (24 strategies)
βββ src/
β βββ data_loader.py # CTI preprocessing + sliding windows
β βββ model.py # CTI-BERT with Focal/Weighted BCE
β βββ train.py # Training loop
β βββ evaluate.py # Metrics (F1, mAP, Recall@K)
β βββ augmentation.py # IoC replacement, back-translation, oversampling
β βββ classifier_chain.py # Sklearn ClassifierChain
β βββ attention_xml.py # AttentionXML (NeurIPS 2019)
β βββ light_xml.py # LightXML (AAAI 2021)
β βββ xml_utils.py # XMC training utilities
βββ outputs/ # Results & checkpoints
Google Colab:
run_strategy_test.ipynbLocal:
pip install -r requirements.txt
jupyter notebook run_strategy_test.ipynb
Improve tail TTP performance:
Duration: ~4-5 hours
Section 1: Loss Comparison (4 strategies)
Section 2: Capacity Testing (5 variants)
Duration: ~5-6 hours
Test 2 best losses Γ 5 classification methods:
Classification Methods:
Matrix:
Chain ExtraTrees RandomForest AttentionXML LightXML
Weighted BCE C-1 C-2 C-3 C-4 C-5
Focal Ξ³=5 C-6 C-7 C-8 C-9 C-10
Duration: ~7.5-10 hours
Recommended Order:
PART A β Find best augmentation (e.g., A-5)
β
PART B β Find best loss (e.g., Weighted BCE)
β
PART C β Find best classifier (test all 10 combos)
Flexible: Each part is independent - run in any order
Time Estimates:
This is effectively a recommendation system for SOC analysts:
Each experiment generates comprehensive outputs:
Model Checkpoints:
outputs/bert-base-uncased_[timestamp]/final_model.ptoutputs/bert-base-uncased_[timestamp]/checkpoint_epoch_*.ptMetrics & Logs:
evaluation_metrics.json - All metrics (F1, mAP, Recall@K, etc.)training_history.json - Loss/accuracy curves per epochsummary.json - Configuration + final resultslabels.json - Label mappingsComparison Tables (CSV):
outputs/augmentation_comparison.csv - Part A resultsoutputs/loss_function_comparison.csv - Part B-1 resultsoutputs/topk_analysis.csv - Part B-2 resultsoutputs/hybrid_strategies_comparison.csv - Part C resultsAll CSVs include Training_Time_min and all metrics (including @10)
Visualizations (Line Charts with Best Score Markers):
Each comparison generates line charts with:
Example plots:
outputs/augmentation_plots/micro_f1_comparison.pngoutputs/loss_function_plots/map_comparison.pngoutputs/hybrid_strategies_plots/recall_at_5.pngNote: Visualizations show @5 metrics only. @10 metrics available in CSV files.
Based on state-of-the-art CTI classification research:
111 commits
Jupyter Notebook
55.1%
Python
44.9%
Multi-label classification system to map Cyber Threat Intelligence reports to MITRE ATT&CK TTPs using CTI-BERT (IBM Research).
Model: CTI-BERT (ibm-research/CTI-BERT)
Dataset: Security-TTP-Mapping (tumeteor/Security-TTP-Mapping)
βββ run_strategy_test.ipynb # Main experiment notebook (24 strategies)
βββ src/
β βββ data_loader.py # CTI preprocessing + sliding windows
β βββ model.py # CTI-BERT with Focal/Weighted BCE
β βββ train.py # Training loop
β βββ evaluate.py # Metrics (F1, mAP, Recall@K)
β βββ augmentation.py # IoC replacement, back-translation, oversampling
β βββ classifier_chain.py # Sklearn ClassifierChain
β βββ attention_xml.py # AttentionXML (NeurIPS 2019)
β βββ light_xml.py # LightXML (AAAI 2021)
β βββ xml_utils.py # XMC training utilities
βββ outputs/ # Results & checkpoints
Google Colab:
run_strategy_test.ipynbLocal:
pip install -r requirements.txt
jupyter notebook run_strategy_test.ipynb
Improve tail TTP performance:
Duration: ~4-5 hours
Section 1: Loss Comparison (4 strategies)
Section 2: Capacity Testing (5 variants)
Duration: ~5-6 hours
Test 2 best losses Γ 5 classification methods:
Classification Methods:
Matrix:
Chain ExtraTrees RandomForest AttentionXML LightXML
Weighted BCE C-1 C-2 C-3 C-4 C-5
Focal Ξ³=5 C-6 C-7 C-8 C-9 C-10
Duration: ~7.5-10 hours
Recommended Order:
PART A β Find best augmentation (e.g., A-5)
β
PART B β Find best loss (e.g., Weighted BCE)
β
PART C β Find best classifier (test all 10 combos)
Flexible: Each part is independent - run in any order
Time Estimates:
This is effectively a recommendation system for SOC analysts:
Each experiment generates comprehensive outputs:
Model Checkpoints:
outputs/bert-base-uncased_[timestamp]/final_model.ptoutputs/bert-base-uncased_[timestamp]/checkpoint_epoch_*.ptMetrics & Logs:
evaluation_metrics.json - All metrics (F1, mAP, Recall@K, etc.)training_history.json - Loss/accuracy curves per epochsummary.json - Configuration + final resultslabels.json - Label mappingsComparison Tables (CSV):
outputs/augmentation_comparison.csv - Part A resultsoutputs/loss_function_comparison.csv - Part B-1 resultsoutputs/topk_analysis.csv - Part B-2 resultsoutputs/hybrid_strategies_comparison.csv - Part C resultsAll CSVs include Training_Time_min and all metrics (including @10)
Visualizations (Line Charts with Best Score Markers):
Each comparison generates line charts with:
Example plots:
outputs/augmentation_plots/micro_f1_comparison.pngoutputs/loss_function_plots/map_comparison.pngoutputs/hybrid_strategies_plots/recall_at_5.pngNote: Visualizations show @5 metrics only. @10 metrics available in CSV files.
Based on state-of-the-art CTI classification research:
111 commits
Jupyter Notebook
55.1%
Python
44.9%