Planlama Guvenlik

Kötüye Kullanim Tespit Sistemi

Muzibu - Hesap Paylasimi ve Coklu Kullanim Tespiti

29 Aralik 2025

💡 Basit Anlatim (Herkes Icin)

Ne Yapmak Istiyoruz?

Muzibu'da bir hesap sadece bir kisi tarafindan kullanilmali. Eger bir kullanici hesabini arkadas/aile ile paylasir ve ayni anda birden fazla yerden muzik dinlenirse, bunu tespit edip kullaniciyi uyaracagiz.

Nasil Anlayacagiz?

Ornek: Ahmet hesabiyla Istanbul'dan muzik dinliyor. Ayni anda Ankara'dan da Ahmet hesabiyla baska bir sarki dinleniyorsa → bu supheli!

Supheli Durum:
  • • Ayni anda farkli IP'lerden dinleme
  • • Bir sarki bitmeden baska sarki baslamasi
  • • Farkli sehir/cihazlardan es zamanli erisim
Normal Durum:
  • • Sabah evden, aksam isten dinleme
  • • Farkli zamanlarda farkli cihaz kullanimi
  • • Tek seferde tek sarki dinleme

Ne Olacak?

  1. Sistem supheli aktiviteleri tespit edecek
  2. Admin panelinde "Supheli Kullanicilar" listesi gorunecek
  3. Supheli kullaniciya siteye girdiginde uyari cikacak
  4. Kullanici kurallari okuyup "Anladim" diyecek
  5. Devam ederse kisitlama uygulanabilir

🎯 Problem Tanimi

Sifre Paylasimi

Kullanici hesap bilgilerini baskasina verir, birden fazla kisi ayni hesabi kullanir.

Es Zamanli Dinleme

Ayni hesapla ayni anda birden fazla sarki stream edilir.

Uyelik Paylasimi

Premium uyelik birden fazla kisi tarafindan kullanilir.

🔧 Teknik Detaylar - Tespit Algoritmasi

1 Cakisan Dinleme Tespiti

Mantik: Bir kullanicinin sarki dinleme kayitlarina bakariz. Eger iki farkli sarki kaydi birbirine cok yakinsa (ornegin 30 saniye icinde) ve farkli IP/cihazlardan geliyorsa → supheli.

-- Pseudo SQL

SELECT user_id, COUNT(*) as overlap_count

FROM muzibu_song_plays p1

JOIN muzibu_song_plays p2

WHERE p1.user_id = p2.user_id

AND p1.id != p2.id

AND ABS(TIMESTAMPDIFF(SECOND, p1.created_at, p2.created_at)) < 60

AND p1.ip_address != p2.ip_address

Parametre Onerileri:
  • Zaman Esligi: 60 saniye (ayarlanabilir)
  • Minimum Cakisma: 3+ kez (tek seferlik hata olabilir)
  • Farkli IP Zorunlu: Evet (ayni IP'den birden fazla tab normal olabilir)

2 Asiri IP Cesitliligi

Mantik: Bir kullanici kisa surede cok fazla farkli IP'den baglaniyorsa supheli.

SELECT user_id, COUNT(DISTINCT ip_address) as unique_ips

FROM muzibu_song_plays

WHERE created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)

GROUP BY user_id

HAVING unique_ips > 5

Esik Degerleri:
  • Normal: 1-3 IP/gun (ev, is, mobil)
  • Dikkat: 4-6 IP/gun (uyari)
  • Supheli: 7+ IP/gun (aksiyona alinir)

3 Cografi Tutarsizlik (Opsiyonel - Gelecek)

Mantik: IP'den konum bilgisi alinir. Kisa surede fiziksel olarak imkansiz mesafeler (ornegin 1 saatte Istanbul'dan Ankara'ya) supheli.

Not: Bu ozellik IP geolocation servisi gerektirir. Ilk etapta sadece IP/cihaz bazli kontrol yeterli olabilir.

🗄️ Veritabani Yapisi

Tablo: muzibu_abuse_reports

Sistem tarafindan tespit edilen supheli aktiviteler

