Skip to content

Mat0vu/censorlab

 
 

Repository files navigation

#todocite CensorLab: A Generic Testbed for Censorship Emulation

Documentation | Getting Started | API Reference

CensorLab is a censorship emulation testbed that intercepts network packets and processes them through configurable layers with optional Python scripts or ML models for custom censorship logic.

Quick Start (Docker)

git clone https://github.com/SPIN-UMass/censorlab.git
cd censorlab
git submodule update --init

# Interactive shell
./docker/censorlab.sh --shell

# Run all experiments
./experiments/scripts/run_all_docker.sh

Building from Source

git clone https://github.com/SPIN-UMass/censorlab.git
cd censorlab
git submodule update --init
cargo build --release
sudo ./set_permissions.sh

Nix users: nix develop provides a complete environment.

Running

# NFQ mode (live interception via netfilter queue)
censorlab -c censor.toml nfq

# PCAP mode (offline analysis)
censorlab -c censor.toml pcap capture.pcap 192.168.1.100

# With a script directly
censorlab -p censor.py nfq

# Help
censorlab --help

Pre-built VM

Pre-built VirtualBox images with everything pre-installed are available for x86_64 and aarch64. See the VM setup guide for import instructions.

This option requires manual updating and is not recommended outside of classroom setting.

Experiments

Reproducible experiments for evaluation. See experiments/README.md for details.

About

A Generic Testbed for Censorship Emulation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 57.2%
  • Python 23.9%
  • Shell 8.8%
  • HTML 2.3%
  • Nix 2.1%
  • TeX 1.9%
  • Other 3.8%