Skip to content

zencefilefendi/satguard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ SatGuard - Satellite Telemetry Security Analyzer

SatGuard Python License

Advanced GPS Spoofing Detection & Satellite Telemetry Analysis Toolkit

English β€’ TΓΌrkΓ§e β€’ Documentation β€’ Demo


🎯 Overview

SatGuard is an open-source toolkit for analyzing satellite terminal telemetry data and detecting GPS spoofing/jamming attacks. Designed for security researchers, journalists, and human rights organizations monitoring state-level electronic warfare against civilian satellite infrastructure.

Key Capabilities

  • πŸ” Telemetry Parser - Parse and analyze Starlink debug telemetry data
  • 🚨 Anomaly Detection - ML-powered GPS spoofing detection algorithms
  • πŸ“Š Interactive Dashboard - Real-time visualization of satellite health metrics
  • 🌍 Multi-Region Analysis - Compare interference patterns across geographies
  • πŸ“± Mobile-Ready - Responsive design for field deployment

πŸš€ Quick Start

# Clone the repository
git clone https://github.com/zencefilefendi/satguard.git
cd satguard

# Install dependencies
pip install -r requirements.txt

# Run analysis on telemetry data
python -m satguard analyze --input data/telemetry.json

# Start the dashboard
python -m satguard dashboard --port 8080

πŸ“¦ Installation

Requirements

  • Python 3.10+
  • Node.js 18+ (for dashboard)
  • 512MB RAM minimum

From PyPI

pip install satguard

From Source

git clone https://github.com/zencefilefendi/satguard.git
cd satguard
pip install -e .

πŸ”¬ Features

1. Telemetry Parser

Parse raw Starlink debug telemetry into structured analysis:

from satguard import TelemetryParser

parser = TelemetryParser()
data = parser.parse_file("debug_export.json")

print(f"GPS Status: {data.gps.status}")
print(f"Satellites: {data.gps.satellite_count}")
print(f"Spoofing Detected: {data.gps.is_inhibited}")

2. GPS Spoofing Detection

Multi-factor detection algorithm analyzing:

Indicator Normal Jamming Spoofing
Satellite Count 10-18 0-5 10-18
GPS Valid βœ… ❌ βœ…
Inhibit Flag ❌ ❌ βœ…
Packet Loss <1% Variable 15-30%
from satguard import SpoofingDetector

detector = SpoofingDetector()
result = detector.analyze(telemetry_data)

print(f"Attack Type: {result.attack_type}")  # SPOOFING, JAMMING, or NONE
print(f"Confidence: {result.confidence}%")
print(f"Severity: {result.severity}")

3. Performance Impact Analysis

Quantify the impact of GPS interference on connectivity:

from satguard import PerformanceAnalyzer

analyzer = PerformanceAnalyzer()
impact = analyzer.measure_impact(telemetry_data)

print(f"Packet Loss: {impact.packet_loss_percent}%")
print(f"Stable Connection Time: {impact.stable_seconds}s")
print(f"Pointing Error: {impact.pointing_error_deg}Β°")
print(f"Service Level: {impact.service_level}")  # BROADBAND, DEGRADED, UNUSABLE

4. Interactive Dashboard

Real-time monitoring with WebSocket support:

satguard dashboard --config config.yaml

Features:

  • Live telemetry streaming
  • GPS constellation visualization
  • Historical trend analysis
  • Alert notifications
  • Export to PDF/CSV

πŸ“Š Example Output

╔══════════════════════════════════════════════════════════════╗
β•‘                    SATGUARD ANALYSIS REPORT                  β•‘
╠══════════════════════════════════════════════════════════════╣
β•‘  Terminal ID: [REDACTED]                                     β•‘
β•‘  Location: Iran (IR)                                         β•‘
β•‘  Analysis Time: 2026-01-15 14:32:00 UTC                      β•‘
╠══════════════════════════════════════════════════════════════╣
β•‘                                                              β•‘
β•‘  🚨 GPS SPOOFING DETECTED                                    β•‘
β•‘                                                              β•‘
β•‘  Evidence:                                                   β•‘
β•‘  β”œβ”€ GPS Valid: true (hardware functional)                    β•‘
β•‘  β”œβ”€ Satellites: 18 (normal count)                            β•‘
β•‘  β”œβ”€ Inhibit Flag: TRUE (anti-spoofing triggered)             β•‘
β•‘  └─ Confidence: 94.2%                                        β•‘
β•‘                                                              β•‘
β•‘  Impact Assessment:                                          β•‘
β•‘  β”œβ”€ Packet Loss: 22.4% (sustained)                           β•‘
β•‘  β”œβ”€ Stable Connection: 0 seconds                             β•‘
β•‘  β”œβ”€ Pointing Error: 1.06Β° (3.3x uncertainty)                 β•‘
β•‘  └─ Service Level: SEVERELY DEGRADED                         β•‘
β•‘                                                              β•‘
β•‘  Recommendation:                                             β•‘
β•‘  └─ Deploy RF shielding or relocate terminal                 β•‘
β•‘                                                              β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ—ΊοΈ Regional Analysis

SatGuard includes data on known GPS interference zones:

Region Primary Attack Type Typical Impact
Iran Spoofing 20-30% packet loss
Eastern Mediterranean Spoofing 15-25% packet loss
Ukraine/Russia Border Jamming + Spoofing Variable
North Korea Border Jamming Signal loss

πŸ”§ Configuration

Create config.yaml:

satguard:
  analysis:
    spoofing_threshold: 0.85
    min_satellites_normal: 8
    max_packet_loss_normal: 0.05
    
  dashboard:
    port: 8080
    refresh_interval: 5
    enable_alerts: true
    
  export:
    format: ["json", "csv", "pdf"]
    redact_pii: true

πŸ“š Documentation


πŸ™ Attribution & Acknowledgments

This project builds upon groundbreaking research in satellite security:

Primary Research Credit:
Nariman Gharib - Original technical analysis of Starlink GPS spoofing during Iran's January 2026 internet shutdown.
Repository: starlink-iran-gps-spoofing

The detection algorithms and analysis methodology in SatGuard are derived from and extend this foundational work. We are deeply grateful for the original research that made this possible.

Additional References

  • SpaceX Starlink technical documentation
  • GPS.gov interference detection guidelines
  • Academic papers on GNSS spoofing detection

πŸ“„ License

MIT License - See LICENSE for details.

This is free software. You can use, modify, and distribute it freely while maintaining attribution.


🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Priority areas:

  • Support for OneWeb/Kuiper telemetry
  • Mobile app (React Native)
  • Machine learning model improvements
  • Additional language translations

⚠️ Disclaimer

This tool is for defensive security research only. Do not use for:

  • Interfering with satellite communications
  • GPS spoofing or jamming
  • Any illegal activities

Users are responsible for compliance with local laws.


πŸ“¬ Contact


Built with πŸ›‘οΈ for Internet Freedom

Protecting civilian satellite infrastructure from state-level attacks

About

πŸ›‘οΈ Satellite Telemetry Security Analyzer - GPS Spoofing Detection & Analysis Toolkit for Starlink terminals

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors