Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Aegis / Hydra: Kernel-Level L2/L3/L4 WAF & IPS

"In the arena of packets, there is no honor, only survivors." — Nyx Protocol

Aegis/Hydra, eBPF (Extended Berkeley Packet Filter) ve XDP (eXpress Data Path) teknolojileri kullanılarak doğrudan Linux çekirdeğinin en alt ağ sürücü katmanında (Ring 0) çalışan, yüksek performanslı ve dinamik bir IPS/DDoS koruma motorudur.

📋 İçindekiler

Özellikler ✨

  • Kernel-Level Processing: XDP/eBPF ile Ring 0'da paket işleme
  • Volumetrik DDoS Koruması: Milyarda paket/saniye düzeyinde saldırılara karşı dayanıklı
  • Dual-Stack Support: IPv4 ve IPv6 eş zamanlı destekleme
  • L2/L3/L4 Analiz: Ethernet, IP, ARP, TCP, UDP derinlemesine inspeksiyonu
  • TCP Flag Sanity Engine: NULL, SYN-FIN, SYN-RST, XMAS sızma taramalarına anında XDP_DROP
  • UDP Amplification Kalkanı: DNS (53), NTP (123), SSDP (1900), CLDAP (389), Memcached (11211) yansıtma filtreleme
  • Anti-Poisoning VIP Kilidi: Yetkisiz self-whitelisting girişimlerine anında 24 saatlik XDP_DROP karşı saldırısı
  • Web C2 & Derin IP İstihbaratı: Milisaniyelik canlı arama çubuğu, GET vs POST analitiği ve taranan URI haritası
  • Dinamik Mod Geçişi: Normal/Panik modu otomatik adaptasyonu
  • Zero-Copy Architecture: Bellek kopyalama maliyeti yoktur
  • LRU Bellek Yönetimi: Memory exhaustion'a karşı koruma
  • Gerçek-Zamanlı HUD & Web Dashboard: Terminal tabanlı HUD ve zırhlı Web C2 arayüzü

Sistem Gereksinimleri 🖥️

Donanım

  • CPU: Modern x86_64 veya ARM64 işlemci (Intel/AMD/Qualcomm)
  • RAM: Minimum 2 GB, önerilen 8+ GB
  • Network Interface: XDP destekli network kartı (isteğe bağlı, yazılımsal mod da desteklenir)

İşletim Sistemi

  • Linux Kernel: 5.8+ (XDP deneysel destek), 5.15+ (önerilen)
  • Dağıtım: Ubuntu 20.04+, Debian 11+, RHEL 8+, Fedora 33+, Arch Linux
  • Root Erişimi: XDP/eBPF yüklemesi için gereklidir

Yazılım Bağımlılıkları

  • Rust: 1.70+ (Nightly toolchain)
  • LLVM/Clang: 10.0+
  • libelf-dev: eBPF object file okuma için
  • bpf-linker: Rust eBPF linker

Hızlı Başlangıç 🚀

1️⃣ Kurulum

# Repository'yi klonla
git clone https://github.com/byghost-tr/ghost-shield.git
cd ghost-shield

# Bağımlılıkları yükle (Ubuntu/Debian)
sudo apt update && sudo apt install -y \
  clang llvm libelf-dev build-essential \
  python3 python3-pip curl

# Rust nightly ve eBPF linker kur
rustup default nightly
cargo install bpf-linker

2️⃣ Derleme

# Hepsi bir komutla (eBPF kernel + userspace daemon)
make build

# Çıktı kontrol
ls -lh target/release/aegis

3️⃣ Çalıştırma

# Network arayüzlerini listele
ip link show | grep '^[0-9]'

# Aegis'i başlat (root gereklidir)
sudo ./start.sh eth0

4️⃣ HUD İzleme

Başlatıldıktan sonra, gerçek-zamanlı istatistikler gösterilir:

Normal Mod (Meşru Trafik):

