Skip to content

ubc-provenance/PIDSMaker

Repository files navigation

🥷 PIDSMaker

Documentation DOI GitHub License

Paper | Documentation | Installation

The first framework designed to build and experiment with provenance-based intrusion detection systems (PIDSs) using deep learning architectures. It provides a single codebase to run most recent state-of-the-arts systems and easily customize them to develop new variants.

Currently supported PIDSs:

Setup

⬇️ Clone the repo

git clone https://github.com/ubc-provenance/PIDSMaker.git

⏰ 10-min Docker Install with DARPA TC/OpTC Datasets

We have made the installation of DARPA TC/OpTC easy and fast, simply follow these guidelines.

Documentation

A comprehensive documentation is available, explaining all possible arguments and providing examples on how integrating new systems.

Basic usage of the framework

Once you have a shell in the pids container, experiments can be run in multiple ways.

  • Replace SYSTEM by velox | orthrus | nodlink | threatrace | kairos | rcaid | flash | magic.
  • Replace DATASET by CLEARSCOPE_E3 | CADETS_E3 | THEIA_E3 | CLEARSCOPE_E5 | THEIA_E5 | optc_h201 | optc_h501 | optc_h051.
  1. Run in the shell, no W&B:

    python pidsmaker/main.py SYSTEM DATASET --tuned
  2. Run in the shell, monitored to W&B:

    python pidsmaker/main.py SYSTEM DATASET --tuned --wandb
  3. Run in background, monitored to W&B (ideal for multiple parallel runs):

    ./run.sh SYSTEM DATASET --tuned

You can still watch the logs in your shell using tail -f nohup.out

Warning: Before performing evaluations, you should tune all systems. Follow the instructions available in our documentation.

Citation

If you use this work, please cite the following paper:

@inproceedings{bilot2025simpler,
	title={{Sometimes Simpler is Better: A Comprehensive Analysis of State-of-the-Art Provenance-Based Intrusion Detection Systems}},
	author={Bilot, Tristan and Jiang, Baoxiang and  Li, Zefeng and  El Madhoun, Nour and Al Agha, Khaldoun and Zouaoui, Anis and Pasquier, Thomas},
	booktitle={Security Symposium (USENIX Sec'25)},
	year={2025},
	organization={USENIX}
}

Contributing

Pull requests are welcome! Please follow the contribution guidelines.

License

See licence.