xseciot provides a unified framework for machine learning-based intrusion detection in IoT environments, combining:
- FIRCE — a streaming, drift-aware evaluation framework using conformal prediction
- FIRE — a batch-oriented baseline for preprocessing, training, and offline experimentation
For most users, FIRCE is the primary entrypoint.
FIRCE is a streaming and simulation framework that supports:
- real-time and replay-based intrusion detection
- conformal evaluation for drift detection (ICE, CCE, Approx-CCE, TCE)
- adaptive retraining and recalibration
- adaptive chunking and significance control
- modular drift monitoring (CE and CADE)
- structured logging and performance tracking
FIRE provides:
- dataset preprocessing
- model training
- batch simulation and evaluation
It is used for:
- baseline comparisons
- controlled experiments
- supporting FIRCE model development
- streaming + simulation pipelines
- conformal drift detection with statistical guarantees
- Approx-CCE (efficient cross-conformal evaluation)
- adaptive chunking (dynamic window sizing)
- adaptive significance control (dynamic α)
- modular drift monitoring (CE + CADE)
- binary and multiclass workflows
- offline preprocessing and feature engineering
- supervised model training
- batch evaluation pipelines
.
├── scripts/ # Data processing, orchestration, and utilities
├── src/
│ ├── firce/ # Streaming + conformal evaluation framework
│ │ ├── cli.py
│ │ ├── adaptive_chunking.py
│ │ ├── conformalEval/
│ │ ├── drift_monitor/
│ │ ├── models/
│ │ ├── pipelines/
│ │ ├── runtime/
│ │ └── utils/
│ └── fire/ # Offline preprocessing, modeling, and simulation
├── scripts/ # Labeling, merging, stats, scanning, SLURM
├── Makefile # Reproducible workflows (recommended entrypoints)
├── pyproject.toml # Project metadata and dependencies
├── uv.lock # Locked dependency graph
└── README.md
- Python 3.11+
uv
uv syncOptional (GPU / ML stack depending on config):
uv sync --extra tfmake bin.testUNSW example:
make bin.unswuv run firce \
datasets/CETrain/combined_data.csv \
datasets/CEFlows2/CEFlows2_merged.csv \
--pipeline simulationbash scripts/run_xseciot.shmake scan TARGET_IP=192.168.1.0/24Key FIRCE components:
src/firce/conformalEval/conformal_config.toml— CE configurationsrc/firce/adaptive_chunking.py— adaptive window sizingsrc/firce/drift_monitor/— drift detection implementations (CE + CADE)src/firce/models/torch_device.py— device selection (CPU/GPU)src/firce/pipelines/— simulation and streaming orchestration
Examples:
# Label dataset
make label UNLABELED_DATASET_PATH=datasets/CEFlows/unlabeled
# Merge datasets
make merge LABELED_DATASET_PATH=datasets/CEFlows/mc_labeled
# Aggregate performance
make overall.perf LOG_DIR=logging
# Scrape structured stats
make overall.scrape LOG_DIR=loggingOr directly:
uv run scripts/labeling.py --dataset_path ...Run tests:
make testLint + format:
make lintCheck dependencies:
make deps.checkBuild artifacts:
make buildPre-publish validation:
make preflightThis repository contains research-oriented code for IoT intrusion detection.
- Results depend heavily on dataset assumptions and preprocessing
- Models and pipelines are intended for experimentation and evaluation
- Validate behavior before deploying in operational environments
This project includes components derived from:
The CADE implementation has been modernized and integrated into FIRCE for drift detection research.
Seth Barrett Bradley Boswell Swarnamugi Rajaganapathy Lin Li Gokila Dorai