Published September 12, 2025 | Version v2
Software Open

HoneySat: A Network-based Satellite Honeypot Framework

Authors/Creators

  • 1. ROR icon New Mexico State University

Description

HoneySat: A Network-based Satellite Honeypot Framework
NDSS 2026 Artifact Evaluation - README

This artifact accompanies the NDSS 2026 paper:
HoneySat: A Network-based Satellite Honeypot Framework

The artifact provides a Dockerized version of HoneySat and evaluation scripts to reproduce the experiments in the paper.

  1. ARTIFACT CONTENTS AND GOALS

What this artifact provides:

  • Dockerized HoneySat deployments for:

    • CSP-based satellite missions

    • CCSDS/YAMCS-based satellite missions

  • Evaluation utilities demonstrating:

    • Believable telemetry and telecommand handling

    • Realistic communication windows

    • Interaction capabilities

    • Logging functionality

    • Configurability and extensibility

Paper claims supported:

Claim C1: HoneySat deceives adversaries and logs activity.

  • E1.1: Believable telemetry

  • E1.2: Realistic communication windows

  • E1.3: Interactive capabilities

  • E1.4: Logging of interactions

Claim C2: HoneySat supports multiple satellite protocol ecosystems.

  • E2: Configurable CSP and CCSDS/YAMCS deployments

  1. GETTING THE ARTIFACT

Artifact DOI:
https://doi.org/10.5281/zenodo.17548980

Extract the artifact:

 
tar xzpvf ndss-artifact-eval.tar.gz cd ndss-artifact-eval
  1. SYSTEM REQUIREMENTS

Hardware:

  • ~25 GB free disk space

  • 4 CPU cores

  • 8 GB RAM

Software:

  • Linux system (verified on Ubuntu 24.04.2 LTS)

  • Docker with Docker Compose
    Install instructions: https://docs.docker.com/engine/install/

  • Python 3.12 or newer

  • Python virtual environment (venv)

  • Bash

  • Telnet client

  • Modern web browser

Privileges needed:

  • Ability to bind local ports (80, 24, etc.)

  • Ability to run Docker

  1. REPOSITORY LAYOUT

deployment/
Dockerized HoneySat services and configuration.

evaluation/
Python utilities and experiment scripts.
Python dependencies in evaluation/requirements.txt.

  1. ENVIRONMENT SETUP

Create virtual environment:

 
python3 -m venv . source bin/activate

Install Python dependencies:

 
python3 -m pip install -r evaluation/requirements.txt

(Optional) Configure Docker user:

 
sudo usermod -aG docker $USER sudo reboot now

Verify:

 
docker ps

Start services (recommended: use convenience scripts):

 
./evaluation/experiment-1/run-experiment-csp.sh ./evaluation/experiment-1/run-experiment-ccsds.sh
  1. QUICK START FOR PASS SIMULATIONS

HoneySat simulates realistic satellite communication windows.

Two helper scripts start HoneySat and schedule an imminent pass.

CSP-based honeypot:

 
./evaluation/experiment-1/run-experiment-csp.sh

CCSDS/YAMCS-based honeypot:

 
./evaluation/experiment-1/run-experiment-ccsds.sh
  1. EXPERIMENT GUIDE

Assumptions:

  • Environment setup complete

  • Docker running

  • Commands executed from repository root

7.1. Experiment E1.1 - Believable Telemetry

Run:

 
./evaluation/experiment-1/run-experiment-ccsds.sh

Expected telemetry:

  • Voltage: ~8000 mV

  • Temperature: ~30 C

  • Current: ~74 mA

Supports claim C1.

7.2. Experiment E1.2 - Realistic Passes

Start:

 
./evaluation/experiment-1/run-experiment-csp.sh

Web interface:
http://localhost:80
Username: admin
Password: admin

Telnet interface:

 
telnet localhost 24 activate

Probe:

 
1: com_ping 10

Expected:

  • Responses only during predicted pass

  • Correct addressing: source 1, destination 10

Supports claim C1.

7.3. Experiment E1.3 - Interactive Capabilities

Once satellite is reachable:

 
1: obc_system [shell command]

Supports claim C1.

7.4. Experiment E1.4 - Logging Capabilities

Run:

 
python3 ./evaluation/experiment-1/python_dump_mongodb/dump_mongodb.py

Expected output:

  • Telecommands

  • Telemetry

  • Interaction metadata

  • Timestamps

Supports claim C1.

7.5. Experiment E2 - Customization and Extensibility

Navigate:

 
cd evaluation/experiment-2

Create configuration:

 
python3 ./honeysat.py [csp|ccsds] "SAT_NAME" "LOCATION"

Example:

 
python3 ./honeysat.py csp "BEESAT" "Berlin"

Start services:

 
python3 ./honeysat.py start [csp|ccsds] "SAT_NAME" "LOCATION"

Stop services:

 
python3 ./honeysat.py stop [csp|ccsds]

Supports claim C2.

Files

Files (615.3 MB)

Name Size Download all
md5:d858e78d1d176f54dfff522ddb3af841
615.3 MB Download