Geleneksel C2 kanallarının kırılganlığı

Birçok komuta kontrol (C2) çerçevesi, uç noktalar arasında temiz, kararlı ve kesintisiz bir ağ bağlantısı olduğunu varsayar. Etkileşimli bir kabuk oturumunu standart bir HTTP/S beacon’ı veya ham TCP soketi içine sarıp birkaç saniyede bir kalp atışı (heartbeat) sinyali gönderirler.

Sıkılaştırılmış kurumsal ağlarda bu klasik model hızla çöker:

  1. TLS Denetimi ve Araya Girme: Kurumsal vekiller (proxy) dışa giden TLS oturumlarını sonlandırır, istek gövdelerini inceler ve istemci JA3/JA4 parmak izlerini doğrular. Bilinmeyen Go kütüphaneleri veya özel TLS el sıkışmaları çevre güvenlik duvarında engellenir.
  2. Davranışsal Sinyal (Beaconing) Tespiti: Ağ algılama sistemleri (NDR), dışa giden HTTP akışlarındaki periyodiklik heuristiğini analiz eder. Rastgelelik (jitter) içermeyen düzenli yoklama aralıkları otomatik karantina kurallarını tetikler.
  3. Katı Çıkış Filtreleme: Güvenlik seviyesi yüksek alt ağlar (SCADA sistemleri, çekirdek bankacılık sunucuları veya yalıtılmış üretim ortamları) dışarıya giden TCP 80 ve 443 portlarını tamamen kapatır. Bu ağlardan dışarıya yalnızca dahili DNS sunucuları veya özel yerel röleler üzerinden erişim mümkündür.

Doğrudan TCP/TLS çıkışı engellendiğinde, güvenlik uzmanları bant dışı (out-of-band) ve gizli (covert) iletişim kanallarına yönelir; veriler DNS, ICMP, DoH, WebSocket veya IP başlık steganografisi üzerinden aktarılır.

Ancak gizli kanallar yeni bir operasyonel sorun doğurur: kırılganlık. DNS sorgularındaki alt alan adları 63 karakterlik katı etiket sınırına ve toplamda 255 karakterlik boyuta sahiptir. UDP paketleri kaybolabilir ya da sırasız ulaşabilir. Ağ geçitleri başlık alanlarını değiştirebilir ve agresif vekil zaman aşımları bağlantıyı yarıda kesebilir.

Bozulmuş ve kısıtlı ağlar üzerinde dayanıklı ve hata toleranslı veri hatları inşa etme mekanizmalarını araştırmak amacıyla ghostlink çerçevesini geliştirdik.

ghostlink’in temel mimari prensibi, veri hazırlama ve oturum kriptografisinin fiziksel veya mantıksal ağ taşıma katmanından tamamen ayrılmasıdır.

Kodlama hattı, ağı güvenilmeyen ve paket düşüren bir bayt kanalı olarak kabul eder. Tek bir ağ paketi gönderilmeden önce veri beş deterministik aşamadan geçer:

FAULT-TOLERANT OOB PIPELINE · 5-STAGE ENCODING & TRANSPORT 1 · Compression zlib Sıkıştırması Toplam Çerçeveyi Azaltır 2 · Forward Error XOR Parite Düzeni Paket Kaybı Telafisi 3 · Encryption ECDHE + AES-GCM Oturum Doğrulama 4 · Transport 9 Gizli Kanal DNS / ICMP / ISN
ghostlink mimarisi: Veriler modüler taşıma kanallarına yönlendirilmeden önce sıkıştırma, XOR parite kodlaması ve AES-256-GCM şifrelemesinden geçer.

1. Sıkıştırma (zlib)

DNS veya ICMP gibi gizli kanallar çok dar bir bant genişliğine sahiptir. ghostlink, ham bayt akışını zlib ile sıkıştırarak karakter sayısını düşürür ve bir komutu ya da dosyayı iletmek için gereken toplam çerçeve adedini minimuma indirir.

2. İleri Hata Düzeltme (XOR parite düzeni)

UDP tabanlı DNS veya ham ICMP gibi kanallarda paketler sessizce kaybolabilir. Ağda yeni imzalar üreten ağır TCP tarzı yeniden iletim el sıkışmaları yerine, ghostlink XOR parite parçaları (shards) üretir:

$$\text{Parity} = \text{Chunk}_1 \oplus \text{Chunk}_2 \oplus \dots \oplus \text{Chunk}_k$$

Bir gruptaki herhangi bir veri parçası iletim sırasında düşerse, alıcı taraf kalan parçaları ve parite verisini matematiksel olarak işleyerek eksik parçayı yeniden oluşturur.

3. Çerçeveleme ve protokol v2 zarfı

