| Detection performance | 18,000-event holdout at simulated 1% prevalence, threshold frozen after validation | Recall, FPR, precision, ROC AUC, and PR AUC, with bootstrap 95% CIs from 400 holdout resamples | Recall 0.9000 (162 of 180 attacks; CI 0.85 to 0.94) at FPR 0.0194 (346 of 17,820 benign events); ROC AUC 0.9714; PR AUC 0.2972; precision 0.3189 (CI 0.28 to 0.36); alert budget 2,822 per 100k events. | One attack campaign and one honeypot environment; the metrics grade this dataset rather than production traffic. |
| Error analysis | The 346 false positives the frozen threshold flags on the holdout | Process and event taxonomy over the flagged benign traffic | systemd processes carry 86% of false positive volume, and getdents64 directory enumeration fires at 37x its benign baseline, so an alert on getdents64 from systemd deserves a fast-path review rule before anyone pages a human. | Triage guidance derives from one environment's benign baseline. |
| Evidence level | Public repository: executed notebook with embedded outputs, nine committed figures, pinned requirements, and a data rebuild script | RANDOM_STATE=42 re-execution plus count assertions in the rebuild script | Re-execution reproduced every headline metric exactly, with 14 of 15 code cells byte-identical (one cosmetic pandas dtype-label diff); the rebuild script asserts the three defining row counts; MIT covers the code and the dataset carries CC0 1.0. | The 95 MB subset stays outside version control, so a full rebuild needs a Kaggle account; a 500-row stratified sample ships for schema inspection. |
| Affiliation | Carnegie Mellon University coursework, fall 2024, revised February 2025 | Repository README attribution | Solo security-analytics coursework, upgraded to a public reproducible repository. | Course handouts, prompts, and grading context stay private. |
| Page updated | July 2026 | Site content ledger | Entry drafted July 10, 2026 from the public repository: its README, data documentation, and executed notebook outputs. | Numbers quote the committed executed notebook and its documented re-execution rather than a rerun on fresh traffic. |
|---|