ErtugrulBasli adlı üyeden alıntı: mesajı görüntüle
bu piyasa da yıllardır hizmet vermektesiniz sizin de bildiğiniz gibi her gün yeni method cıkıyor bu kuralların calınması etmesi L4 taraflı değil ama suricata üzerindeki kuralları çalsalar ne yapabilecekler ki sıfırdan mı yazacaklar tamam size bir kural paylaşayım bunun üzerinden ne gibi düzenleme yapabilirsin bilmediğin sürece

tcp any any -> $HOME_NET 25565 (flow:to_server,established; rawbytes; content:"|00|"; depth:1; dsize:>2; detection_filter:track by_src, count 7, seconds 5; msg:"MC-L7 Handshake >6/5s per IP"; sid:130700001; rev:2;)
drop tcp any any -> $HOME_NET 25565 (flow:to_server,established; rawbytes; pcre:"/^\x00.\x01$/"; detection_filter:track by_src, count 5, seconds 5; msg:"MC-L7 HS->STATUS >4/5s per IP"; sid:130700002; rev:2;)
bu yüzden aslında aylık olarak sunuyoruz kuralların sürekli olarak güncellenmesi gerekiyor bu kuralları satın aldın bitti gitti değil L4 kurallarını herkes yapabilir ama suricata yı bilmen gerekiyor

 Minecraft Flood Detection – Optimized Ruleset
portvar MINECRAFT_PORTS [25565,25566]


alert tcp any any -> $HOME_NET $MINECRAFT_PORTS (
    flow:to_server,established;
    rawbytes;
    content:"|00|"; depth:1; dsize:>2;
    flowbits:set,mc_handshake_detected;
    threshold:type both, track by_src, count 7, seconds 5;
    msg:"MC-L7 Handshake Flood (>6/5s per IP)";
    classtype:attempted-dos; priority:2;
    sid:130700001; rev:3;
)


drop tcp any any -> $HOME_NET $MINECRAFT_PORTS (
    flow:to_server,established;
    rawbytes;
    flowbits:isset,mc_handshake_detected;
    content:"|00|"; offset:0; depth:1;
    byte_test:1,=,1,1; dsize:>2;
    threshold:type both, track by_src, count 5, seconds 5;
    msg:"MC-L7 Status Flood (>4/5s per IP)";
    classtype:attempted-dos; priority:1;
    sid:130700002; rev:3;
)

pcre kaldırdım regex motoru devreye girmediği için %15 ile 25 daha az işlem yükü olur
regexin yerine content + byte_test kullandım.
ilk kural handshake yapan ip işaretliyor ikinci kural sadece oipi değerlendiriyor böylece status flodd normal oyuncu pingiyle karışmaz
portvar tanımı farklı portları kapsıyor
classtype ve priority ekleyerek log analizi sıem ve dashboardlarda daha okunabilir hale geliyor
threshold:type both hem alert sayısını hem de flood tespiti yoğunlugunu kontrol eder ve gereksiz log üretimi azaltır
rev:3 ve düzenli format kurallar arası sürüm takibi kolaylaşır
ekstra saldırgan kısa süreli deneme pingleri atıyorsa rate-limit tarafına
threshold:type limit , track by_Src, count 1, seconds 3: yapılabilir
bu aynı ip 3 sanıyede birden fazla uyarı üretilmesini engeller.