Her parça; akış kimlikleri, sıra numaraları ve toplam parça sayısını içeren yapılandırılmış bir başlıkla paketlenir:

type FrameHeader struct {
    Magic       [2]byte // 0x47, 0x4C ('GL')
    Version     uint8   // Protocol v2
    StreamID    uint32  // Benzersiz işlem kimliği
    SeqNum      uint16  // Parça indeksi (0 tabanlı)
    TotalChunks uint16  // Akıştaki toplam parça sayısı
    PayloadLen  uint16  // Parça veri uzunluğu
    Flags       uint8   // Parite, kontrol veya bitiş bayrakları
}

4. Geçici oturum şifrelemesi (P-256 ECDHE + AES-256-GCM)

Ağdaki bir dinleyici ham paketleri yakalasa dahi içerik korunur. ghostlink, geçici bir P-256 Eliptik Eğri Diffie-Hellman (ECDHE) anahtar değişimi yaparak (veya önceden paylaşılan anahtar ile) 256 bitlik simetrik bir oturum anahtarı türetir. Her çerçeve, benzersiz bir 12 baytlık başlatma vektörü (IV) ile AES-256-GCM kullanılarak şifrelenir; böylece hem gizlilik hem de kriptografik bütünlük garanti edilir.

9 gizli taşıma protokolünün anatomisi

ghostlink, kontrollü laboratuvar testleri için 9 tescilli kanal sürücüsü barındırır:

Taşıma KanalıKanal MekanizmasıTaşıyıcı OrtamOrtam Gereksinimleri
DNSAlt alan adı sorgu çerçevelemesiUDP / Port 53Yetkili ad sunucusu veya yerel loopback
DoHHTTPS üzerinden DNS sorguları (RFC 8484)HTTPS / Port 443Genel DoH çözümleyicileri (Cloudflare, Google)
HTTPParçalı istek/yanıt başlıklarıHTTP / Port 80, 8080Standart web vekilleri, yerel HTTP
WebSocketKalıcı çerçeveli veri akışıWS / WSSTam çift yönlü (full-duplex) soket
ICMPEcho request ve reply veri alanlarıICMP Tip 8 / Tip 0Ham soket yetkisi (CAP_NET_RAW veya root)
TCP ISNİlk Sıra Numarası (ISN) modülasyonuHam TCP 32-bit SYN ISNDeneysel; işletim sistemi TCP yığınına bağlı
IPv4 IDIP tanımlama alanı modülasyonu16-bit IPv4 başlık IDDeneysel; ham paket enjeksiyonu gerektirir
TimingPaketler arası varış süresi modülasyonuPaket gecikme aralıklarıAğ gecikmesine (jitter) karşı hassas
Packet SizeUzunluk modülasyonuDeğişken çerçeve dolgusuMTU ve yönlendirici parçalamasına duyarlı

DNS ve DoH sorgu çerçevelemesi detayları

DNS taşıma sürücüsünde şifreli bayt blokları RFC 1035 etiket kurallarına uygun Base32 veya Hex dizgilerine dönüştürülür. Uzun bir veri akışı şu biçimde sorgulara bölünür:

[seq].[stream-id].[chunk-data].[signature].c2.lab.internal

Yetkili DNS sunucusu, aradaki genel DNS çözümleyicilerinden gelen sorguları karşılar, alan adı uzantısını temizler, sıra numaralarını çözer ve akışı alıcı motora teslim eder.

Çevrimdışı doğrulama ve deterministik test ortamı

C2 taşıma kanallarını canlı ağlarda doğrudan denemek operasyonel riskler barındırır. ghostlink, hiçbir ağ soketi açmadan kriptografik ve çerçeveleme hattını uçtan uca test eden güvenli bir çevrimdışı doğrulama komutu sunar:

# Derleme, platform ve protokol hazır bulunuşluğunu doğrula
ghostlink doctor

# Kayıtlı taşıma sürücülerini ve yeteneklerini listele
ghostlink transports

# Deterministik uçtan uca boru hattı doğrulamasını çalıştır
ghostlink demo

demo komutu tüm süreci tamamen bellekte çalıştırır:

GHOSTLINK REFERENCE DEMO
Platform: darwin/arm64 · Protocol: v2 · Mode: offline loopback

[1] P-256 ECDHE Ephemeral Key Exchange:
    Client Public Key:  04a1b2c3d4e5f6... (P-256)
    Server Public Key:  04f6e5d4c3b2a1... (P-256)
    Derived Shared Key: 256-bit AES-GCM session key confirmed

[2] Payload Processing:
    Raw Input:          "CONFIDENTIAL_LAB_RECORD_ARTIFACT_DATA_2026" (44 bytes)
    zlib Compression:   44 bytes -> 38 bytes
    XOR Parity Layout:  3 data shards + 1 parity shard generated

