C2 Beacon'ları Saati Ayarlayarak Yakalamak

Zararlı yazılımlar (malware) genellikle komut ve kontrol sunucularına (C2) belirli aralıklarla bağlanır. Bir yazılım her 60 saniyede bir "telefon etmek" üzere kodlanmışsa, bu mekanik düzenlilik onu insan davranışından ayırır.

İnsan bağlantıları kaotiktir. Birisinin aynı sunucuya tam 60 saniye arayla bağlanma olasılığı yok denecek kadar düşüktür. Zararlı yazılımlar ise bu ritmi izler. Hatta biraz jitter (rastgele zaman sapması) eklenseler bile, ortalama aralık tutarlı kalır.

Bu özelliği kullanarak beacon'ları tespit etmek mümkün. Ağ akış günlüklerinden her (kaynak, hedef) ikilisi için bağlantı aralıklarını ölçersin. Standart sapması düşük olan trafiğin zararlı olma ihtimali yüksektir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Bir awk satırı bunu yapabilir:

1sort -n conn.tsv | awk '$4==443 { k=$2" "$3; if (prev[k]) { d=$1-prev[k]; s[k]+=d; q[k]+=d*d; n[k]++ } prev[k]=$1 } END { for (k in n) { m=s[k]/n[k]; sd=sqrt(q[k]/n[k]-m*m); printf "%.1f %.1f %d %s\n", sd, m, n[k], k } }' | sort -n

Girdi: zaman damgası, kaynak, hedef, port. Çıktı: standart sapma, ortalama aralık, bağlantı sayısı, kaynak-hedef ikilisi. Küçük standart sapma = şüpheli beacon.

Pratik örneğin senaryosunda, zararlı yük saat 02:24'te başlıyor. 02:25'ten itibaren 198.51.100.5:443'e düzenli istekler gidiyor. Uyarı 02:41'de tetikleniyor. Bu yöntemle bu tür kalıpları otomatik olarak bulabilirsin.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz