(https://avatars.githubusercontent.com/u/261587816?s=200&v=4)
LAVEN GUARD -- RolePlay sunucuları için güçlü bir koruma katmanı.
Selamlar,
LAVEN olarak bir süredir SA-MP 0.3.7 RP sunucuları için modüler bir anti-abuse framework üzerinde çalışıyoruz.
Bu bir "tak çalıştır anti-cheat" değil.
Bu bir davranış temelli skor ve policy motoru.
Amacımız:
Roleplay akışını bozmadan
False positive üretmeden
Sunucuyu kasmadan
Anormal davranışları katmanlı biçimde analiz edebilen bir güvenlik çekirdeği oluşturmak.
Şu an tamamlanan çekirdek katmanlar:
• Core Policy / Score / Decay sistemi
• Flood & Speed analizleri
• Sanity Checks (weapon, skin, anim, health, armor)
• Movement anomaly (RP-safe teleport delta & pattern filtering)
Planlanan fazlarda ise:
• Observability & Hook sistemi (override destekli)
• Profil bazlı güvenlik modeli (RELAXED / RP / STRICT)
• Stability & Memory audit
• Benchmark testleri (50 / 150 / 300 oyuncu senaryosu)
• Public API freeze ve v1.0 stabil sürüm
v1 sonrası fazda ise mevcut skor motoruna entegre edilecek davranış temelli anti-cheat katmanı planlanmaktadır.
(Aim anomaly, LOS heuristics, advanced movement detection vb.)
Özetle:
LAVEN GUARD bir anti-cheat paketi değil.
RP sunucular için davranış analizi yapan üretim odaklı bir güvenlik altyapısıdır.
Şu an public release aşamasında değiliz.
Bu paylaşımın amacı isim duyurmak ve teknik geri bildirim almaktır.
İlgilenen teknik ekiplerle özel iletişime açığız.
GitHub linkimiz: https://github.com/Laven-SA-MP
© LAVEN -- Founded by Talha Çiftçi
Merhaba kanka, canım sıkıldı incelemek istedim. en baştan net söyleyeyim bu San Andreas Multiplayer için yazılmış anti-cheat yapısının iskeleti büyük ihtimalle yapay zeka (ai) ile üretilmiş bir şablondan çıkma.
Şimdi tamamen teknik olarak ve gömerek gireyim.
Bu kodun en büyük problemi, kendini anti-cheat gibi konumlandırmasına rağmen gerçekte sadece server tarafında çalışan basit bir davranış puanlama sistemi olması.
SA-MP tarafında zaten gerçek anlamda bir client-side scripting ortamı yok evet, fakat bu yine de client taraflı doğrulama veya sinyal bazlı kontrol yapılamaz anlamına gelmiyor. Pawn ile doğrudan cliente kod koşturamazsın ama sampp ekosisteminde uzun yıllardır kullanılan özel client, modifiye launcher, custom plugin veya network tabanlı ek doğrulama çözümleri mevcut ve bu sistem bunların hiçbirine açık bir entegrasyon katmanı bile sunmuyor.
Yani bu yapı tamamen kör şekilde, sadece serverin gördüğü pozisyon ve state verisine güveniyor.
Speed ve movement tarafı ciddi şekilde zayıf.
Pozisyon örnekleme mantığı tamamen tick temelli ve lag, packet delay ve OnPlayerUpdate frekansındaki dalgalanmalar hesaba katılmıyor.
Gerçek samp ortamında oyuncuların update aralıkları stabil değildir.
Bu kodda ise mesafe - süre oranı güvenilir bir zaman referansına bağlanmamış.
Bu doğrudan yanlış hız ve yanlış zıplama tespitlerine yol açar.
Movement modülü neredeyse tamamen eşik tabanlı.
Ring buffer var diye iş hareket analizi olmuyor.
Desen çıkarımı yok.
Yön değişimi, hızlanma eğrisi, ivme, animasyon state uyumu, yer temas süresi gibi sampta çok rahat ölçülebilecek sinyaller tamamen yok.
Bu haliyle bu modül wallhack, airbreak veya glide gibi basit hileleri bile ayırt etmekte zorlanır.
Teleport ve script akışı konusu neredeyse hiç düşünülmemiş.
Samp sunucularında SetPlayerPos, spawn, class seçimi, interior geçişi, virtual world değişimi, admin teleportu, event teleportu gibi onlarca meşru konum değişimi vardır.
Kodda bunlar için merkezi bir bu hareket legit mi bağlamı yok.
Sadece belli süre skip et, grace ver mantığı var.
Bu profesyonel bir anti-cheat yaklaşımı değil, semptom bastırma.
Sanity tarafı daha da zayıf.
Health, armor ve weapon kontrolleri sadece anlık sıçrama üstünden gidiyor.
Gamemode kendisi tarafından verilen hasar, scriptli heal, minigame resetleri, event set işlemleri veya class spawn sırasında yapılan state setleri güvenli kaynak olarak işaretlenmiyor.
Yani sistem, kendi sunucunun ürettiği state değişimlerini potansiyel hile gibi puanlayabilir.
Bu doğrudan false positive demek.
Skor mimarisi kağıt üstünde güzel ama pratikte içi boş.
Kategoriler birbirinden tamamen kopuk.
Movement şüpheli, speed de şüpheli, sanity de şüpheli olan bir oyuncu için birleşik bir risk modeli yok.
Her şey ayrı ayrı threshold geçerse ceza.
Bu, gerçek oyuncu davranışlarını ayırmakta çok zayıf kalır.
Decay sistemi de zayıf.
Zamanla puan düşürmek var ama davranışın türüne göre ağırlıklandırma yok.
Bir oyuncu kısa sürede çok güçlü bir ihlal yapıp, sonra bekleyerek temizlenebiliyor.
Reconnect ile tüm skorların sıfırlanması ise işi tamamen komediye çeviriyor.
Bu tek başına repeat offender tespitini bitiriyor.
Loglama tarafı da yüzeysel.
Bir tespit için hangi kontrolün, hangi state altında, hangi grace penceresinde, hangi iç mekan veya world de üretildiği gibi kritik bilgiler yok.
Bu sistemle sahada bir oyuncuyu banladığında, sonradan gerçekten hile miydi yoksa script akışı mıydı sorusuna cevap bulamazsın.
API tasarımı da problemli.
Public fonksiyonlar ile internal fonksiyonlar net ayrılmamış.
Gamemode tarafı ile anticheat core arasında kalın bir sınır yok.
Bu ileride bakım, debug ve genişletme aşamasında ciddi teknik borç üretir.
Kod fazlasıyla macro ve compile-time konfigürasyon üzerine kurulmuş.
Bu, Pawn için pratik olabilir ama runtime da sunucu moduna göre davranış değiştirme, event bazlı profil değiştirme gibi modern ihtiyaçlara kapalı bir yapı demek.
net olarak özetlersem Bu yapı samp için gerçek bir anti-cheat değil.
Server-side, eşik tabanlı, false positive üretmeye çok açık, bypass edilmesi kolay bir detection framework prototipi.
Eğer gerçekten samp için sağlam bir anti-cheat yapmak istiyorsanız, Önce tüm script akışlarını bilen merkezi bir legit action context katmanı kurmadan, Tüm state değişimlerini event bazlı olarak işaretlemeden, Movement tarafında hız, ivme, yön değişimi ve animasyon uyumu gibi sinyalleri modellemeden, Kategoriler arası korelasyon ve birleşik risk skoru üretmeden, Recoonect sonrası kalıcı skor ve geçmiş davranış takibi yapmadan,
Ve en azından modifiye client veya harici doğrulama çözümlerine açık bir entegrasyon katmanı oluşturmadan,
Bu kodun sahada güvenilir bir anti-cheat olarak çalışması teknik olarak mümkün değil.
Genede başarılar, umarım geliştirip güzel bir proje çıkarırsınız. Ancak Samp için bu dönemde pek fazla uğraşmaya hiç ama hiç değmez. "bu sistem sampta yok" dediğiniz tüm sistemlerde zamanında gerçek geliştiriciler tarafından hepsi yapıldı. Sunucu modları artık birer yappoz, her parça (sistem) ayrı sunucudan toplanarak yapılır hale geldi. Tekrardan başarılar!! :)
biraz ai made duruyor ama çıkış noktası mantıklı. ben bunun doğrudan bir anti-cheat olması gerektiğini düşünmüyorum. Aksine, daha çok observability ve analytics tarafına yönelmesi daha anlamlı olabilir.
şu anki yapıyı biraz genişletirsen mesela bir SDK katmanı oluşturabilirsin. Sunucu sahiplerine lightweight bir wrapper sağlarsın, onlar da sana istedikleri detay seviyesinde veri gönderirler. Preset data paketleri olabilir (örneğin player position stream, health delta, economy eventleri vs), ama tamamen "bring your own data" modeline de açık olur. örn fivem manage gibi
üzerine bir dashboard eklendiğinde iş çok daha farklı bir yere gider anomali içerebilecek event akışlarını görme, movement variance veya economy spike gibi dağılım analizleri, genel performans metrikleri (pawn'da yapılır mı emin değilim, çok sene geçti), Sunucu içi denge takibi (örn: oluşumların silah miktarlarının dengesini gören bir metrik ekranı). örneğin bir oyuncunun birkaç saat içinde kazanabileceği maksimum para için alarm üretmek, economy exploit tespiti yapmak veya belirli event pattern'lerinde istatistiksel sapma yakalamak gibi şeyler anti-cheat'ten daha sürdürülebilir ve ölçeklenebilir bir alan
benzer bir projeye daha önce girmiştim fakat dağıtımı ve entegrasyon şartları biraz uzun işler, zaman istiyor. O yüzden sadece kendi platformlarımda kullanıyorum. Preset datalarını özellikle iyi toplayamazsan sunucu sahipleri doğru düzgün bir geliştirme yapana kadar yaptığın şeylerin pek önemi olmuyor. Yine de eğer bu konu ilgini çekiyorsa observability konusunda bu tarz bir projede çalışmak beni çok geliştirmişti sana da öneririm.