Alan Tip Aciklama
id bigint Primary key
user_id bigint FK Supheli kullanici
abuse_type enum 'concurrent_streaming', 'ip_diversity', 'geo_impossible'
severity enum 'low', 'medium', 'high', 'critical'
evidence json Detayli kanit (IP'ler, zamanlar, cihazlar)
analysis_period json {start_date, end_date}
overlap_count int Toplam cakisma sayisi
status enum 'pending', 'warning_sent', 'acknowledged', 'restricted', 'resolved'
created_at timestamp Tespit zamani

Tablo: muzibu_abuse_acknowledgments

Kullanicilarin "Anladim" beyanlar

Alan Tip Aciklama
id bigint Primary key
abuse_report_id bigint FK Ilgili rapor
user_id bigint FK Kullanici
full_name varchar(255) Kullanicinin yazdigi isim soyisim
confirmation_text varchar(255) "Anladim kabul ediyorum" metni
ip_address varchar(45) Onay anindaki IP
user_agent text Tarayici bilgisi
acknowledged_at timestamp Onay zamani

🖥️ Admin Paneli Akisi

1

Analiz Baslat Butonu

Admin /admin/muzibu sayfasinda "Kotuye Kullanim Analizi" butonuna tiklar.

Secenekler:

  • • Son X gun (dropdown: 7, 10, 14, 30)
  • • Tarih araligi sec (date picker)
2

Analiz Calistir

Sistem muzibu_song_plays tablosunu tarar ve supheli pattern'leri bulur.

Cikti:

  • • Supheli kullanici listesi
  • • Her biri icin: cakisma sayisi, farkli IP sayisi, ciddiyet skoru
3

Sonuc Tablosu

Admin her kullanici icin detaylari gorebilir ve aksiyon alabilir.

Kullanici Cakisma IP Sayisi Ciddiyet Aksiyon
ahmet@email.com 12 8 Yuksek Uyari Gonder
4

Uyari Gonderme

Admin "Uyari Gonder" dediginde kullanicinin durumu warning_sent olur.

Kullanici bir sonraki girisinde uyari ekranini gorecek.

⚠️ Frontend Uyari Akisi

Uyari Ekrani Icerigi

⚠️

Hesabinizda Supheli Aktivite Tespit Edildi

Sistemimiz hesabinizin birden fazla lokasyon veya cihazdan es zamanli olarak kullanildigini tespit etmistir.

Muzibu kullanim kosullarina gore:

  • Her hesap sadece bir kisi tarafindan kullanilabilir
  • Hesap paylasimi yasaktir
  • Ayni anda birden fazla cihazdan muzik dinlemek yasaktir

Teknik Uygulama

  • • Middleware kontrolu: Her sayfa yuklemesinde kullanicinin pending uyarisi var mi kontrol edilir
  • • Modal veya tam sayfa redirect: Kullanici onaylayana kadar siteyi kullanamaz
  • • Form validation: Isim bos olamaz, onay metni tam eslesmeli ("Anladim ve kabul ediyorum")
  • • IP ve zaman kaydedilir: Hukuki gecerlilik icin

🚫 Kisitlama Alternatifleri

Kullanici uyariyi kabul ettikten sonra ihlale devam ederse ne yapilacak?

1

Birinci Uyari

  • • Modal uyari goster
  • • Isim + onay al
  • • Normal kullanima devam
2

Ikinci Uyari

  • • Ses kalitesi dusurme (128kbps)
  • • Reklam gosterme (varsa)
  • • Gunluk dinleme limiti (2 saat)
3

Ucuncu Uyari

  • • Gecici hesap askiya alma (24-72 saat)
  • • Sadece 1 cihaz izni (diger cihazlar otomatik cikis)
  • • Admin incelemesi zorunlu
4

Kalici Ban

  • • Hesap kalici olarak askiya alinir
  • • Premium uyelik iptal (iade yok)
  • • Ayni IP/cihazdan yeni kayit engeli

Oneri: Kademeli Yaklasim

Ilk etapta sadece Seviye 1 (uyari + onay) uygulayalim. Sistemin nasil calistigi ve kullanici tepkisi goruldukten sonra diger seviyeleri aktif edebiliriz.

📋 Uygulama Adimlari

1. Database Migration

muzibu_abuse_reports ve muzibu_abuse_acknowledgments tablolarini olustur

2. AbuseDetectionService

Analiz algoritmalarini iceren servis sinifi

3. Admin Livewire Component

Analiz baslat, sonuc goster, aksiyon al UI

4. Frontend Uyari Modal/Sayfa

Kullanici uyari ekrani ve onay formu

5. Middleware

Her sayfa yuklemesinde abuse status kontrolu

6. Test & Fine-tuning

Esik degerlerini gercek verilerle test et ve ayarla

❓ Karar Verilmesi Gereken Noktalar

1. Esik Degerleri

  • • Kac saniye icinde cakisma "supheli" sayilsin? (30s? 60s? 120s?)
  • • Minimum kac cakisma gereksin? (3? 5? 10?)
  • • Gunde kac farkli IP "normal"? (3? 5?)

2. Uyari Metni

Kullaniciya gosterilecek uyari mesajinin tam metni ne olsun?

3. Onay Sonrasi Sifirlanma

Kullanici "Anladim" dedikten sonra supheli sayac sifirlansin mi? Yoksa birikimli mi olsun?

4. Otomatik vs Manuel

Analiz otomatik calissin mi (cron)? Yoksa sadece admin baslatsin mi?