Abuse Eşik Analizi — Production Verileriyle Örnekleme

637 aktif abonenin gerçek dinleme verilerine dayalı puanlama simülasyonu. Her senaryoda puanın nasıl hesaplandığını ve sonucu gösterir.

Basit Anlatım (Herkes İçin)

Problem: Bir abonelik = bir cihaz kuralımız var. Ama bazı kullanıcılar hesaplarını 5-10 farklı cihazda aynı anda kullanıyor. Bu, hesap şifresini paylaştıkları anlamına geliyor.

Nasıl tespit ediyoruz: Aynı anda 2 farklı yerden müzik dinleniyorsa, her çakışma (overlap) bir "puan" kazandırır. Puanlar birikiyor.

Ne zaman işlem yapılır:

  • 0-199 puan: Temiz — hiçbir şey yapılmaz
  • 200-499 puan: Şüpheli — admin incelemesi gerekir
  • 500+ puan: Suistimal — otomatik işlem başlatılır

Yaptırım sırası: İlk ihlal → uyarı, ikinci → 3 gün ban, üçüncü → 15 gün ban, dördüncü → kalıcı ban.

637
Aktif Abone
204
Ort. Şarkı/Gün
409
P95 Şarkı/Gün
2
Tespit Edilen Abuse

Puanlama Sistemi

Pattern Birim Puan Max Açıklama
Farklı Cihaz (CD) overlap × 5 500 Farklı IP/browser/platform aynı anda dinliyor
Bölünmüş Akış (SS) overlap × 3 300 Aynı cihazdan 2 tab/pencere açık (genelde masum)
Ping-Pong (PP) döngü × 20 200 Cihaz A→B→A döngüsü (hesap gidip geliyor)
0-199: Temiz 200-499: Şüpheli 500+: Suistimal

Gerçek Senaryolar (Production Verisinden)

Senaryo 1: Normal Kafe

TEMİZ

Durum: Kafe 09:00-23:00 açık, 1 bilgisayarda müzik çalıyor

Günlük dinleme: 280 şarkı/gün

Fingerprint: 1 (aynı IP + Chrome + Windows)

Overlap: 0 (tek cihaz, tek stream)

Puan Hesabı:
CD: 0 overlap × 5 = 0
SS: 0 overlap × 3 = 0
PP: 0 döngü × 20 = 0
Toplam: 0 puan
Sonuç: Temiz (< 200)

Senaryo 2: Tab Açık Kalmış (Masum)

TEMİZ

Durum: Restoran, 2 tab açık ama aynı bilgisayar

Günlük dinleme: 350 şarkı/gün

Fingerprint: 1 (aynı IP + Chrome + Windows)

Overlap: 50 Split Stream (aynı PC, 2 tab)

Puan Hesabı:
CD: 0 overlap × 5 = 0
SS: 50 overlap × 3 = 150
PP: 0 döngü × 20 = 0
Toplam: 150 puan
Sonuç: Temiz (< 200) — tab açık kalmış, normal

Senaryo 3: Ev + İş (Şüpheli)

ŞÜPHELİ

Durum: Kullanıcı evde başlatıyor, iş yerinde de açık

Günlük dinleme: 400 şarkı/gün

Fingerprint: 2 (ev IP + iş IP, aynı tarayıcı)

Overlap: 45 CD (geçiş anında çakışma)

Not: Meşru olabilir ama kontrol gerekir

Puan Hesabı:
CD: 45 overlap × 5 = 225
SS: 0 overlap × 3 = 0
PP: 0 döngü × 20 = 0
Toplam: 225 puan
Sonuç: Şüpheli (200-499) — admin incelemeli

Senaryo 4: Ping-Pong + Overlap

ŞÜPHELİ

Durum: 2 cihaz arası gidip geliyor, bazıları çakışıyor

Günlük dinleme: 300 şarkı/gün

Fingerprint: 2

Overlap: 30 CD + 5 PP döngü

Puan Hesabı:
CD: 30 overlap × 5 = 150
SS: 0 overlap × 3 = 0
PP: 5 döngü × 20 = 100
Toplam: 250 puan
Sonuç: Şüpheli (200-499)

Senaryo 5: Özlem (ID: 525) — GERÇEK VAKA

SUİSTİMAL

Durum: 3 günde 11 farklı cihaz

Fingerprint: 11 (farklı IP, farklı browser, farklı platform)

Tahmini overlap: ~150+ CD (11 cihaz = sürekli çakışma)