[3] Protocol v2 Framing & AES-256-GCM Encryption:
    Frame 0 (Seq 0/3): 14 bytes ciphertext + 12-byte IV + 16-byte GCM tag
    Frame 1 (Seq 1/3): 14 bytes ciphertext + 12-byte IV + 16-byte GCM tag
    Frame 2 (Seq 2/3): 10 bytes ciphertext + 12-byte IV + 16-byte GCM tag
    Frame 3 (Parity):  14 bytes ciphertext + 12-byte IV + 16-byte GCM tag

[4] Receiver Decryption & Reassembly:
    All frames verified against GCM authentication tags.
    Recovered Bytes:    44 bytes
    SHA-256 Checksum:   d4f8a1... [EXACT MATCH]
P-256 anahtar anlasmasi, zlib sikistirmasi, XOR parite kodlamasi ve AES-256-GCM dogrulamasini calistiran ghostlink cevrimdisi test ciktisi
ghostlink Çevrimdışı Test Ortamı P-256 ECDHE, XOR ileri hata düzeltme ve AES-256-GCM bütünlüğünü yerel loopback üzerinde doğrulayan uçtan uca test çıktısı.

Savunma ve tespit mühendisliği: gizli kanalları yakalamak

Bant dışı kanalların nasıl çalıştığını anlamak, etkili ağ tespit kuralları geliştirmek için kritik öneme sahiptir:

1. DNS entropi ve hacim analizi

Gizli DNS kanalları belirgin istatistiksel izler bırakır. Savunma ekipleri şu göstergeleri izlemelidir:

  • Yüksek Shannon Entropisi: Base32/Hex kodlu etiketler 3.8 üzerinde entropi sergilerken, meşru alan adları nadiren 3.0 değerini aşar.
  • Sorgu Hacmi Anomalisi: Birkaç dakika içinde tek bir ana alan adı altında binlerce benzersiz alt alan adının sorgulanması.
  • Kayıt Türleri: Uç noktalara büyük komut yanıtları döndürmek için yinelenen TXT veya NULL sorgularının kullanılması.

2. Wireshark protokol ayrıştırması (tools/ghostlink.lua)

Laboratuvar analizlerinde mavi ekiplere yardımcı olmak amacıyla ghostlink, Wireshark için özel bir Lua ayrıştırıcısı barındırır. Ağ yakalamaları incelenirken Wireshark GL sihirli baytlarını otomatik olarak tanır, çerçeve başlıklarını ayrıştırır ve akış sırasını görüntüler:

-- tools/ghostlink.lua: Wireshark ayrıştırıcı kod örneği
local p_ghostlink = Proto("ghostlink", "Ghostlink Protocol v2")
local f_magic   = ProtoField.bytes("ghostlink.magic", "Magic")
local f_version = ProtoField.uint8("ghostlink.version", "Version")
local f_stream  = ProtoField.uint32("ghostlink.stream", "Stream ID", base.HEX)
local f_seq     = ProtoField.uint16("ghostlink.seq", "Sequence Number")
local f_total   = ProtoField.uint16("ghostlink.total", "Total Chunks")

function p_ghostlink.dissector(buffer, pinfo, tree)
    if buffer:len() < 14 then return end
    if buffer(0,2):string() ~= "GL" then return end

    pinfo.cols.protocol = "GHOSTLINK"
    local subtree = tree:add(p_ghostlink, buffer(), "Ghostlink Transport Frame")
    subtree:add(f_magic, buffer(0,2))
    subtree:add(f_version, buffer(2,1))
    subtree:add(f_stream, buffer(3,4))
    subtree:add(f_seq, buffer(7,2))
    subtree:add(f_total, buffer(9,2))
end

Kanıt ve sınırlar

Tüm testler, veri aktarım ölçümleri ve protokol analizleri izole laboratuvar sanal makinelerinde, yerel loopback (127.0.0.1) ve özel sanal ağlar üzerinde gerçekleştirilmiştir. Deneysel ham paket kanalları (TCP ISN, IPv4 ID, zamanlama modülasyonu) root/yönetici yetkisi gerektirir; ana makine zamanlayıcı gecikmelerine ve ara yönlendiricilerin paketleri yeniden boyutlandırmasına karşı hassastır. Testler sırasında hiçbir yetkisiz ağ veya canlı üretim sistemi hedef alınmamıştır.

Referanslar

Kaynaklar ve güncellik

Bu teknik not ne kadar güncel?

Kontrol edilen kaynaklar9 Kasım 2026

En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.

İnceleme DurumuYazar incelemesi tamamlandı

Yazar teknik incelemeyi tamamladı. Bu etiket tek başına laboratuvar yeniden üretimi iddiası taşımaz.