Skip to main content

A UAV Remote ID Spoofing Defense System

Project description

logo

Argus

Ask DeepWiki PyPI License uv Ruff Last Commit
A UAV Remote ID Spoofing Defense System.

#UAV Swarm Security โ€ƒ #Remote ID Spoofing โ€ƒ #Graph-Theoretic Modeling โ€ƒ #Cryptographic Defenses


๐Ÿ“‘ Table of Contents

๐Ÿ”ญ Overview
โœจ Key Features
๐Ÿ“ฆ Installation
๐Ÿš€ Quick Start
๐Ÿงช Testing
๐Ÿ“ Project Structure
๐Ÿ“š Documentation
๐Ÿ”ฌ Research Background
๐Ÿค Contributing
๐Ÿ“– References


๐Ÿ”ญ Overview

Argus is a research framework for investigating UAV swarm vulnerabilities to Remote ID spoofing attacks. It combines graph-theoretic analysis with cryptographic defenses to detect and prevent:

๐Ÿ“„ Paper ๐Ÿ‘จ๐Ÿปโ€๐Ÿซ Presentation

โœจ Key Features

๐ŸŽฎ Simulation & Attacks

  • Swarm Simulation โ€” Dynamic graph-based UAV network modeling with configurable parameters
  • Attack Injection โ€” Multiple spoofing scenarios with ground truth tracking

โš”๏ธ Attack Types

Attack Type Description
๐ŸŽญ Phantom UAV Injection Non-existent UAVs broadcasting fake Remote ID messages
๐Ÿ“ Position Falsification Legitimate UAVs reporting spoofed GPS coordinates
๐Ÿ”€ Coordinated Attacks Multiple synchronized spoofers disrupting swarm consensus

๐Ÿ” Detection Methods

Method Description Performance
๐Ÿ“Š Spectral Analysis Laplacian eigenvalue anomaly detection Fast & lightweight
๐ŸŽฏ Centrality-Based Graph centrality metric analysis Good for structural changes
๐Ÿค– Machine Learning Node2Vec embeddings + Isolation Forests Adaptive detection
๐Ÿ” Cryptographic Ed25519 signature verification 100% TPR, 0% FPR!

๐Ÿ“ˆ Analysis & Visualization

  • Consensus Analysis โ€” Quantify attack impact on swarm coordination
  • Publication-Quality Plots โ€” ROC curves, heatmaps, comparisons (300 DPI PDF+PNG)
  • Live Real-Time Animation โ€” Watch UAVs move and attacks unfold with PySide6 (Qt6)
  • Interactive Detection Overlay โ€” Enhanced visualization with detection status

๐Ÿ“ฆ Installation

Prerequisites

๐Ÿ Python 3.10 or higher with pip or uv package manager

From PyPI (Recommended)

# Install from PyPI
pip install argus_uav

# Verify installation
argus --help

From Source (For Development)

# Clone the repository
git clone https://github.com/Sang-Buster/Argus.git
cd Argus

# Create virtual environment
uv sync
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Verify installation
argus --help
pytest tests/ -v

๐Ÿš€ Quick Start

๐ŸŽ›๏ธ Interactive CLI (Recommended)

The easiest way to get started:

# Launch interactive mode
argus

# Quick command-line usage
argus --attack phantom --detectors all --mode comparison

# See all options
argus --help

๐Ÿ“– See CLI User Guide for complete documentation.

The CLI provides:

  • โœจ Interactive mode โ€” Guided experience for beginners
  • ๐ŸŽฌ Live visualization โ€” Watch attacks and detection in real-time
  • ๐Ÿ“Š Performance comparison โ€” Automated benchmarking and plots
  • ๐ŸŽฏ Full coverage โ€” Test any combination of 3 attacks ร— 4 detection methods

1๏ธโƒฃ Simulate a Clean UAV Swarm

from argus_uav.core.swarm import Swarm
import numpy as np

# Create reproducible simulation
rng = np.random.default_rng(seed=42)
swarm = Swarm(
    num_uavs=20,
    comm_range=100.0,
    bounds=(1000, 1000, 200),
    rng=rng
)

# Run for 10 seconds
for t in range(10):
    swarm.step(dt=1.0)
    print(f"Time {t}s: {swarm.get_graph().number_of_edges()} links")

2๏ธโƒฃ Inject and Detect Phantom UAVs

from argus_uav.attacks.phantom_uav import PhantomInjector
from argus_uav.attacks import AttackScenario, AttackType
from argus_uav.detection.spectral import SpectralDetector

# Configure phantom attack
attack = AttackScenario(
    attack_type=AttackType.PHANTOM,
    start_time=5.0,
    duration=10.0,
    phantom_count=3
)

# Setup detection
detector = SpectralDetector()
detector.train([swarm.get_graph().copy() for _ in range(20)])

# Run with attack
injector = PhantomInjector()
for t in range(20):
    if attack.is_active(float(t)):
        injector.inject(swarm, attack, float(t))

    swarm.step(dt=1.0)
    result = detector.detect(swarm.get_graph())

    metrics = result.compute_metrics()
    print(f"TPR: {metrics['tpr']:.2%}, FPR: {metrics['fpr']:.2%}")

For advanced experiments with custom configurations, use the Python API directly. See the examples/ directory for comprehensive demonstrations.

3๏ธโƒฃ Compare All Detection Methods

# Run performance comparison with all detectors
argus --attack phantom --detectors all --mode comparison