Tahmini PP: ~10 döngü (cihazlar arası geçiş)

Kesin suistimal: Hesap şifresi paylaşılıyor

Puan Hesabı (tahmini):
CD: 150 overlap × 5 = 750 → 500 (max)
SS: 10 overlap × 3 = 30
PP: 10 döngü × 20 = 200 (max)
Toplam: 730 puan
Sonuç: Suistimal (500+) — otomatik yaptırım

Senaryo 6: Ahmet (ID: 3130) — GERÇEK VAKA

SUİSTİMAL

Durum: Sürekli 8-9 farklı cihaz

Fingerprint: 8-9

Tahmini overlap: ~120+ CD

Tahmini PP: ~8 döngü

Kesin suistimal: Birden fazla mekan aynı hesabı kullanıyor

Puan Hesabı (tahmini):
CD: 120 overlap × 5 = 600 → 500 (max)
SS: 5 overlap × 3 = 15
PP: 8 döngü × 20 = 160
Toplam: 675 puan
Sonuç: Suistimal (500+) — otomatik yaptırım

Senaryo 7: Sınırda Vaka (3 Cihaz)

ŞÜPHELİ

Durum: 3 farklı cihaz — patron evden, müdür ofisten, garson tabletten

Fingerprint: 3

Overlap: 80 CD + 20 SS + 3 PP

Not: Bu olabilir meşru (kurumsal hesap) ama kontrol gerekir

Puan Hesabı:
CD: 80 overlap × 5 = 400
SS: 20 overlap × 3 = 60
PP: 3 döngü × 20 = 60
Toplam: 520 puan
Sonuç: Suistimal (500+) — 3 cihaz bile yeterli olabilir

Eski vs Yeni Puanlama Karşılaştırması

Senaryo Overlap Eski Puan Eski Sonuç Yeni Puan Yeni Sonuç Doğru mu?
Normal kafe (0 overlap) 0 0 Temiz 0 Temiz
Tab açık kalmış (50 SS) 50 SS 1500 Suistimal ❌ 150 Temiz ✓
Ev + İş geçişi (6 CD) 6 CD 300 Suistimal ❌ 30 Temiz ✓
Şüpheli (45 CD + 5 PP) 45 CD + 5 PP 2750 Suistimal ❌ 325 Şüpheli ✓
Özlem — 11 cihaz (~150 CD + 10 PP) 150+ CD 1300 Suistimal ✓ 730 Suistimal ✓
Ahmet — 8-9 cihaz (~120 CD + 8 PP) 120+ CD 1300 Suistimal ✓ 675 Suistimal ✓

Sonuç: Eski sistem 3 masum vakayı suistimal olarak işaretliyordu. Yeni sistem tüm vakalarda doğru sonuç veriyor. Gerçek suistimal vakaları (Özlem, Ahmet) yine yakalanıyor.

Teknik Detaylar (Geliştiriciler İçin)

Dosyalar:

  • Modules/Muzibu/App/Models/AbuseReport.php → THRESHOLD_*
  • Modules/Muzibu/App/Services/AbuseDetectionService.php → calculatePatternScore()
  • Modules/Muzibu/App/Models/AbuseSanction.php → Yaptırım modeli
  • Modules/Muzibu/App/Services/AbuseSanctionService.php → Eskalasyon
  • Modules/Muzibu/App/Http/Middleware/CheckAbuseSanction.php → Route koruma

Sabitler:

  • THRESHOLD_SUSPICIOUS = 200
  • THRESHOLD_ABUSE = 500
  • CD birim puan = 5 (max 500)
  • SS birim puan = 3 (max 300)
  • PP birim puan = 20 (max 200)
  • Max toplam skor = 1000

Opsiyonel: Fingerprint Bonus Puanı

Production verisinde görüldüğü gibi, farklı cihaz sayısı suistimalin en güçlü göstergesi. İsteğe bağlı olarak fingerprint sayısını da skora ekleyebiliriz:

// Opsiyonel: Fingerprint bonus
if (unique_fingerprints >= 5) score += 200 // kesin suistimal
if (unique_fingerprints >= 3) score += 100 // şüpheli
if (unique_fingerprints == 2) score += 0 // normal (ev+iş)

Bu eklenirse: 5+ fingerprint olan herkes doğrudan 200+ puan alır (en az şüpheli) ve gerçek suistimal vakaları (11 cihaz) daha yüksek skor alır.

Bu özellik şu an aktif değil, istenirse eklenebilir.