FEINT
Contribution in one sentence: FEINT derives the attacker, adversarial training, a robust-feature model, a poison sanitiser and counterfactual explanations from one declarative attacker-capability schema, measures over 5 seeds (95 % CIs) on four datasets plus a cross-dataset transfer what each derived defence buys against realisable evasion or poisoning, and isolates the schema's share with paired ablations for adversarial training and the sanitiser (Evaluation).
Results dashboard Evaluation Reproduce
| constrained detection at eps=2 (5 seeds, mean [95 % CI]) | CIC-IDS2017 | UNSW-NB15 |
|---|---|---|
| XGBoost | 0.405 [0.376, 0.433] | 0.000 [0.000, 0.000] |
| FEINT ensemble | 0.369 [0.279, 0.459] | 0.328 [0.262, 0.394] |
| FEINT ensemble + adversarial training | 0.793 [0.763, 0.823] | 0.962 [0.957, 0.968] |
| XGBoost, robust features only (conditional on the schema) | 0.994 [0.993, 0.995] | 0.942 [0.935, 0.950] |
Trained on corrected CIC-IDS2017 and tested on CSE-CIC-IDS2018, plain XGBoost scores F1 0.000 on the shared attack families (it calls every flow benign); the robust-feature model reaches F1 0.51, mostly on SSH brute force.
Try it in 60 seconds: docker run --rm ghcr.io/rakshit-737/feint-adversarial-ids:latest run --quick --n 2000 --eps 0 1 --no-figures --out /tmp/demo
- Getting started: install, smoke study, API
- Architecture: pipeline and module map
- Evaluation: methodology and every result with confidence intervals
- Reproduce: exact commands, runtimes and expected numbers
- Threat model and limitations
Lab-only
FEINT perturbs feature vectors; it never crafts, captures or sends packets. See Security.