# Live visualization with specific detectors
argus --attack coordinated --detectors spectral crypto --mode live

# Both live and comparison modes
argus --attack position --detectors centrality --mode both

# Custom swarm configuration
argus --attack phantom --detectors all --mode comparison \
    --num-uavs 50 --comm-range 150

๐Ÿงช Testing

# Run all tests
pytest tests/

# Run with coverage
pytest tests/ --cov=argus --cov-report=html

# Run specific test suites
pytest tests/unit/           # Unit tests only
pytest tests/integration/    # Integration tests only
pytest tests/performance/    # Performance benchmarks

๐Ÿ“ Project Structure

src/argus_uav/
โ”œโ”€โ”€ ๐ŸŽฎ core/           # Simulation engine (UAV, swarm, Remote ID)
โ”œโ”€โ”€ โš”๏ธ attacks/        # Attack injection (phantom, position spoof, coordinated)
โ”œโ”€โ”€ ๐Ÿ” detection/      # Detection algorithms (spectral, centrality, ML)
โ”œโ”€โ”€ ๐Ÿ” crypto/         # Ed25519 signing and verification
โ”œโ”€โ”€ ๐Ÿค consensus/      # Swarm consensus algorithms
โ”œโ”€โ”€ ๐Ÿ“Š evaluation/     # Metrics, visualizations, ROC curves
โ”œโ”€โ”€ ๐Ÿงช experiments/    # Experiment runner and configuration
โ””โ”€โ”€ ๐Ÿ› ๏ธ utils/          # Random seeds, logging

tests/
โ”œโ”€โ”€ unit/              # Unit tests for individual components
โ”œโ”€โ”€ integration/       # End-to-end scenario tests
โ”œโ”€โ”€ contract/          # Interface compliance tests
โ””โ”€โ”€ performance/       # Benchmark and profiling tests

assets/                # Images, paper, presentation
docs/                  # Documentation and examples
examples/              # Example demonstrations and scripts
results/               # Experiment outputs (gitignored)

๐Ÿ“š Documentation

๐Ÿ“– Complete Documentation Index

Quick Links

Guide Description
๐Ÿš€ Quickstart Guide Get started in 10 minutes
๐Ÿ“Š Project Status Complete status & features
๐Ÿงฎ Algorithm Details Theory and implementation
๐Ÿ“‹ Data Formats Specifications and schemas
๐Ÿ“– References 19 research paper citations

๐Ÿ”ฌ Research Background

This project investigates defenses against Remote ID spoofing, a critical security challenge for UAV swarms. Remote ID is mandated by aviation authorities (FAA 14 CFR Part 89) but lacks authentication, making it vulnerable to falsified messages.

๐ŸŽฏ Key Research Questions

  1. Can graph-theoretic metrics detect topological anomalies from phantom UAVs?
  2. How effective is machine learning (Node2Vec + Isolation Forests) vs pure graph analysis?
  3. What is the performance overhead of Ed25519 cryptographic signing for real-time swarms?
  4. How do spoofing attacks impact swarm consensus algorithms?

๐Ÿ”ง Methodology

Aspect Approach
Simulation Software-only UAV swarm modeling (no hardware required)
Attack Scenarios Phantom injection, position falsification, coordinated spoofers
Detection Spectral analysis, centrality metrics, ML embeddings
Defense Ed25519 digital signatures for message authentication
Evaluation TPR, FPR, detection latency, consensus error

๐Ÿค Contributing

This is a research project. Contributions are welcome!

๐ŸŒŸ Areas of Interest

  • ๐Ÿง  Additional detection algorithms (GNNs, threshold signatures)
  • ๐Ÿ“ก Real-world Remote ID traffic datasets
  • ๐Ÿ”ง Hardware integration (RTL-SDR, physical UAVs)
  • ๐Ÿ“ˆ Scalability optimizations for larger swarms

๐Ÿ“– References

  1. Peel, L., et al. (2015). "Detecting Change Points in Evolving Networks"
  2. Olfati-Saber, R., & Murray, R. M. (2004). "Consensus Problems in Networks"
  3. Grover, A., & Leskovec, J. (2016). "node2vec: Scalable Feature Learning"
  4. Liu, F. T., et al. (2008). "Isolation Forest"
  5. Bernstein, D. J., et al. (2012). "High-speed high-security signatures" (Ed25519)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argus_uav-0.2.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argus_uav-0.2.0-py3-none-any.whl (69.6 kB view details)

Uploaded Python 3

File details

Details for the file argus_uav-0.2.0.tar.gz.

File metadata

  • Download URL: argus_uav-0.2.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for argus_uav-0.2.0.tar.gz
Algorithm Hash digest
SHA256 26280a90cbeb9847027a5f8369033bdeee9b28758019077357117796cdea244b
MD5 1b65d16feb79b32abd364d6ade47f2af
BLAKE2b-256 d641c780926c720fea5e3a4675da13117a98b7ca87f70e94d94db39bbca628fb

See more details on using hashes here.

File details

Details for the file argus_uav-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: argus_uav-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 69.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for argus_uav-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ad5b5893ccf552d3189376e0d8ec10d45b3f122a1c634989c994673bbf4866c1
MD5 ec301633d442b1338ba02761977ce0d0
BLAKE2b-256 5cb12df5247d5c4bd79264954c2a90fb7949b811d2c259099c01a6c5d7fe9fd7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page