╔══════════════════════════════════════════════════════════════════════╗
║             🛡️  HYDRA APEX: KERNEL-LEVEL IPS / WAF             ║
╚══════════════════════════════════════════════════════════════════════╝
 ⚙️  Status    : ✅  NORMAL MODE ACTIVE   | Interface: eth0
 ⚙️  Limits    : Normal: 2000 PPS | Panic: 200 PPS | Ban: 300s
 📈 Traffic   : Incoming: 1420 PPS | Blocked: 12 PPS | Ratio: 0.8%
 🚫 Active Bans: 2 (IPv4: 1, MAC: 1)
    - 203.0.113.5 (Expires in 285s) [Port Scan]
    - aa:bb:cc:dd:ee:ff (Expires in 142s) [ARP Spoofing]

Saldırı Altında (Panik Modu Aktif):

╔══════════════════════════════════════════════════════════════════════╗
║             🛡️  HYDRA APEX: KERNEL-LEVEL IPS / WAF             ║
╚══════════════════════════════════════════════════════════════════════╝
 ⚠️  Status    : 🔴 PANIC MODE ACTIVE!   | Interface: eth0
 ⚙️  Limits    : Panic: 200 PPS | Ban: 300s | ARP: 50 PPS | MAC: 6000 PPS
 📈 Traffic   : Incoming: 285420 PPS | Blocked: 272150 PPS | Ratio: 95.4%
 🚫 ACTIVE BANS DATABASE (Total: 47)
    IPv4 (45):
    - 198.51.100.10 (Expires in 298s) [UDP Flood] ⚡ 45000+ PPS
    - 198.51.100.11 (Expires in 297s) [UDP Flood] ⚡ 52000+ PPS
    - 198.51.100.12 (Expires in 296s) [UDP Flood] ⚡ 38500+ PPS
    ... 42 more IPs blocked ...
    
    MAC (2):
    - ff:ff:ff:ff:ff:ff (Expires in 123s) [L2 Broadcast Flood]
    - 11:22:33:44:55:66 (Expires in 267s) [ARP Spoofing]

 ✅ WHITELISTED VIPs (Bypass Active):
    - 10.0.0.0/24 (SLA Checker)
    - 8.8.8.8 (DNS)
    
 📊 Per-Protocol Stats:
    - IPv4 Paketler   : 185420 PPS ⬆️ 12900%
    - IPv6 Paketler   :   2150 PPS ⬆️ 340%
    - ARP Paketler    :  98250 PPS ⬆️ 196500%
    - L2 Broadcast    :   0 PPS ✅ BLOCKED
    
 ⏱️  Mode Duration: 47s (Cool-down enabled, won't flip for 10s)

Çekirdek Özellikler 🔱

1. Katman 2 (Data Link Katmanı) Kalkanları

  • L2 MAC Flood Engelleyici: Rastgele sahte MAC adresleriyle paket fırtınalarını rate-limit kontrolüne tabi tutar
  • ARP Guard (ARP Zehirlenmesi Koruması): EtherType 0x0806 ARP paketlerini çözerek limite ulaşan MAC adreslerini banlar
  • Router/Gateway Koruyucu: Varsayılan ağ geçidinin IP ve MAC adreslerini dinamik olarak whitelist'e ekler

2. Katman 3/4 (Network/Transport Katmanı) Kalkanları

  • Dual-Stack IPv4 & IPv6 IPS: Eşzamanlı olarak her iki protokolü destekler ve bağımsız rate-limit haritalarında takip eder
  • L4 Port Analizi: TCP (SYN, ACK, RST) ve UDP protokollerini çözerek port bazlı istatistikler sunar
  • LPM Trie VIP Bypass: CIDR bloklara dayalı whitelist'i O(log n) hızında kontrol eder

3. Dynamic Adaptive Hardening (Akıllı Savunma)

  • Normal Mod: Meşru istemcilere yüksek limit (2000 PPS) tanır
  • Panik Mod: Global PPS eşiğini aştığında sınırları dinamik olarak düşürür (200 PPS)
  • Hysteresis: 10 saniylik soğuma süresi ile mod dalgalanmalarını önler

Paket Yaşam Döngüsü & Veri Akışı

Ağ kartına bir Ethernet çerçevesi (Ethernet Frame) girdiğinde sırasıyla şu denetimlerden geçer:

                  [ GELEN FRAME (NIC RX Queue) ]
                                 │
                                 ▼
                     ┌───────────────────────┐
                     │   XDP: apex_shield    │
                     └───────────┬───────────┘
                                 │
                     [ L2 Ethernet Analizi ]
            - Kaynak/Hedef MAC ve EtherType Okuma
                                 │
         ┌───────────────────────┴───────────────────────┐
         ▼                                               ▼
 [ VIP_LIST_MAC Kontrolü ]                      [ Karaliste Kontrolü ]
   (Gateway Whitelist)                             (BLACKLIST_MAC)
         │                                               │
 ┌───────┴───────┐ (Whitelisted)                 ┌───────┴───────┐ (Yasaklı)
 │ Bypass L2/ARP │                               │  Sessiz Drop  │ ──► [ XDP_DROP ]
 └───────┬───────┘                               └───────────────┘
         │
         ├───────────────────────┬───────────────────────┐
         ▼ (IPv4 / 0x0800)       ▼ (IPv6 / 0x86dd)       ▼ (ARP / 0x0806)
 ┌───────────────┐       ┌───────────────┐       ┌────────────────┐
 │ IPv4 Ayrıştır │       │ IPv6 Ayrıştır │       │ ARP Ayrıştır   │
 └───────┬───────┘       └───────────────┬───────└───────────────┬┘
         │                               │                       │
 [ VIP_LIST (LPM) ]     [ VIP_LIST_V6 (LPM) ]            [ ARP Rate Limit ]
         │                               │                       │
 ┌───────┴───────┐ (Meşru)       ┌───────┴───────┐ (Meşru)       ├───────────────┐ (Limit Aşıldı)
 │  Bypass L3/L4 │               │  Bypass L3/L4 │               │ Blacklist MAC │ ──► [ XDP_DROP ]
 └───────┬───────┘               └───────┬───────┘               └───────────────┘
         │                               │
 [ BLACKLIST Check ]     [ BLACKLIST_V6 Check ]
         │                               │
 ┌───────┴───────┐ (Yasaklı)     ┌───────┴───────┐ (Yasaklı)
 │  Sessiz Drop  │ ─► [ XDP_DROP ]  Sessiz Drop  │ ──► [ XDP_DROP ]
 └───────┬───────┘               └───────┬───────┘
         │                               │
 [ IPv4 Rate Limit ]     [ IPv6 Rate Limit ]
         │                               │
         ├───────────────────────────────┴───────────────────────┐
         │ (Limit Aşıldı)                                        │ (Normal)
         ▼                                                       ▼
 ┌───────────────┐                                       ┌───────────────┐
 │ Blacklist IP  │                                       │   XDP_PASS    │
 │ Emit perf BAN │ ──► [ XDP_DROP ]                      │ (Linux Yığını)│
 └───────────────┘                                       └───────────────┘

eBPF Maps

Harita Tipi Anahtar Değer Açıklama
VIP_LIST LPM_TRIE CIDR (IPv4) Flag Whitelist IPv4 Blokları
VIP_LIST_V6 LPM_TRIE CIDR (IPv6) Flag Whitelist IPv6 Blokları
VIP_LIST_MAC LRU_HASH MAC Flag Gateway MAC Whitelisti
BLACKLIST LRU_HASH IP (IPv4) Bitiş TS Ban Listesi (IPv4)
BLACKLIST_V6 LRU_HASH IPv6 Bitiş TS Ban Listesi (IPv6)
BLACKLIST_MAC LRU_HASH MAC Bitiş TS Ban Listesi (MAC)
G_CONFIG ARRAY Index 0 GlobalConfig Dinamik Ayarlar
G_STATS PERCPU_ARRAY Index 0 Stats Global İstatistikler
EVENTS PERF_EVENT CPU ID Event Ban Olayları

Neden LRU Hashmap? DDoS saldırılarında milyonlarca spoofed IP adresi kullanılabilir. LRU, bellek dolduğunda eski kayıtları otomatik silarak bellek doluluğunu engeller.


📊 Performans Metrikleri

Metrik Değer Açıklama
Max Throughput 10+ Gbps Paket işleme kapasitesi
Paket Latansı < 1 µs Karar verme süresi
False Positive < 0.01% Yanlış engelleme oranı
CPU Usage 5-15% Single-core kullanımı
Memory 50-200 MB Toplam RAM gereksinimi
Startup 2-5 sn eBPF yükleme süresi
Mitigation Latency < 1 µs Çekirdek (Kernel) seviyesinde anlık banlama ve drop süresi
Global Alert Detect < 1 sn Userspace kontrolcünün Panik Moduna geçiş süresi

Benchmark: Userspace WAF 50K PPS'de CPU %100 + paket kaybı. Aegis 1M PPS'de CPU %8-12 + sıfır kayıp.

Performans değerleri teorik hesaplamalar ve XDP literatürüne dayanmaktadır. Gerçek donanım benchmark sonuçları yakında eklenecektir.


Yapılandırma ⚙️

config.json Örneği

{
    "checkers": [
        "10.10.0.1",
        "10.10.0.0/24",
        "fe80::/60"
    ],
    "global_alert_pps": 100000,
    "panic_mode_limit": 200,
    "normal_mode_limit": 2000,
    "ban_duration_sec": 300,
    "arp_mode_limit": 50,
    "mac_mode_limit": 6000
}
Parametre Açıklama
checkers WAF bypass edecek IP/CIDR adresleri
global_alert_pps Panik modunu tetikleyen toplam PPS
panic_mode_limit Panik modda IP başına PPS limiti
normal_mode_limit Normal modda IP başına PPS limiti
ban_duration_sec Ban süresi (saniye)
arp_mode_limit MAC başına ARP PPS limiti
mac_mode_limit MAC başına L2 PPS limiti

Kullanım Senaryoları

Ofis/Lab (Düşük Trafik):

{
    "global_alert_pps": 50000,
    "panic_mode_limit": 500,
    "normal_mode_limit": 5000
}

CDN/ISP (Yüksek Trafik):

{
    "global_alert_pps": 500000,
    "panic_mode_limit": 5000,
    "normal_mode_limit": 50000
}

Sıkı Güvenlik:

{
    "global_alert_pps": 10000,
    "panic_mode_limit": 100,
    "normal_mode_limit": 500
}

Derleme & Kurulum 🔧

Bağımlılık Yüklemesi

# Ubuntu/Debian
sudo apt install -y clang llvm libelf-dev build-essential

# Fedora/RHEL
sudo dnf install -y clang llvm libelf-devel

# Arch
sudo pacman -S clang llvm libelf

Rust Nightly Kurulumu

rustup default nightly
cargo install bpf-linker

Build & Run

# Derleme
make build

# Çalıştırma
sudo ./target/release/aegis eth0

# Systemd Service (otomatik başlatma)
sudo tee /etc/systemd/system/hydra-waf.service > /dev/null <<EOF
[Unit]
Description=Hydra WAF - Kernel-Level DDoS Protection
After=network.target

[Service]
Type=simple
User=root
ExecStart=$(pwd)/target/release/aegis eth0
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable hydra-waf
sudo systemctl start hydra-waf

Monitoring & Logging 📊

Systemd Journal

# Son logları gör
journalctl -u hydra-waf -n 50

# Canlı izleme
journalctl -u hydra-waf -f

# Ban olaylarını ara
journalctl -u hydra-waf | grep -i ban

Kernel Parameters (Optimizasyon)

# Perf event buffer boyutunu artır
sysctl -w kernel.perf_event_mlock_kb=512000

# Network buffer'larını artır
sysctl -w net.core.rmem_max=134217728
sysctl -w net.core.wmem_max=134217728

# Kalıcı hale getir
echo 'kernel.perf_event_mlock_kb=512000' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Test Senaryoları 🧪

test_flood.py aracıyla saldırı simülasyonu yapabilirsiniz:

UDPv4 Flood

python3 test_flood.py <hedef_ip> udp

Hedef IP rate limit aşarsa ban listesine eklenir.

TCP SYN Flood

python3 test_flood.py <hedef_ip> tcp

TCP SYN paketleri engellenir.

UDPv6 Flood

python3 test_flood.py <hedef_ipv6> udp6

IPv6 ban listesine eklenir.

ARP Spoofing

sudo python3 test_flood.py <arayüz> arp

MAC adresi ARP rate limit'ini aşarsa banlanır. Gateway MAC whitelisted olduğu için etkilenmez.


Sorun Giderme ❓

"Permission Denied"

# Root yetkisiyle çalıştırılmalı
sudo ./target/release/aegis eth0

"Interface Not Found"

# Geçerli arayüzleri listele
ip link show | grep '^[0-9]'
nmcli device

XDP Yükleme Hatası (ERRNO -22)

# Kernel sürümü kontrol (5.8+ gerekli)
uname -r

# eBPF desteği kontrol
cat /boot/config-$(uname -r) | grep CONFIG_BPF
# Çıktı: CONFIG_BPF=y olmalı

HUD Görünmüyor

# Daemon'un çalışıp çalışmadığını kontrol et
journalctl -u hydra-waf -f
ps aux | grep aegis

CPU Yüksek Kullanım

# Rate limit'leri azalt ve config.json güncelle
"panic_mode_limit": 100,
"normal_mode_limit": 1000

Yasal Trafiği Engelleme

# Checker IP/CIDR'leri whitelist'e ekle
"checkers": [
    "203.0.113.0/24",
    "198.51.100.5",
    "2001:db8::/32"
]

Katkılama 🤝

Başlangıç

  1. Repository'yi fork et
  2. Feature branch oluştur: git checkout -b feature/xyz
  3. Değişiklikleri yap
  4. Commit et: git commit -m "Add: description"
  5. Push et: git push origin feature/xyz
  6. Pull Request aç

Geliştirme Rehberi

# Debug build
cargo build

# Lint kontrol
cargo clippy --all

# Code format
cargo fmt

# Test
make test

Katkı Kuralları

  • ✅ Rust Idioms stili
  • ✅ Yeni feature'lara test yazmalı
  • ✅ README/comments güncelle
  • ✅ Anlamlı commit mesajları
  • ❌ Lisans başlıkları kaldırma

Kaynaklar 📚


İmza ✒️

Developed by ByGhost (byghost.tr) as part of the Nyx Protocol.

Built for dominance. 🛡️

"In the arena of packets, there is no honor, only survivors."


Lisans 📄

Bu proje MIT License altında lisanslanmıştır.

MIT License

Copyright (c) 2024-2026 ByGhost

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

Detaylar için LICENSE dosyasını oku.

TL;DR: Özgürce kullan, değiştir ve dağıt. Sadece lisans metnini ekle.

About

⚡ GhostShield: Advanced kernel-level L2/L3/L4 DDoS Mitigation & IPS engine powered by eBPF/XDP and Rust. Zero-latency packet filtering at the NIC driver level (Ring 0) with adaptive panic mode and ARP spoofing guard. Developed by ByGhost as part of the Nyx Protocol.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages