Interpretable Collaborative-Attack Detection
Coordinated attacks are the case single-flow detectors miss: when two adversaries split the work, each individual flow looks more benign than it would alone. This project detects the set of attack components in a run from scenario-level labels only — and explains each decision in a form an operator can act on.
Two levels. Per flow: a multi-perspective interpretable feature space plus a learned raw-timing block, feeding a gradient-boosted tree head. Per run: cross-flow synchrony and destination-convergence features that recover the attack-component set — 0.88 set-precision (0.875 ± 0.021) on UAV-CAS.
Rules that are extracted, not written. A depth-5 surrogate tree is distilled from the trained ensemble; for each class the highest-precision leaf is extracted and validated against true labels on held-out test data. Each rule is a conjunction of at most five named thresholds and maps to a concrete mitigation — DDoS at 0.990 F1 → rate-limit sources sharing the burst pattern; DoS at 0.943 → throttle the single-source high-determinism flow.
Reported honestly. Blackhole (0.291 F1) and wormhole (0.206) rules are weak, because those signatures are diffuse per-flow. Publishing per-rule precision next to the mitigation is the point: it tells an analyst how far to trust each rule.
Early decisions. 10-packet prefixes land within 2 points of full-flow accuracy.
Cross-domain check. The same feature pipeline transfers to CICIOT23, a non-UAV IoT benchmark: weighted F1 0.826 → 0.866 → 0.882 at 10/100/250-packet prefixes, ahead of LightGBM (0.837) and random forest (0.836) at 100.
My role: feature design, both detection levels, surrogate-rule extraction and validation, cross-dataset evaluation.
Stack: Python, XGBoost, scikit-learn, SHAP.
Status: under submission.
