~/sibercrew
Malware Analizi

C2 (Command and Control) İletişim Analizi

Ele geçirilmiş bir sistemin saldırganla nasıl haberleştiğinin protokol seviyesinde incelenmesi.

Command and Control (C2, C&C), bir saldırganın ele geçirdiği sistemlere uzaktan komut göndermesini ve bu sistemlerden veri/sonuç almasını sağlayan altyapıdır. Bir zararlı yazılımın C2 iletişimini anlamak, hem tehdidin ne yapabileceğini hem de bunu ağ seviyesinde nasıl tespit edip engelleyebileceğimizi ortaya koyar.

C2 Mimarisi Türleri

  • Merkezi (centralized) C2: Tüm ele geçirilmiş makineler doğrudan tek bir sunucuya (veya sabit bir sunucu grubuna) bağlanır. Basittir ama bu sunucu tespit edilip kapatıldığında (takedown) tüm botnet etkisiz hâle gelebilir — tek bir arıza noktası (single point of failure).
  • Peer-to-Peer (P2P) C2: Ele geçirilmiş makineler birbirleriyle de iletişim kurabilir, komutlar ağ içinde makineden makineye yayılabilir — merkezi bir sunucunun kapatılması tüm botnet'i etkisiz kılmaz, bu da P2P C2'yi çok daha dayanıklı yapar.
  • Domain Generation Algorithm (DGA): Sabit bir alan adı yerine, zararlı yazılım her gün (bazen her saat) matematiksel bir algoritmayla yeni, önceden tahmin edilemeyen alan adları üretir; saldırgan bu adlardan sadece birkaçını önceden kayıt ettirip aktif eder. Bu, savunmacıların sabit bir "kötü alan adı" listesi tutarak engelleme yapmasını neredeyse imkânsız hâle getirir çünkü liste her gün değişir.

Beaconing: Periyodik "Ben Buradayım" Sinyalleri

Çoğu C2 istemcisi, sürekli açık bir bağlantı tutmak yerine, belirli aralıklarla (örneğin her 60 saniyede bir) C2 sunucusuna kısa bir istek göndererek "yeni komut var mı?" diye sorar — buna beaconing denir. Bu davranış, ağ trafiğinde belirgin bir örüntü (pattern) oluşturur: aynı hedefe, düzenli aralıklarla, benzer boyutta istekler. Güvenlik ekipleri bu düzenliliği istatistiksel olarak tespit edebilir (jitter — yani saldırganın kasıtlı olarak eklediği rastgele gecikme varyasyonu bile, çok dikkatli analiz edilirse yine de altta yatan periyodik paterni ortaya çıkarabilir).

C2 Protokol Gizleme Teknikleri

Saldırganlar, C2 trafiğinin normal ağ trafiğinden ayırt edilmesini zorlaştırmak için çeşitli gizleme (protocol obfuscation) yöntemleri kullanır:

  • HTTP/HTTPS üzerinden gizleme: C2 trafiğini normal bir web isteği gibi göstermek — genelde User-Agent başlığını meşru bir tarayıcıyla aynı yaparak.
  • DNS tünelleme: Komutları ve verileri DNS sorgularının/yanıtlarının içine gizlemek (ağ adli bilişimi makalemizde detaylı ele alınmıştı).
  • Meşru bulut servislerinin kötüye kullanımı: C2 sunucusu yerine, saldırganın Twitter, Telegram, GitHub gibi meşru ve genelde firewall'lar tarafından engellenmeyen platformları komut iletim kanalı olarak kullanması — bu yaklaşıma bazen "C2-as-a-Service" ya da "living off trusted sites" denir çünkü trafiğin hedefi zaten güvenilir bir servis olduğu için ağ savunması genelde bunu engellemez.

Pratik Senaryo

Bir güvenlik ekibi, ağ trafiği analizinde bir iç sunucunun her 90 saniyede bir, aynı harici IP'ye, neredeyse aynı boyutta HTTP POST istekleri gönderdiğini fark ediyor. İstekteki User-Agent başlığı normal bir tarayıcıya ait gibi görünse de, isteğin gövdesindeki veri base64 benzeri ama standart base64'e tam uymayan bir kodlamayla şifrelenmiş. Bu düzenlilik (beaconing) ve şüpheli kodlama, ekibi trafiği derinlemesine incelemeye yönlendiriyor; sonunda bunun bilinen bir C2 çerçevesinin özel (custom) bir protokol varyasyonu olduğunu tespit ediyorlar. Trafiğin periyodikliği, saldırganın gizleme çabalarına rağmen tespitin anahtarı oluyor.

Bu makale, C2 iletişim analizinin orta-ileri seviye teknik bir özetidir; SiberCrew ekibi tarafından hazırlanmış özgün içeriktir.