RAVAGE is an attack injection tool that enables realistic physical attacks (e.g., GPS spoofing, gyroscope and accelerometer tampering) on robotic autonomous vehicles (RAVs) such as drones and rovers. RAVAGE is designed to be:
- Extensible: Easily integrates with multiple autopilot software platforms (e.g., ArduPilot, PX4).
- Configurable: Allows fine-tuning of attack parameters (e.g., duration, intensity) without modifying autopilot code.
- Non-invasive: Supports seamless attack injection in both virtual and real RAV environments.
- Accurately emulates physical attacks via software.
- Seamless integration with both virtual and real RAV systems.
- Compatible with multiple RAV platforms and vehicle types.
RAVAGE has been tested with both drones and rovers using the following autopilot systems:
PX4 supports Gazebo and JSBSim for simulation. We also recommend installing QGroundControl.
There are two ways to run RAVAGE:
- Install the required tools manually (recommended for experienced users).
- Use our pre-configured Ubuntu VM for easier setup (recommended for quick deployment).
Ensure you have the following dependencies:
- Python 3.X
- pymavlink
- yaml
Edit the configuration file ./config/autopilot_config.yaml
to specify your environment:
RAVAGE_HOME: "/path/to/ravage/home/"
ARDUPILOT_HOME: "/path/to/ardupilot/home/"
PX4_HOME: "/path/to/px4/home/"
WAYPOINT_FILE: "square_copter.txt"
ROVER: "No"
COPTER: "Yes"
Parameters:
RAVAGE_HOME
: Path to the RAVAGE project home.ARDUPILOT_HOME
: Path to the ArduPilot installation.PX4_HOME
: Path to the PX4 installation.WAYPOINT_FILE
: File containing mission waypoints.ROVER
: Set toYes
for rover simulation, otherwiseNo
.COPTER
: Set toYes
for copter simulation, otherwiseNo
.
Define the attack parameters in ./config/attack_profile.yaml
to specify attack types, intensity, and duration.
Run the following command to start the autopilot and set waypoints:
python mission.py -s ArduPilot
Options:
-s
: Specify the autopilot system (ArduPilot
|PX4
)
Use the following command to inject attacks:
python ravage.py -s <autopilot> -a <attack_type> -i <intensity> -d <duration>
Options:
-s
,--autopilot
: Autopilot software (ArduPilot
|PX4
)-a
,--attack_type
: Attack type (GPS
|GYRO
|MAG
|OPTICAL_FLOW
|ACCELEROMETER
)-i
,--intensity
: Attack intensity (float value)-d
,--duration
: Attack duration (integer value)
- Edit the configuration files (
autopilot_config.yaml
andattack_profile.yaml
). - Start the simulation and set waypoints:
python mission.py -s ArduPilot
- Inject a GPS spoofing attack with intensity
3
:
python ravage.py -s ArduPilot -a GPS -i 3
This example initializes the simulation, sets mission waypoints, and performs a GPS spoofing attack during the mission.
If you find our work useful in your research, please consider citing:
@inproceedings{dash2025ravage,
title={RAVAGE: Robotic Autonomous Vehicles' Attack Generation Engine},
author={Dash, Pritam and Pattabiraman, Karthik},
booktitle = {The 55th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)},
year={2025}
}