NTIA RAN Tester UE
February 13, 2026 ยท View on GitHub
This project is a UE centric RAN testing framework designed to quickly and easily test RANs against common attacks. The system works using declarative test configurations, which specify all the hardware and software needed to run complex series of security tests against a RAN.
See the our comprehensive documentation for more info on our attacks and metrics.
This RAN tester UE (rtUE) is fully software-based and compatible with widely available, commercial off-the-shelf (COTS) software radio hardware. Standardized 3GPP or O-RAN tests, as well as custom test procedures, can be implemented and executed at minimal cost and at different stages of RAN development and integration. This system facilitates testing across multiple commercial and open-source RAN implementations with minimal technical overhead. Additionally, many attacks on the RAN can be executed automatically by the system.
System Requirements
Machine and OS Recommendations
The RAN tester UE is tested on Ubuntu 24.04. However, any linux distro or MacOS machine should be able to run the software with few issues. If there are problems on these platforms, feel free to make an issue for us to address.
We recommend using the ubuntu realtime kernel, which is available for purchase from canonical. Alternatively, use can use the lowlatency kernel, which is free.
A powerful machine is recommended, since many of the attacks are resource intensive.
Required Dependencies
Install the following on your system before running the system:
- docker engine
- docker compose
- UHD utilites (for downloading firmware images)
Quickstart Guide
First, clone the core repository
git clone https://github.com/oran-testing/ran-tester-ue.git
Navigate to the directory and run the system setup script:
cd ran-tester-ue
./scripts/system_setup.sh
Now, pull the system containers from our registry:
sudo docker compose pull # Grafana, InfluxDB, and Controller
Alternatively, you can build the images yourself:
sudo docker compose build
Finally, modify the configuration to run a test:
The test specification is defined in the YAML config (ran-tester-ue/spec.yaml):
This configuration tells the controller which services to run, and in what order. This allows for fully automated tests with many components.
enable_cli: true
build_spec:
- component: "sni5gect"
docker_image: "ghcr.io/oran-testing/sni5gect"
pull: false
run_spec:
- component: "rtue"
name: "rtue_uhd_1"
config_file: "configs/srsran/ue_uhd.conf"
rf:
type: "b200"
- component: "sni5gect"
name: "downlink_sniffer"
config_file: "configs/sni5gect/srsgnb_band3.yaml"
rf:
type: "b200"
The above configuration will run a sni5gect sniffer and UE with the requested environment, writing all data to influxdb and displaying metrics in realtime with grafana.
To start the system run:
sudo docker compose up
The Grafana dashboard can be accessed at http://localhost:3300.
Nvidia Setup
Run the following command to setup docker to use the nvidia gpu
sudo ./scripts/nvidia_toolkit_setup.sh